我想在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上生成。
不过,我能怎样对待我的意图?
答案 0 :(得分:3)
您可以使用manageHook
告诉xmonad将某些应用程序移动到某些桌面。
myManageHook = composeAll . concat $ [
[ className =? "Firefox" --> doF (shiftToWs 2) ]
, [ className =? "gvim" --> doF (shiftToWs 3) ]
-- and so on
]
className
可能会有所不同。