次のように、特定のプログラムを特定のワークスペースで生成するように設定できることを知っています。
myManageHook = composeAll
[ classname =? "XTerm" --> doShift "3" ]
main = xmonad $ defaultConfig
{ manageHook = myManageHook <+> manageHook defaultConfig }
のすべてのインスタンスがXterm
ワークスペース "3" で生成されるようにします。私がやりたいことは、たとえば、ワークスペース「1」にいてFirefoxを起動した場合、すぐにワークスペース「2」に切り替えるように、すべての新しいプログラムを開始時にフォーカスされているワークスペースにスポーンさせることです、Firefox ウィンドウはワークスペース "1" にとどまります。
私はその効果のために何かを考えていました
import qualified XMonad.StackSet as W
myManageHook = composeAll
[ classname =? ".*" --> doShift currentTag ]
main = xmonad $ defaultConfig
{ manageHook = myManageHook <+> manageHook defaultConfig }
これは明らかに機能しませんが、うまくいけばアイデアが得られます。
私の質問は意図的にこれと非常に似ていますが、最初にフォーカスされたワークスペースですべてのプログラムを生成したいのですが、それらを開きます (dmenu、ターミナルなどから)。