Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- Imports {{{
- import XMonad
- import System.IO
- import qualified Data.Map as M
- import qualified XMonad.StackSet as S
- -- Actions
- import XMonad.Actions.CycleWS
- import XMonad.Actions.GridSelect
- -- Configurations
- import XMonad.Config.Azerty
- -- Layouts
- import XMonad.Layout.Grid
- -- Hooks
- import XMonad.Hooks.DynamicLog
- import XMonad.Hooks.EwmhDesktops
- import XMonad.Hooks.ManageDocks
- -- Utilities
- import XMonad.Util.EZConfig
- import XMonad.Util.Run
- --- }}}
- --- Local Variables {{{
- myBorderWidth = 2
- myFocusedBorderColor = "#DC143C" -- crimson
- myFocusFollowsMouse :: Bool
- myFocusFollowsMouse = True
- myModMask = mod4Mask
- myTerminal = "urxvt"
- myWorkspaces = ["1:terms","2:web","3:coding","4:files","5:media"]
- myKeys = [ ("M-b", sendMessage ToggleStruts)
- , ("M-e", goToSelected defaultGSConfig)
- , ("M-p", spawn "dmenu_run")
- , ("M-<Right>", nextWS)
- , ("M-<Left>", prevWS)
- , ("M-S-<Right>", shiftToNext)
- , ("M-S-<Left>", shiftToPrev)
- ]
- myManageHook = (composeAll . concat $
- [ [className =? floats --> doFloat | floats <- myFloats]
- , [className =? webs --> doF (S.shift "2:web") | webs <-myWebShifts]
- , [className =? coding --> doF (S.shift "3:coding") | coding <- myCodingShifts]
- , [className =? files --> doF (S.shift "4:files") | files <- myFileShifts]
- , [className =? media --> doF (S.shift "5:media") | media <- myMediaShifts]
- , [className =? "stalonetray" --> doIgnore]
- , [resource =? "desktop_window" --> doIgnore]
- , [resource =? "kdesktop" --> doIgnore]
- ])
- where
- myFloats = ["Gimp", "MPlayer", "Pidgin", "Transmission-gtk"]
- myWebShifts = ["Chromium", "Firefox"]
- myCodingShifts = ["Gimp", "Leafpad", "Texmaker"]
- myFileShifts = ["File-roller" ,"Okular", "Thunar", "Transmission-gtk", "Zathura"]
- myMediaShifts = ["MPlayer", "Pidgin"]
- --- }}}
- --- Taskbars {{{
- myDzenPP h = defaultPP
- { ppCurrent = dzenColor myFFGColor myFBGColor . wrap (" ^fg(" ++ myFFGColor ++ ")^i(" ++ myIconDir ++ "/xbm8x8/eye_l.xbm)" ++ " ^fg(" ++ myFFGColor ++ ")") " "
- , ppVisible = dzenColor myVFGColor myVBGColor . wrap (" ^fg(" ++ myVFGColor ++ ")^i(" ++ myIconDir ++ "/xbm8x8/eye_r.xbm)" ++ " ^fg(" ++ myVFGColor ++ ")") " "
- , ppHidden = dzenColor myDFGColor myDBGColor . wrap (" ^i(" ++ myIconDir ++ "/dzen_bitmaps/has_win.xbm) ") " "
- , ppHiddenNoWindows = dzenColor myDFGColor myDBGColor . wrap (" ^i(" ++ myIconDir ++ "/dzen_bitmaps/has_win_nv.xbm) ") " "
- , ppUrgent = dzenColor myUFGColor myUBGColor . wrap (" ^i(" ++ myIconDir ++ "/xbm8x8/info_03.xbm) ") " " . dzenStrip
- , ppWsSep = ""
- , ppSep = " | "
- , ppLayout = dzenColor myDFGColor myDBGColor .
- (\x -> case x of
- "Full" -> "^fg(" ++ myDFGColor ++ ")^i(" ++ myIconDir ++ "/dzen_bitmaps/full.xbm)"
- "Mirror Tall" -> "^fg(" ++ myDFGColor ++ ")^i(" ++ myIconDir ++ "/dzen_bitmaps/mtall.xbm)"
- "Tall" -> "^fg(" ++ myDFGColor ++ ")^i(" ++ myIconDir ++ "/dzen_bitmaps/tall.xbm)"
- _ -> x
- )
- , ppTitle = (" " ++) . dzenColor myDFGColor myDBGColor . dzenEscape
- , ppOutput = hPutStrLn h
- }
- myDFGColor = "#ffffff" -- normal text color; white
- myDBGColor = "#292929" -- normal bg color, black
- myFFGColor = myDFGColor -- highlighted bg color, black
- myFBGColor = "#DC143C" -- highlighted text color, crimson
- myVFGColor = "#8abfb0"
- myVBGColor = "#3b848c"
- myUFGColor = "#4390B1"
- myUBGColor = "#d91e0d"
- myIFGColor = "#8abfd0"
- myIBGColor = myDBGColor
- mySColor = myDFGColor
- myStatusBar = "dzen2 -x '0' -y '0' -h '20' -w '1050' -ta 'l' -bg '" ++ myDBGColor ++ "' -fn '" ++ myFont ++ "'"
- myTrayBar = "/home/lilith/.xmonad/traybarscript.zsh | dzen2 -x '1050' -y '0' -h '20' -ta 'r' -bg '" ++ myDBGColor ++ "' -fg '" ++ myDFGColor ++ "' -fn '" ++ myFont ++ "'"
- myBottomBar = "conky -c /home/lilith/.xmonad/conky_bottom | dzen2 -x '0' -y '880' -h '20' -ta 'c' -bg '" ++ myDBGColor ++ "' -fg '" ++ myDFGColor ++ "' -fn '" ++ myFont ++ "'"
- myIconDir = "/home/lilith/.dzen/"
- myFont = "-*-liberation mono-medium-r-normal-*-10-*-*-*-*-*-*-*"
- --- }}}
- main = do
- dzen <- spawnPipe myStatusBar
- tray <- spawnPipe myTrayBar
- bottom <- spawnPipe myBottomBar
- programs <- spawnPipe "sh /home/lilith/.xmonad/autostart.sh"
- xmonad $ azertyConfig { borderWidth = myBorderWidth
- , focusedBorderColor = myFocusedBorderColor
- , focusFollowsMouse = myFocusFollowsMouse
- -- , keys = \c -> azertyKeys c `M.Union` keys defaultConfig c
- , layoutHook = avoidStruts $ layoutHook azertyConfig
- , logHook = (dynamicLogWithPP $ myDzenPP dzen)
- , handleEventHook = ewmhDesktopsEventHook
- , manageHook = myManageHook <+> manageHook azertyConfig
- , modMask = myModMask
- , startupHook = ewmhDesktopsStartup
- , terminal = myTerminal
- , workspaces = myWorkspaces
- } `additionalKeysP` myKeys
- -- vim:foldmethod=marker sw=4 sts=4 ts=4 tw=0 et ai nowrap
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement