1
0

xmonad.hs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. -- vim: noet:
  2. import XMonad
  3. import XMonad.Config.Gnome
  4. import XMonad.Layout.NoBorders
  5. import XMonad.Layout.ResizableTile
  6. import XMonad.Layout.Tabbed
  7. import XMonad.Layout.ThreeColumns
  8. import XMonad.Hooks.ManageDocks
  9. import XMonad.Hooks.ManageHelpers
  10. import XMonad.Hooks.EwmhDesktops
  11. import XMonad.Hooks.SetWMName
  12. import XMonad.Actions.CycleWS --for toggleWS
  13. import XMonad.Util.EZConfig
  14. import Data.List (isPrefixOf)
  15. import qualified XMonad.StackSet as W
  16. myManageHook :: ManageHook
  17. myManageHook = composeAll [
  18. className =? "Firefox" --> doShift "1",
  19. className =? "Iceweasel" --> doShift "1",
  20. className =? "Chromium-browser" --> doShift "1",
  21. className =? "Slack" --> doShift "0",
  22. className =? "Xfce4-notifyd" --> doF W.focusDown,
  23. className =? "MPlayer" --> doFloat,
  24. className =? "mplayer2" --> doFloat,
  25. className =? "Wine" --> doFloat,
  26. className =? "graphics-console"--> doFloat,
  27. className =? "kvm" --> doFloat,
  28. className =? "Gimp-2.6" --> doFloat,
  29. className =? "Gimp" --> doFloat,
  30. className =? "Stepmania" --> doFloat,
  31. className =? "Plasma" --> doFloat,
  32. className =? "Xfrun4" --> doFloat,
  33. className =? "Wrapper" --> doFloat,
  34. className =? "gource" --> doFloat,
  35. className =? "Mate-panel" --> doFloat,
  36. isFullscreen --> doFullFloat,
  37. manageDocks
  38. ]
  39. myLayout = avoidStruts $ smartBorders $ tiled ||| Mirror tiled ||| simpleTabbedAlways
  40. where
  41. tcol = ThreeColMid nmaster delta 0.4
  42. tiled = ResizableTall nmaster delta ratio []
  43. nmaster = 1
  44. delta = 3 / 100
  45. --ratio = toRational (2/(1 + sqrt 5 :: Double))
  46. ratio = 0.5
  47. main :: IO ()
  48. main = xmonad $ gnomeConfig {
  49. workspaces = ["1","2","3","4","5","6","7","8","9","0"],
  50. terminal = "mate-terminal --hide-menubar",
  51. manageHook = manageHook gnomeConfig <+> myManageHook,
  52. layoutHook = myLayout,
  53. logHook = ewmhDesktopsLogHook >> setWMName "LG3D",
  54. XMonad.borderWidth = 2,
  55. XMonad.normalBorderColor = "gray",
  56. XMonad.focusedBorderColor = "blue",
  57. focusFollowsMouse = False
  58. }
  59. `additionalKeysP` [
  60. ("M-<Tab>", toggleWS),
  61. --("M-`", shiftTo Next EmptyWS),
  62. ("M-0", windows $ W.greedyView "0"),
  63. ("M-S-0", windows $ W.shift "0"),
  64. ("<Print>", spawn "scrot ~/screenshot.png -e bin/uplss"),
  65. ("M-<Print>", spawn "scrot ~/screenshot.png -s -e bin/uplss"),
  66. ("S-<Print>", spawn "scrot ~/screenshot.png"),
  67. ("M-S-<Print>", spawn "scrot ~/screenshot.png -s"),
  68. ("M-S-t", withFocused $ windows . W.sink),
  69. ("M-S-q", spawn "gnome-session-quit"),
  70. ("<XF86AudioPlay>", spawn "mocp -G"), -- XF86AudioPlay (pause)
  71. ("<XF86AudioNext>", spawn "mocp -f"), -- XF86AudioNext
  72. ("<XF86AudioPrev>", spawn "mocp -r"), -- XF86AudioPrev
  73. ("<XF86AudioStop>", spawn "mocp -s") -- XF86AudioStop
  74. ]
  75. `removeKeysP` [
  76. "M-e",
  77. "M-r",
  78. "M-b",
  79. "M-t"
  80. ]