web-dev-qa-db-ja.com

xmonadの特定のワークスペースでアプリケーションを起動します

ManageHookとcomposeAllを使用して、特定のアプリケーションを特定のワークスペースに関連付ける方法を知っています。私が探しているのは、特定のワークスペースでアプリケーションを生成する方法です。つまり、タイプシグネチャString -> workSpaceId -> X ()を持つ関数で、その使用例は次のようになります。

spawnToWorkspace "emacs" "2:code"
13
user63896

さて、それは私が思っていたよりも実際には簡単でした:

spawnToWorkspace :: String -> String -> X ()
spawnToWorkspace program workspace = do
                                      spawn program     
                                      windows $ W.greedyView workspace
5
user63896

より正確な(そして現代的な; SpawnOnが当時リリースされたXMonadにあったとは思わない、非常に多くの良いものがdarcsにしかなかった)これを行う方法は

import XMonad.Actions.SpawnOn

次に、アクションを使用します

spawnOn "2:code" "emacs"

詳細については、 http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.html を参照してください。

9
geekosaur