Dynamic Window Manager
Suckless's dwm.
This is my personal build ofEach branch of this repository contains a feature implemented on top of the base build of dwm from Suckless.
All desired features are then merged into the build branch. The current build contains patches from all other branches, other than the alpha and swallow patches.
Patches & Features
All patches that I have applied are located in patches.
- attach aside: New clients are attached and focused in the slave area, not master area.
- autostart: Define programs to autostart in config.def.h.
- awesome bar: Make status bar similar to awesomewm. On this build, this patch only makes visual changes.
- bar padding: Add option to add space between bar and edge of screen.
- always center: Floating windows are always centered.
- cfacts: Use
Super + Shift + j/k
to resize slave windows - gaps: Use
Super + -/+(=)
to adjust gap size,Super + Shift + '+'
to reset - hide_vacant_tags: Hide vacant tags from the status bar
- monocle symbol: Always show monocle layout symbol in status bar, rather than window count
- pertag: Allow each tag to have its own layout
- scratchpad: Use
Super + grave
to show and hide scratchpad terminal - status padding: Add padding to status bar text (not positive this is working properly)
Support for clickable status bar modules is also included, when used along with a patched version of dwmblocks. See here.
Fonts
Fonts:
- Cherry: Default text font.
- Siji: Icon font.
- JoyPixels: Emoji font, not used in bar except when a window's title contains them.
Cherry and Siji are bitmap fonts. If there are any issues with displaying these fonts, make sure the file /etc/fonts/conf.d/70-no-bitmaps.conf
does not exist.
On my system, bitmaps fonts only work when using the .bdf
version of the font, rather than the .pcf
format.
See below for notes about making sure JoyPixels, and emoji fonts in general, work properly.
Bindings
The keybindings setup for this build are highly personalized to my own system, so I recommend looking at config.def.h to see all the the keybindings I've setup.
It may be helpful to look at my dotfiles repository to understand the scripts/commands the keybindings are mapped to execute.
In general, however, Super + Alt
is used to launch programs & applications, while Super + Ctrl
is used to launch helper dmenu scripts.
Use my build
Since my current build supports emoji's, it is required replace libXft with the patched version until the fix gets implemented in the official build.
libxft-bgra is available in the AUR.
After replacing the standard libXft with the package above, you can build and install dwm by cloning this repository (insuring you are on the build branch).
Finally, run:
# make install
After making changes, be sure to include the clean target when rebuilding St:
# make clean install