01. Overview & Architecture

Schema validatedSource pinned
Purpose
Patched dwm build with a styled status bar, gaps and multiple colorschemes.
Compatibility
Any distro (Server: X11)
Window Manager & Theme
dwm / Other

02. Installation & Deployment

Before you installThis changes your desktop configuration. Run it as your normal user, never with sudo: it asks for sudo only where a step needs it (listed below).The guided installer shows its plan first. Files it would replace are kept unless you approve. Everything it copies, clones or appends to in your home folder is backed up and verified first, and --rollback restores it. Packages, sudo changes and the other commands listed under Impact are not undone.
IntegrityEach release from main builds the installers in GitHub Actions and signs them with a GitHub build attestation. Verify your download against the repository, not this website (Option B, step 2). If it does not verify, don't run it.
ImpactWrites: ~/.config/chadwmRuns the upstream installer sudo make install, which manages its own files. The guided installer backs up your usual desktop config folders first.
RecoveryGuided: backups in ~/.local/state/0xtsoa/backups/, undo with bash install.sh --rollback.Manual: back up first (Option A, step 3).
Option A: manual installAdvanced
Read the source at the reviewed commit, back up, then run each step yourself.
$git clone https://github.com/siduck/chadwm ~/0xtsoa-review/siduck-chadwm# 1. clone to a review folder
$git -C ~/0xtsoa-review/siduck-chadwm checkout --detach 7991ac8d33878b716e7e7cabf58b47503864f622# 2. the reviewed commit
$for p in ~/.config/chadwm ~/.config/hypr ~/.config/quickshell ~/.config/waybar ~/.config/eww ~/.config/ags ~/.config/hyprpanel ~/.config/kitty ~/.config/foot ~/.config/alacritty ~/.config/wezterm ~/.config/ghostty ~/.config/rofi ~/.config/wofi ~/.config/fuzzel ~/.config/dunst ~/.config/mako ~/.config/swaync ~/.config/i3 ~/.config/sway ~/.config/niri ~/.config/bspwm ~/.config/sxhkd ~/.config/awesome ~/.config/polybar ~/.config/picom ~/.config/qtile ~/.config/wlogout ~/.config/swaylock ~/.config/fish ~/.config/nvim ~/.config/fastfetch ~/.config/starship.toml ~/.config/matugen ~/.config/wal ~/.config/gtk-3.0 ~/.config/gtk-4.0 ~/.config/Kvantum ~/.config/qt5ct ~/.config/qt6ct ~/.bashrc ~/.zshrc ~/.themes; do [ -e "$p" ] && cp -a "$p" "$p.bak-0xtsoa"; done# 3. back up what the steps write
Read the upstream installer in ~/0xtsoa-review/siduck-chadwm before running it, and every script it calls.Then the steps. Package commands are written for Arch; on other distros use your package manager.

Step-by-step deployment protocol

Step-by-step deployment
1Clone chadwm
$git clone --filter=blob:none https://github.com/siduck/chadwm ~/.config/chadwm
$git -C ~/.config/chadwm checkout 7991ac8d33878b716e7e7cabf58b47503864f622
2Build and install dwm
$cd ~/.config/chadwm/chadwm
$sudo make install
3Start it from your xinitrc
$# ~/.xinitrc: exec ~/.config/chadwm/scripts/run.sh
Option B: guided installerRecommended
The same steps as one script for any distro. It shows the plan first, keeps files you already have unless you approve replacing them, and backs up everything it changes in your home folder. Never pipe it into a shell.
$curl -fsSLo install.sh 'https://www.0xtsoa.dev/configs/siduck/chadwm/install.sh'# 1. download
$gh attestation verify install.sh --repo nyharena25/0xTsoa --signer-workflow nyharena25/0xTsoa/.github/workflows/attest-installers.yml# 2. verify (GitHub CLI 2.49+, signed in)
$less install.sh# 3. read it
$bash install.sh --dry-run# 4. preview: changes nothing
$bash install.sh# 5. install (asks first)
$bash install.sh --rollback# undo the file changes
View script in browserOther options: --force (replace conflicts, backed up first), --yes, --help

03. Screenshot Gallery // chadwm

Capture 01 // Fullscreen
chadwm screenshot 1
01 / 06

04. Documentation & Guide

Source: siduck/chadwmRef: 7991ac8d33
README.md|GitHub Flavored Markdown

chadwm (Initial look)

(empty workspaces have their color greyed out)
  • NOTE: This is vanilla dwm bar (status2d patch for setting colors) not dwmblocks or polybar.
  • The small widget on the top right is an eww widget and thats old! I've improved the eww widget. (catppuccin theme) (gruvbox material dark)

Tag preview (while hovering tag icon)

https://user-images.githubusercontent.com/59060246/223068062-d3c9847a-8713-42c7-bc9d-07247a0486a8.mp4

Requirements

  • dash (shell)
  • imlib2
  • xsetroot package (status2d uses this to add colors on dwmbar)
  • JetbrainsMono Nerd Font or any nerd font but dont forget to set it in config.def.h
  • Make sure to setup your terminal's theme accordingly do chadwm's theme such as nord, onedark etc...

Other requirements

  • picom
  • feh
  • acpi
  • rofi

Install

git clone https://github.com/siduck/chadwm --depth 1  ~/.config/chadwm
cd ~/.config/chadwm/
mv eww ~/.config
cd chadwm
sudo make install

(Note: chmod +x all of the scripts)

Run chadwm

With startx

startx ~/.config/chadwm/scripts/run.sh

With sx

sx sh ~/.config/chadwm/scripts/run.sh

(Make an alias for this :v)

alias chadwm='startx ~/.config/chadwm/scripts/run.sh'

With Display Manager

  • Create a desktop entry (make sure to change user with your user):
sudo touch /usr/share/xsessions/chadwm.desktop  
[Desktop Entry]
Name=chadwm
Comment=dwm made beautiful 
Exec=/home/user/.config/chadwm/scripts/./run.sh 
Type=Application 

Recompile

  • You need to recompile dwm after every change you make to its source code.
cd ~/.config/chadwm/chadwm
rm config.h
sudo make install

Change themes

  • Bar : in bar.sh (line 9) and config.def.h (line 35)
  • eww : in eww.scss (line 1)
  • rofi : in config.rasi (line 15)

Eww

  • First, make sure you have copied the eww directory to your config:
cp -r ~/.config/chadwm/eww ~/.config/
  • To launch the eww widget, you need the following command:
eww open eww

(Note: I use only alsa on my system so audio scripts on widget are alsa related, modify them to support pulseaudio)

  • It could be a good idea to add these lines to your autostart file, located at ~/.config/chadwm/scripts/run.sh

Credits

  • HUGE THANKS to eProTaLT83. I wanted certain features in dwm like tabbar in monocle, tagpreview etc and he implemented my ideas and created patches for me! I can't even count the number of times he has helped me :v
  • @fitrh helped with colorful tag patch
  • 6gk, eww's pure posix fetch functions taken from here
  • mafetch, modified version of this was used as fetch in the screenshots

Patches

  • systray
  • systray iconsize
  • barpadding
  • bottomstack
  • cfacts
  • dragmfact
  • dragcfact (took from bakkeby's build)
  • fibonacci
  • gaplessgrid
  • horizgrid
  • movestack
  • vanity gaps
  • colorful tags
  • statuspadding
  • status2d
  • underline tags
  • notitle
  • winicon
  • preserveonrestart. This patch doesnt let all windows mix up into tag 1 after restarting dwm.
  • shiftview
GitHub Flavored Markdown (github-markdown-css)README snapshot at 7991ac8d33