Uruchamiaj aplikacje w określonych obszarach roboczych w xmonad

13

Wiem, jak powiązać określone aplikacje z określonymi obszarami roboczymi za pomocą manageHook i composeAll. To, czego szukam, to sposób na odradzanie aplikacji w określonych obszarach roboczych, tj. Funkcja z podpisem typu, String -> workSpaceId -> X ()której przykładowe użycie mogłoby wyglądać tak:

spawnToWorkspace "emacs" "2:code"
użytkownik63896
źródło

Odpowiedzi:

9

Bardziej poprawnym (i nowoczesnym; nie sądzę, że SpawnOn był wtedy w wydanym XMonadzie, strasznie dużo dobrych rzeczy było tylko w darcs) sposobem na zrobienie tego jest

import XMonad.Actions.SpawnOn

a następnie użyj akcji

spawnOn "2:code" "emacs"

Szczegółowe informacje można znaleźć na stronie http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-SpawnOn.html .

geekozaur
źródło
6
Czy to nadal działa? Jestem na Xmonadzie 0.10 i korzystam ze spawnOn nadal wydaje się po prostu spawnować aplikację w bieżącym obszarze roboczym ...
bhh1988
5

Okej, to było właściwie łatwiejsze niż myślałem:

spawnToWorkspace :: String -> String -> X ()
spawnToWorkspace program workspace = do
                                      spawn program     
                                      windows $ W.greedyView workspace
użytkownik63896
źródło
1
Jest to jedyne rozwiązanie, które wydaje się działać, wygląda na to, że spawnOnod XMonad-Contrib jest zepsuty z nowszymi wersjami XMonad.
eazar001