2014-02-19 109 views
1

我正在使用xmonad,並希望鎖定屏幕的好方法。所以我安裝了slock(apt-get install slock),而且效果很好。xmonad中的自定義鍵綁定而不影響其他綁定

然後,我想一個簡單的按鍵順序觸發SLOCK,所以我定義在xmonad.hs這個新功能:

import qualified Data.Map as M 

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

,並在主函數中添加keys = myKeys

這使我很好地鎖定屏幕使用Ctrl+Alt+l,但然後沒有其他的xmonad快捷方式工作!

有沒有辦法讓我添加一個新的密鑰綁定,但不改變任何現有的綁定?

回答

3

正如您可能已經猜到的,通過在主函數中設置keys = myKeys,您所做的是覆蓋默認設置。您可以使用additionalKeys運營商加入你的鑰匙,就像這樣:

main = 
    xmonad $ desktopConfig `additionalKeys` myKeys 

或者,如果你有一些其他的定製,以desktopConfig,

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

我有一些錯誤:'xmonad.hs:18 :52:不在範圍內:'M.fromList'' 'xmonad.hs:28:12:不在範圍內:'additionalKeys''我應該從哪裏獲得這些內容? – eloyesp

+1

添加'將合格的Data.Map導入爲M'並'將XMonad.Util.EZConfig(additionalKeys)'導入到文件的頂部。 – mhwombat