【问题标题】:How can I have more than 9 workspaces in xmonad?如何在 xmonad 中拥有超过 9 个工作区?
【发布时间】:2018-05-04 23:05:31
【问题描述】:

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

myWorkspaces = ["1","2","3⌂","4","5","6","7✉","8☺","9♫"]

如果我在数组中添加一些东西,就会有更多的工作区,但是我如何绑定它们呢? Mod-1 到 Mod-9 是默认设置,但我找不到有关如何更改该默认设置的文档。

【问题讨论】:

  • @AndrewC:不,它不是从字符串生成的。我可以说“foo”而不是“1”,这只会影响显示为工作区名称的内容。请注意,我使用 Unicode 字符来描述某些工作区的专用用途。

标签: haskell desktop xmonad


【解决方案1】:

我在this example configurationkey names list 中找到了答案,如下所示:

定义第十个工作区:

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

myWorkspaces = ["1","2","3⌂","4","5","6","7✉","8☺","9♫"] ++ (map snd myExtraWorkspaces)

那么键绑定是这样的:

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

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

最后:

main = do
 xmonad $ config {
           workspaces = myWorkspaces
        } `additionalKeys` (myKeys)

【讨论】:

  • 谢谢!为了使您的示例正常工作,我还需要import qualified XMonad.StackSet as W 并且必须将myModMask 的两个出现替换为modm。我不确定modm 是在哪里定义的,但它与其他键绑定中使用的模式匹配。
【解决方案2】:
-- | The default number of workspaces (virtual screens) and their names.
-- By default we use numeric strings, but any string may be used as a
-- workspace name. The number of workspaces is determined by the length
-- of this list.
--
-- A tagging example:
--
-- > workspaces = ["web", "irc", "code" ] ++ map show [4..9]
--
workspaces :: [WorkspaceId]
workspaces = map show [1 .. 9 :: Int]

在Config.hs中修改列表长度

【讨论】:

    【解决方案3】:

    另一种方式是dynamic workspaces。 添加

    import XMonad.Actions.DynamicWorkspaces
    import XMonad.Actions.CopyWindow(copy)
    

    到您的xmonad.hs 文件并添加

    , ((modm, xK_v), selectWorkspace myXPConfig)
    

    到该文件中的键绑定。 然后按 mod+v 可以让您按名称切换到工作区,如果它不存在则创建它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多