LINUX.ORG.RU

xmonad+xmobar utf8


0

0

Привет. Столкнулся с проблемой: юзаю связку xmonad(0.8)+xmobar(0.9.2) на ubuntu 9.04, при этом в статусбаре заголовки окон с кириллицей отображаются некорректно (кракозябры). Конфиги xmonad и xmobar тривиальны:

.xmobarrc
<pre>
Config { font = "xft:Terminus-8"
, bgColor = "dimgrey"
, fgColor = "grey"
, position = TopW L 90
, lowerOnStart = True
, commands = [ Run Weather "EGPF" ["-t"," <tempF>F","-L","64","-H","77","--normal","yellow","--high","red","--low","light blue"] 36000
, Run Cpu ["-L","3","-H","50","--normal","yellow","--high","red"] 10
, Run Memory ["-t","Mem: <usedratio>%"] 10
, Run Date "%a %b %_d %k:%M" "date" 10
, Run StdinReader
]
, sepChar = "%"
, alignSep = "}{"
, template = "%StdinReader% }{ %cpu% | %memory% <fc=#ee9a00>%date%</fc>"
}
</pre>

xmonad.hs
<pre>
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import System.IO.UTF8

main = do
xmproc <- spawnPipe "/home/uncas/.cabal/bin/xmobar"
xmonad $ defaultConfig {
manageHook = manageDocks <+> manageHook defaultConfig
, layoutHook = avoidStruts $ layoutHook defaultConfig
, logHook = dynamicLogWithPP $ xmobarPP
{
ppOutput = System.IO.UTF8.hPutStrLn xmproc
, ppTitle = xmobarColor "yellow" "" . shorten 50
}
, modMask = mod4Mask
, focusedBorderColor = "#000000"
} `additionalKeys`
[
((mod4Mask, xK_b ), sendMessage ToggleStruts),
((mod4Mask, xK_n ), spawn "nautilus --no-desktop")
]
</pre>

xmobar собирал сам с поддержкой xft и utf8 и ставил с помощью cabal-install (разницы никакой). Замена в конфиге xmobar на font = "-*-terminus-*-*-*-*-12-*-*-*-*-*-iso10646-1" ничего не дает (другие комбинации и шрифты тоже пробовал).При запуске его отдельно от xmonad и ввода кириллицы через STDIN все работет нормально. Получается что проблема в самом WM. Жду ваших советов, заранее спасибо.


У меня так:

import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Util.Run

myXmobarPP h = xmobarPP
{
ppOutput = hPutStrLn h,
...
}

main = do
xmobar <- spawnPipe "xmobar"
xmonad $ defaultConfig
{
logHook = dynamicLogWithPP $ myXmobarPP xmobar,
....
}

Всё работает.

xetf ★★
()
Ответ на: комментарий от xetf

Спасибо. Оказывается надо было просто убрать явное указание utf8 из xmonad.hs.

befire
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.