LINUX.ORG.RU

Снова проблема индикации русской раскладки в Ubuntu/Unity

 


1

2

Дано: Ubuntu 16.04, стандартный Unity. Переключение раскладок us,ru настроено по Caps Lock и работает отлично (особенно с трюком 0xff).

Но — невозможно настроить индикацию LED на клавиатуре, что caps lock, что scroll lock, что num lock. Чтобы лампочка горела, пока текущая раскладка русская. Что тут можно придумать? Выпилить убунтовскую переключалку (кстати, как?) и установить стороннюю?

★★★

В автозагрузку

setxkbmap "us,ru" ",winkeys" "grp:caps_toggle,grp_led:caps"

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

Спасибо за совет. Пробовал, конечно. Не помогает.

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

Мб в действующей раскладке в гуях нужно капс отключить, переназначить например на что нибудь другое, редко используемое.

simd0264 ()

Возможно дело в клаве. У меня и без всяких юнити, на некоторых «крутых» клавах волшебным образом не работала лед-индикация раскладки. Причём только для определённых вариантов переключения - например, с контролом работает, с альтом нет и т.п.

no-such-file ★★★★★ ()

особенно с трюком 0xff

А шо за трюк?

Вообще, у меня gxkb, лампочка ОК, бага с пропаданием фокуса нет, я довольный.

Aceler ★★★★★ ()
Ответ на: комментарий от no-such-file

Точно нет. Клавиатура Microsoft 4000, до этого много лет работала под CentOS, всё было нормально. Я даже не задумывался, насколько важна эта индикация :), пока не лишился её.

Дело в том, что это специфично убунтовская проблема. Можно нагуглить массу тем, аналогичных этой. Вот интересно — неужели так никто и не решил?

Что касается отключения Caps Lock, то так и сделано через gnome-tweak-tool: «Caps lock is disabled». А в убунтовской настройке «Text entry» вместо «Caps lock» — 0xff (известный трюк, чтобы переключать напрямую, без промежуточных преобразований). Правда, после этого лампочка вообще перестала загораться, а с «нормальным» Caps Lock загоралась на мгновение в момент нажатия, что не лучше.

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

Про трюк см. выше. Готов попробовать gxkb; но для этого надо отключить штатную переключалку? Как?

hbee ★★★ ()

Буквально вчера словил такую же проблему, но по другому: индикация прекрасно работала на debian sid, поставил TDE — все сломалось глобально, т.е. и без иксов ни черта индикация не работает, переключалка в TDE естественно отключена. С TDE приехало тьма всякого хлама, вот что-то и сломало. Хотя я тут же и обновлялся, но там вроде не чему ломать было.

Пока виновного не нашёл, как найду — отпишусь.

mandala ★★★★ ()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от Aceler

Нет, set active false не помогает. Выполнил, перезапустил DE — всё так же.

gxkb тоже не работает: при первой попытке переключения не переключает (а лампочку зажигает), при следующих нажатиях Caps Lock всё так же. Конфиг такой:

[xkb config]
group_policy=0
default_group=0
never_modify_config=false
model=microsoft4000
layouts=us,ru
variants=,
toggle_option=grp:caps_toggle,grp_led:caps,terminate:ctrl_alt_bksp
compose_key_position=
hbee ★★★ ()
Ответ на: комментарий от hbee

С капсом не будет работать, потому что лампочка капса отвечает ещё и за капс.

Индикатор источника ввода на панели меню при нажатии переключается? Не должен. Если переключается — надо выкинуть все настройки, сделанные через tweak-tool, потому что переключалка в гноме на самом деле не отключается, она просто перестаёт мешать xkb.

Если, к примеру, повесть переключение на ctrl+space и затем отключить переключалку Gnome, воспользовавшись gxkb, то по ctrl+space все настройки xkb будут проигнорированы всё равно. Такая засада.

Поэтому надо очистить конфиг переключалки Gnome, забиндить смену источника на что-нибудь непонятное, отключить переключалку и только потом запускать gxkb с лампочкой на Scroll.

У меня работает.

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

Aceler, низко кланяюсь в ножки! :). Так почти заработало: переключает по Caps, лампочка на клавиатуре (сменил на scroll) загорается. Вторая снизу: http://xahlee.info/kbd/ms_keyboard/i/ms_n4000_keyboard_LED.jpg

Почему почти — индикатор в трее теперь не меняет соcтояния. Разбираюсь с этим.

hbee ★★★ ()
Последнее исправление: hbee (всего исправлений: 1)
Ответ на: комментарий от hbee

Не получается отключить штатную переключалку. В gnome-session-properties отключаю Indicator Application — после перезагрузки всё равно она тут.

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

Индикатор и не должен. Отключи его, есть галочка в «параметры системы» — «ввод текста» — «Показывать текущий источник ввода на панели».

Вместо него используется собственно gxkb — она меняет флажок. Или текст, если настроить.

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

Да, это отключил: «Show current input source in the menu bar». Индикатор исчез. Запустил gxkb — ничего нового на панели не появилось.

Устанавливал gxkb так: apt install gxkb. Попробовать скачать и собрать?

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

А, да, забыл. Надо ставить из рра, убунтушники традиционно отрезают иконку из трея при сборке пакетов.

Aceler ★★★★★ ()
Последнее исправление: Aceler (всего исправлений: 1)
Ответ на: комментарий от Aceler

Yes! Появился флаг. Спасибо. Хоть и через задницу, но проблема хотя бы решаема.

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

О, боги! За что вы наказываете меня?

В какой-то момент gxkb показал, что видит единственную раскладку US, переписав собственный конфиг :). И тут я психанул:

-- удалил gxkb

-- удалил шорткаты input source

-- повесил на CapsLock скрипт:

current=$(gsettings get org.gnome.desktop.input-sources current | awk '{print $2}')
if [[ $current == "0" ]]; then
    gsettings set org.gnome.desktop.input-sources current 1
    xset -led 1 led on
else
    gsettings set org.gnome.desktop.input-sources current 0
    xset -led 1 led off
fi

То есть переключаем раскладки, принудительно включая-выключая лампочку. Так и живём :)

hbee ★★★ ()
Последнее исправление: hbee (всего исправлений: 2)
Ответ на: комментарий от hbee

И всё-таки при таком переключении происходит отработка Caps Lock с изменением регистра, что замедляет операцию и при быстром наборе текста может приводить к вводу ошибочной первой буквы сразу после нажатия Caps Lock.

Избавиться от этого можно, отключив-таки Caps Lock в gnome-tweak-tool. Только предварительно надо заремапить Caps Lock на любую неиспользуемую комбинацию, скажем, на F22:

-- .Xmodmap (parse it with xmodmap ~/.Xmodmap):
    remove Lock = Caps_Lock
    keycode 66 = F22
    clear Lock
-- Custom shortcuts: повесить вышеприведённый скрипт на F22
-- gnome-tweak-tool: Caps Lock is disabled
hbee ★★★ ()
Ответ на: комментарий от hbee

Ещё проще сделать то же самое скриптом при каждой перезагрузке:

xmodmap -e 'keycode 66 = F22'

gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding 'F22'

При условии, что на самый первый кастомный шорткат (custom0) повешен тот самый скрипт переключения раскладок с лампочкой, и предварительно сделано «навсегда» gnome-tweak-tool: Caps Lock is disabled.

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