dispcfg
# Screen saver. DPMS standby -> suspend -> off in seconds
-# xss-lock calls i3lock on no X activity (DPMS standby)
xset dpms 300 600 1200
-(pgrep -x xss-lock || exec xss-lock -- i3lock --dpms ) &
+
+# Use xss-lock to call a program on no X activity (DPMS standby)
+if [ -x ~/.Xidle ]; then
+ # If provided, .Xidle can do stuff before and after a call to 'i3lock -n'
+ (pgrep -x xss-lock || exec xss-lock -- ~/.Xidle ) &
+elif [ -x /usr/bin/i3lock ]; then
+ # Fall back to i3lock, which provides a screen lock.
+ # Instead of --dpms use --color. This is less confusing on monitors that
+ # are slow to sync back up. And since X should generally have the monitor
+ # suspended by this point anyway, the behavior should only change in the
+ # case of things like an invalid password being entered.
+ (pgrep -x xss-lock || exec xss-lock -- i3lock --color=000000 ) &
+fi
# Turn off touchpad (later use a toggle)
type synclient 2>/dev/null && synclient TouchpadOff=1