Алексей Федорчук
Кто из применителей может сказать, положа руку на сердце и поклявшись на своём Священном Писании, что он никогда, никогда, никогда… не забывал переключать раскладку клавиатуры с латицы на кириллицу? Эта естественная человеческая зависимость породила три группы программ (и «программулек», сиречь апплетов):
- индикаторы текущей раскладки, каковые нынче именно апплетами обычно и являются;
- shell-скрипты для исправления текста, набранного в «не той» раскладке;
- автоматические корректировщики вводимого текста.
О первых говорить не буду — они ничему не мешают. Но не особо и помогают: забыв переключить раскладку, не всегда вспомнишь и о том, что нужно посмотреть на её индикатор, будь он экранный или led-огонёк на клавиатуре.
О shell-скриптах тоже сказать особо нечего — от них также нет никакого вреда, но не всегда есть и польза: если вовремя заметить, что в «не той» раскладке набрано одно слово или его кусок, обычно проще и быстрей тут же перенабрать его, нежели выделять кусок текста и запускать скрипт.
Что же до автоматических корректировщиков — они проделывают свою работу на лету, как только обнаруживают, что вводимая последовательность символов не соответствует языку создаваемого документа. И тогда они сами собой переключают раскладку и переписывают «неправильный» фрагмент. Наиболее известные программаы этого класса (а это уже «настоящие» программы) — Punto Switcher для Windows и X Neural Switcher для Linux (точнее, для Иксов, ибо работает также и в любых BSD-системах).
Достоинства и недостатки автоматических корректировщиков обсуждались бессчётно, поэтому повторю только главный из последних: Xneur (а про другие здесь говорить неуместно) принадлежит к тем программам, которые полагают себя умнее своих создателей (и, тем более, применителей), и потому часто автоматика его срабатывает прозвольным образом. Конечно, он имеет и «ручной» режим работы, но к нему применимо всё, сказанное ранее про shell-скрипты. Поэтому «проблему забывчивости» можно попытаться решить другим способом.
Как известно, в Оксфордском университете, воспитывавшем английских джентльменов, учили мыть руки после туалета. А в более прагматичном Кембридже, давшем миру немало естествоиспытателей, учили не справлять малую нужду на руки. Первому алгоритму следуют все корректировщики, как ручные, так и автоматические. Второй же алгоритм можно реализовать, сведя к минимуму вероятность забывчивости при наборе. И это — так называемые немодальные (или нециклические) переключатели раскладок.
Суть немодальных переключателей в том, что они ничего не переключают, а включают. То есть одна определённая клавиша (или их комбинация) всегда включает английскую раскладку, а другая делает то же самое для раскладки русской. И в использовании их есть только одна проблема — привыкание. То есть нужно отучиться смотреть на индикаторы раскладки. Нужно забыть о том:
- какая раскладка является текущей;
- какая раскладка является умолчальной;
- от кого наследуется раскладка нового окна — от корневого окна (то есть повторяет умолчальную) или от окна текущего.
А помнить нужно только одно: перед вводом любого кириллического текста нажать, скажем, комбинацию Shift+CapsLock, а переходя к вводу латиницы — клавишу CapsLock. Подобно тому, как при вводе прописной буквы мы автоматически нажимаем Shift, не задумываясь особо о причинах этого.
Указанными вариантами немодальные переключатели не ограничиваются. И определить их можно только тем же образом, как и переключатели модальные. В Cinnamon это делается через его Системные настройки, пункт Клавиатура, вкладку Раскладки клавиатуры и кнопку Параметры:
Или — через меню индикатора раскладок в трее:
Аналогичные средства есть и во всех других интегрированных средах. А в оконных менеджерах, скорее всего, следует прибегнуть к команде setxkbmap
— в сети на эту тему можно найти немало материалов.
Далее, чтобы побороть забывчивость при переключении раскладок, надо переключать их как можно реже. И на сей предмет придуманы временные переключатели, действующие, пока нажата определённая клавиша — в частности, они совершенно незаменимы при вводе типографских символов с использованием клавиши Compose. Причём они не исключают использования любых постоянных переключателей, как модальных, так и немодальных.
Традиционно в качестве временного переключателя используется правая клавиша Control, но и тут выбор достаточно велик:
А вообще все возможные переключатели раскладок, модальные, немодальные и временные, можно посмотреть в файле /usr/share/X11/xkb/rules/evdev.lst
— в секции ! option
, где они перечислены в строках, начинающихся с grp
:
! option grp Switching to another layout grp:switch Right Alt (while pressed) grp:lswitch Left Alt (while pressed) grp:lwin_switch Left Win (while pressed) grp:rwin_switch Right Win (while pressed) grp:win_switch Any Win key (while pressed) grp:caps_switch Caps Lock (while pressed), Alt+Caps Lock does the original capslock action grp:rctrl_switch Right Ctrl (while pressed) grp:toggle Right Alt grp:lalt_toggle Left Alt grp:caps_toggle Caps Lock grp:shift_caps_toggle Shift+Caps Lock grp:shift_caps_switch Caps Lock (to first layout), Shift+Caps Lock (to last layout) grp:win_menu_switch Left Win (to first layout), Right Win/Menu (to last layout) grp:lctrl_rctrl_switch Left Ctrl (to first layout), Right Ctrl (to last layout) grp:alt_caps_toggle Alt+Caps Lock grp:shifts_toggle Both Shift keys together grp:alts_toggle Both Alt keys together grp:ctrls_toggle Both Ctrl keys together grp:ctrl_shift_toggle Ctrl+Shift grp:lctrl_lshift_toggle Left Ctrl+Left Shift grp:rctrl_rshift_toggle Right Ctrl+Right Shift grp:ctrl_alt_toggle Alt+Ctrl grp:alt_shift_toggle Alt+Shift grp:lalt_lshift_toggle Left Alt+Left Shift grp:alt_space_toggle Alt+Space grp:menu_toggle Menu grp:lwin_toggle Left Win grp:rwin_toggle Right Win grp:lshift_toggle Left Shift grp:rshift_toggle Right Shift grp:lctrl_toggle Left Ctrl grp:rctrl_toggle Right Ctrl grp:sclk_toggle Scroll Lock grp:lctrl_lwin_rctrl_menu LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)
Руководствуясь этим списком, переключатели раскладок (в числе прочих параметров) можно изменить и через Dconf Editor. В Cinnamon это делается по схеме org.gnome.libgnomekbd.keyboard
, в строке options
:
Наконец, эту процедуру можно проделать и прямой командой gsettings
— правда, для этого надо знать на память и схему, и имя ключа, и его значения. Или долго и нудно выяснять через внутренние команды той же gsettings
.
P.S. Всё сказанное в полной мере применимо только к стандартным AT-клавиатурам. При использовании клавиатур ноутбучных и компактных придётся исходить из имеющихся реалий.
И последнее: выражаю признательность Станиславу Шрамко aka stanis, который надоумил меня на использование немодальных переключателей, и Bormant’у, напомнившему о переключателях временных.
Xneur нормально работает, если его настроить. Я поначалу тоже на него плевался и удалял, пытаясь приучить себя к ручному переключению, но так и не приучился и решил разобраться с Xneur. О чем не жалею.
В debian-подобных системах православно настраивать раскладки в /etc/default/keyboard, без привязок к de/wm:
[Commodore ~]$ cat /etc/default/keyboard
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL=»pc105″
XKBLAYOUT=»us,ru»
XKBVARIANT=»,»
XKBOPTIONS=»grp:caps_toggle,grp_led:scroll,compose:ralt»
BACKSPACE=»guess»
User, православие в дебиане не при делах.
Вы упоминаете о настройке раскладки для работы в консоли. Так она также настраивается во всех Ubuntu и базирующихся на ней осях.
На X’ы данные настройки тоже распространяются.
Назначенное на одну-единственную клавишу с логотипом окошек переключение раскладок, по-моему, самое простое решение + поглядывание изредка на набираемый текст (в нужной ли раскладке), чтобы не тратить сил понапрасну + внимание на проверку правописания. Успех гарантирован без лишних трудозатрат.
P.s.: Применение немодальных как впрочем и любых переключателей не отменяет визуального контроля вводимого текста.
2 Anton Serov
у Xneur есть абсолютно неприемлемая для меня черта — он работает только с вариантом winkeys русской раскладки, а я использую typewriter-legacy
2 User
В любом дистрибутиве православно, как вы выражаетесь — это когда каждый пользователь настраивает раскладки и переключатели по своему
по крайней мере, имеет такую возможность
2 Vita
> Назначенное на одну-единственную клавишу с логотипом окошек переключение раскладок, по-моему, самое простое решение
Если единственная клавиша — то это вопрос привычки.
Традиционных переключатель, который некогда прошивался во всех Юниксовых и Иксовых раскладках (а не настраивался, как потом) — это CapsLock
Первая русская раскладка Ache, кстати, была то, что теперь называют typewriter-legacy
> Применение немодальных как впрочем и любых переключателей не отменяет визуального контроля вводимого текста.
Оно конечно, если есть чем визуалить.
У меня иногда бывает, что нечем :)
Поэтому на экран стараюсь смотреть как можно меньше и исключительно целенаправленно. Этому меня 40 лет назад научил мой Учитель петрографии и микроскопии.
User, или уж Православие или демоны )
Vita, лучшее решение — это осовение слепого метода печати, когда на клавиатуру вообще не глядят, а смторят текст на экране, а пальцы сами бегают.
УВЫ. я смотрю на клавиатуру, куда нажимать. И очень раздражаюсь, когда забываю переключить раскладку. а xneur раздражает глюками. приходится метаться между двумя раздражениями