/dwm

Matteo Salonia's build of dwm + dwmblocks + slock + included scripts

Primary LanguageCGNU General Public License v3.0GPL-3.0

Salonia Matteo's build of dwm

This build of dwm has an updated man page over at dwm.1, containing all of the keybindings. You can also directly look at the source code, inside config.h

Also, it includes dwmblocks, as well as the scripts I use. Please install dmwblocks separately, as the Makefile included in this directory does not install it for you (you have to cd dwmblocks; make; sudo make install yourself)

To be clear, bin includes the scripts that make the statusbar work, meanwhile scripts includes scripts accessible from dwm by using keybindings, like locking the screen with Super+Shift+L (requires slock, you can get my build here)

I also created a custom patch (dwm-systray.diff) that implements a systray (system tray). To patch an existing dwm build, copy the file in your build's directory, then run this command: patch < dwm-systray.diff. Then, if there were no errors, run make clean, then build it with make and finally sudo make install.

Here's how the systray looks (applets are copyq and nm-applet) Systray

Patches and features

  • Added a systray (the new patch is available in the patches folder)
  • Clickable statusbar with Luke Smith's build of dwmblocks.
  • Reads xresources colors/variables (i.e. works with pywal, etc.).
  • scratchpad: Accessible with Alt+Shift+Enter (will open st in the scratchpad) or Alt+0 (will access all programs in the scratchpad).
  • New layouts: bstack, fibonacci, deck, centered master and more. All bound to keys Alt+(Shift+) T/Y/U/I.
  • True fullscreen (Alt+F) and prevents focus shifting.
  • Windows can be made sticky (Alt+S).
  • stacker: Move windows up the stack manually (Alt+Shift+K/J).
  • shiftview: Cycle through tags (Alt+G).
  • vanitygaps: Gaps allowed across all layouts.
  • swallow patch: if a program run from a terminal would make it inoperable, it temporarily takes its place to save space.
  • dwm can now be closed and restarted (Alt+Shift+C to close it, Alt+Shift+R to restart it)
  • LayoutMenu patch: you can now right click the layout indicator to get a list of available layouts.
  • RioResize patch: you can resize a window with Alt+R, like Plan9's rio; you can also create a new floating terminal with Alt+Ctrl+Enter.
  • PlaceMouse patch: replace a window's position by dragging it over another window.
  • ResizePoint patch: intuitively resize a window.
  • cfact & dragcfact patches: resize slave windows' height with Alt+Ctrl+H, Alt+Ctrl+L, and reset it with Alt+Ctrl+O; Alternatively, resize them by sliding your cursor while pressing Alt+Shift+RightMouseButton

(Video previews of RioResize, PlaceMouse, and ResizePoint are available here)

Please install libxft-bgra!

This build of dwm does not block color emoji in the status/info bar, so you must install (or patch) libxft-bgra, which fixes a libXft color emoji rendering problem, otherwise dwm will crash upon trying to render one. Hopefully this fix will be in all libXft soon enough.

Gentoo

You have to patch libXft with the following steps:

  1. Create the /etc/portage/patches/x11-misc/libXft directory: mkdir -p /etc/portage/patches/x11-misc/libXft
  2. Add the patch to the new directory: wget https://gitlab.freedesktop.org/xorg/lib/libxft/merge_requests/1.patch -O /etc/portage/patches/x11-misc/libXft/libxft-bgra.patch
  3. Re-emerge x11-misc/libXft. Portage will automatically apply the patch: emerge x11-misc/libXft
  4. You should now see color emojis, if you installed a Font that supports color emojis, like "JoyPixels" or "Noto Color Emoji".

Arch Linux

You can get libxft-bgra here

dwmblocks

This repository includes my fork of Luke Smith's build of dwmblocks.

  • Available blocks explained, from left to right:

    • Caps Lock indicator

    On Off

    • Brightness indicator

    High Brightness Mid Brightness Low Brightness

    • RAM usage

    Memory

    • CPU temperature

    Cpu

    • Volume indicator, as well as microphone status (on/off)

    Vol High Vol Mid Vol Low Vol Mute

    • Fan speed indicator (a = auto, [1-7] is normal level, max = full speed). NOTE: this only works on ThinkPads, so modify the script for your system accordingly if you want to use it.

    Fan Auto Fan 5 Fan Max

    • Internet (Wi-Fi/Ethernet) indicator

    Internet

    • Battery status (Charging/Discharging/Unknown) & capacity indicator

    Bat Charging Bat Discharging

    • Date and time indicator

    Date and Time

Previews

Video Previews (Patches)

RioResize: RioResize

PlaceMouse: PlaceMouse

ResizePoint: ResizePoint

Misc

St St

Floating window Floating window

No windows No windows

Layouts

Tile Tile

Bstack Bstack

Spiral Spiral

Dwindle Dwindle

Centered Master Centered Master

Centered Floating Master Centered Floating Master