Personal tools

Xmonad/Config archive/k6b (kyle's) xmonad.hs

From HaskellWiki

< Xmonad | Config archive(Difference between revisions)
Jump to: navigation, search
(k6b xmonad.hs)
 
(Added PerWorkspace layouts)
 
Line 17: Line 17:
 
myWorkspaces = ["Don't","Panic!","::k6b::",".42.","5","6","7","8","9"] --list of tag names
 
myWorkspaces = ["Don't","Panic!","::k6b::",".42.","5","6","7","8","9"] --list of tag names
 
myManageHook = composeAll
 
myManageHook = composeAll
[ className =? "MPlayer" --> doFloat --float mplayer
+
[ className =? "vlc" --> doFloat --float mplayer
, className =? "Gimp" --> doFloat --float gimp
 
 
, className =? "Gimp" --> doShift ".42." --move gimp to window
 
, className =? "Gimp" --> doShift ".42." --move gimp to window
 
, className =? "Keepassx" --> doCenterFloat --float keepassx
 
, className =? "Keepassx" --> doCenterFloat --float keepassx
Line 23: Line 23:
 
, className =? "feh" --> doCenterFloat --center and float feh
 
, className =? "feh" --> doCenterFloat --center and float feh
 
]
 
]
myLayoutHook = avoidStruts (Mirror tall ||| Grid ||| tall ||| Full) --layout list
+
myLayoutHook = onWorkspace ".42." gimp $ onWorkspace "Don't" terminalLayout $ onWorkspace "Panic!" webLayout $ standardLayout --per workspace layouts
 
where
 
where
tall = Tall nmaster delta ratio --define tall layout sizes
+
standardLayout = avoidStruts ( Mirror tall ||| tall ||| Grid ||| Full ) --layout to use on every other workspace
nmaster = 1
+
where
ratio = 1/2
+
tall = Tall nmaster delta ratio --define tall layout sizes
delta = 2/100
+
nmaster = 1 --number of windows in master pane
  +
ratio = 1/2 --ratio of master pane size
  +
delta = 2/100
  +
  +
gimp = avoidStruts $ --layout for gimp
  +
withIM (0.11) (Role "gimp-toolbox") $ --toolbox on side
  +
reflectHoriz $
  +
withIM (0.15) (Role "gimp-dock") Full --dock on side
  +
terminalLayout = avoidStruts $ Grid --layout for terminal windows
  +
webLayout = avoidStruts $ Mirror tall --layout for browser and terminal window
  +
where
  +
tall = Tall nmaster delta ratio --define tall layout sizes
  +
nmaster = 1 --number of windows in master pane1
  +
ratio = 3/4 --ratio of master pane size
  +
delta = 2/100
 
--xmobar config
 
--xmobar config
 
myLogHook h = dynamicLogWithPP xmobarPP
 
myLogHook h = dynamicLogWithPP xmobarPP
Line 59: Line 59:
 
, ((mod4Mask, xK_F1), manPrompt defaultXPConfig) --man prompt
 
, ((mod4Mask, xK_F1), manPrompt defaultXPConfig) --man prompt
 
, ((0, xK_Print), spawn "'scrot' -e 'mv $f ~/pictures/screenshots'") --take screenshot
 
, ((0, xK_Print), spawn "'scrot' -e 'mv $f ~/pictures/screenshots'") --take screenshot
  +
---Media Keys
 
, ((0, 0x1008ff13), spawn "amixer -q set Master 2dB+") --raise sound
 
, ((0, 0x1008ff13), spawn "amixer -q set Master 2dB+") --raise sound
 
, ((0, 0x1008ff11), spawn "amixer -q set Master 1dB-") --lower sound
 
, ((0, 0x1008ff11), spawn "amixer -q set Master 1dB-") --lower sound
 
, ((0, 0x1008ff12), spawn "amixer -q set Master toggle") --mute sound
 
, ((0, 0x1008ff12), spawn "amixer -q set Master toggle") --mute sound
  +
, ((0, 0x1008ff2c), spawn "eject") --eject cd
 
]
 
]
 
</haskell>
 
</haskell>

Latest revision as of 11:10, 2 October 2011

import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import XMonad.Layout.IM
import XMonad.Layout.PerWorkspace
import XMonad.Layout.Reflect
import XMonad.Layout.Grid
import XMonad.Prompt
import XMonad.Prompt.Man
import System.IO
 
myTerminal = "urxvtc" --my preferred terminal
myWorkspaces = ["Don't","Panic!","::k6b::",".42.","5","6","7","8","9"] --list of tag names
myManageHook = composeAll
    [ className =? "vlc"        --> doFloat --float mplayer
    , className =? "Gimp"           --> doShift ".42." --move gimp to window
    , className =? "Keepassx"       --> doCenterFloat --float keepassx
    , className =? "Firefox"        --> doShift "Panic!" --move firefox to window
    , className =? "feh"            --> doCenterFloat --center and float feh
    ]
myLayoutHook = onWorkspace ".42." gimp $ onWorkspace "Don't" terminalLayout $ onWorkspace "Panic!" webLayout $ standardLayout --per workspace layouts
    where
        standardLayout = avoidStruts ( Mirror tall ||| tall ||| Grid ||| Full ) --layout to use on every other workspace
            where
                tall = Tall nmaster delta ratio --define tall layout sizes
                nmaster = 1 --number of windows in master pane
                ratio = 1/2 --ratio of master pane size
                delta = 2/100
 
        gimp =  avoidStruts $ --layout for gimp
                withIM (0.11) (Role "gimp-toolbox") $ --toolbox on side
                reflectHoriz $
                withIM (0.15) (Role "gimp-dock") Full --dock on side
        terminalLayout = avoidStruts $ Grid --layout for terminal windows
        webLayout = avoidStruts $ Mirror tall --layout for browser and terminal window
            where
                tall = Tall nmaster delta ratio --define tall layout sizes 
                nmaster = 1 --number of windows in master pane1
                ratio = 3/4 --ratio of master pane size 
                delta = 2/100
--xmobar config
myLogHook h = dynamicLogWithPP xmobarPP
            { ppHidden = xmobarColor "grey" "" --tag color
            , ppOutput = hPutStrLn h           --tag list and window title
            , ppTitle = xmobarColor "green" "" --window title color
            }
myStatusBar = "xmobar" --define first xmobar
myStartupHook :: X ()
myStartupHook = do
            spawn "xmobar ~/.xmobarrc2" --start second xmobar
            spawn "~/scripts/startup.sh" --startup script
 
main = do 
    din <- spawnPipe myStatusBar
    xmonad $ defaultConfig
        { manageHook = manageDocks <+> myManageHook <+> manageHook defaultConfig
        , layoutHook = myLayoutHook 
        , logHook = myLogHook din
        , startupHook = myStartupHook
        , terminal = myTerminal
        , workspaces = myWorkspaces
        , modMask = mod4Mask
        } `additionalKeys`
        [ ((mod4Mask, xK_f),    spawn "firefox") --start firefox
        , ((mod4Mask, xK_F11),  spawn "sudo /sbin/reboot") --reboot
        , ((mod4Mask, xK_F12),  spawn "sudo /sbin/shutdown -h now") --shutdown
        , ((mod4Mask, xK_p),    spawn "dmenu_run -nb black -nf white") --call dmenu
        , ((mod4Mask .|. shiftMask, xK_h), spawn "feh --scale ~/pictures/Xmbindings.png") --keymask dialog
        , ((mod4Mask, xK_F1),   manPrompt defaultXPConfig) --man prompt
        , ((0, xK_Print),       spawn "'scrot' -e 'mv $f ~/pictures/screenshots'") --take screenshot
        ---Media Keys
        , ((0, 0x1008ff13),     spawn "amixer -q set Master 2dB+") --raise sound
        , ((0, 0x1008ff11),     spawn "amixer -q set Master 1dB-") --lower sound
        , ((0, 0x1008ff12),     spawn "amixer -q set Master toggle") --mute sound
        , ((0, 0x1008ff2c),     spawn "eject") --eject cd
        ]