首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Haskell dmenu在按键时自动启动

Haskell dmenu在按键时自动启动
EN

Stack Overflow用户
提问于 2013-07-03 19:32:26
回答 1查看 317关注 0票数 5

我才刚刚开始使用haskell和xmonad。我想知道如何对其进行配置,以便在没有打开任何窗口的情况下,任何按键输入都会启动dmenu。比方说,如果我有一个空白屏幕,并开始输入"firefox",dmenu就会启动,例如我的"firefox“。

这并不重要,但如果我能在正确的方向上得到一些提示就太好了:)

EN

回答 1

Stack Overflow用户

发布于 2013-07-03 20:23:37

这是一个有趣的想法!现在,让我们假设您只想映射“f”键。我想到的方法是将键映射到一个函数,该函数检查是否有任何窗口打开。如果没有打开的窗口,它会启动dmenu,预先填充您刚刚输入的字符(即'f')。如果有其他窗口打开,它会执行您通常希望该键执行的任何操作。

代码语言:javascript
复制
 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

备注:

  1. 我不知道如何查找窗口是否已经打开,但我怀疑你会在xmonad或xmonad-contrib包中找到此功能。
  2. 我不知道如何在输入字符的情况下启动dmenu。也许XMonad.Util.Dmenu中的一些东西会有所帮助,我认为你必须在additionalKeys中为你想要映射的每个键建立一个单独的条目。也许仅仅映射26个字母键就足够了。

要了解更多关于Xmonad内部的信息,我推荐jekor的视频:part 1 part 2

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17446826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档