至于键绑定,使用additionalKeys(来自模块XMonad.Util.EZConfig)。
以下是我使用的一些键绑定(也许您需要更多导入才能使一切正常):
defaultConfig
{
-- stuff
} `additionalKeys`
[ ((0, xK_Print), spawn "scrot")
, ((mod1Mask, xK_Print), spawn "scrot -m -d 1")
, ((mod1Mask .|. shiftMask, xK_t), spawn "killall trayer && trayer --edge top --align right --SetDockType true --SetPartialStrut true --expand true --transparent true --width 5 --alpha 255 --tint 0x191970 --height 17")
, ((mod1Mask, xK_p), spawn "dmenu_run")
, ((mod1Mask, xK_b ), sendMessage ToggleStruts)
, ((mod1Mask, xK_m ), focusUrgent)
, ((mod1Mask, xK_n ), D.dzen "Hi, mom!" (seconds 4))
, ((mod1Mask, xK_f ), goToSelected defaultGSConfig)
, ((mod4Mask, xK_l ), spawn "cmus-remote -n ") --next song
, ((mod4Mask, xK_h ), spawn "cmus-remote -r") --previous song
, ((mod4Mask, xK_s ), spawn "cmus-remote -s") --stop
, ((mod4Mask, xK_p ), spawn "cmus-remote -p") --play
, ((mod4Mask, xK_Right ), spawn "cmus-remote -k +5") --forward 5 sec
, ((mod4Mask, xK_Left ), spawn "cmus-remote -k -5") --rewind 5 sec
, ((mod4Mask, xK_KP_Subtract ), spawn "amixer -q sset PCM 2dB-") --quieter
, ((mod4Mask, xK_KP_Add ), spawn "amixer -q sset PCM 2dB+") --louder
, ((mod1Mask .|. shiftMask, xK_udiaeresis), removeWorkspace)
, ((mod1Mask .|. shiftMask, xK_numbersign), selectWorkspace defaultXPConfig)
]
D.dzen 来自import qualified XMonad.Util.Dzen as D。我不使用 dzen 作为状态栏,但也许研究这个模块可能会给你一些提示。
编辑:这是一个 dzen 配置:And1's_xmonad.hs。摘自该站点,并附有许多示例:Config_archive。
edit2:我刚刚使用了新的statusBar 函数,它显然是相当新的并且想出了一个工作示例。
edit3:删除了 logHook,因为 statusBar 不需要它。 main 现在看起来像这样:
main = do
xmonad =<< statusBar "dzen2" myPP toggleStrutsKey
defaultConfig { --stuff
}
keys 设置对我不起作用,我不得不坚持使用additionalKeys(然后不要忘记大括号):
main = do
xmonad =<< statusBar "dzen2" myPP toggleStrutsKey
(defaultConfig { --stuff
} `additionalKeys`
[ -- key bindings
])
整理完 xmonad.hs 后,我还可以提供整个文件..