xmonad-contrib-0.7: Third party extensions for xmonadContentsIndex
XMonad.Util.CustomKeys
MaintainerValery V. Vorotynsev <valery.vv@gmail.com>
Contents
Usage
Description

Customized key bindings.

(See also XMonad.Util.EZConfig in xmonad-contrib.)

Synopsis
customKeys :: (XConfig Layout -> [(KeyMask, KeySym)]) -> (XConfig Layout -> [((KeyMask, KeySym), X ())]) -> XConfig Layout -> Map (KeyMask, KeySym) (X ())
customKeysFrom :: XConfig l -> (XConfig Layout -> [(KeyMask, KeySym)]) -> (XConfig Layout -> [((KeyMask, KeySym), X ())]) -> XConfig Layout -> Map (KeyMask, KeySym) (X ())
Usage

1. In ~/.xmonad/xmonad.hs add:

 import XMonad.Util.CustomKeys

2. Set key bindings with customKeys:

 main = xmonad defaultConfig { keys = customKeys delkeys inskeys }
     where
       delkeys :: XConfig l -> [(KeyMask, KeySym)]
       delkeys XConfig {modMask = modm} =
           -- we're preferring Futurama to Xinerama here
           [ (modm .|. m, k) | (m, k) <- zip [0, shiftMask] [xK_w, xK_e, xK_r] ]

       inskeys :: XConfig l -> [((KeyMask, KeySym), X ())]
       inskeys conf@(XConfig {modMask = modm}) =
           [ ((mod1Mask,             xK_F2  ), spawn $ terminal conf)
           , ((modm .|. controlMask, xK_F11 ), spawn "xscreensaver-command -lock")
           , ((mod1Mask,             xK_Down), spawn "amixer set Master 1-")
           , ((mod1Mask,             xK_Up  ), spawn "amixer set Master 1+")
           ]

0 (hidden feature). You can always replace bindings map entirely. No need to import CustomKeys this time:

 import XMonad
 import System.Exit
 import qualified Data.Map as M

 main = xmonad defaultConfig {
          keys = \_ -> M.fromList [
                  -- Let me out of here! I want my KDE back! Help! Help!
                  ( (0, xK_Escape), io (exitWith ExitSuccess) ) ] }
customKeys
:: (XConfig Layout -> [(KeyMask, KeySym)])shortcuts to delete
-> (XConfig Layout -> [((KeyMask, KeySym), X ())])key bindings to insert
-> XConfig Layout
-> Map (KeyMask, KeySym) (X ())
Customize defaultConfig -- delete needless shortcuts and insert those you will use.
customKeysFrom
:: XConfig loriginal configuration
-> (XConfig Layout -> [(KeyMask, KeySym)])shortcuts to delete
-> (XConfig Layout -> [((KeyMask, KeySym), X ())])key bindings to insert
-> XConfig Layout
-> Map (KeyMask, KeySym) (X ())
General variant of customKeys: customize key bindings of third-party configuration.
Produced by Haddock version 0.8