Xmonad/Config archive/deifl's xmonad.hs
< Xmonad | Config archive
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
import XMonad
import Graphics.X11.Xlib
import XMonad.Operations
import XMonad.Layouts
import XMonad.Layout.Tabbed
import XMonad.Layout.ResizableTile
import qualified XMonad.StackSet as W
import qualified Data.Map as M
import Data.Bits
import XMonad.Hooks.DynamicLog
import XMonad.Util.Run (spawnPipe)
import System.IO (hPutStrLn)
import XMonad.Actions.WindowBringer
import XMonad.Actions.CycleWS
import XMonad.Actions.CopyWindow
import qualified XMonad.StackSet as W
main = xmonad $ defaultConfig
{ borderWidth = 1
, terminal = "urxvt"
, normalBorderColor = "#333333"
, modMask = mod4Mask
, defaultGaps = [(15,15,0,0)]
, focusedBorderColor = "#fedb73"
, logHook = dynamicLogWithPP deiflPP
, keys = \c -> mykeys c `M.union` keys defaultConfig c
, layoutHook = tiled ||| Mirror tiled ||| Full ||| tabbed shrinkText myTabConfig
}
where
-- default tiling algorithm partitions the screen into two panes
-- tiled = Tall nmaster delta ratio
tiled = ResizableTall nmaster delta ratio []
-- The default number of windows in the master pane
nmaster = 2
-- Default proportion of screen occupied by master pane
ratio = 0.618034
-- Percent of screen to increment by when resizing panes
delta = 3/100
-- Additional keybindings
mykeys c@(XConfig {modMask = modm}) = M.fromList $
[ ((modm, xK_x ), sendMessage MirrorShrink)
, ((modm, xK_s ), sendMessage MirrorExpand)
, ((modm .|. shiftMask, xK_g ), gotoMenu)
, ((modm .|. shiftMask, xK_b ), bringMenu)
, ((modm, xK_p), spawn "exe=`dmenu_path | dmenu -b -p 'Launch:' -fn '-xos4-terminus-medium-r-normal-*-12-*-*-*-*-*-*-*' -nb '#333' -nf '#888' -sb black -sf '#a8a8ff'` && eval \"exec $exe\"")
, ((modm .|. shiftMask, xK_Right), shiftToNext >> nextWS)
, ((modm .|. shiftMask, xK_Left), shiftToPrev >> prevWS)
, ((modm, xK_Up), toggleWS)
, ((modm, xK_Right), prevWS)
, ((modm, xK_Left), nextWS)
, ((modm .|. shiftMask, xK_c), kill1)
]
-- CopyWindow (still don't work
++
-- mod-[1..9] @@ Switch to workspace N
-- mod-shift-[1..9] @@ Move client to workspace N
-- mod-control-shift-[1..9] @@ Copy client to workspace N
[((m .|. modm, k), windows $ f i)
| (i, k) <- zip (workspaces c) [xK_1 ..]
, (f, m) <- [(W.view, 0), (W.shift, shiftMask), (copy, shiftMask .|. controlMask)]]
myTabConfig :: TConf
myTabConfig = defaultTConf { inactiveBorderColor = "#708090"
, activeBorderColor = "#5f9ea0"
, activeColor = "#000000"
, inactiveColor = "#333333"
, inactiveTextColor = "#888888"
, activeTextColor = "#87cefa"
, fontName = "-xos4-terminus-*-*-*-*-12-*-*-*-*-*-*-*"
, tabSize = 15
}
deiflPP :: PP
deiflPP = defaultPP { ppCurrent = wrap "^bg(#000)^fg(#a8a8ff) " " ^fg(#fedb73)^bg(#333)"
, ppSep = ""
, ppWsSep = "|"
, ppVisible = wrap "^bg(#000)^fg(#888) " " ^bg(#333)"
, ppLayout = (\_ -> "")
, ppHidden = wrap "^bg(#333)^fg(#888) " " "
}