LINUX.ORG.RU

[freebsd 8.1] Странность с переключением раскладки


0

1

Доброго времени суток.

В свежеустановленной FreeBSD 8.1 никак не могу победить проблему с раскладкой.

Сначала пробовал настраивать раскладку в xorg.conf В секции «Serverlayout» прописал «Option „AllowEmptyInput“ „off“» для того что бы использовались настройки xorg.conf, а не HAL.

Ну и в секции настроек клавиатуры прописал следующее:

Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"

После перезагрузки иксов, английские символы отображаются корректно, в то время как русские почему то печатаются только в виде <00b0><00b9><00b0><00b0> и т.д..

Пробовал настроить переключение через HAL.

Вот конфиг:

cat /usr/local/etc/hal/fdi/policy/10-keymap.fdi
<?xml version="1.0" encoding="ISO-8859-1"?> 
<deviceinfo version="0.2">
    <device>
        <match key="info.capabilities" contains="input.keymap">
            <append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
        </match>

        <match key="info.capabilities" contains="input.keyboard">
            <merge key="input.xkb.rules" type="string">base</merge>
            <merge key="input.xkb.layout" type="string">us,ru(winkeys)</merge>
            <merge key="input.xkb.options" type="string">grp:ctrl_shift_toggle,grp_led:scroll</merge>
        </match>
    </device>
</deviceinfo>

В /etc/rc.conf прописан hald_enable=«YES».

Но так раскладка вообще не переключается.


Ответ на: комментарий от system-root

>locale?
LANG=
LC_CTYPE=«C»
LC_COLLATE=«C»
LC_TIME=«C»
LC_NUMERIC=«C»
LC_MONETARY=«C»
LC_MESSAGES=«C»
LC_ALL=

DE\WM?

Awesome

где именно не печатаются символы?

в терминале

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

>А если zsh?
ну какое там волшебное слово для создания переменных? export? env?

если это имеет какое то значение.

это для tty важно.

system-root ★★★★★ ()
Ответ на: комментарий от system-root
export LANG='ru_RU.UTF-8'
export LC_ALL='ru_RU.UTF-8

Не совсем помогло, если так прописывать то <00b0><00b9><00b0><00b0> меняются на крокозябры, но не более.

Fen1x ()
Ответ на: комментарий от Fen1x
[system-root@asus ~]$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_ALL=ru_RU.UTF-8
[system-root@asus ~]$
[system-root@asus ~]$ cat .xinitrc 
export LANG='ru_RU.UTF-8'
export LC_ALL='ru_RU.UTF-8'
exec openbox-session
[system-root@asus ~]$

специально закомпилял сейчас openbox для этого. возможно используешь gdm\kdm\херdm который как-то переопределяет переменные?

system-root ★★★★★ ()

Спасибо всем кто помогал. Задача решена. Эмулятор терминала просто не поддерживал юникод.

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