-# 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
Key grave A CM Exec exec $[TERMINAL] -e zsh -f
Key F3 A M Module FvwmConsole -terminal urxvt
-# Screen locking
-Key XF86Standby A A Exec exec xscreensaver-command -lock
+# 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