О led-индикаторе раскладки клавиатуры в Иксах

Автор: Алексей Федорчук

Эта заметка возникла совершенно случайно: вследствие событий, описанных в цикле про Revo Drive, к установленной на моей машине ранее Fedora неожиданно присоединилась Ubuntu. Точнее, Xubuntu, потому как разбираться с Unity мне хотелось ещё меньше, чем с 3-м GNOME или, в своё время, с 4-м KDE.

И, как будет рассказано своевременно или несколько позже, с этой самой Xubuntu оказалось славно. За одним исключением: я остался без led-индикатора клавиатурной раскладки. А её мне очень и очень не хватает — сколько бы ни было понавешано индикаторов экранных. Но старая привычка с древних времён, когда с экранными индикаторами в Иксах были ещё напряги: поглядел на клаву — и сразу видишь, латиница у тебя включена или кириллица. Прям как с полковником Петренко и его именным пистолетом в последнем фильме Гайдая.

С давних пор в качестве led-индикатора раскладки я задействовал ScrollLed: ведь сама клавиша ScrollLock практически никогда не используется, и индикатор оказывается не при делах (кроме консоли FreeBSD, но то — преданья старины глубокой). Кстати сказать, именно ScrollLed как индикатор раскладки использовался по умолчанию в Ubuntu, сколько я её помню, то есть с 2005 года, и поныне. Он же выступает в этом качестве и в Fedora.

Однако некоторое время назад я поменял клавиатуру на компактную модель, на которой ScrollLed просто отсутствовал как класс. И пришлось в качестве индикатора задействовать CapsLed, благо, таковой имелся. В Fedora я в качестве десктопа использую (пока?) GNOME 2-й ветки, и там это можно сделать его собственными средствами — так или эдак. А вот в XFce, являющейся, как нетрудно догадаться, десктопом в Xubuntu, штатного средства для этого не существует.

В прежние, до-HAL’ные и до-udev’ные, времена определение led-индикатора в Иксах выполнялось просто и прозрачно для пользователя — редактированием файла XF86Config, в последующем — xorg.conf. Однако ныне этот файл по умолчанию в системе отсутствует, все настройки Иксов, в том числе и клавиатурные, выполняются с помощью таинственного механизма udev, и где находятся соответствующие конфиги — вовсе не очевидно.

Конечно, использование /etc/X11/xorg.conf не запрещено и ныне. Более того, прописанные в нём параметры имеют приоритет перед автоматически определёнными. Так что ничто не мешало создать его в составе единственной секции, описывающей клавиатуру, а в ней поместить единственную строку с соответствующим значением нужной опции. Однако старина Оккам в гробу перевернулся бы от такого обращения с сущностями. И потому пойдём другим путём.

А именно, переходим в каталог /etc и запускаем команду:

$ grep -R grp_led:scroll * N

Для определённости замечу, что дело происходит в оболочке zsh, предусматривающей возможность определения глобальных псевдонимов; и глобальный псевдоним N призван подавлять вывод нежелательных сообщений об ошибках. В bash его следует заменить перенаправлением вида 2> /dev/null. Иначе за лесом сообщений вроде

grep: sudoers: Отказано в доступе

легко пропустить единственное нужное дерево — строку

default/keyboard~:XKBOPTIONS="grp:lwin_toggle,grp_led:scroll"

Дальше всё ясно — открываем в любимом редакторе (с правом root’а, то есть через sudo) файл /etc/default/keyboard и в соответствующей строке заменяем grp_led:scroll на grp_led:caps.

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

О led-индикаторе раскладки клавиатуры в Иксах: 2 комментария

  1. Не сочтите спамом, по поводу раскладок и не только я как-то писал довольно подробно — http://shikhalev.blogspot.com/2011/01/typo-keyboard-input.html — для XFCE я там описываю вариант настроек через xorg.conf (что в моем дистрибутиве как раз естественно) и даю ссылку на настройки для HAL…

  2. 2 Иван Шихалев Не сочли, напротив: гран мерси за ссылку

Обсуждение закрыто.