XMonad在不同的工作区上启动

时间:2012-11-07 23:02:55

标签: haskell xmonad

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

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

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

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

不过,我能怎样对待我的意图?

1 个答案:

答案 0 :(得分:3)

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

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

className可能会有所不同。