понедельник, 23 марта 2009 г.

xmonad + xmobar: заголовки окон

После того, как произошла стыковка xmonad и xmobar, последний (при должной конфигурации) начинает отображать заголовок активного окна. Да вот незадача: в заголовках с русскоязычными словами и буквами появляются странного вида символы, опознать которые не представляется возможным. Для решения этой закавыки нужно изменить файл конфигурации xmonad.hs следующим образом:

...import System.IO.UTF8...main = doxmproc <- spawnPipe "xmobar" -- стартует xmobarxmonad $ defaultConfig{ ...-- вот здесь указывает кодировку выходной последовательности (utf8, которая была ранее объявлена через "import System.IO.UTF8")
, logHook = dynamicLogWithPP $ xmobarPP{ ppOutput = System.IO.UTF8.hPutStrLn xmproc, ppTitle = xmobarColor "green" "" . shorten 50}...}

Файл настройки xmobar (мой) такой:

Config { font = "xft:Consolas-9", bgColor = "black", fgColor = "grey", position = Top, lowerOnStart = True, commands = [
Run Network "ppp0" ["-L","0","-H","32","--normal","green","--high","red"] 10, Run Network "ppp1" ["-L","0","-H","32","--normal","green","--high","red"] 10, Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10, Run Memory ["-t","Mem: %"] 10
, Run Swap [] 10
, Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
, Run StdinReader
]
, sepChar = "%"
, alignSep = "}{"
, template = "%StdinReader% }{ %cpu% | %memory% * %swap% | %ppp0% - %ppp1% |
%date%"
}


Результат


2 комментария:

_Andrey_ комментирует...

А почему вы для работы xmobar используете stdin, а не pipe?

Mikhail Pimenov комментирует...

С haskell'ом я не особо знаком. Нужен был оконный менеджер, нужен был и xmobar как дополнение. Так ли принципиально уходить от Stdin (который работает) в другую сторону? Но не исключено, что я чего-то не знаю, и xmobar буквально воспарит при использовании pipe :).