Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ronylee11/suckless
My Suckless Build Using dwm + dwmblocks + st + xcompmgr aka. my "moderately" patched Suckless Tools
https://github.com/ronylee11/suckless
Last synced: 7 days ago
JSON representation
My Suckless Build Using dwm + dwmblocks + st + xcompmgr aka. my "moderately" patched Suckless Tools
- Host: GitHub
- URL: https://github.com/ronylee11/suckless
- Owner: ronylee11
- Created: 2022-07-08T00:14:25.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-04T03:14:05.000Z (almost 2 years ago)
- Last Synced: 2023-03-10T02:48:19.791Z (almost 2 years ago)
- Language: C
- Size: 17.2 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# What is this?
My Suckless Build Using dwm + dwmblocks + st + xcompmgr
aka. my "moderately" patched Suckless Tools# Screenshot
Picture of four st instances separately running cmatrix, htop, ncmpcpp, cava, and an active gif background
![Alt text](./.github/dwm-showcase.gif)# Installation
Arch Linux
Install automatically:
run this absolute killer script written by me hehe```
git clone https://github.com/ronylee11/dotfiles.git
cd dotfiles
chmod +x ./installer.sh
./installer.sh
```Install Manually:
Dependencies```
sudo pacman -S xorg-server xorg-xinit libx11 libxinerama libxft webkit2gtk
sudo pacman -S base-devel
```Optional
```
sudo pacman -S xcompmgr fcitx5 feh dunst rnnoise oneko
```Now install this repository
```
git clone https://github.com/ronylee11/dotfiles.git
cd dotfiles
```Go in each suckless directory individually, for / dwm, dwmblocks, dmenu, slock, scroll, surf, tabbed, st /
and separately run `sudo make clean install`
Checkout the rest of the directories to install some other tools, a custom README file is written for guidance# Usage
How to use my setup?
DWM keybindings:
I have set my Modkey to Windows Key! If you do prefer Alt Key, set Mod4Mask to Mod1Mask in dwm/config.def.h!
Here are the default keybindings that I have customized to my likings:
Switching tags:
Modkey+1 - switch to tag 1
Modkey+2 - switch to tag 2
Modkey+3 - switch to tag 3
Modkey+4 - switch to tag 4
Modkey+5 - switch to tag 5
Modkey+F1 - switch to tag 6
Modkey+F2 - switch to tag 7
Modkey+F3 - switch to tag 8
Modkey+F4 - switch to tag 9
Modkey+F5 - switch to tag 10
Switch Focus between apps:
Modkey+K - next app
Modkey+J - previous app
Modkey+Enter - move currently focus app to main stack(switching app order)
Moving app between tags:
focus on the app that u want to move,
ModKey+Shift+1-F5 - move app to tag 1-10
Launching app:
Modkey+P - runs rofi launchpad, choose with arrow keys and enter to launch
Launching terminal(st):
Modkey+Shift+Enter - launch st terminal, u can change ur default terminal in dwm/config.def.h to kitty if you prefer!
(one instance of empty st takes 4-6MB of RAM, one instance of empty kitty takes 40~60MB of RAM)
fish shell config:
Buttons:
(TAB) - autocompletion
(Right Arrow Key) - autocompletion by one character
Aliases:
c - alias set to clear
cmatrix - alias set to unimatrix with customization parameters
btp - bluetoothctl power on
btf - bluetoothctl power off
bts - bluetoothctl scan on
btc - bluetoothctl connect AC:12:12:12 (in this case my personal device, u can change it)
icat - kitty +kitten icat
yt - youtube-dl -o '$HOME/Downloads/%(title)s-%(id)s.%(ext)s' -f bestaudio (to install youtube music with best audio to Downloads/ directory)
Abbr:
p - sudo pacman
y - yay
Autostart:
startx on tty1 upon login
auto use fishbone omf theme on st & tty fish shell
specifically only on vscode terminal, use agnoster omf theme on fish shell
(Do feel free to change and modify them to your own likings!)# Personal Notes
- What is config.def.h and config.h?
config.def.h is the default configuration file that all the patches and manual tweaks go to.
config.h is the actual configuration file that is automatically generated when `sudo make install` is executed.
Continuous Patching results in repeated lines in config.def.h.
Repeated lines are removed in config.h when `sudo make install` is executed.
Note: config.h has to be removed to be automatically generated.
@@
Workflow of making changes in suckless programs
Copy config.h and replace it to config.def.h > Edit config.def.h > Remove config.h > Run `sudo make install`- What is Patching?
Patching uses `patch` command and .diff files.
The .diff files contains insertions and deletions of lines in multiple files, just like git.
`patch` take account of the insertions and deletions and try to merge them into subsequent files.
The added lines and removed lines are reflected in config.def.h
Just like how git works, when there is conflicts, we have to manually look through the conflicted lines and add/remove them.
@@
Workflow of patching```
patch -p1 < dwm-20-4-2069.diff
```If it throws errors, subsequent files ended in .rej will be generated.
Read through .rej files and manually add/remove lines.
@@
Reverse patching```
patch -R < dwm-20-4-2069.diff
```If we don't like the patch being applied, we can reverse them.
Same as above, if it throws errors, .rej files will be generated and we have to manually edit them again.
Luckily, it should be easier this time as all the extra lines are manually added ourselves.- Whats the difference between `make install` and `make clean install`?
`make clean install` is equivalent to running```
make
make install
make clean
````make` builds the complete program using source code
`clean` removes all the compiled resources in the source folder
`install` installs the complete program on the system
The major difference is clean helps regain space
Good practice is to run `make clean install` on fresh installation, and `make install` when u configure it- How to disable instant shutdown when power button is pressed?
In /etc/systemd/login.conf, add HandlePowerKey=ignore- How to change console font size?
Change the font!
In /etc make a new file named vconsole.conf, add in FONT=ter-132n, or any other fonts u find in /usr/share/kbd/consolefonts/
Now restart!- How to make VirtualBox start in dark theme? (QT Config)
VirtualBox is a qt5 application
In order to change theme for all qt applications, use `qt5ct`
And download a qt theme that has dark variant, such as `breeze` or `adwaita-qt````
sudo pacman -S qt5ct
yay -S adwaita-qt
```In the terminal, run qt5ct, and change the theme in Appearance tab
In /etc/environment, add a new line `QT_QPA_PLATFORMTHEME=qt5ct` and save
Restart and see the magic happens!- How to make Discord tray icon's right click menu change to dark theme? ( GTK config )
Discord is a gtk3 application
In order to change theme for all gtk applications, use `lxappearance-gtk3`
Launch `lxappearance` from terminal, edit and save!- How to apply VsCode white top bar to dark theme?
In VsCode settings search `window.titlebar` and change `Title Bar Style` to custom- How to make VsCode terminal show icons?
In VsCode settings search `terminal.integrated.font` and under `Font Family` type `Hack Nerd Font Mono`# Patches
dwm - alwayscenter, fullgaps, bar-height, pertag, statuscmd, systray, systray-iconsize
dwmblocks - statuscmd
st - alpha, scrollback
slock - capscolor, colormessage, foreground-and-background
surf - bookmarking, playexternal, download, searchengines# Repositories
- Github - https://github.com/ronylee11/suckless
- Gitlab - https://gitlab.com/ronylee11/suckless# Useful Resources
- suckless.org - https://suckless.org/
- dwmblocks - https://gitlab.com/zagyarakushi/mydwmblocks
- surf - https://github.com/LukeSmithxyz/surf
- rofi (dmenu alternative) - https://github.com/davatorium/rofi
- rofi theme - https://github.com/dctxmei/rofi-themes
- oneko - https://aur.archlinux.org/packages/oneko
- xcompmgr - https://wiki.archlinux.org/title/xcompmgr
- mouse & touchpad - https://wiki.archlinux.org/title/Mouse_acceleration
- fcitx5 (multi-language keyboard layouts) - https://wiki.archlinux.org/title/Fcitx5
- fcitx5 Nord theme - https://github.com/tonyfettes/fcitx5-nord
- feh (background image & image viewer) - https://wiki.archlinux.org/title/Feh
- bluetoothctl commands (bluetooth cli solution) - https://linuxcommandlibrary.com/man/bluetoothctl
- screendimmer (dimmer screen) - https://github.com/Lawrence-Chiappelli/screendimmer
- youtube-dl (youtube videos downloader) - https://wiki.archlinux.org/title/Youtube-dl
- spotdl - https://github.com/spotDL/spotify-downloader
- ncmpcpp (frontend for local music player) - https://wiki.archlinux.org/title/ncmpcpp
- mpd (backend for local music player) - https://wiki.archlinux.org/title/Music_Player_Daemon