Skip to content

Instantly share code, notes, and snippets.

@alexciarlillo
Created February 13, 2013 19:21
Show Gist options
  • Save alexciarlillo/4947304 to your computer and use it in GitHub Desktop.
Save alexciarlillo/4947304 to your computer and use it in GitHub Desktop.
import System.IO
import System.Exit
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers
import XMonad.Hooks.SetWMName
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.UrgencyHook
import XMonad.Layout.Fullscreen
import XMonad.Layout.NoBorders
import XMonad.Layout.Spiral
import XMonad.Layout.Tabbed
import XMonad.Layout.ResizableTile
import XMonad.Layout.IM
import XMonad.Layout.Reflect
import XMonad.Layout.Grid
import XMonad.Layout.PerWorkspace
import XMonad.Layout.Spacing
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import XMonad.Actions.WindowGo (runOrRaise)
import XMonad.Util.Scratchpad
import XMonad.Actions.CycleRecentWS
import XMonad.Actions.CycleWS
import Data.Ratio ((%))
import XMonad.Config.Gnome
import XMonad.Hooks.EwmhDesktops
import qualified XMonad.StackSet as W
import qualified Data.Map as M
myTerminal = "urxvt"
myBorderWidth = 3
myModMask = mod4Mask
myWorkspaces = ["1:home","2:chat","3:work","4:test","5:vbox"]
-- colors - solarized
myGrey = "#93a1a1"
myBlue = "#268bd2"
myRed = "#dc322f"
myGreen = "#859900"
myOrange = "#cb4b16"
myYellow = "#b58900"
myMagenta = "#d33682"
myNormalBorderColor = myGrey
myFocusedBorderColor = myOrange
focusFollowMouse::Bool
focusFollowMouse = False
myManageHook = composeAll
([ title =? "Chromium" --> doFloat
, className =? "GIMP" --> doFloat
, className =? "gimp" --> doFloat
, className =? "Gimp-2.8" --> doFloat
, className =? "gimp-2.8" --> doFloat
, className =? "Vlc" --> doFloat
, className =? "VirtualBox" --> doShift "5:vbox"
, className =? "Pidgin" --> doShift "2:chat"
, resource =? "xchat" --> doShift "2:chat"
, stringProperty "WM_WINDOW_ROLE" =? "converstaion" --> doShift "2:chat"
]) <+> manageScratchPad
manageScratchPad :: ManageHook
manageScratchPad = scratchpadManageHook (W.RationalRect l t w h)
where
h = 0.2 -- terminal height, 10%
w = 1 -- terminal width, 100%
t = 1 - h -- distance from top edge, 90%
l = 1 - w -- distance from left edge, 0%
myLogHook h = dynamicLogWithPP xmobarPP
{ ppOutput = hPutStrLn h
, ppTitle = xmobarColor myMagenta "" . shorten 50
, ppLayout = const ""
, ppCurrent = xmobarColor myBlue "" . wrap "[" "]"
, ppUrgent = xmobarColor myYellow "" . wrap "*" "*"
, ppSep = "<fc=#dc322f> | </fc>"
, ppHidden = noScratchpad
}
where
noScratchpad ws = if ws == "NSP" then "" else ws
myDefaultL = avoidStruts . smartBorders $ tiled ||| Mirror tiled ||| Full
where
tiled = Tall nmaster delta ratio
nmaster = 1
ratio = 1/2
delta = 3/100
myChat' l = withIM size roster l
where
size = 1%6
roster = Title "Buddy List"
myChat = avoidStruts . smartBorders $ myChat' Grid
chatFirst = myChat ||| myDefaultL
perWS = onWorkspace "2:chat" chatFirst $
myDefaultL
myLayout = perWS
main = do
xmproc <- spawnPipe "xmobar"
xmonad $ withUrgencyHook dzenUrgencyHook { args = ["-bg", "darkgreen", "-xs", "1"] } $ gnomeConfig
{
-- simple stuff
terminal = myTerminal
, borderWidth = myBorderWidth
, modMask = myModMask
, workspaces = myWorkspaces
, normalBorderColor = myNormalBorderColor
, focusedBorderColor = myFocusedBorderColor
, logHook = myLogHook xmproc
, manageHook = ( isFullscreen --> doFullFloat ) <+> manageDocks <+> myManageHook <+> manageHook gnomeConfig
, startupHook = startupHook gnomeConfig >> setWMName "LG3D"
, layoutHook = perWS
, focusFollowsMouse = focusFollowMouse
} `additionalKeys`
[ ((mod4Mask .|. shiftMask, xK_s), spawn "gnome-session-quit --power-off")
, ((mod4Mask .|. shiftMask, xK_q), spawn "gnome-session-quit --logout")
, ((mod4Mask .|. shiftMask, xK_l), spawn "xscreensaver-command -lock")
, ((mod4Mask, xK_g), spawn "gvim -c \"cd /home/ciarlill/dev\"")
, ((mod4Mask, xK_c), spawn "chromium")
, ((mod4Mask, xK_n), spawn "chromium -incognito")
, ((mod4Mask, xK_space), spawn "exe=`dmenu_run -b -nb '#073642' -nf '#268bd2' -sf '#d33682'` && eval \"exec $exe\"")
, ((mod4Mask, xK_p), sendMessage NextLayout)
, ((mod4Mask, xK_f), spawn "pcmanfm")
, ((mod4Mask, xK_z), scratchpadSpawnActionTerminal "urxvt")
, ((mod4Mask, xK_a), toggleWS)
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment