我知道如何使用 manageHook 和 composeAll 将特定应用程序与特定工作区关联。我正在寻找一种在特定工作区上生成应用程序的方法,即具有类型签名的函数,String -> workSpaceId -> X ()
其示例用法如下:
spawnToWorkspace "emacs" "2:code"
答案1
更正确(也是更现代的;我不认为 SpawnOn 当时在发布的 XMonad 中,很多好东西只在 darcs 中)的方法是
import XMonad.Actions.SpawnOn
然后使用动作
spawnOn "2:code" "emacs"
看http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.html了解详情。
答案2
好吧,实际上它比我想象的要容易:
spawnToWorkspace :: String -> String -> X ()
spawnToWorkspace program workspace = do
spawn program
windows $ W.greedyView workspace
答案3
为了geekosaur 的回答为了工作,您还需要告诉 XMonad 使用以下设置来管理 Spawns manageHook
:
xmonad $ def
{
...
, ...
, manageHook = manageSpawn <+> manageHook def
, ...
}
包含此设置后spawnOn
应该可以按预期工作。