如何在xmonad中拥有超过9个工作区?

bit*_*ask 10 desktop haskell xmonad

我可以更改工作区的名称,并且可能只是通过更改此常量来添加更多:

myWorkspaces = ["1","2","3?","4","5","6","7?","8?","9?"]
Run Code Online (Sandbox Code Playgroud)

如果我向数组添加内容,将会有更多工作空间,但我如何键入它们?Mod-1到Mod-9是默认设置,但我找不到有关如何更改默认值的文档.

bit*_*ask 11

我找到了这个示例配置中的答案,并与键名列表一起,它看起来如下所示:

定义第十个工作区:

myExtraWorkspaces = [(xK_0, "0"),(xK_minus, "tmp"),(xK_equal, "swap")]

myWorkspaces = ["1","2","3?","4","5","6","7?","8?","9?"] ++ (map snd myExtraWorkspaces)
Run Code Online (Sandbox Code Playgroud)

然后键绑定看起来像这样:

myKeys = 
      [ -- ... some more keys ...
      ] ++ [
        ((myModMask, key), (windows $ W.greedyView ws))
        | (key,ws) <- myExtraWorkspaces
      ] ++ [
        ((myModMask .|. shiftMask, key), (windows $ W.shift ws))
        | (key,ws) <- myExtraWorkspaces
      ]
Run Code Online (Sandbox Code Playgroud)

在此示例中,使用斜杠键,但可以使用上面列表中的任何其他键.

最后:

main = do
 xmonad $ config {
           workspaces = myWorkspaces
        } `additionalKeys` (myKeys)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!为了使您的示例正常工作,我还需要“导入合格的 XMonad.StackSet as W”,并且必须将两次出现的“myModMask”替换为“modm”。我不确定“modm”在哪里定义,但它与其他键绑定中使用的模式匹配。 (2认同)