Starten Sie Anwendungen auf bestimmten Arbeitsbereichen in xmonad

13

Ich weiß, wie ich bestimmte Anwendungen mithilfe von manageHook und composeAll bestimmten Arbeitsbereichen zuordnen kann. Was ich suche, ist eine Möglichkeit, Anwendungen auf bestimmten Arbeitsbereichen zu erzeugen, dh eine Funktion mit Typensignatur, String -> workSpaceId -> X ()deren Beispielverwendung etwa so aussehen würde:

spawnToWorkspace "emacs" "2:code"
user63896
quelle

Antworten:

9

Umso richtiger (und moderner; ich glaube nicht, dass SpawnOn damals in der veröffentlichten XMonad enthalten war, eine Menge guter Sachen waren nur in Darsi), um dies zu tun

import XMonad.Actions.SpawnOn

und dann die Aktion verwenden

spawnOn "2:code" "emacs"

Weitere Informationen finden Sie unter http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.html .

Geekosaurier
quelle
6
Funktioniert das noch Ich bin auf xmonad 0.10 und spawnOn scheint immer noch nur die Anwendung auf dem aktuellen Arbeitsbereich zu
erzeugen
5

Okay, es war tatsächlich einfacher als ich dachte:

spawnToWorkspace :: String -> String -> X ()
spawnToWorkspace program workspace = do
                                      spawn program     
                                      windows $ W.greedyView workspace
user63896
quelle
1
Dies ist die einzige Lösung, die zu funktionieren scheint, es scheint, dass spawnOnvon XMonad-Contrib mit neueren Versionen von XMonad gebrochen wird.
eazar001