gpt4 book ai didi

haskell - xmonad - 使用鼠标按钮 6 和 7 切换工作区

转载 作者:行者123 更新时间:2023-12-02 13:26:54 26 4
gpt4 key购买 nike

我希望能够使用鼠标上的按钮 6 和 7(滚轮两侧的摇杆按钮)移动到上一个和下一个工作区。我猜它与 additionalMouseBindings 有关,如果它遵循与 additionalKeys 相同的模式,我会很高兴。唉,事实并非如此,而且我也不完全理解如何定义新的绑定(bind)。天真的:

`additionalMouseBindings`
[ -- get the middle button to switch views
((0, button6), spawn "xdotool key super+Down")
, ((0, button7), spawn "xdotool key super+Up")
]

不起作用,其原因对于了解 Haskell 和 xmonad 的人来说是显而易见的。

TIA 提出任何建议。

最佳答案

“不起作用”我想你的意思是它无法编译。

@chi 评论后,我检查了按钮:button6 and 7 are not defined ,所以这是第一个问题。但根据this post如果您只需提供额外的按钮号码,这些按钮就可以使用。

您似乎正在使用 additionalMouseBindings来自 XMonad.Util.EZConfig 模块的函数。它的类型是:

additionalMouseBindings :: XConfig a -> [((ButtonMask, Button), Window -> X ())] -> XConfig a

您用反引号将其括起来,这将其变成了运算符。您没有在此处显示类型 XConfig a 的第一个操作数,所以你可能会在这里遇到第一个错误。您应该拥有以下形式的内容:

 yourPreviousConfig `additionalMouseBindings` listOfBindings 

该表达式等于您的新 XConfig。

您可以看到鼠标按钮的绑定(bind)列表与按键的类型不同。列表元素的类型为 ((ButtonMask, Button), Window -> X ()) :按钮与接受 Window 并返回 X() (而键与 X() 类型的表达式相关联)。 XMonad 将使用单击的窗口作为参数来调用您在此处指定的函数。你不关心你的情况下的 window 。 spawn "xdotool key super+Down" 的类型为 X (),您可以将其转换为采用 Window (或任何其他内容)的函数)通过创建 lambda function :

((0, 6), \w -> spawn "xdotool key super+Down")

或者您可以使用const获取始终返回 spawn "xdotool key super+Down" 的常量函数:

((0, 6), const $ spawn "xdotool key super+Down")

最后,调用 xdotool 来切换工作空间似乎确实有点过分了。也许您已经在使用 some of the functions of the module here在你的键绑定(bind)中?您也可以在鼠标绑定(bind)中使用它们。 nextWSprevWS 的类型为 X(),因此您需要使用它们创建常量函数,如上所示。

关于haskell - xmonad - 使用鼠标按钮 6 和 7 切换工作区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27035836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com