import XMonad
import XMonad.Actions.CycleRecentWS
import XMonad.Actions.PhysicalScreens
+import XMonad.Config.Desktop
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.ICCCMFocus
((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
myLayout =
(
- onWorkspace "1" (myTabbedLayout ||| myMasterTabbedLayout) $
- onWorkspace "2" (myTabbedLayout ||| myMasterTabbedLayout) $
- onWorkspace "9" (myFullLayout ||| myMasterTabbedLayout ||| myTabbedLayout ||| myTiledLayout ||| myGimpLayout) $
- (myMasterTabbedLayout ||| myTabbedLayout ||| myTiledLayout)
+ onWorkspace "9" (myTabbedLayout ||| myFullLayout ||| myGimpLayout) $
+ (myTabbedLayout ||| myMasterTabbedLayout ||| myTiledLayout)
)
main = do
xmonadDir <- getXMonadDir
xmobars <- mapM (\x -> spawnPipe ("xmobar -x " ++ (show x) ++ " " ++ xmonadDir ++ "/xmobar.hs")) [1, 2]
- xmonad $ ewmh defaultConfig {
+ xmonad $ desktopConfig {
manageHook = myManageHook,
layoutHook = myLayout,
workspaces = myWorkspaces,
startupHook = myStartupHook,
keys = myKeys,
modMask = mod4Mask,
- handleEventHook = handleEventHook defaultConfig <+> fullscreenEventHook,
+ handleEventHook = handleEventHook desktopConfig <+> fullscreenEventHook,
focusFollowsMouse = False
}