Skip to content

Instantly share code, notes, and snippets.



Last active Jan 11, 2017
What would you like to do?
sample xmonad.hs for bugreport
import XMonad
import XMonad.Layout.NoFrillsDecoration
main = xmonad defaultConfig
{ terminal = "urxvt"
, modMask = mod4Mask
-- removing decoration eliminates screenlocker issue
, layoutHook = noFrillsDeco shrinkText defaultTheme $ Tall 1 (1/20) (2/3)
A consistently reproducible problem involving titlebar decorations & screenlockers.
I would have submitted an issue, but I'm not sure if this is an XMonad core issue,
an X.L.NoFrillsDecoration issue, a general decoration issue, etc.
Screenlocker (tested with various) is obscured by windows after display change when
using a minimal layout with titlebar decorations.
Video demonstrating issue:
Dual monitor (laptop/external), normally used one at a time. I have a udev rule that
triggers a shell script that switches display when hotplugging/unplugging.
1. External monitor active, internal inactive (or vice versa, point being only one
display active)
2. Screen lock using any of several commonly used screen lockers (xscreensaver,
i3lock, sxlock) is activated while connected to external display. Hot-unplug of
external display triggers udev xrandr script, internal laptop display is successfully
3. If using layout without titlebar decorations, there is no problem
4 If using X.L.NoFrillsDecoration to make title bar decorations on the windows, the
layout windows are drawn on TOP of the screen locker on the new display. The
screenlocker retains input focus, so it can be unlocked, but it is obscured by the
windows on top of it. (I can see the screenlocker through the terminals since I'm
using transparency, but if a non transparent window, the screenlocker is completely
Gist of very basic XMonad config I put together to test this.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment