Skip to content

My Suckless Build Using dwm + dwmblocks + st + xcompmgr aka. my "moderately" patched Suckless Tools

Notifications You must be signed in to change notification settings

ronylee11/suckless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

Useful Resources

About

My Suckless Build Using dwm + dwmblocks + st + xcompmgr aka. my "moderately" patched Suckless Tools

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published