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

Gau*_*tam 1 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")
        ]
Run Code Online (Sandbox Code Playgroud)

并添加keys = myKeys到主函数中。

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

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

mhw*_*bat 5

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

main =
   xmonad $ desktopConfig `additionalKeys` myKeys
Run Code Online (Sandbox Code Playgroud)

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

main =
   xmonad $ desktopConfig
    { 
       -- other customisations
    } `additionalKeys` myKeys
Run Code Online (Sandbox Code Playgroud)