xmonad.hs (1696B)
1 -- XMonad Configuration File 2 -- "xmonad.hs" 3 -- M. Yamanaka 4 -- email: myamanaka@live.com 5 -- website: csmyamanaka.com 6 -- license: MIT (See included "LICENSE" file for details) 7 8 import XMonad 9 import XMonad.Config.Desktop 10 import XMonad.Hooks.DynamicLog 11 import XMonad.Hooks.ManageDocks 12 import XMonad.Layout.Spacing 13 import XMonad.Util.EZConfig 14 import XMonad.Util.Run 15 import XMonad.Util.SpawnOnce 16 17 -- "tiles with gaps". I like the i3-gaps-esque appearance 18 tileswgaps = spacingRaw False (Border 5 5 5 5) True (Border 5 5 5 5) True $ Tall 1 0.05 0.5 19 20 -- additional keybindings including special keys 21 specKeys = [ ("M-S-l", spawn "sh .local/scripts/lockscript.sh") 22 , ("<XF86AudioRaiseVolume>", spawn "pactl set-sink-volume 0 +5%") 23 , ("<XF86AudioLowerVolume>", spawn "pactl set-sink-volume 0 -5%") 24 , ("<XF86AudioMute>", spawn "pactl set-sink-mute 0 toggle") 25 ] 26 27 main = do 28 statbar <- spawnPipe "xmobar $HOME/.config/xmobar/xmobarrc" 29 xmonad $ docks desktopConfig 30 { terminal = "urxvt" 31 , modMask = mod4Mask 32 , layoutHook = avoidStruts tileswgaps 33 , workspaces = ["dev1", "dev2", "www1", "www2", "msc1", "msc2", "msc3", "doc1", "img1"] 34 , manageHook = composeAll 35 [ title =? "sxiv" --> doShift "img1" 36 , title =? "qutebrowser" --> doShift "www1" 37 , title =? "zathura" --> doShift "doc1" 38 ] 39 , logHook = dynamicLogWithPP $ def 40 { ppOutput = hPutStrLn statbar 41 , ppLayout = mempty 42 , ppCurrent = xmobarColor "cyan" "#efefef00" 43 , ppHidden = xmobarColor "#b5b5b5" "#efefef00" 44 , ppHiddenNoWindows = xmobarColor "#454545" "#efefef00" 45 , ppTitle = shorten 15 46 } 47 } `additionalKeysP` specKeys