5
我只是刚刚开始的haskell和xmonad。 我想知道如何配置它,以便如果没有窗户打开,任何关键输入将启动dmenu。所以说,如果我有一个空白的屏幕,并开始键入“火狐”,dmenu将启动与我的“火狐”,例如在它内。Haskell dmenu按键自动启动
几乎没有重要的,但是这将是很好,如果我能在正确的方向得到一些指点:)
我只是刚刚开始的haskell和xmonad。 我想知道如何配置它,以便如果没有窗户打开,任何关键输入将启动dmenu。所以说,如果我有一个空白的屏幕,并开始键入“火狐”,dmenu将启动与我的“火狐”,例如在它内。Haskell dmenu按键自动启动
几乎没有重要的,但是这将是很好,如果我能在正确的方向得到一些指点:)
这是一个有趣的想法!目前,假设您只想映射'f'键。我想到的方法是将键映射到一个函数,该函数检查是否有任何窗口打开。如果没有窗口打开,它会启动dmenu,并用刚刚输入的字符(即'f')预填充它。如果有其他窗口打开,它会执行您通常希望该密钥执行的任何操作。
main = xmonad $ blah blah blah
`additionalKeys`
[
((0, xK_f), multiMapKey f someAction)
-- other mappings
]
multiMapKey :: Char -> X() -> X()
multiMapKey c someAction =
if ?a window is open?
then launch dmenu with c already entered
else someAction
注:
additionalKeys
中为你想映射的每个键单独输入。也许只需映射26个字母键就足够了。
@closevoter xmonad是(书面和)在真正的哈斯克尔配置。你从字面上编程窗口系统。不能在不编写haskell的情况下配置xmonad。这是编程。 – AndrewC