2012-06-11 22 views
10

xmonad.hs'u yapılandırmaya çalışıyorum, böylece oturumuma başladığımda farklı çalışma alanlarında bir dizi farklı program başlatıyorum (Terminal 1'de; Firefox in 2; Pidgin in 3).XMonad belirtilen çalışma alanında başlangıçta spawn programları

Zaten XMonad.Actions.SpawnOn inceledik ancak ortak bir m() ile spawnOn bir X() ile getiriler değil gibi ben main = do ... bunu kullanamaz.

X -monad alan ve IO() ile dönen bir işlev var mı yoksa başka bir geçici çözüm var mı?

+0

X Monad'ın bir örneğidir, bu nedenle 'X()' 'm()' ile çalışır - do-notasyonunu X() 'eylemleriyle kullanabilirsiniz. – amindfv

cevap

8

startupHook'u kullanmanın ortak yolu, X() eylemini alır ve her başlangıçta gerçekleştirir. E.g.

main = xmonad $ defaultConfig 
    { startupHook = do 
     spawnOn "workspace1" "program1" 
     … 
     spawnOn "workspaceN" "programN" 
    } 
+1

Çalışma alanlarını "Terminal" "Web" "Sohbet" vb. Işlevlerine göre aradım ancak bu isimleri spawnOn işlevi için argüman olarak iletmek belirli programlarla (tutulması gibi) çalışmaz. Şu anda her uygulama için ClassName = gibi Manage Hooks ayarıyla çalışıyorum. "Firefox" -> doF (W.shift (customWorkspaces !! 1)) ve normal bir spawn – salbeira

+4

ile üretme Not "spawnOn", xmonad-contrib paketinden geliyor – amindfv

+1

{startupHook = do spawnOn "workspace2 var "" emacs " }, ancak program, girişten sonra ilk çalışma alanında veya xmonad'i yeniden başlatırsam geçerli çalışma alanında yeni başlatıldı. –

İlgili konular