((modm, xK_n), spawn "xfce4-terminal"),
((modm, xK_i), spawn "firefox"),
+ ((modm .|. shiftMask, xK_i), spawn "firefox --private-window"),
((modm, xK_c), spawn "emacsclient --create-frame --no-wait"),
((modm, xK_p), spawn "kupfer"),
((modm , xK_period), sendMessage (IncMasterN (-1))),
((modm , xK_b ), sendMessage ToggleStruts),
((modm , xK_z ), sendMessage Mag.Toggle),
- ((modm , xK_a), cycleRecentWS [xK_Super_L] xK_a xK_a)
+ ((modm , xK_a), cycleRecentWorkspaceOnSingleScreen [xK_Super_L] xK_a xK_a)
]
++
-- mod-shift-{o,e,u}, Move client to screen 1, 2, or 3
[((m .|. modm, key), f sc)
| (key, sc) <- zip [xK_o, xK_e, xK_u] [0..]
- , (f, m) <- [(viewScreen, 0), (sendToScreen, shiftMask)]
- ]
+ , (f, m) <- [(viewScreen def, 0), (sendToScreen def, shiftMask)]]
++
-- mod-[1..9], Switch to workspace N
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]
]
+cycleRecentWorkspaceOnSingleScreen = cycleWindowSets options
+ where
+ options w = map (W.view `flip` w) (recentTags w)
+ recentTags w = map W.tag $ W.hidden w ++ [W.workspace (W.current w)]
avoidMaster = W.modify' $ \c -> case c of
W.Stack t [] (r:rs) -> W.Stack t [r] rs