Caracteres unicode suecos em xdm / xlogin

4

Eu decidi localizar minha tela de login do XDM, mas estou presa com caracteres suecos corrompidos.

EstouusandooDebianWheezycomoseguinte/etc/X11/xdm/Xresources

Xcursor.theme:whiteglassxlogin*login.translations:#override\CtrlR:abort-display()\n\F1:set-session-argument(failsafe)finish-field()\n\Delete:delete-character()\n\Left:move-backward-character()\n\Right:move-forward-character()\n\Home:move-to-begining()\n\End:move-to-end()\n\CtrlKP_Enter:set-session-argument(failsafe)finish-field()\n\KP_Enter:set-session-argument()finish-field()\n\CtrlReturn:set-session-argument(failsafe)finish-field()\n\Return:set-session-argument()finish-field()!xlogin*greeting:V34lkommentillCLIENTHOSTxlogin*greeting:VälkommentillCLIENTHOSTxlogin*namePrompt:Användare:!xlogin*fail:Fell36senord!xlogin*fail:Fellösenord!!xlogin*greetFace:Inconsolata:size=16!xlogin*face:Inconsolata:size=14!xlogin*promptFace:Inconsolata:size=14!xlogin*failFace:Inconsolata:size=20xlogin*greetFace-*-fixed-medium-r-*--*-200-*-*-*-*-iso8859-15xlogin*failFace-*-fixed-medium-r-*--*-200-*-*-*-*-iso8859-15xlogin*promptFace-*-fixed-medium-r-*--*-200-*-*-*-*-iso8859-15xlogin*face-*-fixed-medium-r-*--*-200-*-*-*-*-iso8859-15xlogin*borderWidth:0xlogin*frameWidth:0xlogin*innerFramesWidth:0xlogin*shdColor:grey30xlogin*hiColor:grey90xlogin*background:grey!xlogin*foreground:darkgreenxlogin*greetColor:blackxlogin*failColor:red*Foreground:black*Background:#fffff0xlogin*logoFileName:/home/stemid/heart.xpmxlogin*useShape:truexlogin*logoPadding:10XConsole.text.geometry:480x130XConsole.verbose:trueXConsole*iconic:trueXConsole*font:fixedChooser*geometry:700x500+300+200Chooser*allowShellResize:falseChooser*viewport.forceBars:trueChooser*label.font:*-newcenturyschoolbook-bold-i-normal-*-240-*Chooser*label.label:XDMCPHostMenufromCLIENTHOSTChooser*list.font:-*-*-medium-r-normal-*-*-230-*-*-c-*-iso8859-1Chooser*Command.font:*-newcenturyschoolbook-bold-r-normal-*-180-*

/etc/X11/xdm/Xsetup

#!/bin/sh##Thisscriptisrunasrootbeforeshowingloginwidget.exportLANGUAGE=sv_SEexportLANG=sv_SEexportLC_ALL=sv_SExsetroot-solid"#002b36"

sleep 10 && import -w root /home/stemid/.login_screen.jpg &
chown stemid:stemid /home/stemid.login_screen.jpg &

Originalmente eu estava tentando com o sv_SE.UTF-8 no ambiente, mas ambos os locais foram ativados no Debian locale-gen.

~/.xsession

export LANGUAGE=sv_SE
export LANG=sv_SE
export LC_ALL=sv_SE

test -f ~/.Xresources && xrdb ~/.Xresources

xsetroot -solid "#002b36"

xscreensaver -no-splash &
exec ratpoison

Eu também tentei definir a localidade em .profile.

O Debian geralmente não requer o xorg.conf, mas eu criei dois arquivos em /etc/X11/xorg.conf.d , um para o touchpad synaptics e outro para caminhos de fonte.

Section "Files"
ModulePath "/usr/lib/xorg/modules/"
FontPath "/usr/share/fonts/X11/misc/"
FontPath "/usr/share/fonts/X11/TTF/"
FontPath "/usr/share/fonts/X11/OTF"
FontPath "/usr/share/fonts/X11/Type1/"
FontPath "/usr/share/fonts/X11/100dpi/"
FontPath "/usr/share/fonts/X11/75dpi/"
FontPath "/usr/share/fonts/X11/misc/artwiz-aleczapka-se-1.3/"
EndSection

Eu também tentei instalar uma fonte que suportava especificamente o sueco, mas não posso usá-lo no Xresources usando a linha do xfontsel.

xlsfonts lista todas as fontes que espero estar lá, incluindo as novas artwiz. Não parece um problema de fonte para mim, mais como codificação.

Além disso, tentei dpkg-reconfigure locales e reiniciei o X com todas as três configurações. Esses são os únicos três locais que habilitei e testei cada um como o padrão.

  • sv_SE
  • sv_SE.ISO-8859-1
  • sv_SE.ISO-8859-15
  • sv_SE.UTF-8
por Stefan Midjich 01.09.2013 / 21:24

2 respostas

0

Eu suspeito que o xdm não suporta UTF-8, mesmo que seu ambiente possa ser definido dessa forma. Ainda falta ao aplicativo manipular a interpretação de strings e a codificação que eles podem conter.

Para corrigir esse problema, eu removi as strings codificadas do utf8 e substituí-as por suas contrapartes ISO-8859-15 (você pode obter a lista de seqüências iso-8859-15 para usar com man iso_8859-15 ). Então, isso pareceu funcionar para mim:

xlogin*greeting: V4lkommen till CLIENTHOST
xlogin*namePrompt: Anv4ndare:
xlogin*fail: Fel l6senord!

Isso também significa que eu não precisei configurar nada no Xsetup (eu estava originalmente tentando usar o sv_SE.utf8).

    
por 02.09.2013 / 00:54
0

ä no Latin-1 é 34 , que é UTF-8 para ä . Evidentemente, seu gerenciador de exibição está interpretando suas strings no Latin-1, mas seu editor usa o UTF-8.

Uma solução é recodificar esses recursos do UTF-8 para o Latin-1. Recursos X são strings de bytes, não strings de caracteres: cabe ao aplicativo decidir em qual codificação eles estão.

Outra solução é dizer ao xlogin para usar o UTF-8. Você o configurou para usar o Latin-1: a codificação de código de idioma sv_SE sem codificação usa a codificação Latin-1, para compatibilidade com versões anteriores. Altere essas linhas em /etc/X11/xdm/Xsetup para

export LC_CTYPE=sv_SE.UTF-8

Você pode definir LC_MESSAGES (mensagens de erro e informação), LC_COLLATE (ordem de classificação, mas não acho que o xlogin faça nada com ela) e LC_TIME (formato de data e hora). Ou defina LANG , que define todos eles, a menos que seja substituído por LC_xxx variables. A configuração de LC_ALL força todas as categorias de código de idioma a esse valor e não é necessária aqui, nem LANGUAGE , que é útil apenas quando você deseja especificar fallbacks no caso de um idioma não estar disponível.

    
por 01.09.2013 / 22:58