2012-06-11 15 views
10

Próbuję skonfigurować mój xmonad.hs, tak aby po uruchomieniu sesji uruchomiłem tablicę różnych programów na różnych obszarach roboczych (np. Terminal w 1, Firefox w 2, Pidgin w 3).Programy odradzania XMonad podczas uruchamiania w określonym obszarze roboczym

już zajrzał do XMonad.Actions.SpawnOn, ale jak spawnOn zwrotów posiadających X() a nie ze wspólnej m() nie mogę go używać w main = do ....

Czy istnieje funkcja, która ma X -monad i wraca z IO() lub czy istnieje inne obejście?

+0

X to instancja Monady, więc 'X()' działa z 'm()' - możesz użyć do-notacji z akcjami 'X()'. – amindfv

Odpowiedz

8

Najczęstszym sposobem jest użycie startupHook, która wykonuje akcję X() i wykonuje ją przy każdym uruchomieniu. E.g.

+1

Nazwałem moje obszary robocze zgodnie z ich funkcją "Terminal" "Sieć" "Czat" itp., Ale przekazanie tych nazw jako argumentów dla funkcji spawnOn nie działa z niektórymi programami (takimi jak zaćmienie). Obecnie pracuję nad nim z konfiguracją Manage Hooks dla każdej aplikacji, np. ClassName =? "Firefox" -> doF (W.shift (customWorkspaces !! 1)) i utworzenie ich za pomocą regularnego odrodzenia – salbeira

+4

Uwaga 'spawnOn' pochodzi z pakietu xmonad-contrib – amindfv

+1

Mam {startupHook = do spawnOn" workspace2 "" emacs " }, ale program jest właśnie uruchamiany w pierwszym obszarze roboczym po zalogowaniu lub bieżącym obszarze roboczym, jeśli ponownie uruchomię xmonad. –

Powiązane problemy