Blob


1 # calm window manager
3 The calm window manager, cwm for short, is my favourite window manager.
4 It's *the* window manager that convinced me that using a floating window
5 manager was actually worth it.
7 My configuration is unusually long.
9 First I have a list of applications for the built-in menu:
11 command emacsclient "emacsclient -c"
12 command firefox firefox
13 command gimp gimp
14 command godot godot
15 command inkscape inkscape
16 command iridium iridium
17 command keepassxc keepassxc
18 command lock xlock
19 command term myterm
21 I found these color by random I guess, but they're fine
23 color activeborder "#0abeff"
24 color inactiveborder "#777"
26 set a decently-sized border around every window
28 borderwidth 2
30 I've started to use cwm without "sticky" tags. Enabling the sticky mode
31 makes cwm behave like other windows managers with "tags" (or
32 "workspaces".) Without sticky tags, you can decide with more granularly
33 which window to show and which not.
35 # sticky yes
37 I also prefer to "snap" windows close to the edges
39 snapdist 5
41 I don't want to give focus to some applications via alt-tab
43 ignore sshmenu
44 ignore stalonetray
45 ignore stats
46 ignore termbar
47 ignore xclock
48 ignore xconsole
49 ignore Catclock
50 ignore "Speedbar 1.0"
52 autogroup does what it seems: it automatically moves some windows in a
53 specific group (aka workspace.) The group 0 is sticky across all groups
55 autogroup 0 XClock
56 autogroup 0 Catclock
57 autogroup 0 XConsole
58 autogroup 0 sshmenu,Xmessage
59 autogroup 0 stalonetray
60 autogroup 0 stats
61 autogroup 0 termbar
62 autogroup 2 Firefox
63 autogroup 3 Gajim
64 autogroup 3 TelegramDesktop
66 Most cwm keybindings use `alt' which conflicts with emacs. So I unbind
67 everything and re-bind most of the keys on the mod4 (super) key
69 unbind-key all
71 bind-key 4-Tab group-last
72 bind-mouse C-3 menu-exec-wm
73 bind-key C4-slash menu-window
75 control the playback
77 bind-key XF86AudioPrev "amused prev"
78 bind-key XF86AudioNext "amused next"
79 bind-key XF86AudioPlay "amused toggle"
80 bind-key XF86AudioStop "amused stop"
82 "gamemode" swiches the keyboard from my custom dvp-eu to an us querty
83 and vice-versa, and the mouse buttons too. it's useful when playing
84 some games, hence the name, or when in need to share the keyboard with
85 someone else.
87 bind-key 4-F5 "gamemode"
89 I don't have a dedicated key for screenshot on this machine, but
90 Scroll_Lock is not too awkward to press
92 bind-key 4-Scroll_Lock "sshot -c"
93 bind-key 4S-Scroll_Lock "sshot -cs"
95 manage the notifications
97 bind-key 4-space "pkill -SIGUSR1 xnotify"
99 basics window movements
101 bind-key 4-h window-move-left
102 bind-key 4-j window-move-down
103 bind-key 4-k window-move-up
104 bind-key 4-l window-move-right
106 bind-key S4-h window-move-left-big
107 bind-key S4-j window-move-down-big
108 bind-key S4-k window-move-up-big
109 bind-key S4-l window-move-right-big
111 bind-key C4-h window-resize-left
112 bind-key C4-j window-resize-down
113 bind-key C4-k window-resize-up
114 bind-key C4-l window-resize-right
116 bind-key CS4-h window-resize-left-big
117 bind-key CS4-j window-resize-down-big
118 bind-key CS4-k window-resize-up-big
119 bind-key CS4-l window-resize-right-big
121 bind-key 4-greater window-raise
122 bind-key 4-less window-lower
124 bind-key 4-Return window-hide
125 bind-key C4-x window-close
126 bind-key C4-c window-close
128 bind-key 4-slash menu
130 bind-key CM-Return myterm
131 bind-key C4-Return "emacsclient -c"
132 bind-key CS4-Return "env SHELL=rc 9term"
134 bind-key M-Tab window-cycle
135 bind-key MS-Tab window-rcycle
137 bind-key 4-f window-maximize
138 bind-key C4S-v window-vmaximize
139 bind-key C4S-w window-hmaximize
141 htile 0
142 vtile 0
143 bind-key 4-w window-htile
144 bind-key 4-v window-vtile
146 bind-key C4S-q quit
148 I'm using a custom keyboard layout based on the dvorak-programmer.
149 Thus, the upper row is not numbers, but symbols!
151 # & { [ ( = + ) ] }
152 bind-key 4-ampersand group-toggle-1
153 bind-key 4-braceleft group-toggle-2
154 bind-key 4-bracketleft group-toggle-3
155 bind-key 4-parenleft group-toggle-4
156 bind-key 4-equal group-toggle-5
157 bind-key 4-plus group-toggle-6
158 bind-key 4-parenright group-toggle-7
159 bind-key 4-bracketright group-toggle-8
160 bind-key 4-braceright group-toggle-9
162 move with shift
164 bind-key S4-ampersand window-movetogroup-1
165 bind-key S4-braceleft window-movetogroup-2
166 bind-key S4-bracketleft window-movetogroup-3
167 bind-key S4-parenleft window-movetogroup-4
168 bind-key S4-equal window-movetogroup-5
169 bind-key S4-plus window-movetogroup-6
170 bind-key S4-parenright window-movetogroup-7
171 bind-key S4-bracketright window-movetogroup-8
172 bind-key S4-braceright window-movetogroup-9
173 bind-key S4-exclam window-movetogroup-0
175 mouse bindings
177 bind-mouse 4-1 window-move
178 bind-mouse 4-3 window-resize