Copyright | (c) Jason Creighton <jcreigh@gmail.com> |
---|---|
License | BSD3-style (see LICENSE) |
Maintainer | Jason Creighton <jcreigh@gmail.com> |
Stability | unstable |
Portability | unportable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
A module that allows the user to create a sub-mapping of key bindings.
Synopsis
- submap :: Map (KeyMask, KeySym) (X ()) -> X ()
- visualSubmap :: WindowConfig -> Map (KeyMask, KeySym) (String, X ()) -> X ()
- submapDefault :: X () -> Map (KeyMask, KeySym) (X ()) -> X ()
- submapDefaultWithKey :: ((KeyMask, KeySym) -> X ()) -> Map (KeyMask, KeySym) (X ()) -> X ()
- subName :: String -> X () -> (String, X ())
Usage
First, import this module into your ~/.xmonad/xmonad.hs
:
import XMonad.Actions.Submap
Allows you to create a sub-mapping of keys. Example:
, ((modm, xK_a), submap . M.fromList $ [ ((0, xK_n), spawn "mpc next") , ((0, xK_p), spawn "mpc prev") , ((0, xK_z), spawn "mpc random") , ((0, xK_space), spawn "mpc toggle") ])
So, for example, to run 'spawn "mpc next"', you would hit mod-a (to
trigger the submapping) and then n
to run that action. (0 means "no
modifier"). You are, of course, free to use any combination of
modifiers in the submapping. However, anyModifier will not work,
because that is a special value passed to XGrabKey() and not an actual
modifier.
For detailed instructions on editing your key bindings, see XMonad.Doc.Extending.
submap :: Map (KeyMask, KeySym) (X ()) -> X () Source #
Given a Map
from key bindings to X () actions, return
an action which waits for a user keypress and executes the
corresponding action, or does nothing if the key is not found in
the map.
:: WindowConfig | The config for the spawned window. |
-> Map (KeyMask, KeySym) (String, X ()) | A map |
-> X () |
Like submap
, but visualise the relevant options.
Example
import qualified Data.Map as Map import XMonad.Actions.Submap gotoLayout :: [(String, X ())] -- for use with EZConfig gotoLayout = -- assumes you have a layout named "Tall" and one named "Full". ["M-l", visualSubmap def $ Map.fromList $ map (\(k, s, a) -> ((0, k), (s, a))) [ (xK_t, "Tall", switchToLayout "Tall") -- "M-l t" switches to "Tall" , (xK_r, "Full", switchToLayout "Full") -- "M-l r" switches to "full" ]]
One could alternatively also write gotoLayout
as
gotoLayout = ["M-l", visualSubmap def $ Map.fromList $ [ ((0, xK_t), subName "Tall" $ switchToLayout "Tall") , ((0, xK_r), subName "Full" $ switchToLayout "Full") ]]
submapDefault :: X () -> Map (KeyMask, KeySym) (X ()) -> X () Source #
Like submap
, but executes a default action if the key did not match.
submapDefaultWithKey :: ((KeyMask, KeySym) -> X ()) -> Map (KeyMask, KeySym) (X ()) -> X () Source #
Like submapDefault
, but sends the unmatched key to the default
action as argument.