The suckless project values simplicity, clarity and frugality in software.
Our philosophy is about keeping things simple, minimal and usable. We believe this should become the mainstream philosophy in the IT sector.
As a user of most of their programs including the infamous dwm (a tiling window manager), dmenu (launcher), st (terminal emulator) and others tools, I can attest to benefits of using minimal and efficient software.
Programs are customised by patching the C source code. However, unlike typical open source projects, suckless source code is quite readable and hackable, a by-product of the philosophy.
Because dwm is customized through editing its source code [C], it’s pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions.
Download a patch and apply it:
patch -p1 -i cool-dwm-feature-i-need-20191002-b46028b.diff
The first few patches generally apply cleanly. After that, the base source code gets too frankensteined for
patch to work with. Don’t fear, manually applying the patches using your editor is quite enjoyable.
Some suckless conventions:
- User configuration is defined in the
config.def.hheader. Always maintain this file and never
- I patch the
cleantarget in the
Makefileto include a
@rm -f config.h
- When building always do a clean before running install, like this
make clean && sudo make install
- Don’t use too many patches (i.e. stay vanilla as possible)
- Get in the habit of applying the patches, as opposed to forking the git repo. Forking results in an unmaintainable mess that gets out of sync with upstream suckless changes.
- Every so often
git pull(or re-cloning if your too heavily patched) the latest fixes and enhancements, and re-patching.
Tiling window manager.
- centre adds the ability to centre floating windows
MODKEYto super key
- Define the
- Register launcher strings (
const char*) for each program I want shortcuts for.
- Register the above launcher strings to specific key bindings (e.g. HYPER + I will launch
pulsemixerin a centered floating window).
scrollbackability to scoll using shift + page-up/down
scollback-mouseability to scoll using shift + mouse-scroll
- set font string to
FuraCode Nerd Font:pixelsize=14:antialias=true:autohint=true
A graphical lock screen.
messagesadds text based message