Skip to content
/ voidwm Public

voidwm • sanely patched dwm

License

Notifications You must be signed in to change notification settings

jitessh/voidwm

Repository files navigation

voidwm

sanely patched dwm

voidwm-preview voidwm-preview voidwm-preview

Getting started

Installation

  • Clone the repository and run make:
git clone https://github.com/pixxel8/voidwm
cd voidwm
sudo make clean install

Running dwm

Using startx

  • Add the following in your .xinitrc file appropriately:
exec dwm

Using a display manager

  • Make a desktop entry for dwm in /usr/share/xsessions directory:
sudo cp voidwm.desktop /usr/share/xsessions

Usage

See config.h for various key bindings, layouts supported, and more. See man page for more information.

Features & patches

  • Launch anything on startup by editing ~/.config/dwm/autostart.sh file (see autostart).
  • Extensive control on bar with barmodules patch (with systray).
  • Cycle through layouts with Mod+(shift+)tab (see cyclelayouts).
  • Cycle through non-empty tags with Alt+(shift+)tab (see shiftviewclients).
  • Use Xresources variables to set colors, borderpx, barheight and more (see xresources).
  • Make clients go fullscreen or fake fullscreen with Mod+(shift+)f (see fullscreen-compilation).
  • Use layout, nmaster, mfact, gaps (can be toggled with PERTAG_VANITYGAPS), & bar on per tag basis (see pertag).
  • Reorganize and distribute tags with Mod+(shift+)r (see reorganizetags).
  • Extensive mouse support
    • Change master area with Mod+shift+Button1 (see dragmfact).
    • Change stack area with Mod+shift+Button3 (see dragcfact).
    • Change position of clients with Mod+Button1 (see placemouse).
    • Resize clients with Mod+Button3 (see resizepoint).
    • NOTE: All the above actions can also be done with key bindings. See config.h for the same.
  • Toggle scratchpad terminal with Mod+p.
  • Set/unset any existing window as scratchpad with Mod+(shift+)n (see renamedscratchpads).
  • Make windows sticky with Mod+s (see sticky).
  • Restart dwm with Mod+shift+q (see restartsig).
  • Swallow windows & allow exceptions (see swallow).
  • Seamless pywal support: change colors on the fly without restarting or exiting dwm with Mod+q (modified xrdb).
  • Colorful tags (modified rainbowtags).
  • To see list of all patches, run:
git log --oneline | grep "patch++" | cut -c17-

Status bar

  • voidwm uses my fork of dwmblocks.
  • Colorful status bar (status2d); toggleable with enable_status2d variable in status2d settings.
  • Seamless pywal support: match colors of status bar with Xresources variables; toggleable with enable_Xresources variable in status2d settings.
  • NOTE: You need to restart dwmblocks after updating Xresources variables.

Touchpad functionality

To get natural scrolling with touchpad, edit /usr/share/X11/xorg.conf.d/40-libinput.conf file:

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "NaturalScrolling" "True"
EndSection

To enable taping on touchpad, create a file /etc/X11/xorg.conf.d/30-touchpad.conf:

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "libinput"
        Option "Tapping" "on"
EndSection