Oczywiście wszystko działa out of the box ale nie spodobała mi się jedna rzecz. Otóż mój wspaniały panel (XMobar) wyświetlał się tylko na jednym monitorze. Niestety nie znalazłem w sieci żadnego poradnika jak zrobić aby wyświetlał się na dwóch więc jakby ktoś też tego potrzebował to zamieszczam poniżej instrukcję jak to zrobić (jako, że znam Haskella to nie było to dla mnie wielkim problemem).
Po pierwsze musimy utworzyć dwie instancje XMobara ze wskazaniem, na którym monitorze ma się uruchomić. W tym celu edytujemy nasz xmonad.hs i dorzucamy do funkcji main takie 2 linijki:
xmproc <- spawnPipe "xmobar -x 0" xmpro2 <- spawnPipe "xmobar -x 1 ~/.xmobarrc2"Parametr x oznacza numer monitora zaczynając od 0. Ja akurat potrzebowałem aby każdy panel wyglądał nieco inaczej (głównie ze względu na program trayer, który ma się znaleźć tylko na jednym monitorze) więc druga instancja uruchamia się z innym plikiem konfiguracyjnym (.xmobarrc2). W drugim kroku musimy powiedzieć menadżerowi aby wysyłał takie same dane do dwóch paneli. Edytujemy więc w xmonad.hs funkcję logHook:
xmonad $ defaultConfig { manageHook = manageDocks <+> manageHook defaultConfig , layoutHook = avoidStruts $ smartBorders $ tabbed shrinkText myTabConfig ||| layoutHook defaultConfig , logHook = dynamicLogWithPP $ xmobarPP { ppOutput = \s -> do hPutStrLn xmproc s hPutStrLn xmpro2 s , ppTitle = xmobarColor "green" "" . shorten 150 } , modMask = mod4Mask , terminal = "gnome-terminal" , keys = \c -> myKeys c `M.union` keys defaultConfig c }Interesuje nas linijka przy logHook a dokładnie ppOutput. Nie ma tam nic nadzwyczajnego, po prostu przekazujemy dane do obydwu instancji XMobara. I to właściwie wszystko. Mój cały config do XMonada dostępny jest tutaj. A do XMobarów kolejno tutaj i tutaj.
> w przeciwieństwie do innych menadżerów jak Gnome czy KDE, gdzie działa to fatalnie (nigdy nie wiem, na którym monitorze wyświetli się okno i takie tam).
OdpowiedzUsuńNa takie problemy jest DevilsPie - w pliku konfiguracyjnym wyznaczasz swoim programom stałe miejsce na monitorze. Window manager pozostaje niezmieniony.
>Na takie problemy jest DevilsPie - w pliku konfiguracyjnym wyznaczasz swoim programom stałe miejsce na monitorze. Window manager pozostaje niezmieniony.
OdpowiedzUsuńYhy, a nie mogłoby być tak normalnie tzn. tam gdzie się znajduje tam ma się program otworzyć? A tylko jeśli chcę inaczej to zaglądam do configa? No coż poza tym gnome, kde mnie jakoś nie bawią, ta cała zabawa z rozmieszczaniem okien, minimalizowaniem, rozciąganiem... :)