{"id":23046814,"url":"https://github.com/ronylee11/suckless","last_synced_at":"2025-08-15T00:33:39.696Z","repository":{"id":43876578,"uuid":"511710036","full_name":"ronylee11/suckless","owner":"ronylee11","description":" My Suckless Build Using dwm + dwmblocks + st + xcompmgr  aka. my \"moderately\" patched Suckless Tools","archived":false,"fork":false,"pushed_at":"2023-02-04T03:14:05.000Z","size":18076,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T04:41:27.630Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ronylee11.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-08T00:14:25.000Z","updated_at":"2024-12-23T17:38:49.000Z","dependencies_parsed_at":"2024-12-15T22:39:35.955Z","dependency_job_id":null,"html_url":"https://github.com/ronylee11/suckless","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ronylee11/suckless","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronylee11%2Fsuckless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronylee11%2Fsuckless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronylee11%2Fsuckless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronylee11%2Fsuckless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ronylee11","download_url":"https://codeload.github.com/ronylee11/suckless/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronylee11%2Fsuckless/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270505607,"owners_count":24596501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-14T02:00:10.309Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-15T22:29:23.826Z","updated_at":"2025-08-15T00:33:36.317Z","avatar_url":"https://github.com/ronylee11.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What is this?\n\nMy Suckless Build Using dwm + dwmblocks + st + xcompmgr \u003cbr /\u003e\naka. my \"moderately\" patched Suckless Tools\n\n# Screenshot\n\nPicture of four st instances separately running cmatrix, htop, ncmpcpp, cava, and an active gif background\n![Alt text](./.github/dwm-showcase.gif)\n\n# Installation\n\nArch Linux\u003cbr/\u003e\n\u003cbr /\u003e\nInstall automatically:\u003cbr /\u003e\nrun this absolute killer script written by me hehe\n\n```\ngit clone https://github.com/ronylee11/dotfiles.git\ncd dotfiles\nchmod +x ./installer.sh\n./installer.sh\n```\n\nInstall Manually:\u003cbr /\u003e\nDependencies\n\n```\nsudo pacman -S xorg-server xorg-xinit libx11 libxinerama libxft webkit2gtk\nsudo pacman -S base-devel\n```\n\nOptional\n\n```\nsudo pacman -S xcompmgr fcitx5 feh dunst rnnoise oneko\n```\n\nNow install this repository\n\n```\ngit clone https://github.com/ronylee11/dotfiles.git\ncd dotfiles\n```\n\nGo in each suckless directory individually, for / dwm, dwmblocks, dmenu, slock, scroll, surf, tabbed, st / \u003cbr /\u003e\nand separately run `sudo make clean install` \u003cbr /\u003e\nCheckout the rest of the directories to install some other tools, a custom README file is written for guidance\n\n# Usage\n\nHow to use my setup?\u003cbr /\u003e\n\u003cbr /\u003e\nDWM keybindings:\u003cbr /\u003e\nI have set my Modkey to Windows Key! If you do prefer Alt Key, set Mod4Mask to Mod1Mask in dwm/config.def.h!\u003cbr /\u003e\nHere are the default keybindings that I have customized to my likings:\u003cbr /\u003e\nSwitching tags:\u003cbr /\u003e\nModkey+1 - switch to tag 1\u003cbr /\u003e\nModkey+2 - switch to tag 2\u003cbr /\u003e\nModkey+3 - switch to tag 3\u003cbr /\u003e\nModkey+4 - switch to tag 4\u003cbr /\u003e\nModkey+5 - switch to tag 5\u003cbr /\u003e\nModkey+F1 - switch to tag 6\u003cbr /\u003e\nModkey+F2 - switch to tag 7\u003cbr /\u003e\nModkey+F3 - switch to tag 8\u003cbr /\u003e\nModkey+F4 - switch to tag 9\u003cbr /\u003e\nModkey+F5 - switch to tag 10\u003cbr /\u003e\nSwitch Focus between apps:\u003cbr /\u003e\nModkey+K - next app\u003cbr /\u003e\nModkey+J - previous app\u003cbr /\u003e\nModkey+Enter - move currently focus app to main stack(switching app order)\u003cbr /\u003e\nMoving app between tags:\u003cbr /\u003e\nfocus on the app that u want to move,\u003cbr /\u003e\nModKey+Shift+1-F5 - move app to tag 1-10\u003cbr /\u003e\nLaunching app:\u003cbr /\u003e\nModkey+P - runs rofi launchpad, choose with arrow keys and enter to launch\u003cbr /\u003e\nLaunching terminal(st):\u003cbr /\u003e\nModkey+Shift+Enter - launch st terminal, u can change ur default terminal in dwm/config.def.h to kitty if you prefer!\u003cbr /\u003e\n(one instance of empty st takes 4-6MB of RAM, one instance of empty kitty takes 40~60MB of RAM)\u003cbr /\u003e\n\u003cbr /\u003e\n\nfish shell config:\u003cbr /\u003e\n\u003cbr /\u003e\nButtons:\u003cbr /\u003e\n(TAB) - autocompletion\u003cbr /\u003e\n(Right Arrow Key) - autocompletion by one character\u003cbr /\u003e\n\u003cbr/\u003e\nAliases:\u003cbr /\u003e\nc - alias set to clear\u003cbr /\u003e\ncmatrix - alias set to unimatrix with customization parameters\u003cbr /\u003e\nbtp - bluetoothctl power on\u003cbr /\u003e\nbtf - bluetoothctl power off\u003cbr /\u003e\nbts - bluetoothctl scan on\u003cbr /\u003e\nbtc - bluetoothctl connect AC:12:12:12 (in this case my personal device, u can change it)\u003cbr /\u003e\nicat - kitty +kitten icat \u003cbr /\u003e\nyt - youtube-dl -o '$HOME/Downloads/%(title)s-%(id)s.%(ext)s' -f bestaudio (to install youtube music with best audio to Downloads/ directory) \u003cbr /\u003e\n\u003cbr /\u003e\nAbbr:\u003cbr /\u003e\np - sudo pacman \u003cbr /\u003e\ny - yay \u003cbr /\u003e\nAutostart:\u003cbr /\u003e\nstartx on tty1 upon login\u003cbr /\u003e\nauto use fishbone omf theme on st \u0026 tty fish shell\u003cbr /\u003e\nspecifically only on vscode terminal, use agnoster omf theme on fish shell\u003cbr /\u003e\n\n\u003cbr /\u003e\n(Do feel free to change and modify them to your own likings!)\n\n# Personal Notes\n\n- What is config.def.h and config.h? \u003cbr /\u003e\n  config.def.h is the default configuration file that all the patches and manual tweaks go to. \u003cbr /\u003e\n  config.h is the actual configuration file that is automatically generated when `sudo make install` is executed. \u003cbr /\u003e\n  Continuous Patching results in repeated lines in config.def.h. \u003cbr /\u003e\n  Repeated lines are removed in config.h when `sudo make install` is executed. \u003cbr /\u003e\n  Note: config.h has to be removed to be automatically generated. \u003cbr /\u003e\n  @@ \u003cbr /\u003e\n  Workflow of making changes in suckless programs \u003cbr /\u003e\n  Copy config.h and replace it to config.def.h \u003e Edit config.def.h \u003e Remove config.h \u003e Run `sudo make install` \u003cbr /\u003e\n\n- What is Patching? \u003cbr /\u003e\n  Patching uses `patch` command and .diff files. \u003cbr /\u003e\n  The .diff files contains insertions and deletions of lines in multiple files, just like git. \u003cbr /\u003e\n  `patch` take account of the insertions and deletions and try to merge them into subsequent files. \u003cbr /\u003e\n  The added lines and removed lines are reflected in config.def.h \u003cbr /\u003e\n  Just like how git works, when there is conflicts, we have to manually look through the conflicted lines and add/remove them. \u003cbr /\u003e\n  @@ \u003cbr /\u003e\n  Workflow of patching\n\n  ```\n  patch -p1 \u003c dwm-20-4-2069.diff\n  ```\n\n  If it throws errors, subsequent files ended in .rej will be generated. \u003cbr /\u003e\n  Read through .rej files and manually add/remove lines. \u003cbr /\u003e\n  @@ \u003cbr /\u003e\n  Reverse patching\n\n  ```\n  patch -R \u003c dwm-20-4-2069.diff\n  ```\n\n  If we don't like the patch being applied, we can reverse them. \u003cbr /\u003e\n  Same as above, if it throws errors, .rej files will be generated and we have to manually edit them again. \u003cbr /\u003e\n  Luckily, it should be easier this time as all the extra lines are manually added ourselves. \u003cbr /\u003e\n\n- Whats the difference between `make install` and `make clean install`?\n  `make clean install` is equivalent to running\n\n  ```\n  make\n  make install\n  make clean\n  ```\n\n  `make` builds the complete program using source code \u003cbr /\u003e\n  `clean` removes all the compiled resources in the source folder \u003cbr /\u003e\n  `install` installs the complete program on the system \u003cbr /\u003e\n  The major difference is clean helps regain space \u003cbr /\u003e\n  Good practice is to run `make clean install` on fresh installation, and `make install` when u configure it\n\n- How to disable instant shutdown when power button is pressed?\n  In /etc/systemd/login.conf, add HandlePowerKey=ignore\n\n- How to change console font size?\n  Change the font!\u003cbr /\u003e\n  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/\n  Now restart!\n\n- How to make VirtualBox start in dark theme? (QT Config)\n  VirtualBox is a qt5 application \u003cbr /\u003e\n  In order to change theme for all qt applications, use `qt5ct` \u003cbr /\u003e\n  And download a qt theme that has dark variant, such as `breeze` or `adwaita-qt`\n\n  ```\n  sudo pacman -S qt5ct\n  yay -S adwaita-qt\n  ```\n\n  In the terminal, run qt5ct, and change the theme in Appearance tab \u003cbr /\u003e\n  In /etc/environment, add a new line `QT_QPA_PLATFORMTHEME=qt5ct` and save \u003cbr /\u003e\n  Restart and see the magic happens!\n\n- How to make Discord tray icon's right click menu change to dark theme? ( GTK config )\n  Discord is a gtk3 application \u003cbr /\u003e\n  In order to change theme for all gtk applications, use `lxappearance-gtk3` \u003cbr /\u003e\n  Launch `lxappearance` from terminal, edit and save!\n\n- How to apply VsCode white top bar to dark theme?\n  In VsCode settings search `window.titlebar` and change `Title Bar Style` to custom \u003cbr /\u003e\n\n- How to make VsCode terminal show icons?\n  In VsCode settings search `terminal.integrated.font` and under `Font Family` type `Hack Nerd Font Mono` \u003cbr /\u003e\n\n# Patches\n\ndwm - alwayscenter, fullgaps, bar-height, pertag, statuscmd, systray, systray-iconsize \u003cbr /\u003e\ndwmblocks - statuscmd \u003cbr /\u003e\nst - alpha, scrollback \u003cbr /\u003e\nslock - capscolor, colormessage, foreground-and-background \u003cbr /\u003e\nsurf - bookmarking, playexternal, download, searchengines \u003cbr /\u003e\n\n# Repositories\n\n- Github - https://github.com/ronylee11/suckless\n- Gitlab - https://gitlab.com/ronylee11/suckless\n\n# Useful Resources\n\n- suckless.org - https://suckless.org/\n- dwmblocks - https://gitlab.com/zagyarakushi/mydwmblocks\n- surf - https://github.com/LukeSmithxyz/surf\n- rofi (dmenu alternative) - https://github.com/davatorium/rofi\n- rofi theme - https://github.com/dctxmei/rofi-themes\n- oneko - https://aur.archlinux.org/packages/oneko\n- xcompmgr - https://wiki.archlinux.org/title/xcompmgr\n- mouse \u0026 touchpad - https://wiki.archlinux.org/title/Mouse_acceleration\n- fcitx5 (multi-language keyboard layouts) - https://wiki.archlinux.org/title/Fcitx5\n- fcitx5 Nord theme - https://github.com/tonyfettes/fcitx5-nord\n- feh (background image \u0026 image viewer) - https://wiki.archlinux.org/title/Feh\n- bluetoothctl commands (bluetooth cli solution) - https://linuxcommandlibrary.com/man/bluetoothctl\n- screendimmer (dimmer screen) - https://github.com/Lawrence-Chiappelli/screendimmer\n- youtube-dl (youtube videos downloader) - https://wiki.archlinux.org/title/Youtube-dl\n- spotdl - https://github.com/spotDL/spotify-downloader\n- ncmpcpp (frontend for local music player) - https://wiki.archlinux.org/title/ncmpcpp\n- mpd (backend for local music player) - https://wiki.archlinux.org/title/Music_Player_Daemon\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fronylee11%2Fsuckless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fronylee11%2Fsuckless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fronylee11%2Fsuckless/lists"}