Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Imports {{{
- import XMonad
- import System.Exit
- import System.IO
- import qualified XMonad.StackSet as W
- import qualified Data.Map as M
- -- actions
- import XMonad.Actions.CycleWS
- import XMonad.Actions.GridSelect
- -- configs
- import XMonad.Config.Azerty
- -- layouts
- import XMonad.Layout.Grid
- import XMonad.Layout.NoBorders
- import XMonad.Layout.Spacing
- -- hooks
- import XMonad.Hooks.DynamicLog
- import XMonad.Hooks.ManageDocks
- -- utils
- import XMonad.Util.EZConfig
- import XMonad.Util.Run
- -- }}}
- -- The basics {{{
- myTerminal = "urxvt"
- myFocusFollowsMouse :: Bool
- myFocusFollowsMouse = True
- myBorderWidth = 2
- myModMask = mod4Mask
- myWorkspaces = ["1:main","2:www","3:progr","4:fm","5:chat","6:media","7:terms","8:other"]
- myFocusedBorderColor = "#DC143C" -- crimson
- -- }}}
- -- Taskbar config {{{
- 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)"
- "Spacing 10 Grid" -> "^fg(" ++ myDFGColor ++ ")^i(" ++ myIconDir ++ "/dzen_bitmaps/mtall.xbm)"
- "Spacing 10 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 '1150' -ta 'l' -bg '" ++ myDBGColor ++ "' -fn '" ++ myFont ++ "'"
- myTrayBar = "/home/lilith/.xmonad/traybarscript.zsh | dzen2 -x '1150' -y '0' -h '20' -ta 'r' -bg '" ++ myDBGColor ++ "' -fg '" ++ myDFGColor ++ "' -fn '" ++ myFont ++ "'"
- myBottomBar = "conky -c /home/lilith/.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-*-*-*-*-*-*-*"
- -- }}}
- -- Keyboard bindings {{{
- myKeys = [ ("M-e", goToSelected defaultGSConfig)
- , ("M-<Right>", nextWS)
- , ("M-<Left>", prevWS)
- , ("M-S-<Right>", shiftToNext)
- , ("M-S-<Left>", shiftToPrev)
- , ("M-p", spawn "dmenu_run")
- ]
- -- }}}
- -- Hooks & Layouts {{{
- myLayoutHook = tiled ||| grid ||| full
- where
- tiled = spacing 10 $ Tall nmaster delta ratio
- nmaster = 1
- ratio = 1/2
- delta = 3/100
- grid = spacing 10 $ Grid
- full = noBorders $ Full
- myManageHook = ( composeAll . concat $
- [ [className =? floats --> doFloat | floats <- myFloats]
- , [className =? webs --> doF (W.shift "2:www") | webs <- myWebShifts]
- , [className =? files --> doF (W.shift "4:fm") | files <- myFileShifts]
- , [className =? chats --> doF (W.shift "5:chat") | chats <- myChatShifts]
- , [className =? media --> doF (W.shift "6:media") | media <- myMediaShifts]
- , [title =? "irssi" --> doShift "5:chat"]
- , [title =? "ncmpcpp" --> doShift "7:terms"]
- , [resource =? "desktop_window" --> doIgnore] -- ignore
- , [resource =? "kdesktop" --> doIgnore]
- ])
- where
- role = "WM_CLASS"
- name = "WM_CLASSNAME"
- myFloats = ["Gimp", "MPlayer", "Pidgin", "Skype", "Transmission-gtk"]
- myWebShifts = ["Chromium", "Firefox", "Namoroka", "Opera"]
- myFileShifts = ["Claws-mail", "File-roller", "Thunar", "Transmission-gtk"]
- myChatShifts = ["Pidgin", "Skype"]
- myMediaShifts = ["MPlayer", "Wine"]
- -- }}}
- -- Main {{{
- main = do
- dzen <- spawnPipe myStatusBar
- tray <- spawnPipe myTrayBar
- bottom <- spawnPipe myBottomBar
- programs <- spawnPipe "sh /home/lilith/.xmonad/autostart.sh"
- xmonad $ azertyConfig {
- -- the basics
- terminal = myTerminal,
- focusFollowsMouse = myFocusFollowsMouse,
- borderWidth = myBorderWidth,
- modMask = myModMask,
- workspaces = myWorkspaces,
- focusedBorderColor = myFocusedBorderColor,
- -- hooks & layouts
- layoutHook = avoidStruts $ myLayoutHook,
- manageHook = myManageHook,
- logHook = (dynamicLogWithPP $ myDzenPP dzen)
- } `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