Xmonad - 将键绑定到命令链

Xmonad - 将键绑定到命令链

我正在使用 Xmonad 的 EZConfig 模块。我想绑定ModMask s以首先将当前焦点窗口移至我的其他屏幕,然后将焦点移至我的其他屏幕。

使用 CycleWS 模块可以通过运行“shiftNextScreen”然后运行“nextScreen”来实现

我可以将两个命令绑定到同一个键吗?

另外,我尝试过

((modMask, xK_s),
     shiftNextScreen nextScreen)

但这样做不行,因为 nextScreen 变成了 shiftNextScreen 的参数,这毫无意义。我根本不了解 haskell。

答案1

似乎到现在为止还没有人能回答你的问题。让我试试:

总结

((modMask, xK_s),
     sequence_ [shiftNextScreen, nextScreen])

应该管用。

为什么?

如果你看看http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-CycleWS.html

您会看到您的函数有以下类型:

nextScreen :: X ()
shiftNextScreen :: X ()

结合 X 是 Monad 的知识以及您想要的键绑定类型 (ButtonMask,KeySym), X ()

结合nextScreenshiftNextScreen得到类型结果X ()

如果我们简单列出如下清单:

[nextScreen,shiftNextScreen]我们有类型[X ()],接近但还不是我们想要的。

我们知道 X 是一个 monad,快速搜索一下霍格尔出现sequence_

得到的结果为:

sequence_ [shiftNextScreen, nextScreen]

它产生了类型X (),因此对于键映射的右侧来说是一个有效的操作。

相关内容