You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xmonad切换工作区按键绑定不生效问题求助

Xmonad工作区切换按键绑定问题解决
  • 问题根源:你写的绑定里用了mod1Mask(对应Alt键),但你期望的是用自己设置的mod4Mask(Win键)作为修饰键,所以这段配置实际生效的是Alt+数字切换工作区,而你想要的mod+数字(Win+数字)并没有被正确配置。另外原来的默认工作区绑定可能还在生效,导致你觉得还是旧组合可用。

  • 修复方法:
    把绑定代码里的mod1Mask替换成你已经定义好的modMask变量(因为你已经设置modMask = mod4Mask,用这个变量能统一管理修饰键,后续改起来也方便)。修改后的代码如下:

-- mod-[1..9], Switch to workspace N
-- mod-shift-[1..9], Move client to workspace N
[((m .|. modMask, k), windows $ f i)
    | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
    , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
++
  • 额外注意:如果你的按键配置是通过keys = \conf -> myKeys conf <++ keys def这种方式和默认绑定合并的,默认绑定可能会和你的新绑定冲突。这种情况下,要么把<++改成++(让你的绑定优先),要么直接去掉keys def,只保留自己配置的按键绑定,避免重复。

修改后用mod+q重启Xmonad,就能用Win+数字切换工作区,Win+Shift+数字移动窗口到对应工作区了。

内容的提问来源于stack exchange,提问作者Dubby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 04:32:15