Русификация Angstrom 2007.12 и далее

КПК с Linux, установка Linux на iPaq и другие модели, программы
Закрыто
Вячеслав Диконов
Доктор (4 lvl)
Сообщения: 200
Зарегистрирован: Ср июл 27, 2005 23:13

Русификация Angstrom 2007.12 и далее

Сообщение Вячеслав Диконов » Ср ноя 19, 2008 14:26

Прошу помощи в деле перевода Zaurus C1000 (Akita) на Angstrom. Я пытаюсь перейти на Angstrom как на едва-ли не единственный живой дистрибутив. Для этого необходима поддержка переключения раскладок клавиатуры, так как чтение и набор текста одно из основных назначений моего завра.
  • - Поставил Angstrom 2007.12 x11 (пробовал нестабильные образы, но они оказались с разными проблемами)
    - Поставил русскую локаль (glibc*ru и модули gconv для поддержки кодировок)
    - Поставил дополнительные TTF шрифты
В результате:
  • - Имеется вариант русской локали при входе в систему.
    - Кириллица отображается графическими приложениями и присутствует на экранной клавиатуре.
    - Набор русского текста с клавиатуры завра все-равно невозможен!
Проблемы:
  • - нет переключения раскладки по Fn+Shift или подобной комбинации клавиш
    - Нет флажка на панели (matchbox)
    - Rxvt не показывает кириллицу.
* В свежеустановленном образе angstrom-x11 нет setxkbmap. Xmodmap есть.

Как заставить Angstrom вводить кириллицу корректно, сохраняя возможность пользоваться латинскими диакритическими знаками? Какие дистрибутивы с X11 для C1000 решают эту проблему "из коробки"? Поиск через гугл и яндекс ничего похожего на how-to не дал. У меня есть файлы раскладок xmodmap и xkb, но как ими пользоваться совершенно непонятно. Полной инструкции нет, и сеть засорена советами, рассчитанными на совсем другие устройства.

moreZ
Профессор (5 lvl)
Сообщения: 518
Зарегистрирован: Вт сен 19, 2006 19:04

Сообщение moreZ » Ср ноя 19, 2008 18:01

К сожалению я тоже столкнулся с этой проблемой, нормально русифицировать ангстром(х11 и опие) у меня не получилось, поэтому хотелось бы чтобы кто-то объяснил как это правильно сделать, без этого переход на ангстром не имеет для меня смысла :(
Zaurus SL-C1000 pdaXrom beta3

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Ср ноя 19, 2008 19:54

Вячеслав Диконов
kdrive (x-server) в Angstrom сейчас не поддерживает xkb (он там отключен). Поэтому setxkbmap там и не надо. Надо использовать xmodmap. Для смены раскладки по сочетанию клавиш лучше всего в "коробочном" Angstrom использовать xbindkeys (заодно можно и клавиши мыши проэмулировать по рецепту из соседней ветки про debian).

Дальше пока сказать нечего - у самого аппаратная клавиатура не русифицирована. Как-то все руки не доходят найти файл с русской фонетической раскладкой..

Навскидку - нужно найти сочетание клавиш нужное (возможно, через xev) и повесить на него скрипт, который будет делать xmodmap file-with-russian-layout или xmodmap file-with-english-layout, в зависимости от сохраненного из него же состояния. Примеры такого скрипта на форуме я точно видел, но где именно - не помню. Возможно, в ветках про pdaxrom, debian или gentoo. Думаю, у товарища svs57 это все точно есть, раз он даже чуть было аплет не написал к matchbox'у для переключения раскладок :)

В принципе, если кто-то даст мне ссылку на xmodmap-файл с русской раскладкой (лучше фонетической), то я могу настроить у себя и написать пошаговое руководство.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Ср ноя 19, 2008 20:05

moreZ
У меня на OPIE вроде бы даже работала смена раскладки для аппаратной клавиатуры через какой-то аплет. Только раскладка была бестолковая совершенно, или я не сумел ее приготовить :)

Если же под русификацией понимается русский интерфейс, то тут ничего сказать не могу, надо смотреть.. у меня интерфейс английский - он и читабельнее для меня и экономичнее.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

Вячеслав Диконов
Доктор (4 lvl)
Сообщения: 200
Зарегистрирован: Ср июл 27, 2005 23:13

Сообщение Вячеслав Диконов » Ср ноя 19, 2008 21:02

По русификацией здесь я понимаю i18 и возможность ввода кириллицы без стилуса (который у меня недавно сломался). Что касается переводов интерфейса, то для некоторых программ они в Ангстром имеются. Я могу заполнить пробелы перевода, если смогу пользоваться этой прошивкой.

Ловлю на слове Jay, и выкладываю раскладки xmodmap. Очень прошу писать подробно и без ссылок на "соседнюю ветку", потому что иначе возникает совершенная каша из противоречащих советов и обрывков информации. Еще в Angstrom крайне недостает поддержки XKB и апплетов переключения раскладок (например xxkb).
Вложения
modmap_430.zip
Вариант 1
(1.52 КБ) 477 скачиваний
modmap_512.zip
Вариант 2
(1.04 КБ) 483 скачивания
xkb_zaurus_us_ru_phonetic_1.zip
XKB
(1.9 КБ) 485 скачиваний

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Ср ноя 19, 2008 21:42

Вячеслав Диконов
Ловлюсь на слове с удовольствием :)
Наконец-то себе настрою тоже, а то кощунство какое-то - на клавиатурном КПК использовать стилус для ввода :)
Сегодня-завтра отпишусь.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Чт ноя 20, 2008 02:10

Итак, вот что у меня получилось.
Исходные данные: Sharp Zaurus SL-C1000 (Akita), Angstrom 2007.12 (ручной сборки).
Я использовал modmap_ru_phonetic из modmap_430.zip в качестве русской раскладки.
Файлы раскладки я назвал в /etc/xmodmap.<layout> (xmodmap.en и xmodmap.ru, соответственно).
Переключение раскладки я повесил на клавишу "календарь" в левом нижнем углу клавиатуры. На FN+Shift без бубна повесить не удастся, они обе являются клавишами-модификаторами.
Скрипт я положил в каталог bin к руту. Поскольку я отключил gpe-login и работаю рутом сразу, то для меня это подходит. В случае, когда работа ведется не от рута, возможно, придется поплясать с бубном вокруг путей и прав доступа.
И в rxvt у меня переключение раскладок не работает.. Почему - не знаю, надо думать.

Итак, по шагам:
1. Копируем файл modmap_ru_phonetic (предварительно извлеченный из архива modmap_430.zip) в файл /etc/xmodmap.ru

Код: Выделить всё

cp modmap_ru_phonetic /etc/xmodmap.ru
2. Я решил создать файл с английской раскладкой из текущего modmap'а Angstrom. Для этого я сделал следующее (вывел текущее назначение клавиш и удалил пустые):

Код: Выделить всё

xmodmap -pke | grep -v '=$' > /etc/xmodmap.en
3. Создаем скрипт, который будет переключать раскладки. В принципе, это тот же скрипт, который можно найти в форуме, но с небольшими отличиями. Собственно, вот он:

Код: Выделить всё

#!/bin/sh

LAYOUT_FILE=/media/ram/kbd-layout

if [ -n "$1" ]; then
        LAYOUT=$1
else
        LAYOUT=`cat ${LAYOUT_FILE} 2>/dev/null`
fi

XM_DIR=/etc

if [ "${LAYOUT}" = "ru" ]; then
        xmodmap ${XM_DIR}/xmodmap.ru && echo en > ${LAYOUT_FILE}
else
        xmodmap ${XM_DIR}/xmodmap.en && echo ru > ${LAYOUT_FILE}
fi
Копируем этот код в текстовый файлик (для определенности назовем его ltsw.txt) и переправляем в заурус. Выполняем следующие команды (текст после знака "#" - это комментарий, вводить его не нужно):

Код: Выделить всё

mkdir /home/root/bin    # создаем каталог для скриптов
cat ltsw.txt | tr -d \\r > /home/root/bin/ltsw    # удаляем виндовые переводы строки и кладем в подготовленный каталог
chmod 755 /home/root/bin/ltsw    # делаем его исполняемым
4. Настраиваем keylaunch. Открываем в редакторе файл /etc/keylaunchrc. В моем случае он выглядит так (уже после правки):

Код: Выделить всё

key=....F9:-:~/home/root/bin/ltsw
key=....F10:-:gpe-contacts
key=....F13:-:sylpheed
key=....F12:-:~matchbox-remote -next
key=...*F12:-:~matchbox-remote -desktop
key=....F11:-:~matchbox-remote -menu
#key=...*1:-:~zoom out
#key=...*2:-:~zoom in
key=...*3:-:~display-brightness.sh down
key=...*4:-:~display-brightness.sh up

# LCD Softkeys
# Please note that the space _between_ two softkeys can be used, too ;)
#key=....F20:-:
key=....F21:-:~matchbox-remote -desktop
#key=....F22:-:
#key=....F23:-:sylpheed
#key=....F24:-:
#key=....F25:-:gpe-contacts
#key=....F26:-:
#key=....F27:-:gpe-calendar
#key=....F28:-:
#key=....F29:-:
#key=....F30:-:

# VT changing
key=...*Left:-:~chvt 1
key=...*Right:-:~chvt 3
Я намеренно отключил почти все LCD-Softkeys, кроме одной, потому что при использовании полос прокрутки они неизбежно задеваются.. Но для нас сейчас важна первая строчка:

Код: Выделить всё

key=....F9:-:~/home/root/bin/ltsw
Тут написано, что по клавише F9 (которую как раз генерит кнопка "календарь") нужно запустить исполняемый модуль /home/root/bin/ltsw, не используя при этом механизм startup-notify (без визуальных эффектов ожидания открытия окна). Кстати, подробнее о keylaunchrc можно прочитать тут: http://www.oesf.org/forum/index.php?sho ... ntry135362.
Убиваем keylaunch и запускаем заново:

Код: Выделить всё

killall keylaunch && keylaunch >/dev/null &
5. Пробуем! Для этого запускаем какое-то приложение (желательно, не rxvt для начала, а, скажем, текстовый редактор) и жмем кнопку "календарь" (только недолго жмем, а то автоповтор включится). Пробуем вводить русские буквы. Если все хорошо, радуемся и пропускаем остальные шаги.

6. Не заработало? Пробуем запустить скрипт ltsw вручную:

Код: Выделить всё

/home/root/bin/ltsw en
Этим самым мы попробуем включить английскую раскладку. Если скрипт ничего не сказал, значит это нам удалось. Если сказал, то, скорее всего, вы что-то напутали с путями, либо ваша система сильно отличается от моей (например, в плане наличия рамдиска из коробки). В этом случае, постите в форум вывод скрипта и будем разбираться.
Если же все отработало нормально, пробуем включить русскую раскладку (желательно при этом оставить себе хотя бы открытый rxvt или, еще лучше, зайти по ssh на заурус):

Код: Выделить всё

/home/root/bin/ltsw ru
Если опять прошло с матюками, чиним то, на что матюкаются. Если не можем - просим помощи в форуме.
Если все нормально, проверяем. Если русские буквы во вновь запущенном текстовом редакторе вводятся, то пробуем снова потыкать кнопочку "календарь". Если на кнопочку по прежнему никакой реакции, пристреливаем и заново запускаем keylaunch:

Код: Выделить всё

killall keylaunch
keylaunch
При этом keylaunch не уйдет в фон и не отключится от терминала. Если при нажатии на "календарь" keylaunch не матерится, но переключение по прежнему не работает, то опять-таки обращаемся на форум. Будем думать.

На этом шаги заканчиваются.

Что тут можно улучшить?
Можно доделать раскладку.. мне она показалась несколько неудобной..
Можно попытаться придумать, как избежать эффекта автоповтора, когда скрипт запускается несколько раз.
Хорошо бы аплет для мачбокса от pdaXrom портировать.. может займусь, исходник я нашел тут: http://mail.pdaxrom.org/src/mb-applet-k ... .3.tar.bz2
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Чт ноя 20, 2008 02:24

Насчет поддержки xkb - я попытаюсь продвинуть включение xkb в Angstrom, но там как-то очень прохладно к этому отнеслись.. Посмотрим, что время покажет.
А вот с аплетами да.. засада. Надо будет посмотреть на аплет от pdaXrom, но он опять же для xmodmap, насколько я помню.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

Вячеслав Диконов
Доктор (4 lvl)
Сообщения: 200
Зарегистрирован: Ср июл 27, 2005 23:13

Сообщение Вячеслав Диконов » Чт ноя 20, 2008 21:46

Спасибо за инструкцию, буду пробовать.
Jay писал(а):Насчет поддержки xkb - я попытаюсь продвинуть включение xkb в Angstrom, но там как-то очень прохладно к этому отнеслись.. Посмотрим, что время покажет.
Я добавил баг №4857 на http://bugs.openembedded.net. Давайте поддерживать и голосовать. Ведь, даже к бесклавиатурным ipaq можно подключить физическую клавиатуру, и ОС должна ее обслуживать нормально. А если у вас qtopia, то подумайте о том, куда будете спрыгивать в будущем.

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Чт ноя 20, 2008 22:34

Вячеслав Диконов
Да, надо будет взяться за багу и сделать билд kdrive с xkb. Там, в принципе, вроде бы только патчик надо оторвать и все.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

Закрыто

Вернуться в «КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее»