XMobar'ı başlatmak için bir kabuk komut dosyanız varsa, o zaman 'yanlış yapıyorsunuz'. Xmonad.hs config kaynak dosyasındaki doğru Haskell işlevlerini kullanarak xmobar'ı başlatmalısınız. Yapılandırmalarımın ana işlevine bir göz atın:
-- put it all together
main = do
nScreens <- countScreens -- just in case you are on a laptop like me count the screens so that you can go
xmonad =<< xmobar myBaseConfig
{ modMask = myModMask
, workspaces = withScreens nScreens myWorkspaces
, layoutHook = myLayoutHook nScreens
, manageHook = myManageHook
, borderWidth = myBorderWidth
, normalBorderColor = myNormalBorderColor
, focusedBorderColor = myFocusedBorderColor
, keys = myKeys
, mouseBindings = myMouseBindings
, logHook = myLogHook
}
where
myLogHook = dynamicLogXinerama
myBaseConfig = gnomeConfig
Belirgin çizgi budur:
xmonad =<< xmobar myBaseConfig
Bu, xmonad'ı yeniden yüklediğinizde bile çalıştırılması gerektiği gibi xmobar'ı çalıştırır. 'Xmobar' işlevini şu ifadeden alırsınız:
import XMonad.Hooks.DynamicLog (xmobar)
Hangi sırayla xmonad-katkı paketinden geliyor .
Gördüğünüz gibi, XMonad ile yapmak istediğiniz çoğu şey zaten çözülmüş bir sorundur, sadece nereye bakacağınızı bilmeniz gerekir. Temel olarak, senaryonuzu boşalt ve onun yerine kullan. Umarım bu yardımcı olur.
spawnPipe
XMonad web sitesinde kodu buldum, nereye bakacağınızı bilmek gerçekten kolay değil! Ama sonunda, daha temiz olduğu için kullandığım tekniği,DynamicLog
testlerimdeki eski süreci öldürmediğini tercih ediyorum . XMonad'ı gerçekten seviyorum, ancak Haskell iyi bir yapılandırma dili değil.