Advertisement
Guest User

Aeva xmonad.hs

a guest
Sep 24th, 2011
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.63 KB | None | 0 0
  1. -- Imports {{{
  2.  
  3. import XMonad
  4. import System.Exit
  5. import System.IO
  6. import qualified XMonad.StackSet as W
  7. import qualified Data.Map as M
  8. -- actions
  9. import XMonad.Actions.CycleWS
  10. import XMonad.Actions.GridSelect
  11. -- configs
  12. import XMonad.Config.Azerty
  13. -- layouts
  14. import XMonad.Layout.Grid
  15. import XMonad.Layout.NoBorders
  16. import XMonad.Layout.Spacing
  17. -- hooks
  18. import XMonad.Hooks.DynamicLog
  19. import XMonad.Hooks.ManageDocks
  20. -- utils
  21. import XMonad.Util.EZConfig
  22. import XMonad.Util.Run
  23.  
  24. -- }}}
  25.  
  26. -- The basics {{{
  27.  
  28. myTerminal = "urxvt"
  29. myFocusFollowsMouse :: Bool
  30. myFocusFollowsMouse = True
  31. myBorderWidth = 2
  32. myModMask = mod4Mask
  33. myWorkspaces = ["1:main","2:www","3:progr","4:fm","5:chat","6:media","7:terms","8:other"]
  34. myFocusedBorderColor = "#DC143C" -- crimson
  35.  
  36. -- }}}
  37.  
  38. -- Taskbar config {{{
  39.  
  40. myDzenPP h = defaultPP
  41. { ppCurrent = dzenColor myFFGColor myFBGColor . wrap (" ^fg(" ++ myFFGColor ++ ")^i(" ++ myIconDir ++ "/xbm8x8/eye_l.xbm)" ++ " ^fg(" ++ myFFGColor ++ ")") " "
  42. , ppVisible = dzenColor myVFGColor myVBGColor . wrap (" ^fg(" ++ myVFGColor ++ ")^i(" ++ myIconDir ++ "/xbm8x8/eye_r.xbm)" ++ " ^fg(" ++ myVFGColor ++ ")") " "
  43. , ppHidden = dzenColor myDFGColor myDBGColor . wrap (" ^i(" ++ myIconDir ++ "/dzen_bitmaps/has_win.xbm) ") " "
  44. , ppHiddenNoWindows = dzenColor myDFGColor myDBGColor . wrap (" ^i(" ++ myIconDir ++ "/dzen_bitmaps/has_win_nv.xbm) ") " "
  45. , ppUrgent = dzenColor myUFGColor myUBGColor . wrap (" ^i(" ++ myIconDir ++ "/xbm8x8/info_03.xbm) ") " " . dzenStrip
  46. , ppWsSep = ""
  47. , ppSep = " | "
  48. , ppLayout = dzenColor myDFGColor myDBGColor .
  49. (\x -> case x of
  50. "Full" -> "^fg(" ++ myDFGColor ++ ")^i(" ++ myIconDir ++ "/dzen_bitmaps/full.xbm)"
  51. "Spacing 10 Grid" -> "^fg(" ++ myDFGColor ++ ")^i(" ++ myIconDir ++ "/dzen_bitmaps/mtall.xbm)"
  52. "Spacing 10 Tall" -> "^fg(" ++ myDFGColor ++ ")^i(" ++ myIconDir ++ "/dzen_bitmaps/tall.xbm)"
  53. _ -> x
  54. )
  55. , ppTitle = (" " ++) . dzenColor myDFGColor myDBGColor . dzenEscape
  56. , ppOutput = hPutStrLn h
  57. }
  58.  
  59. myDFGColor = "#ffffff" -- normal text color; white
  60. myDBGColor = "#292929" -- normal bg color, black
  61. myFFGColor = myDFGColor -- highlighted bg color, black
  62. myFBGColor = "#DC143C" -- highlighted text color, crimson
  63. myVFGColor = "#8abfb0"
  64. myVBGColor = "#3b848c"
  65. myUFGColor = "#4390B1"
  66. myUBGColor = "#d91e0d"
  67. myIFGColor = "#8abfd0"
  68. myIBGColor = myDBGColor
  69. mySColor = myDFGColor
  70.  
  71. myStatusBar = "dzen2 -x '0' -y '0' -h '20' -w '1150' -ta 'l' -bg '" ++ myDBGColor ++ "' -fn '" ++ myFont ++ "'"
  72. myTrayBar = "/home/lilith/.xmonad/traybarscript.zsh | dzen2 -x '1150' -y '0' -h '20' -ta 'r' -bg '" ++ myDBGColor ++ "' -fg '" ++ myDFGColor ++ "' -fn '" ++ myFont ++ "'"
  73. myBottomBar = "conky -c /home/lilith/.conky_bottom | dzen2 -x '0' -y '880' -h '20' -ta 'c' -bg '" ++ myDBGColor ++ "' -fg '" ++ myDFGColor ++ "' -fn '" ++ myFont ++ "'"
  74. myIconDir = "/home/lilith/.dzen/"
  75.  
  76. myFont = "-*-liberation mono-medium-r-normal-*-10-*-*-*-*-*-*-*"
  77.  
  78. -- }}}
  79.  
  80. -- Keyboard bindings {{{
  81.  
  82. myKeys = [ ("M-e", goToSelected defaultGSConfig)
  83. , ("M-<Right>", nextWS)
  84. , ("M-<Left>", prevWS)
  85. , ("M-S-<Right>", shiftToNext)
  86. , ("M-S-<Left>", shiftToPrev)
  87. , ("M-p", spawn "dmenu_run")
  88. ]
  89.  
  90. -- }}}
  91.  
  92. -- Hooks & Layouts {{{
  93.  
  94. myLayoutHook = tiled ||| grid ||| full
  95. where
  96. tiled = spacing 10 $ Tall nmaster delta ratio
  97. nmaster = 1
  98. ratio = 1/2
  99. delta = 3/100
  100. grid = spacing 10 $ Grid
  101. full = noBorders $ Full
  102.  
  103. myManageHook = ( composeAll . concat $
  104. [ [className =? floats --> doFloat | floats <- myFloats]
  105. , [className =? webs --> doF (W.shift "2:www") | webs <- myWebShifts]
  106. , [className =? files --> doF (W.shift "4:fm") | files <- myFileShifts]
  107. , [className =? chats --> doF (W.shift "5:chat") | chats <- myChatShifts]
  108. , [className =? media --> doF (W.shift "6:media") | media <- myMediaShifts]
  109. , [title =? "irssi" --> doShift "5:chat"]
  110. , [title =? "ncmpcpp" --> doShift "7:terms"]
  111. , [resource =? "desktop_window" --> doIgnore] -- ignore
  112. , [resource =? "kdesktop" --> doIgnore]
  113. ])
  114.  
  115. where
  116.  
  117. role = "WM_CLASS"
  118. name = "WM_CLASSNAME"
  119.  
  120. myFloats = ["Gimp", "MPlayer", "Pidgin", "Skype", "Transmission-gtk"]
  121. myWebShifts = ["Chromium", "Firefox", "Namoroka", "Opera"]
  122. myFileShifts = ["Claws-mail", "File-roller", "Thunar", "Transmission-gtk"]
  123. myChatShifts = ["Pidgin", "Skype"]
  124. myMediaShifts = ["MPlayer", "Wine"]
  125.  
  126. -- }}}
  127.  
  128. -- Main {{{
  129.  
  130. main = do
  131. dzen <- spawnPipe myStatusBar
  132. tray <- spawnPipe myTrayBar
  133. bottom <- spawnPipe myBottomBar
  134. programs <- spawnPipe "sh /home/lilith/.xmonad/autostart.sh"
  135. xmonad $ azertyConfig {
  136. -- the basics
  137. terminal = myTerminal,
  138. focusFollowsMouse = myFocusFollowsMouse,
  139. borderWidth = myBorderWidth,
  140. modMask = myModMask,
  141. workspaces = myWorkspaces,
  142. focusedBorderColor = myFocusedBorderColor,
  143. -- hooks & layouts
  144. layoutHook = avoidStruts $ myLayoutHook,
  145. manageHook = myManageHook,
  146. logHook = (dynamicLogWithPP $ myDzenPP dzen)
  147. } `additionalKeysP` myKeys
  148.  
  149. -- }}}
  150. -- vim:foldmethod=marker sw=4 sts=4 ts=4 tw=0 et ai nowrap
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement