xmonad.hs 2.8 KB

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