import XMonad import XMonad.Layout.Circle import XMonad.Layout.Grid import XMonad.Layout.Named -- custom layout names import XMonad.Layout.NoBorders -- smart borders on solo clients import XMonad.Layout.TabBarDecoration import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Util.Run(spawnPipe) import XMonad.Util.EZConfig import System.IO import qualified XMonad.StackSet as W myTerminal = "konsole" myManageHook = composeAll . concat $ [ [ className =? "Firefox" --> doF (W.shift "2:web") ] , [ className =? "Chromium-browser" --> doF (W.shift "2:web") ] , [ className =? "Thunderbird" --> doF (W.shift "1:mail") ] , [(className =? "Firefox" <&&> resource =? "Dialog") --> doFloat] , [(className =? "Thunderbird" <&&> resource =? "Dialog") --> doFloat] , [ className =? "Kcalc" --> doFloat] , [ className =? "Psi" --> doFloat] , [ className =? "KMix" --> doFloat] , [ className =? "Gimp" --> doFloat] ] myWorkspaces = ["1:mail","2:web","3:dev1","4:office","5:ledit","6:lustre","7:dev2","8:hera","9","0","-","="] modm = mod4Mask myKeys = [ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -loc" ) , (( controlMask, xK_Print), spawn "sleep 0.2; scrot -s") , (( mod4Mask, xK_d), windows W.focusUp) , ((0 , 0x1008FF11), spawn "amixer -c 0 -- set Master 2-") , ((0 , 0x1008FF13), spawn "amixer -c 0 -- set Master 2+") , ((0 , 0x1008FF12), spawn "amixer set Master toggle") , ((0 , 0x1008ff1d), spawn "kcalc") , ((0 , 0x1008ff14), spawn "qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.Pause") , ((0 , 0x1008ff26), spawn "qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.Prev") , ((0 , 0x1008ff27), spawn "qdbus org.mpris.clementine /Player org.freedesktop.MediaPlayer.Next") ] ++ [((m .|. modm, k), windows $ f i) | (i, k) <- zip myWorkspaces [xK_F1..xK_F12] , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)] ] main = do xmproc <- spawnPipe "/usr/bin/xmobar ~/.xmonad/xmobarrc" xmonad $ defaultConfig { terminal = myTerminal , manageHook = manageDocks <+> myManageHook <+> manageHook defaultConfig , layoutHook = simpleTabBar $ avoidStruts $ layoutHook defaultConfig ||| GridRatio (4/3) ||| Circle , logHook = dynamicLogWithPP xmobarPP { ppOutput = hPutStrLn xmproc , ppTitle = xmobarColor "green" "" . shorten 50 } , workspaces = myWorkspaces , modMask = mod4Mask -- Rebind Mod to Win key } `additionalKeys` myKeys `additionalKeysP` [ ("M-", windows W.swapUp) , ("M-", windows W.swapDown) ]