Skip to content

Instantly share code, notes, and snippets.

@chaos95
Created August 9, 2010 23:28
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chaos95/516321 to your computer and use it in GitHub Desktop.
Save chaos95/516321 to your computer and use it in GitHub Desktop.
import XMonad
import XMonad.ManageHook
import XMonad.Hooks.ManageHelpers
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.SetWMName
import XMonad.Hooks.UrgencyHook
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.FadeInactive
import XMonad.Layout.Accordion
import XMonad.Layout.PerWorkspace
import XMonad.Layout.Dishes
import XMonad.Util.Run
import XMonad.Util.EZConfig
import System.IO
import qualified XMonad.StackSet as W
myManageHook :: ManageHook
myManageHook = composeAll
[
className =? "Do" --> doIgnore
, className =? "/usr/lib/gnome-do/Do.exe" --> doIgnore
]
myWorkspaces = ["1:dev", "2:irc", "3:gnus", "4:browse", "5:emacs", "6:terminal"] ++ map show [7..9]
myLayout = avoidStruts $
onWorkspace "1:dev" mainSub $
onWorkspace "2:irc" mainSub $
onWorkspace "3:gnus" mainSub $
onWorkspace "4:browse" Full $
onWorkspace "5:emacs" mainSub $
onWorkspace "7" standard $
onWorkspace "9" (Accordion ||| tall ||| Mirror tall ||| Full) $
standard
where
mainSub = Mirror $ Tall 1 (3/100) (9/10)
standard = (tall ||| Mirror tall ||| Full)
logTail = Mirror $ Dishes 4 (1/4)
tall = Tall 1 (3/100) (1/2)
myLogHook :: Handle -> X ()
myLogHook h = dynamicLogWithPP $
defaultPP {
ppCurrent = dzenColor "#3EB5FF" "black" . pad
, ppVisible = dzenColor "white" "black" . pad
, ppHidden = dzenColor "white" "black" . pad
, ppHiddenNoWindows = dzenColor "#444444" "black" . pad
, ppUrgent = dzenColor "red" "black" . pad
, ppWsSep = " "
, ppSep = " | "
, ppTitle = (" " ++) . dzenColor "white" "black" . dzenEscape
, ppOutput = hPutStrLn h
}
myStatusBar = "dzen2 -x '0' -y '0' -h '24' -w '1200' -ta 'l' -fg '#FFFFFF' -bg '#000000'"
myClockBar = "while true; do date; sleep 1; done | dzen2 -x '1200' -y '0' -h '24' -w '480' -ta 'r' -fg '#FFFFFF' -bg '#000000' -p"
main = do
workspaceBar <- spawnPipe myStatusBar
clockBar <- spawnPipe myClockBar
xmonad $
withUrgencyHook NoUrgencyHook $
defaultConfig {
modMask = mod4Mask
, manageHook = manageHook defaultConfig <+> manageDocks <+> myManageHook
, logHook = setWMName "LG3D" >> myLogHook workspaceBar >> fadeInactiveLogHook 0xdddddddd
, layoutHook = myLayout
, workspaces = myWorkspaces
, terminal = "urxvt"
}
`additionalKeysP`
[ ("M-C-<Delete>", spawn "xscreensaver-command -lock")
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment