Key binding to suspend machine

3c13111550516b460b312a47f9711fb5988a9ec1
Alexis Sellier committed ago 1 parent 42040101
.xmonad/xmonad.hs +13 -0
1 1
import XMonad
2 2
import XMonad.Config.Desktop
3 3
import XMonad.Hooks.DynamicLog
4 4
import XMonad.Hooks.ManageDocks
5 +
import XMonad.Util.Run
6 +
7 +
import Data.Map (Map)
8 +
import qualified Data.Map as Map
5 9
6 10
main :: IO ()
7 11
main = xmonad =<< statusBar "xmobar" barConfig toggleStrutsKey desktopConfig
8 12
     { terminal           = "st dvtm -M"
9 13
     , focusedBorderColor = "#666666"
10 14
     , normalBorderColor  = "black"
11 15
     , borderWidth        = 2
12 16
     , handleEventHook    = mconcat [docksEventHook, handleEventHook def]
17 +
     , keys               = myKeys
13 18
     }
14 19
15 20
barConfig :: PP
16 21
barConfig = xmobarPP
17 22
    { ppCurrent         = xmobarColor white   black  . wrap " " " "
28 33
    light = "#888888"
29 34
    dark  = "#333333"
30 35
31 36
toggleStrutsKey :: XConfig t -> (KeyMask, KeySym)
32 37
toggleStrutsKey XConfig { XMonad.modMask = modMask } = (modMask, xK_b)
38 +
39 +
myKeys :: XConfig Layout -> Map (KeyMask, KeySym) (X ())
40 +
myKeys conf@XConfig { XMonad.modMask = modMask } =
41 +
    Map.union (XMonad.keys def conf) ks
42 +
  where
43 +
    ks = Map.fromList
44 +
       [ ((modMask, xK_F12), safeSpawn "systemctl" ["suspend"])
45 +
       ]