Skip to content

Instantly share code, notes, and snippets.

@avuserow
Created July 13, 2009 05:16
Show Gist options
  • Save avuserow/145947 to your computer and use it in GitHub Desktop.
Save avuserow/145947 to your computer and use it in GitHub Desktop.
import XMonad
import qualified XMonad.StackSet as W
import XMonad.Actions.CycleWS
import XMonad.Layout.Grid
import XMonad.Layout.Tabbed
import XMonad.Layout.NoBorders(smartBorders)
import XMonad.Hooks.UrgencyHook
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeysP)
import XMonad.Prompt
import XMonad.Prompt.Shell(shellPrompt)
import XMonad.Prompt.Window
import System.IO(hPutStrLn)
myLayoutHook = tiled ||| Grid ||| simpleTabbed
where
-- default tiling algorithm partitions the screen into two panes
tiled = Tall nmaster delta ratio
-- The default number of windows in the master pane
nmaster = 1
-- Default proportion of screen occupied by master pane
ratio = 1/2
-- Percent of screen to increment by when resizing panes
delta = 3/100
main = do
xmproc <- spawnPipe "xmobar"
-- make XMonad track urgent windows
xmonad $ withUrgencyHook NoUrgencyHook defaultConfig
{ manageHook = manageDocks <+> manageHook defaultConfig
, layoutHook = avoidStruts $ smartBorders $ myLayoutHook
, modMask = mod4Mask
, logHook = dynamicLogWithPP $ xmobarPP
{ ppOutput = hPutStrLn xmproc
, ppUrgent = xmobarColor "#ff0000" "" . wrap "**" "**"
, ppTitle = xmobarColor "#8ae234" ""
}
}
`additionalKeysP`
[ ("M-p", shellPrompt defaultXPConfig { position = Top })
, ("M-S-a", windowPromptGoto defaultXPConfig { position = Top })
, ("M-a", windowPromptBring defaultXPConfig { position = Top })
, ("M-x", sendMessage ToggleStruts)
, ("M-S-l", spawn "~/bin/lock")
, ("M-<Left>", moveTo Prev HiddenNonEmptyWS)
, ("M-<Right>", moveTo Next HiddenNonEmptyWS)
, ("M-<Up>", windows W.focusUp)
, ("M-<Down>", windows W.focusDown)
, ("M-`", toggleWS)
, ("M-c", moveTo Next EmptyWS)
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment