Create floating terminal keybinding

b53db8117d107aa96cefaf524cd8d6251d1115ff
Alexis Sellier committed ago 1 parent 7e5b755e
.xmonad/xmonad.hs +8 -6
8 8
import XMonad.ManageHook
9 9
import XMonad.Layout.NoBorders
10 10
import XMonad.Hooks.EwmhDesktops
11 11
import XMonad.Actions.CycleWS
12 12
import XMonad.Hooks.UrgencyHook
13 +
import XMonad.Hooks.FloatNext
13 14
14 15
import System.Directory
15 16
import System.IO
16 17
import Text.Printf
17 18
import Data.Map (Map)
32 33
        , borderWidth        = 1
33 34
        , handleEventHook    = mconcat [docksEventHook, handleEventHook def]
34 35
        , keys               = myKeys home
35 36
        , logHook            = dynamicLogWithPP (barConfig xmproc)
36 37
        , layoutHook         = avoidStruts $ smartBorders $ layoutHook def
37 -
        , manageHook         = manageDocks <+> manageHook def
38 +
        , manageHook         = floatNextHook <+> manageDocks <+> manageHook def
38 39
        , startupHook        = startup
39 40
        }
40 41
41 42
startup :: X ()
42 43
startup = do
72 73
myKeys :: FilePath -> XConfig Layout -> Map (KeyMask, KeySym) (X ())
73 74
myKeys home conf@XConfig { XMonad.modMask = modMask } =
74 75
    Map.union ks (XMonad.keys def conf)
75 76
  where
76 77
    ks = Map.fromList
77 -
       [ ((modMask, xK_F12),                  safeSpawn "systemctl" ["suspend"])
78 -
       , ((modMask .|. shiftMask, xK_F12),    safeSpawn "systemctl" ["hibernate"])
79 -
       , ((modMask, xK_p),                    dmenu)
80 -
       , ((modMask, xK_Tab),                  toggleWS)
81 -
       , ((noModMask, xK_Print),              spawn $ printf "scrot -u -e 'mv $f %s/screenshots'" home)
78 +
       [ ((modMask, xK_F12),                    safeSpawn "systemctl" ["suspend"])
79 +
       , ((modMask .|. shiftMask, xK_F12),      safeSpawn "systemctl" ["hibernate"])
80 +
       , ((modMask, xK_p),                      dmenu)
81 +
       , ((modMask, xK_Tab),                    toggleWS)
82 +
       , ((modMask .|. controlMask, xK_Return), toggleFloatNext >> (spawn $ XMonad.terminal conf))
83 +
       , ((noModMask, xK_Print),                spawn $ printf "scrot -u -e 'mv $f %s/screenshots'" home)
82 84
       ]
83 85
    dmenu :: X ()
84 86
    dmenu = safeSpawn
85 87
        "dmenu_run" [ "-fn", "Inconsolata-14,Monospace-12"
86 88
                    , "-i"