2012-05-25 9 views
7

Chciałbym, aby moje programy odradzały się na ekranie, na którym ustawiono ostrość, gdy naciśnięcie klawisza nie zostało naciśnięte na ekranie, który jest obecnie ostry po zakończeniu ładowania.XMonad: Obszar roboczy SpawnOn, który był skupiony po naciśnięciu klawisza odrodzenia.

Powód: Moja obecna konfiguracja to Arch Linux + XMonad i mam ją uruchomioną na 6 monitorach. Używam XMonad od około roku, a moim jedynym problemem jest to, że otwarcie programów zajmuje trochę czasu. Na przykład przy pierwszym uruchomieniu chromu ładowanie zajmuje 3 nieparzyste sekundy. Naciskam mój klucz wiążący dla chrome, a następnie przechodzę do innego ekranu, aby zrobić coś innego. Ale gdy ładuje się chrom, ładuje się on na ekranie, na którym aktualnie koncentruje się nie na ekranie, który był skupiony w momencie naciśnięcia klawisza odradzania.

Moje umiejętności haszowania są ... nieistniejące. Programowałem wcześniej w Lisp i spędzam dużo czasu w C, python i JavaScript, więc jestem pewien, że mogę je odebrać, jeśli zajdzie taka potrzeba (więc proszę być czystym, jeśli chodzi o próbki w odpowiedziach).

Z góry dziękuję.

Odpowiedz

7

Znalazłem odpowiedź na moje własne pytanie.

Najpierw należy dodać do importu:

import XMonad.Actions.SpawnOn 

Następnie pod główną funkcją mieć coś takiego:

main = do 
xmonad $ defaultConfig 
    {  
     manageHook = myManageHooks <+> manageSpawn <+> manageDocks <+> manageHook defaultConfig 
     , startupHook = myStartupHook 
     , ETC..... 

Kluczem tutaj było dodanie manageSpawn w linii manageHook.

Następnie zastąpić spawn S z spawnHere:

, ((modMask, xK_w), spawn "chromium") 

Staje:

, ((modMask, xK_w), spawnHere "chromium") 
Powiązane problemy