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
15 command inkscape inkscape
16 command iridium iridium
17 command keepassxc keepassxc
20 command xterm.jp xterm.jp
22 I found these color by random I guess, but they're fine
24 color activeborder "#0abeff"
25 color inactiveborder "#777"
27 set a decently-sized border around every window
31 I don't understand how cwm is meant to be used by deafult since I'm used
32 to window managers with "tags" (or "workspaces"). Fortunately I can
33 enable "sticky" mode on cwm to simulate workspaces
37 I also prefer to "snap" windows close to the edges
41 I don't want to give focus to some applications via alt-tab
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
58 autogroup 0 sshmenu,Xmessage
59 autogroup 0 stalonetray
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
71 bind-key 4-Tab group-last
72 bind-mouse C-3 menu-exec-wm
73 bind-key C4-slash menu-window
75 eat up multimedia keys so they don't get seen by some programs (like
78 bind-key XF86AudioLowerVolume true
79 bind-key XF86AudioRaiseVolume true
83 bind-key XF86AudioPrev "amused prev"
84 bind-key XF86AudioNext "amused next"
85 bind-key XF86AudioPlay "amused toggle"
86 bind-key XF86AudioStop "amused stop"
88 "gamemode" swiches the keyboard from my custom dvp-eu to an us querty
89 and vice-versa, and the mouse buttons too. it's useful when playing
90 some games, hence the name, or when in need to share the keyboard with
93 bind-key 4-F5 "gamemode"
95 I don't have a dedicated key for screenshot on this machine, but
96 Scroll_Lock is not too awkward to press
98 bind-key 4-Scroll_Lock "sshot -c"
99 bind-key 4S-Scroll_Lock "sshot -cs"
101 manage the notifications
103 bind-key 4-space "dunstctl close"
104 bind-key 4S-space "dunstctl history-pop"
105 bind-key 4-n "dunstctl context"
107 basics window movements
109 bind-key 4-h window-move-left
110 bind-key 4-j window-move-down
111 bind-key 4-k window-move-up
112 bind-key 4-l window-move-right
114 bind-key S4-h window-move-left-big
115 bind-key S4-j window-move-down-big
116 bind-key S4-k window-move-up-big
117 bind-key S4-l window-move-right-big
119 bind-key C4-h window-resize-left
120 bind-key C4-j window-resize-down
121 bind-key C4-k window-resize-up
122 bind-key C4-l window-resize-right
124 bind-key CS4-h window-resize-left-big
125 bind-key CS4-j window-resize-down-big
126 bind-key CS4-k window-resize-up-big
127 bind-key CS4-l window-resize-right-big
129 bind-key 4-greater window-raise
130 bind-key 4-less window-lower
132 bind-key 4-Return window-hide
133 bind-key C4-x window-close
134 bind-key C4-c window-close
136 bind-key 4-slash menu
138 bind-key CM-Return xterm # kitty
139 bind-key C4-Return "emacsclient -c"
140 bind-key CS4-Return "env SHELL=rc 9term"
142 bind-key M-Tab window-cycle
143 bind-key MS-Tab window-rcycle
145 bind-key 4-f window-maximize
146 bind-key C4S-v window-vmaximize
147 bind-key C4S-w window-hmaximize
151 bind-key 4-w window-htile
152 bind-key 4-v window-vtile
156 I'm using a custom keyboard layout based on the dvorak-programmer.
157 Thus, the upper row is not numbers, but symbols!
160 bind-key 4-ampersand group-only-1
161 bind-key 4-braceleft group-only-2
162 bind-key 4-bracketleft group-only-3
163 bind-key 4-parenleft group-only-4
164 bind-key 4-equal group-only-5
165 bind-key 4-plus group-only-6
166 bind-key 4-parenright group-only-7
167 bind-key 4-bracketright group-only-8
168 bind-key 4-braceright group-only-9
172 bind-key S4-ampersand window-movetogroup-1
173 bind-key S4-braceleft window-movetogroup-2
174 bind-key S4-bracketleft window-movetogroup-3
175 bind-key S4-parenleft window-movetogroup-4
176 bind-key S4-equal window-movetogroup-5
177 bind-key S4-plus window-movetogroup-6
178 bind-key S4-parenright window-movetogroup-7
179 bind-key S4-bracketright window-movetogroup-8
180 bind-key S4-braceright window-movetogroup-9
181 bind-key S4-exclam window-movetogroup-0
183 use ctrl to toggle visibility
185 bind-key C4-ampersand group-toggle-1
186 bind-key C4-braceleft group-toggle-2
187 bind-key C4-bracketleft group-toggle-3
188 bind-key C4-parenleft group-toggle-4
189 bind-key C4-equal group-toggle-5
190 bind-key C4-plus group-toggle-6
191 bind-key C4-parenright group-toggle-7
192 bind-key C4-bracketright group-toggle-8
193 bind-key C4-braceright group-toggle-9
197 bind-mouse 4-1 window-move
198 bind-mouse 4-3 window-resize