-# Globalbinds covers these.
-Key Page_Down A CM Nop
-Key Page_Up A CM Nop
-Key End A CM Nop
-Key Home A CM Nop
-Key Insert A CM Nop
-Key N A CM Nop
+# MPD shortcuts
+Key Page_Up A CM Exec exec mpc prev
+Key Page_Down A CM Exec exec mpc next
+Key End A CM Exec exec mpc stop
+Key Home A CM Exec exec mpc pause
+Key Insert A CM Exec exec mpc play
+Key Page_Down A CM Exec exec mpc next
+
+Mouse 4 A CM Exec exec mpc prev
+Mouse 5 A CM Exec exec mpc next
# Window management
Key F4 A M Close
# When programs don't set the resolution...
Key F12 A C Exec exec xrandr -s 0
-# For moving windows around desktops.
-Key J WFT CM DoPageMove 0
-Key K WFT CM DoPageMove 1
-Key L WFT CM DoPageMove 2
-Key U WFT CM DoPageMove 3
-Key I WFT CM DoPageMove 4
-Key O WFT CM DoPageMove 5
-
# For moving ourself around desktops.
Key 1 A CM GotoPage 0 0
Key 2 A CM GotoPage 1 0
Mouse 5 R A GotoPage wrapx +1p 0p
Mouse 4 R A GotoPage wrapx -1p 0p
+# Window titlebar bindings
+DestroyFunc Title_M1Func
+AddToFunc Title_M1Func
+ + C Raise
+ + M Move
+
+Mouse 1 T N Title_M1Func
+Mouse 2 T N Menu MenuWindow
+Mouse 3 T N Lower
Mouse 4 T N Windowshade True
Mouse 5 T N Windowshade False
# Console
Key grave A C Exec exec $[TERMINAL]
Key grave A CM Exec exec $[TERMINAL] -e zsh -f
-Key F3 A M Module FvwmConsole -terminal $[TERMINAL]
+Key F3 A M Module FvwmConsole -terminal urxvt
+
+# Screen locking. Since a double scroll lock is used to communicate with the
+# KVM, take some care to only lock the screen if the scroll lock key is pressed
+# once.
+DestroyFunc FinishLock
+AddToFunc FinishLock
+ + I Key Scroll_Lock A A LockScreen
+ + I $*
+
+DestroyFunc LockScreen
+AddToFunc LockScreen
+ + I Schedule 750 FinishLock Exec exec xscreensaver-command -lock
+ + I Key Scroll_Lock A A FinishLock Deschedule $[schedule.last]
+
+Key Scroll_Lock A A LockScreen
DestroyFunc DoPageMove
AddToFunc DoPageMove
+ I GotoPage $0 0
+ I MoveToPage $0 0
+
+# Keymap config
+PipeRead "[ -f '$[FVWM_USERDIR]/common/keymaps/$[KEYMAP]' ] \
+ && echo Read common/keymaps/$[KEYMAP] \
+ || echo Read common/keymaps/default"