xmonad.hs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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 =? "discord" --> doShift "9",
  23. className =? "Xfce4-notifyd" --> doF W.focusDown,
  24. className =? "MPlayer" --> doFloat,
  25. className =? "mplayer2" --> doFloat,
  26. className =? "Wine" --> doFloat,
  27. className =? "graphics-console"--> doFloat,
  28. className =? "kvm" --> doFloat,
  29. className =? "Gimp-2.6" --> doFloat,
  30. className =? "Gimp" --> doFloat,
  31. className =? "Stepmania" --> doFloat,
  32. className =? "Plasma" --> doFloat,
  33. className =? "Xfrun4" --> doFloat,
  34. className =? "Wrapper" --> doFloat,
  35. className =? "gource" --> doFloat,
  36. className =? "Mate-panel" --> doFloat,
  37. isFullscreen --> doFullFloat,
  38. manageDocks
  39. ]
  40. myLayout = avoidStruts $ smartBorders $ tiled ||| Mirror tiled ||| simpleTabbedAlways
  41. where
  42. tcol = ThreeColMid nmaster delta 0.4
  43. tiled = ResizableTall nmaster delta ratio []
  44. nmaster = 1
  45. delta = 3 / 100
  46. --ratio = toRational (2/(1 + sqrt 5 :: Double))
  47. ratio = 0.5
  48. main :: IO ()
  49. main = xmonad $ gnomeConfig {
  50. workspaces = ["1","2","3","4","5","6","7","8","9","0"],
  51. terminal = "mate-terminal --hide-menubar",
  52. manageHook = manageHook gnomeConfig <+> myManageHook,
  53. layoutHook = myLayout,
  54. logHook = ewmhDesktopsLogHook >> setWMName "LG3D",
  55. XMonad.borderWidth = 2,
  56. XMonad.normalBorderColor = "gray",
  57. XMonad.focusedBorderColor = "blue",
  58. focusFollowsMouse = False
  59. }
  60. `additionalKeysP` [
  61. ("M-<Tab>", toggleWS),
  62. --("M-`", shiftTo Next EmptyWS),
  63. ("M-0", windows $ W.greedyView "0"),
  64. ("M-S-0", windows $ W.shift "0"),
  65. ("<Print>", spawn "scrot ~/screenshot.png -e bin/uplss"),
  66. ("M-<Print>", spawn "scrot ~/screenshot.png -s -e bin/uplss"),
  67. ("S-<Print>", spawn "scrot ~/screenshot.png"),
  68. ("M-S-<Print>", spawn "scrot ~/screenshot.png -s"),
  69. ("M-S-t", withFocused $ windows . W.sink),
  70. ("M-S-q", spawn "mate-session-save --logout-dialog"),
  71. ("<XF86AudioPlay>", spawn "mocp -G"), -- XF86AudioPlay (pause)
  72. ("<XF86AudioNext>", spawn "mocp -f"), -- XF86AudioNext
  73. ("<XF86AudioPrev>", spawn "mocp -r"), -- XF86AudioPrev
  74. ("<XF86AudioStop>", spawn "mocp -s") -- XF86AudioStop
  75. ]
  76. `removeKeysP` [
  77. "M-e",
  78. "M-r",
  79. "M-b",
  80. "M-t"
  81. ]