Allow shifting windows ignoring process groups
This commit is contained in:
parent
ef2d12e398
commit
4f4f864fd3
2 changed files with 22 additions and 5 deletions
|
@ -4,6 +4,8 @@ module ProcessWorkspaces ( setProcessWorkspace
|
|||
, getProcessWorkspace
|
||||
, doAutoShift
|
||||
, doIgnoreProcessWorkspace
|
||||
, shiftIgnoreGroup
|
||||
, shiftWinIgnoreGroup
|
||||
, shiftGroup
|
||||
, shiftWinGroup
|
||||
, processWorkspaceStorage
|
||||
|
@ -49,6 +51,14 @@ doIgnoreProcessWorkspace = do
|
|||
liftX $ setProcessWorkspace (fromJust mp) Nothing
|
||||
idHook
|
||||
|
||||
shiftIgnoreGroup :: WorkspaceId -> X ()
|
||||
shiftIgnoreGroup ws = withFocused $ shiftWinIgnoreGroup ws
|
||||
|
||||
shiftWinIgnoreGroup :: WorkspaceId -> Window -> X ()
|
||||
shiftWinIgnoreGroup ws w = do
|
||||
runQuery doIgnoreProcessWorkspace w
|
||||
windows $ W.shiftWin ws w
|
||||
|
||||
shiftGroup :: WorkspaceId -> X ()
|
||||
shiftGroup ws = withFocused $ shiftWinGroup ws
|
||||
|
||||
|
|
17
xmonad.hs
17
xmonad.hs
|
@ -32,6 +32,7 @@ main = xmonad $ gnomeConfig
|
|||
, layoutHook = desktopLayoutModifiers myLayoutHook
|
||||
, startupHook = myStartupHook
|
||||
, handleEventHook = myEventHook
|
||||
, workspaces = myWorkspaces
|
||||
}
|
||||
`additionalKeysP` (
|
||||
[ ("M-a", sendMessage MirrorShrink)
|
||||
|
@ -47,8 +48,10 @@ main = xmonad $ gnomeConfig
|
|||
, ("M-<F3>", viewOrWarp 2)
|
||||
, ("M-b", banishScreen LowerRight)
|
||||
, ("M-p", spawnOnCurrent "exe=`dmenu_path | /home/neoraider/bin/dmemu -b` && eval \"exec $exe\"")
|
||||
] ++
|
||||
[ (("M-S-" ++ show n, shiftGroup ws)) | (ws, n) <- zip (workspaces gnomeConfig) ([1..9]++[0])]
|
||||
]
|
||||
++ [ (("M-" ++ show n, windows $ W.greedyView ws)) | (ws, n) <- zip myWorkspaces ([1..9]++[0])]
|
||||
++ [ (("M-S-" ++ show n, shiftGroup ws)) | (ws, n) <- zip myWorkspaces ([1..9]++[0])]
|
||||
++ [ (("M-C-" ++ show n, shiftIgnoreGroup ws)) | (ws, n) <- zip myWorkspaces ([1..9]++[0])]
|
||||
)
|
||||
`additionalMouseBindings`
|
||||
[ ((modm, button4), \_ -> sendMessage Shrink)
|
||||
|
@ -58,6 +61,9 @@ main = xmonad $ gnomeConfig
|
|||
]
|
||||
|
||||
|
||||
myWorkspaces = ["Firefox", "Thunderbird", "Emacs", "4", "5", "6", "7", "8", "Chat", "10"]
|
||||
|
||||
|
||||
viewOrWarp :: Int -> X ()
|
||||
viewOrWarp n = do
|
||||
wset <- gets windowset
|
||||
|
@ -96,12 +102,13 @@ isUtility = do
|
|||
|
||||
myManageHook :: ManageHook
|
||||
myManageHook = composeAll
|
||||
[ composeOne
|
||||
[ isDialog -?> doFloat
|
||||
, className =? "Guake.py" -?> (doFloatMaybeFullscreen <+> doIgnoreProcessWorkspace) -- <+> doConfigBorderOff)
|
||||
[ isDialog --> doFloat
|
||||
, composeOne
|
||||
[ className =? "Guake.py" -?> (doFloatMaybeFullscreen <+> doIgnoreProcessWorkspace) -- <+> doConfigBorderOff)
|
||||
--, className =? "Do" -?> (doFloat <+> doConfigBorderOff)
|
||||
, className =? "Gmpc" -?> doIgnoreProcessWorkspace
|
||||
, className =? "Liferea" -?> doIgnoreProcessWorkspace
|
||||
, className =? "Gnome-session" -?> doIgnoreProcessWorkspace
|
||||
, className =? "MPlayer" -?> doCenterFloat
|
||||
, className =? "Gimp" -?> doFloat
|
||||
, className =? "Display" -?> doFloat
|
||||
|
|
Reference in a new issue