xmonad.hs 2.9 KB

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