The tools needed
In general, you will need a compiler to create your binaries. The standard GCC will usually work though the maintainers prefer tinycc. This requires some setup, so choose this after you have compiled a few times and figured out how compiling works. When you have chosen your compiler, you need to download the files. The source is available as git repositories so install git and use git clone in your source code directory.
Setting up your system
If you go with gcc, you can easily install with your standard package handler and then run ‘make’ to compile your code. If instead, you choose tinycc you have some more work to do. Fortunately, tinycc can compile itself so download from the git repositories.
You may compile and install it on your system though you can use the compiler directly from its directory. Once you have this configured, you want to look through the features you may want. This is probably where you need to pay the most attention, choose only features you actually want and implement as few as possible each time. The reason is that all features are patches, get the patches wrong and you are stuck with a lot of digging around source code to find out what should actually be there. The tools you need are ‘patch’ and diff to make sure you can handle the patches and investigate them.
Finally, you should be able to compile your favourite tools!
Some interesting projects
Suckless Terminal
st – The simple terminal is designed to just run your commands. It does not come with scrolling by default. In fact, not many features are on at all. To find which features you want, go and look for them on their webpage. When you find one, you need to download it and use patch to get it. You may want to add a feature to create a new terminal with a keyboard shortcut. To do this, download https://st.suckless.org/patches/newterm/st-newterm-0.8.2.diff. With that file at hand you can update the main file. Run patch in the source code directory.
This may cause you some trouble because your starting point is not always correct, read the reject file to correct. With the patch successfully applied you can move on to setting your preferences. This is done in the config.h file. When finished, compile your code. In most packages, you have a single command to do this.
There is a README file for each package, read it!
DWM
DWM is a replacement for any window managers out there, it has very few features making it small and fast. It runs on X, though some efforts has been made to port it to Wayland. Many tiling window managers are based on this code.
surf
The simplest web browser you never even imagined! You can follow links and open new ones with Ctrl-g, programmers can also embed it in other applications. As a “regular” user, you can add it to Emacs! There are no more features by default. For tabbed browsing, use the ‘tabbed’ package.
sinit
After you fall in love with suckless tools, you can switch the startup and process control to sinit. It does away with most of the unnecessary features. This way to start your machine only handles three signals, making it possible to have a very minimal system.
What will be missing?
When you use the suckless tools, you will be missing some features but try it out before you judge. You may not be missing anything at all.
Conclusion
The suckless tools are a bit extreme for most people. However, most people will not take a chance on major improvements out of fear that all will be lost. Join the brave and try a package at a time until you feel good about it. The next step is to dual-boot into a suckless system to make sure you can still continue with daily tasks.