From ArchWiki
Revision as of 09:27, 11 July 2010 by Hullap (talk | contribs) (Method 1)
Jump to: navigation, search


Catwm is a small, light weight window manager created by pyknite. It was first announced in this ( forum post.


Method 1

This requires git.

First, download the PKGBUILD from Then, as a non-root user, run:

$ makepkg -i

while in the directory of the saved PKGBUILD. All the files will be retrieved, the package will be built and installed.

Method 2

If for some reason method one fails, try this one. Visit the official github page ( and download each file.

Before you compile catwm, you may want to skip to the Configuration section to configure it.

Then, while in the directory as the downloaded files, run the following as a non-root user:

$ make

Then, run the following as root:

# make install
# make clean

Starting catwm when X is started

Add the following to your ~/.xinitrc:

exec /usr/bin/catwm


Catwm uses it's config.h file for configuration. By default, some hotkeys are already set (Note: the default MOD key is the Alt key):

  • MOD + h (decrease the size of a current window)
  • MOD + l (increase the size of a current window)
  • MOD + x (close current window)
  • MOD + j (change to next window)
  • MOD + Tab (change to next window)
  • MOD + k (change to previous window)
  • MOD + j (change to next window)
  • MOD + Shift + k (move current window up)
  • MOD + Shift + j (move current window down)
  • MOD + Enter (change master to current window)
  • MOD + Space (switch mode/maximize)
  • MOD + c (lock - requires slock)
  • MOD + p (open dmenu - requires dmenu)
  • MOD + Shift + Return (open urxvt - requires urxvt)
  • MOD + Left (previous desktop)
  • MOD + Right (next desktop)
  • MOD + 0-9 (change to desktop #)
  • MOD + q (quit catwm)

Set Volume Up/Down Hotkeys

NOTE: This requires amixer, provided by alsa-utils

You must set hotkeys in config.h to point to volup and voldown. Here is an example:

{ MOD, XK_Down, spawn, {.com = voldown}},
{ MOD, XK_Up, spawn, {.com = volup}},

That would set hotkeys that make Mod+Down lower the volume and Mod+Up raise the volume according to whatever volup and voldown are set to.

To change what percentage the volume is incremented/decremented by, edit voldown and volup. For example, to make it 2% increments/decrements, you would do:

const char* voldown[] = {"amixer","set","PCM","2\%-",NULL};
const char* volup[] = {"amixer","set","PCM","2\%+",NULL};

Set Next/Previous Song Hotkeys

NOTE: This requires mpd, and mpd software such as ncmpcpp or mpc, capable of changing songs from the command line.

You must set hotkeys in config.h to point to next and prev. Here is an example:

{ MOD|ShiftMask, XK_Right, spawn, {.com = next}},
{ MOD|ShiftMask, XK_Left, spawn, {.com = prev}},

This would set MOD+Shift+Right to go to the next song and MOD+Shift+Left to go to the previous song.


My volume hotkeys don't work!

Make sure you have the right device defined in volup and voldown. Two common ones are "Master" and "PCM".

const char* voldown[] = {"amixer","set","Master","5\%-",NULL};
const char* volup[] = {"amixer","set","Master","5\%+",NULL};
const char* voldown[] = {"amixer","set","PCM","5\%-",NULL};
const char* volup[] = {"amixer","set","PCM","5\%+",NULL};

If both of those don't work, try to use one of the devices outputted by the amixer command. Also make sure you have the alsa-utils package installed.

If all of that still doesn't work, check to see if the device is not muted in alsamixer.