- Linux. Настройка клавиатуры
- Почему я захотел изменить свою клавиатуру?
- Настройка переключения раскладки
- Ациклическое переключение раскладок
- Замечание
- Изменение клавиш
- Двоеточие и точка с запятой
- ESC и CapsLock
- Alt и Win
- Модификаторы
- Назначение модификатора как второе значение клавиши
- Дальнейшие изменения
- Замечание
- Интересный вариант BackSpace напоследок
- P.S.
- Изменение сочетания клавиш для смены раскладки в Ubuntu
- Сочетание, используемое по умолчанию, для смены раскладки в Ubuntu
- Как изменить сочетание клавиш для переключения раскладки
- Смена сочетания клавиш через утилиту Gnome Tweaks
- Смена сочетания клавиш через Параметры системы
Linux. Настройка клавиатуры
Можно пользоваться и стандартными настройками, но иногда внесенные изменения дают возможность набирать быстрее (это, конечно, не слепая печать, но все же), совершать меньше ошибок, меньше переключать раскладку.
Почему я захотел изменить свою клавиатуру?
Во-первых, когда я начал использовать vim как основной редактор, я понял, что не хочу каждый раз тянуться к ESC . Кроме того, я писал в основном на питоне, поэтому ; нажимал сильно реже, чем : , а в vim разница стала более явной.
Во-вторых, через некоторое время я стал пользоваться вимовскими комбинациями для навигации в браузере, дальше — тайловый оконный менеджер i3 , где они тоже использовались, и хотелось перейти на них везде (вместо обычных стрелок, например, в файловом менеджере).
В-третьих, когда начал писать конспекты на TeX в vim , я понял, что могу реально упростить и ускорить этот процесс; если английская и русская раскладки будут больше похожи друг на друга, то я смогу вводить одинаковые символы (например, точку, запятую, кавычки, доллар) одинаково. Плюс приходится часто менять язык, поэтому надо это делать быстро, надежно и удобно.
Настройка переключения раскладки
Что же, начнем. Сначала разберемся, как можно настроить смену раскладки клавиатуры.
- Первый способ. Можно воспользоваться какой-нибудь программой, например, gnome-tweaks :
здесь мы можем выбрать один из вариантов, предлагаемых нам разработчиками.Главное — мы не можем создать свой вариант. Давайте научимся делать и это.
- Второй способ.
Посмотрим, как то же самое можно сделать руками, и чего еще можно добиться.
Давайте поставим переключение на правый Alt (он же AltGr ):
$ setxkbmap -layout us,ru -option grp:toggle
Но где можно узнать, какие еще есть варианты, и как создать свои? Все файлы лежат /usr/share/X11/xkb/symbols/ . И наши переключения находятся в /usr/share/X11/xkb/symbols/group . Вот так выглядит выбранный вариант:
partial modifier_keys xkb_symbols "toggle" < virtual_modifiers AltGr; key < symbols[Group1] = [ ISO_Next_Group ], virtualMods = AltGr >; >;
Ациклическое переключение раскладок
Изменим циклическое переключение по AltGr на ациклическое: AltGr переключает на латинскую раскладку, Shift+AltGr — на русскую.
Перед тем как что-то менять, посмотрим на текущие настройки:
$ setxkbmap -layout us,ru -print
Должны получить что-такое ( pc105 может отличаться в зависимости от количества клавиш на вашей клавиатуре):
xkb_keymap < xkb_keycodes < include "evdev+aliases(qwerty)" >; xkb_types < include "complete" >; xkb_compat < include "complete" >; xkb_symbols < include "pc+us+ru:2+inet(evdev)" >; xkb_geometry < include "pc(pc105)" >; >;
Теперь запишем это в конфигурационный файл ~/.config/xkb/config .
В файле /usr/share/X11/xkb/symbols/group можно найти аналогичный вариант с CapsLock , откуда можно понять, что на us будет переключать ISO_First_Group , а на ru — ISO_Second_Group .
говорит, что клавиша при обычном нажатии вызывает ISO_First_Group , а вместе с Shift — ISO_Last_Group .
Изменим в только что созданном файле xkb_symbols :
xkb_keymap < xkb_keycodes < include "evdev+aliases(qwerty)" >; xkb_types < include "complete" >; xkb_compat < include "complete" >; xkb_geometry < include "pc(pc105)" >; xkb_symbols "my" < include "pc+us+ru:2+inet(evdev)" key < [ ISO_First_Group, ISO_Last_Group ] >; >; >;
Проверим, что у нас получилось. Загружаем конфиг:
$ xkbcomp $HOME/.config/xkb/config $DISPLAY
Теперь язык должен переключаться по заданным комбинациям.
Замечание
Это очень удобно, когда набираешь текст, используя сразу две раскладки (например, TeX ), потому что, переключение происходит часто и гораздо проще каждый раз когда начинаешь писать русский текст нажимать нужные клавиши, чем проверять, какой язык стоит сейчас, и переключать, если нужно. Просто меньше тратишь умственных сил, меньше совершаешь ошибок.
Еще один плюс ациклического переключения — можно больше не использовать никаких индикаторов.
Изменение клавиш
Двоеточие и точка с запятой
Поменяем местами двоеточие и точку с запятой. Как задать значение мы уже знаем, осталось понять как называются символы. Это можно посмотреть в тех же файлах /usr/share/X11/xkb/symbols/ . Выберем файл us и найдем нужную клавишу:
Осталось записать в наш конфигурационный файл в обратном порядке.
ESC и CapsLock
Поменяем ESC и CapsLock . В той же директории в файле capslock можно найти:
hidden partial modifier_keys xkb_symbols "swapescape" < key < [ Escape ] >; key < [ Caps_Lock ] >; >; hidden partial modifier_keys xkb_symbols "escape" < key < [ Escape ] >; >;
partical — специальные куски, которые мы можем включать в другие раскладки.
Теперь либо пишем include «swapescape» , либо просто копируем код.
Alt и Win
Еще аналогично можно поменять, например, левый Alt и Win , что особенно удобно в i3wm , если поставить главный модификатор на Win , то он будет ближе к остальной клавиатуре, и плюс мы не ограничим себя в использовании Alt в комбинациях различный программ (браузер, файловый менеджер. ).
Модификаторы
Для чего вообще они нужны? Можно задать комбинации, которые будут позволять нам быстрее и удобнее набирать какие-то символы или вызывать какое-то действие, помещая поверх других, то есть эти комбинации не будут пересекаться с уже созданными или с комбинациями заданными системой.
Существует два дополнительных уровня: level3 , level5 . И еще комбинации с Shift .
Сделаем так, чтобы клавиша CapsLock в комбинации с h, j, k, l давала эффект стрелки. Тогда не нужно будет каждый раз тянуться ним.
Назначим модификатор (мы уже решили поставить туда ESC , но можно сделать и то и другое: об этом далее):
Если мы хотим назначить для разных раскладок разное значение, то сначала нужно их определить:
name[group1] = "English (US)"; name[group2] = "Russian";
Теперь нужно настроить клавиши h, j, k, l. Сначала узнаем их имя — тоже можно посмотреть файл раскладки, это несложно. Их зовут ,… . Какие команды вызывают стрелки можно узнать совершенно аналогично. Дальше пропишем поведение в комбинации с модификатором:
При нормальном нажатии будет обычная буква, при нажатии с шифтом — заглавная, с модификатором третьего уровня — стрелки.
Назначение модификатора как второе значение клавиши
Кроме стрелок можно назначить на третий слой символы или другие операции.
Давайте сделаем, чтобы кроме функции модификатора клавиша CapsLock выполняла и предназначенную ей миссию ранее — была ESC .
Для этого нам понадобится xcape , которая позволяет назначить на на клавишу значение, которое она будет иметь, если нажать ее не в комбинации. Еще есть полезная функция: можно настроить время, после истечения которого ее эффект отменяется.
Как я уже обещал, мы сделаем так, чтобы при однократном нажатии клавиши CapsLock вызывался ESC , а в комбинациях выступала в роли модификатора третьего уровня.
Для этого нужно выполнить
$ xcape -t -e "первое значение=втрое значение"
Я использую интервал 500 миллисекунд. Для нашей цели:
$ xcape -t 500 -e "ISO_Level3_Shift=Escape"
Дальнейшие изменения
Когда я пишу в TeX , я использую достаточно много одинаковых символов, но в разных раскладках. Поэтому появилась идея сделать их максимально похожими. В раскладках по умолчанию сильно отличаются положения точки, запятой, кавычек, квадратных и фигурных скобок, вопросительных знаков, различных слэшей.
- Поставим редко используемые русские буквы на крайних правых клавишах на третий слой других букв.
Схема была такая:
Для достижения такого эффекта добавляем в конфиг (здесь для у/ю, для остальных аналогично, названия букв русского алфавита можно посмотреть, где и все остальное):
key < type[group2]="FOUR_LEVEL", symbols[group2]=[Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft] >; key < type[group2]="FOUR_LEVEL", symbols[group2]=[Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright, braceright] >; key < type[group2]="FOUR_LEVEL", symbols[group2]=[Cyrillic_zhe, Cyrillic_ZHE, colon, semicolon] >; key < type[group2]="FOUR_LEVEL", symbols[group2]=[Cyrillic_e, Cyrillic_E, apostrophe, quotedbl] >; key < type[group2]="FOUR_LEVEL", symbols[group2]=[Cyrillic_be, Cyrillic_BE, comma, less] >; key < type[group2]="FOUR_LEVEL", symbols[group2]=[Cyrillic_yu, Cyrillic_YU, period, greater] >;
Плюс к этому добавляется возможность сделать одинаковыми и символы на цифрах, так как и кавычки, и двоеточие, и точка с запятой будет на других клавишах.
Замечание
Аналогично можно добавлять пятый слой, хотя пока лично я не испытываю никакой нужды — вполне хватает третьего.
Интересный вариант BackSpace напоследок
А может хватит тянуться далеко-далеко в дальний угол клавиатуры?
Поставим-ка BackSpace на $mod3+Space ( $mod3 наш модификатор третьего уровня)!
P.S.
Все настройки в принципе применимы для любых Linux дистрибутивов, использующих X.
Полные конфиги можно найти на GitHub.
Этот пост стал для меня отправной точкой к пониманию того, как можно и нужно настроить клавиатуру.
Изменение сочетания клавиш для смены раскладки в Ubuntu
В данном материале рассматривается, как изменить сочетание клавиш, которое используется для переключения раскладки клавиатуры в Ubuntu Linux.
Данное руководство можно использовать для Ubuntu 18.04, 18.10, 19.04 и, скорее всего, для других версий Ubuntu, использующих GNOME 3.
Примечание для посетителей: Если произойдут изменения в способе настройки раскладок клавиатуры в Ubuntu, пожалуйста, напишите об этом в комментариях, чтобы мы обновили материал.
Сочетание, используемое по умолчанию, для смены раскладки в Ubuntu
По умолчанию в Ubuntu Linux для смены раскладки клавиатуры используется сочетание клавиш:
Super+Пробел
Для переключения раскладок клавиатуры в обратном порядке используется сочетание клавиш: Super+Shift+Пробел
Клавиша Super это клавиша, которая обычно расположена между клавишами Ctrl и Alt. На Windows клавиатурах на ней расположен логотип Windows.
Как изменить сочетание клавиш для переключения раскладки
Изменить сочетание клавиш для переключения раскладки клавиатуры в Ubuntu можно двумя основными способами:
- Используя утилиту Gnome Tweaks
- Используя штатную утилиту Параметры системы (Settings)
Почему мы рассматриваем два способа? Дело в том, что штатная утилита Параметры системы не позволяет установить такие сочетания, как Ctrl+Shift , Alt+Shift и некоторые другие. Утилита Gnome Tweaks позволяет это сделать.
Смена сочетания клавиш через утилиту Gnome Tweaks
Если у вас не установлена утилита Gnome Tweaks, то ее нужно сначала установить. Это можно сделать через штатный Менеджер приложений Ubuntu, используя поиск по фразе «gnome tweaks«. На русском языке приложение переведено как «Доп. настройки GNOME«.
Также можно установить Gnome Tweaks через терминал. Откройте терминал (для этого можно нажать сочетание клавиш Ctrl+Alt+T ). Выполните команду:
sudo apt install gnome-tweaks
Запустите утилиту Gnome Tweaks. Запустить можно из Лаунчера (иконка «Доп. настрой. «).
Выберите вкладку Клавиатура и мышь и нажмите кнопку Дополнительные параметры раскладки
Откроется окно с разворачивающимся списком настроек комбинаций клавиш. Найдите пункт Переключение на другую раскладку . Установите галочку напротив сочетания, которое вы хотите использовать для переключение раскладки клавиатуры.
Смена сочетания клавиш через Параметры системы
Как было сказано выше, сочетание клавиш для переключения раскладки клавиатуры можно изменить через Параметры системы, но данная утилита не поддерживает установку некоторых сочетаний, которые часто используются для переключения раскладки.
Запустите Параметры системы. Для этого можно нажать сочетание клавиш Super+A и в Лаунчере найти значок Параметров системы — Параметры ( Settings ).
Откроется окно Параметров системы. Перейдите на вкладку Устройства .
Перейдите на вкладку Клавиатура . В правой части вы можете видеть список «Комбинации клавиш», который содержит список используемых в текущий момент сочетаний клавиш в системе.
Комбинации клавиш, используемые для смены раскладки клавиатуры, представлены пунктами:
- Переключиться на предыдущий источник ввода — по умолчанию Super+Shift+Пробел
- Переключиться на следующий источник ввода — по умолчанию Super+Пробел
Нажмите на соответствующий пункт, чтобы изменить сочетание клавиш для него. Откроется окно для ввода нового сочетания.
Нажмите на клавиатуре новое сочетание клавиш. Не все сочетания можно использовать в этом окне. Если сочетание можно установить, то оно отобразится в окне. Если оно вам подходит, нажмите кнопку Установить .