Skip to content

Kyczan/dwm

Repository files navigation

dwm - dynamic window manager

This repo is a fork of dwm - an extremely fast, small, and dynamic window manager for X.

Requirements

In order to build dwm you need the Xlib header files.

This fork is dependent on KODO repo (my dotfiles repo).

Installation

make && sudo make install

Running dwm

Add the following line to your .xinitrc to start dwm using startx:

exec dwm

In order to display status info in the bar, you can do something like this in your .xinitrc:

while xsetroot -name "`date` `uptime | sed 's/.*,//'`"
do
    sleep 1
done &
exec dwm

Quite nice status bar can be found in KODO repo (my dotfiles repo). Just look into bin/bin/set-dwm-status-bar file.

Configuration

The configuration of dwm is done by creating a custom config.h and (re)compiling the source code.

My keybindings (need to setup KODO to make them work):

  • MODKEY - WIN
  • MODKEY + d - spawn rofi in dmenu mode with all instaled programs
  • MODKEY + Enter - spawn st terminal (see my fork of st)
  • MODKEY + i - show list of glyphicons
  • MODKEY + p - show power menu (lock, restart dwm statusbar, suspend, reboot, power off)
  • MODKEY + u - run system and programs updates
  • MODKEY + n - run network manager
  • MODKEY + w - show current weather in dunst notification
  • ALT + TAB - switch active progrms iside tag
  • bunch of multimedia keys (vol up/down, etc.)

Patches

Following patches are already applied:

To apply another patch use following command:

git apply -3 --ignore-whitespace /path/to/patch.diff

But be careful. When patch modifies config.def.h copy these changes to config.h and reset state of first file:

git reset HEAD config.def.h
git checkout -- config.def.h

Then repeat installation process.

Sync with original dwm

Add upstream to original repo:

git remote add upstream git://git.suckless.org/dwm

Every time you want to sync type:

git fetch upstream
git checkout master
git merge upstream/master

This brings your master branch into sync with the upstream repository, without losing your local changes. For reference check this github article

Then repeat installation process.