Created
November 22, 2011 00:09
-
-
Save alistra/1384434 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import XMonad | |
import qualified XMonad.StackSet as W | |
import XMonad.Hooks.ManageHelpers | |
import XMonad.Hooks.DynamicLog hiding (xmobar) | |
import XMonad.Hooks.ManageDocks | |
import XMonad.Util.Run(spawnPipe) | |
import XMonad.Util.EZConfig(additionalKeys) | |
import XMonad.Actions.CycleWS | |
import XMonad.Layout.NoBorders | |
import XMonad.Actions.UpdateFocus | |
import System.IO | |
isKDEOverride = do | |
isover <- isInProperty "_NET_WM_WINDOW_TYPE" "_KDE_NET_WM_WINDOW_TYPE_OVERRIDE" | |
isfs <- isFullscreen | |
return $! isover && (not isfs) | |
myManageHook = composeAll . concat $ | |
[ [ composeOne [ isKDEOverride -?> doFloat ] ], | |
[ className =? "Gimp" --> doFloat | |
, className =? "Vncviewer" --> doFloat | |
, className =? "Firefox" --> doF (W.shift "web") | |
, className =? "Chromium-browser" --> doF (W.shift "web") | |
, className =? "Emacs" --> doF (W.shift "emacs") | |
, className =? "Calibre" --> doF (W.shift "ebook") | |
, className =? "Konversation" --> doF (W.shift "irc") | |
, className =? "Pidgin" --> doF (W.shift "irc") | |
, className =? "Kmail" --> doF (W.shift "mail") | |
, title =? "Ediff" --> doFloat | |
, isFullscreen --> doFullFloat ]] | |
main = do | |
xmproc <- spawnPipe "~/.cabal/bin/xmobar ~/.xmonad/xmobar" | |
-- xmproc <- spawnPipe "/usr/bin/xmobar ~/.xmonad/xmobar" | |
xmonad $ defaultConfig | |
{ manageHook = manageDocks <+> myManageHook | |
<+> manageHook defaultConfig | |
-- , layoutHook = avoidStruts $ smartBorders (layoutHook defaultConfig) | |
, layoutHook = avoidStruts ( smartBorders (Full ||| Mirror tiled )) | |
, startupHook = adjustEventInput | |
, handleEventHook = focusOnMouseMove | |
, logHook = dynamicLogWithPP $ xmobarPP | |
{ ppOutput = hPutStrLn xmproc | |
, ppTitle = xmobarColor "green" "" . shorten 50 | |
} | |
, terminal = "urxvtc" | |
, modMask = mod4Mask -- Rebind Mod to the Windows key | |
, workspaces = ["shell", "emacs", "irc", "mail", "ebook", "web", "notes"] ++ map show [8,9,0] | |
} `additionalKeys` | |
[ ((mod1Mask .|. controlMask, xK_l), spawn "xscreensaver-command -lock") | |
, ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s") | |
, ((0, xK_Print), spawn "scrot") | |
, ((mod3Mask, xK_r), toggleWS) | |
, ((mod4Mask, xK_b), sendMessage ToggleStruts) | |
, ((mod3Mask, xK_a), nextScreen) | |
, ((mod4Mask, xK_0), windows $ W.view "0") | |
] | |
where | |
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 = toRational (2/(1+sqrt(5)::Double)) -- golden | |
-- Percent of screen to increment by when resizing panes | |
delta = 0.03 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment