ManageHookとcomposeAllを使用して、特定のアプリケーションを特定のワークスペースに関連付ける方法を知っています。私が探しているのは、特定のワークスペースでアプリケーションを生成する方法です。つまり、タイプシグネチャString -> workSpaceId -> X ()
を持つ関数で、その使用例は次のようになります。
spawnToWorkspace "emacs" "2:code"
さて、それは私が思っていたよりも実際には簡単でした:
spawnToWorkspace :: String -> String -> X ()
spawnToWorkspace program workspace = do
spawn program
windows $ W.greedyView workspace
より正確な(そして現代的な; SpawnOnが当時リリースされたXMonadにあったとは思わない、非常に多くの良いものがdarcsにしかなかった)これを行う方法は
import XMonad.Actions.SpawnOn
次に、アクションを使用します
spawnOn "2:code" "emacs"
詳細については、 http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.html を参照してください。