LINUX.ORG.RU

Ubuntu + переключение языков

 , , , ,


0

1

Как в убунту правильно сделать переключение языков? Хочу три вещи: переключение языков по капсу, индикатор в трее, и чтобы работали клавиатурные хоткеи в русской раскладке. Ubuntu 13.10.

Есть несколько проблем

1) Такое переключение работает ОК:

setxkbmap -layout "us,ru(winkeys)" -model "microsoft4000" -option "grp:caps_toggle,terminate:ctrl_alt_bksp,grp_led:scroll"

НО его не понимает системная переключалка, висящая в трее. Продолжает показывать на индикаторе ту раскладку, которую выставила сама в прошлый раз. Раскладка уже русская, а в индикаторе все еще светится En.

(зато есть плюс - в таком варианте в русской раскладке работают клавиатурные хоткеи)

2) С другой стороны, из гуевой настраивалки переключения нельзя отключить капслок, чтобы перебросить на него переключение языков. (в 12 можно было отключить через свойства раскладки, в 13.10 гуй другой и такой опции там нет).

А без выключения капса поле ввода хоткея на смену языка нажатия капса не видит.

Если попытаться отключить вручную, то если в ~/.Xmodmap сделать только строчку «remove Lock = Caps_Lock» (без сопутствующей «keysym Caps_Lock = 0xXXXX»), то это вызывает ошибку.

3) Повесил смену языка на хоткей (XF86Launch5), но при этом в русской раскладке перестают работать клавиатурные комбинации. (При ручном использовании setxkbmap этого не происходит!)

4) Попробовал сделать кейсим капслока на XF86Launch5. Казалось бы, отличное решение — не можем напрямую забиндить капслок, забиндим что-нибудь другое, а на капс сделаем кейсим. Но это не проканало. Говорит, XF86Launch5 — неправильный код. Попробовал вместо названия впечатать то, как видит его xev - т.е. 0x1008ff45. Ругается, говорит, неправильный код.

Вспомнив, что evdev умолчательно не видит коды более 255, побежал смотреть evtest /dev/input/event5 и ВНЕЗАПНО увидел, что даже там события программируемых клавиш не прилетают. Попытки записать нечто написанное ниже в рулзы тоже ничего не принесли, почему? (в данном случае активируются уже другие две программируемые кнопки - зум+ и зум-, из удобно вестиь на pgup/pgdown)

ACTION=="remove", GOTO="keyboard_end"
KERNEL!="event*", GOTO="keyboard_end"
ENV{ID_INPUT_KEY}=="", GOTO="keyboard_end"
SUBSYSTEMS!="usb", GOTO="keyboard_end"

SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"

ENV{ID_VENDOR}=="Microsoft", ENV{ID_MODEL_ID}=="00db", RUN+="keymap $name 0xc022d pageup 0xc022e pagedown"

GOTO="keyboard_end"

Более простые вариации на тему тех же 0xc022d/0xc022e тоже не канают, оно просто туда не прилетает.

Еще есть вот такая бажная суидная извращенная утилита, которая, говорят, иногда работает:

sudo add-apt-repository ppa:rm-isaev/rawkeybind
sudo apt-get update
sudo apt-get install rawkeybind

но я пока не решился. Ну и почитать исходники надо, хз кто такое этот Исаев и каких троянов он туда понаписал, а так влооом...

5) По идее, xbindkeys ловит капс, и можно вызвать какую-нибудь внешнюю утилиту (кстати, как из командной строки поменять глобальную раскладку?). Но это а) тормозно б) извращение в) индикатор в трее не подхватит (если делать что-то с setxkbmap)

===

Есть подозрение, что у нормальных людей есть какое-то вменяемое ультимативное решение всех этих проблем с раскладками. Т.к. в /desktop не наблюдаются тысячи тем, посвященных этой псевдопроблеме, последнее нагугленное по ЛОРу относится к 2010 году с хардкорными решениями типа разных раскладок на keyup и keydown.

А говорят, арч для школьников, а в убунту все из коробки и не нужно красноглазить...

★★★★☆

Поставил убунту - страдай. Я так заметил, что любое из k/x/l-убунту - лучше. Даже в лубунту уже все настраивается в два клика, а эти все выпиливают и выпиливают.

cdshines ★★★★ ()

Раскладка уже русская, а в индикаторе все еще светится En.

Это баг. Могу посоветовать на время поставить что-нибудь типа gxkb или xneur... ну или откатиться до 13.04. Там такого бага нет.

Extraterrestrial ★★★★ ()

Глюкодром

Где-то в августе в убунте 13.10 появился новый индикатор раскладки и все сломалось. Баги раз и два, наверное, стоит подписаться на них, возможно разработчики обратят на внимание, если людей будет больше. Ну а так можно переключаться по Ctr+Space, как это делаю я, а лучше не ломать пальцы и не заниматься ерундой и поставить 13.04, как уже советовали.

P.S. Судя по активности в этих тикетах, мы дождемся релиза(кстати, уже вышла final beta) в котором ошибки никто не исправит и будут вам тысячи тем и неюзабельная для русских пользователей система:)

Eugenist ()
Ответ на: Глюкодром от Eugenist

и неюзабельная для русских пользователей система:)

ну, я решил проблему удалением индикатора языка с панели))) (а переключаю капсом, прописав скрипт с setxkbmap в gnome-session-properties).

ох, ну, хотя бы один из вопросов закрыт

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