2010
Переключение двух раскладок в X11 различными клавишами
Довольно давно, несколько лет назад, я заметил, что при наборе текста на двух различных языках часто приходится обращать внимание на индикаторы, показывающие текущую раскладку клавиатуры. В какой-то момент я задумался, что было бы неплохо, если нажал одну клавишу - включился русский, нажал другую - английский. Тогда на индикаторы вообще можно не смотреть, так как заранее известно, какая раскладка будет включена.
Осмотрев клавиатуру, я выбрал наиболее удобные для этой цели клавиши. Это оказался правый «Ctrl» - для латиницы, а правый «Alt» - для кириллицы.
Перед тем, как проводить необходимое шаманство, нужно посмотреть на вывод следующей команды.
$ xkbcomp $DISPLAY - | grep 'xkb_'
Так выглядит ваша текущая раскладка до изменения. Используйте полученные данные для соответствующих строк в файле, рассмотренном ниже.
Далее создаем небольшой файл, назвав его «.xkblayout» и помещаем в свою домашнюю директорию.
.xkblayoutxkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete+ledscroll(group_lock)" };
xkb_symbols {
include "pc+us+ru(winkeys):2+inet(evdev)"
replace key <RALT> {
virtualMods = AltGr,
symbols[Group1] = [ ISO_Last_Group ]
};
replace key <RCTL> {
virtualMods = AltGr,
symbols[Group1] = [ ISO_First_Group ]
};
};
xkb_geometry { include "pc(pc105)" };
};
Осталось сделать автозагрузку полученного файла при старте X11. Создаем файл «.xsession», тоже в домашней директории, и делаем его исполняемым.
.xsession#!/bin/sh
xkbcomp ~/.xkblayout $DISPLAY
Все. Теперь при запуске X11 автоматически запускается «xkbcomp» и появляется удобное переключение раскладок. Я все же оставил индикацию включения кириллицы на «Scrool Lock» для контроля.
К такому способу переключения языков довольно быстро привыкнуть. В отличии от циклического переключения, этот способ не даст совершить ошибку при выборе языка ввода.