Skip to content

Instantly share code, notes, and snippets.

@kborling
Last active January 24, 2022 02:04
Show Gist options
  • Save kborling/4dce4ef9c2f20f99f8278076c95f414d to your computer and use it in GitHub Desktop.
Save kborling/4dce4ef9c2f20f99f8278076c95f414d to your computer and use it in GitHub Desktop.
Calm Window Manager config
# automatically add new windows to the current group
sticky yes
# snap windows to edges at 4 pixels distance
borderwidth 0
snapdist 4
gap 10 10 10 10
moveamount 10
fontname "Hack:size=10"
## colors ##
color menufg "#f0f0f0"
color menubg "#0f0f0f"
color font "#f0f0f0"
color selfont "#0f0f0f"
color activeborder "#f0f0f0"
color inactiveborder"#0f0f0f"
# remove all default keybindings
unbind-key all
# KEYBINDINGS:
# 4 = mod (windows key)
# S = shift
# C = control
# M = meta (alt)
# mod + enter = new xterm
bind-key 4-Return terminal
# ctrl + alt + L = lock screen (xlock)
bind-key CM-l lock
# mod + backspace = hide window
bind-key 4-BackSpace window-hide
# mod + down arrow = lower window's focus
bind-key 4-Down window-lower
# mod + up arrow = raise window's focus
bind-key 4-Up window-raise
# mod/alt + tab = cycle through current windows
bind-key 4-Tab window-cycle
bind-key M-Tab window-cycle
# mod/alt + shift + tab = same thing in reverse
bind-key 4S-Tab window-rcycle
bind-key MS-Tab window-rcycle
# mod + w = kill window
bind-key 4-x window-delete
bind-key 4S-x window-delete
# set a window's label
bind-key 4-b window-menu-label
# mod + $N = show only windows for group $N
# (you can think of this as switching to virtual desktop $N)
bind-key 4-1 group-only-1
bind-key 4-2 group-only-2
bind-key 4-3 group-only-3
bind-key 4-4 group-only-4
bind-key 4-5 group-only-5
bind-key 4-6 group-only-6
bind-key 4-7 group-only-7
bind-key 4-8 group-only-8
bind-key 4-9 group-only-9
# mod + shift +$N = move window to group $N
bind-key 4S-1 window-movetogroup-1
bind-key 4S-2 window-movetogroup-2
bind-key 4S-3 window-movetogroup-3
bind-key 4S-4 window-movetogroup-4
bind-key 4S-5 window-movetogroup-5
bind-key 4S-6 window-movetogroup-6
bind-key 4S-7 window-movetogroup-7
bind-key 4S-8 window-movetogroup-8
bind-key 4S-9 window-movetogroup-9
# mod + A = toggle showing windows from all groups
bind-key 4-a group-toggle-all
# mod + G = toggle current window's group membership
bind-key 4-g window-group
# mod + right arrow = cycle through the window groups
# (you can think of this as switching to the next virtual desktop)
bind-key 4-Right group-cycle
# mod + left arrow = same thing in reverse
bind-key 4-Left group-rcycle
# mod + S = stick current window to be visible in all groups
bind-key 4S-s window-stick
# mod + F = make current window fullscreen
bind-key 4-f window-fullscreen
# mod + M = maximize current window
bind-key 4-m window-maximize
# mod + equals = maximize window in vertical direction only
bind-key 4S-v window-vmaximize
# mod + shift + equals = maximize window in horizontal direction only
bind-key 4S-s window-hmaximize
# mod + H,J,K,L = move window left, down, up, right 10 pixels
bind-key 4-h window-move-left-big
bind-key 4-j window-move-down-big
bind-key 4-k window-move-up-big
bind-key 4-l window-move-right-big
# mod + shift + H,J,K,L = resize window left, down, up, right by 10 pixels
bind-key 4S-h window-resize-left-big
bind-key 4S-j window-resize-down-big
bind-key 4S-k window-resize-up-big
bind-key 4S-l window-resize-right-big
bind-key 4-p window-snap-left
bind-key 4-n window-snap-right
bind-key 4-c "./scripts/cwm_window.sh center"
bind-key 4S-c "./scripts/cwm_window.sh center-y"
bind-key 4C-c "./scripts/cwm_window.sh center-x"
bind-key 4S-p window-snap-up
bind-key 4S-n window-snap-down
# mod + V = tile windows vertically, current window to the left
bind-key 4-v window-vtile
# mod + V = tile windows horizontally, current window to the top
bind-key 4-s window-htile
# mod + / = show popup menu of current windows
bind-key 4-slash menu-window
# mod + d = show popup menu to run a command (configured below)
bind-key 4-d menu-cmd
bind-key 4S-d "dmenu_run -i -nb '#1b2224' -nf '#c4c4c4' -sb '#232a2c' -sf '#f65b5b' -fn 'Cascadia Mono-10'"
# mod + ? = show popup menu to run an arbitrary command
bind-key 4-question menu-exec
# mod + . = show popup menu of known ssh hosts to connect to
bind-key 4-period menu-ssh
# mod + shift + R = restart cwm, reloading configuration
bind-key 4S-r restart
# mod + shift + Q = log out
bind-key 4S-q quit
# unbind default mouse actions
unbind-mouse M-1
unbind-mouse CM-1
unbind-mouse M-2
unbind-mouse M-3
unbind-mouse CMS-3
# mod + left click drag = move window
bind-mouse 4-1 window-move
# mod + right click drag = resize window
bind-mouse 4-3 window-resize
# mod + middle click = lower window's focus
bind-mouse 4-2 window-lower
# mod + shift + middle click = hide window
bind-mouse 4S-2 window-hide
bind-key 4S-e emacs
bind-key 4-e "emacsclient -c -a=''"
# these commands will appear in the command menu
command xterm xterm
command firefox firefox
command chromium chromium
command emacs emacs
command emacsclient "emacsclient -c -a=''"
command xclock xclock
command xcalc xcalc
# ignore these windows when tiling/cycling
ignore xclock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment