2

我想在 xmonad 启动时在不同的工作区(这很重要)中启动一些应用程序。所以,我写了以下内容startupHook

startupApps :: [String]
startupApps = ["konsole", "emacs", "firefox", "gvim", "konsole"]

startupSpawn :: X ()
startupSpawn =  zipWithM_ id (map (spawnOn . show) [1..])  startupApps

但是,它会在第一个工作区中生成所有应用程序。这似乎是更普遍问题的一部分——如果我启动应用程序,它不是在实际启动时而是在加载时获得工作区。所以,如果我在 WS1 上启动 firefox,然后切换到 WS2,firefox 将在 WS2 上生成。

不过,我能对我的意图做些什么呢?

4

1 回答 1

3

您可以使用manageHook告诉 xmonad 将某些应用程序移动到某些桌面。

myManageHook = composeAll . concat $ [
    [ className =? "Firefox" --> doF (shiftToWs 2) ]
  , [ className =? "gvim" --> doF (shiftToWs 3) ]
  -- and so on
  ]

不过,classNames 可能会有所不同。

于 2012-11-07T23:10:10.617 回答