Personal tools

Xmonad/Config archive/TeXitoi's xmonad.hs

From HaskellWiki

Jump to: navigation, search
import XMonad hiding (Tall)
import XMonad.Actions.PhysicalScreens
import XMonad.Config.Desktop
import XMonad.Config.Xfce
import XMonad.Hooks.FadeInactive
import XMonad.Hooks.SetWMName
import XMonad.Layout.NoBorders
import XMonad.Layout.HintedTile
import qualified Data.Map as M
import qualified XMonad.StackSet as W
 
main = xmonad xfceConfig {
    modMask = mod4Mask,
    terminal = "xfce4-terminal",
    keys = \c -> myKeys c `M.union` keys xfceConfig c,
    startupHook = startupHook xfceConfig >> setWMName "LG3D",
    logHook = logHook xfceConfig >> fadeInactiveLogHook 0xcccccccc,
    layoutHook = desktopLayoutModifiers . smartBorders $ tiled ||| Full,
    manageHook = myManageHook <+> manageHook xfceConfig,
    workspaces = map show [1..8],
    focusedBorderColor = "#729fcf",
    normalBorderColor = "#aaaaaa"
}
 
tiled = HintedTile 1 0.03 0.5 TopLeft Tall
 
myKeys conf@(XConfig {modMask = modm}) = M.fromList $
    [((modm, xK_semicolon), sendMessage (IncMasterN (-1))),
     ((mod1Mask, xK_Tab), windows W.focusDown),
     ((mod1Mask .|. shiftMask, xK_Tab), windows W.focusUp),
     ((mod4Mask, xK_i), sendMessage NextLayout)]
    ++
    [((modm .|. mask, key), f sc)
     | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
     , (f, mask) <- [(viewScreen, 0), (sendToScreen, shiftMask)]]
    ++
    [((modm .|. mask, key), f sc)
     | (key, sc) <- zip [xK_a, xK_u, xK_i] [0..]
     , (f, mask) <- [(viewScreen, 0), (sendToScreen, shiftMask)]]
    ++
    [((m .|. modm, k), windows $ f i)
     | (i, k) <- zip (workspaces conf) num
     , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
 
num = numBepo
--num = numAzerty
numBepo = [0x22,0xab,0xbb,0x28,0x29,0x40,0x2b,0x2d,0x2f,0x2a]
numAzerty = [0x26,0xe9,0x22,0x27,0x28,0x2d,0xe8,0x5f,0xe7,0xe0]
 
myManageHook = composeAll $
  [className =? "Xfce4-notifyd" --> doIgnore,
   className =? "Xfrun4" --> doFloat,
   className =? "Xfce4-appfinder" --> doFloat,
   className =? "mplayer2" --> doFloat]
  ++
  [className =? c --> doShift w | (w, cs) <- wcs, c <- cs]
    where wcs = [("2", ["Midori", "Firefox", "Iceweasel", "Claws-mail"]),
                 ("4", ["Gajim"]),
                 ("5", ["Gmpc"])]