xmonad中的自定义键绑定,不会影响其他绑定

时间:2014-02-19 21:07:12

标签: xmonad

我正在使用xmonad,想要一种锁定屏幕的好方法。所以我安装了slock(apt-get install slock),效果很好。

然后我想要一个简单的键序列来触发slock,所以我在xmonad.hs中定义了这个新函数:

import qualified Data.Map as M

myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
        [ ((modMask .|. controlMask, xK_l),
           spawn "slock")
        ]

并在主要功能中添加keys = myKeys

这使我能够使用Ctrl+Alt+l很好地锁定屏幕,但是其他xmonad快捷方式都不会起作用!

有没有办法让我添加一个新的键绑定,但不改变任何现有的绑定?

1 个答案:

答案 0 :(得分:3)

正如您可能已经猜到的那样,通过在主函数中设置keys = myKeys,您所做的就是覆盖默认设置。您可以使用additionalKeys运算符添加密钥,如下所示:

main =
   xmonad $ desktopConfig `additionalKeys` myKeys

或者,如果您对desktopConfig有其他一些自定义,

main =
   xmonad $ desktopConfig
    { 
       -- other customisations
    } `additionalKeys` myKeys