-
Notifications
You must be signed in to change notification settings - Fork 0
/
xmonad_xfce.hs
59 lines (53 loc) · 2.34 KB
/
xmonad_xfce.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import Control.Monad
import XMonad
import XMonad.Actions.CycleWS
import XMonad.Config.Desktop (desktopLayoutModifiers)
import XMonad.Config.Xfce
import XMonad.Hooks.ManageHelpers
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.Minimize
import XMonad.Hooks.SetWMName
import XMonad.Hooks.ICCCMFocus
import XMonad.Layout.Fullscreen (fullscreenEventHook, fullscreenManageHook, fullscreenFull, fullscreenFloat)
import XMonad.Layout.Grid
import XMonad.Layout.NoBorders
import XMonad.Layout.Minimize
import XMonad.Layout.ThreeColumns
import XMonad.Layout.PerWorkspace
import XMonad.Util.EZConfig
import qualified XMonad.StackSet as W
myModMask = mod1Mask
myManageHook = composeAll
[ manageHook xfceConfig
, resource =? "synapse" --> doIgnore
, className =? "Xfrun4" --> doCenterFloat
, className =? "Kruler" --> doFloat
, className =? "Wrapper" --> doFloat
, className =? "Firefox" --> doF (W.shift "web")
, (className =? "Firefox" <&&> resource =? "Browser") --> doFloat
, (className =? "Firefox" <&&> title =? "Inspect Network Request") --> (ask >>= doF . W.sink)
, className =? "Chromium-browser" --> doF (W.shift "work")
, className =? "Eclipse" --> doF (W.shift "eclipse")
]
<+>
composeOne [ isFullscreen -?> doFullFloat ]
defaultLayouts = smartBorders( desktopLayoutModifiers (Tall 1 (3/100) (1/2) ||| noBorders Full) )
flexibleLayout = smartBorders $ desktopLayoutModifiers(Grid)
myLayouts = minimize $ defaultLayouts
main = do
spawn "/usr/bin/xcompmgr -n"
xmonad $ xfceConfig {
focusFollowsMouse = True,
manageHook = myManageHook <+> fullscreenManageHook,
layoutHook = onWorkspace "terminals1" flexibleLayout $ myLayouts,
handleEventHook = handleEventHook xfceConfig <+> fullscreenEventHook <+> minimizeEventHook,
workspaces = ["work", "personal", "virtualbox", "eclipse", "terminals1", "terminals2", "terminals3"]
} `additionalKeys`
[ ((myModMask, xK_m), withFocused minimizeWindow)
, ((myModMask, xK_p), spawn "synapse")
, ((myModMask .|. shiftMask, xK_m), sendMessage RestoreNextMinimizedWin)
, ((myModMask, xK_semicolon), prevWS)
, ((myModMask, xK_apostrophe), nextWS)
, ((myModMask .|. shiftMask, xK_adiaeresis), shiftToNext)
, ((myModMask .|. shiftMask, xK_odiaeresis), shiftToPrev)
]