Skip to content

This is a patch of dwm featuring mainly barpadding, colorbar, fullgaps, hide vacant tags, status2d, systray and winicon.

License

Notifications You must be signed in to change notification settings

MinaMatta98/suckless-dwm-blue

Repository files navigation

Suckless-dwm-blue

This repo features a pre-patched version of the suckless desktop window manager - dwm. Dwm is lightweight and written in (you wont believe it) ... C . This makes it extremely lightweight and responsive, which is made especially clear when you contrast the dwm top bar to something like polybar. While polybar is a good bar extension it compartively is cripplingly slow.

You can find the unpatched dwm window manager in the following link: https://dwm.suckless.org/

The suckless dwm window manager is known to be difficult to patch. Users are generally capable of integrating a few patches with ease, however, the patches may be difficult to merge and would sometimes conflict each other. Note that I am no expert in C code and am open to criticism.

This is a patch of dwm featuring mainly barpadding, colorbar, fullgaps, hide vacant tags, status2d, systray and winicon patches.

All credit for the desktop background go to u/baron-digit

Here is a demonstration of the display manager's "desktop environment":

Dwm with Alacritty, Zsh and Powerlevel10k

Arch-Desktop

Dwm demonstrating the master-stack tile layout

Arch-Desktop

Dwm with dmenu as a launch helper

Arch-Desktop

Dwm top bar with systray, dwmblocks, winicons and hidden vacant tags

Arch-Desktop

Dwm with lf as the file manager

Arch-Desktop

Directory

Due to the size of this project, the installation will be split amongst multiple sections:

  • dwm
  • dwmblocks-async & dwmblocks-scripts
  • dmenu & dmenu-scripts
  • lightdm
  • grub
  • picom
  • alacritty
  • zsh

Dwm Installation

The dwm install, while needing quite a bit of tuning to get working does actually feature other people's patches. This installation features the integration of the following patches:

These patches generally required a lot of configurations to get working together. Namely, the most complex to get working together would be barpadding, systray, winicon and status2d. This is due to them generally interfering with each others core functionality.

Dependancies

The following dependancies are required for Dwm, installable through the following terminal commands:

  • X (Xorg Server) :
sudo pacman -Sy xorg

You would also need your graphics card drivers. Please refer to the following link for Arch: https://wiki.archlinux.org/title/Hardware_video_acceleration. If you use an alternative distribution, please follow the distributions graphics driver installation guide.

  • Libxcb:
sudo pacman -Sy libxcb
  • Xdg-utils:
sudo pacman -Sy xdg-utils
  • Nerd-Font-Icons (I will demonstrate with yay, but paru and other download managers can be used. Note that the complete package isn't needed):
yay -S nerd-fonts-complete
  • Yahl-libs:
sudo pacman -Sy yahl
  • Imlib2:
sudo pacman -Sy imlib2
  • A Display Manager, I use lightdm, gdm can also be used but is slower:
sudo pacman -Sy lightdm
sudo systemctl enable lightdm
  • For volume control (non-essential, but will lead to a better top bar experience) via pulseaudio and tuning via pulsemixer:
sudo pacman -S pulseaudio pulsemixer
  • GTK for general theming:
sudo pacman -S gtk2 gtk3 gtk4
  • GTK theming tools (will be used in this guide), cli options available also:
sudo pacman -S lxappearance-gtk3
  • Git for cloning
sudo pacman -S git
  • A desktop compositor such as picom or xcompmgr. You will realise that dwm hangs without one. Xcompmgr can be used instead of picom and will offer slightly better performance for less bling and rounded corners.
sudo pacman -S picom
  • feh for setting the background wallpaper
sudo pacman -S feh

Installation via scripts

This section will detail installing dwm via scripts.

Initially, download this repo into your home directory:

git clone https://github.com/MinaMatta98/suckless-dwm-blue

Then install the patched version of dwm via the following terminal command:

sudo make clean install

Startup Application Management

This installation of dwm allows for startup applications to be directly launched from $HOME/.dwm/autostart.sh

Prior to moving forward, execute the following script into your terminal of choice within the downloaded folder:

chmod +x install-bg.sh && ./install-bg.sh

A cat ~/.dwm/autostart.sh will reveal the following:

numlockx on &
$HOME/.config/feh/.fehbg &
picom &
xbindkeys &
xset r rate 300 55
dwmblocks &
clipmenud &
kdeconnect-cli &

Note the following:

  • A #!/usr/bin/bash is not needed as dwm naturally executes the script with
  • Picom or alternative desktop compositors are essential for a viable experience.
  • The xset command can be ommited. It simply increases scroll speed.
  • xbindkeys and clipmenud will be elaborated on in the dmenu section and dwmblocks will also have its own section.

General Theming

This section involves the general theming and will allow for the installation of certain icons and modal colors that will help complete the end user experience. Note that none of these are my own and full credit go to the owners below:

All credits for the theme go to the abovementioned author

All credits for the icons go to the abovementioned author

GTK theme installation

From the main folder ($HOME/suckless-dwm-blue/), install the GKT theme by inputting the following terminal command:

./Layan-gtk-theme/install.sh

If the command could not execute, then do the following:

chmod +rwx $HOME/suckless-dwm-blue/Layan-gtk-theme/install.sh && $HOME/suckless-dwm-blue/Layan-gtk-theme/install.sh

Icon theme installation

From the main folder ($HOME/suckless-dwm-blue/), install the icon theme by inputting the following terminal command:

./Lyra-icon-theme/install.sh

If the command could not execute, then do the following:

chmod +rwx $HOME/suckless-dwm-blue/Lyra-icon-theme/install.sh && $HOME/suckless-dwm-blue/Lyra-icon-theme/install.sh

GTK and Icon theme activation

Now that the themes have been installed in the system, they must be selected for system use:

  • Start lxappearance from your terminal or launcher of choice
  • Under Widgets, select Layan-dark-solid themeing
  • Under Icons, select Lyra-dark-purple themeing
  • Under Font, select enable antialiasing and hinting themeing
  • Under Other, select enable accessibility in GTK+ applications themeing

MinaMatta98.github.io

About

This is a patch of dwm featuring mainly barpadding, colorbar, fullgaps, hide vacant tags, status2d, systray and winicon.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published