Как переназначить клавишу linux

Как переназначить клавишу linux

Отключение / переназначение клавиши «Сон»

[Предыстория:]
У меня была необходимость отключить/переназначить на клавиатуре клавишу «Сон», так как мой кот часто нажимал её, как это обычно бывает в самые неподходящие моменты. Система у меня Ubuntu 16.04.1 с Unity.

Казалось бы задача тривиальная и первым делом я пошел в настройки:
Параметры системы — Клавиатура — Комбинации клавиш
Попробовал для наглядности назначить на клавишу сна запуск gedit“а.
Назначить получалось, в момент назначения клавиша перехватывалась.
Проверяю и вижу, что вместо запуска текстового редактора компьютер ушел в «Сон».
Ради эксперимента назначаю на другую клавишу, например на «pausa/break» и gedit прекрасно запускается.

Тогда я решил поискать другие способы решения и находил инструкции, как это сделать через xmodmap, xbindkeys, . Дабы пост не затянулся до неприличных размеров я не буду их описывать, но в моём случае они почему-то не работали, и компьютер все равно засыпал.

Продолжал поиски и мне попалась статья Radu Cotescu https://radu.cotescu.com/remapping-keys-in-ubuntu-14. и она натолкнула меня на решение.

[Решение:]
1. Определяем код клавиши и символ клавиши, например так:
$ xev | grep -A2 —line-buffered ‘^KeyRelease’ | sed -n ‘/keycode /s/^.*keycode \(6*\).* (.*, \(.*\)).*$/\1 \2/p’
нажимаем клавиши, в выводе консоли будет что-то типа:
38 a
27 r
54 c
43 h
150 XF86Sleep
Где первый столбец это код клавиши, а второй символ который соответствующ этому коду.

2. С помощью grep ищем в файлах X KeyBoard нужное нам соответствие:
$ sudo grep -nr ‘XF86Sleep’ /usr/share/X11/xkb/
получаем нужный файл и строку: /usr/share/X11/xkb/symbols/inet:128: key < [ XF86Sleep ] >;

3. Открываем например gedit“ом на редактирование
$ sudo gedit /usr/share/X11/xkb/symbols/inet
находим нужную строку
key < [ XF86Sleep ] >;
заменяем XF86Sleep на нужную нам клавишу и сохраняем.

4. Очищаем кэш xkb:
$ sudo rm -rf /var/lib/xkb/*

5. Перезагружаемся (или перезапускам X-сервер):
$ sudo reboot

Всё. Теперь можно не прогонять кота, когда он лег между клавиатурой и монитором)

Источник

Lubuntu.ru

Русскоязычное сообщество Lubuntu Linux

[решено] Переназначение клавиш

[решено] Переназначение клавиш

Сообщение Redmal » 08 июн 2015, 10:09

Re: Переназначение клавиш

Сообщение nowiko » 08 июн 2015, 12:31

Re: Переназначение клавиш

Сообщение denkin » 08 июн 2015, 13:02

Re: Переназначение клавиш

Сообщение adventurer » 08 июн 2015, 13:26

nowiko, а можно подробнее? А то я не понял, как переназначить клавишу.

denkin, а если это ноутбук (нетбук, планшет)? Да иногда так привыкаешь к клавиатуре, что не хочется менять.

Re: Переназначение клавиш

Сообщение nowiko » 08 июн 2015, 13:29

adventurer
Ну речь ведь идёт о переключении раскладки? То обычным способом. Или здесь речь о чём то другом?

PS. Да, вообще-то вопрос поставлен не совсем ясно. Возможно я не правильно понял. Наверное автор хочет переназначить функционал определённой клавиши. Перекинуть его на другую? Тогда я не знаю. Извиняюсь.

Читайте также:  Восстановит панель управления windows

Re: Переназначение клавиш

Сообщение Redmal » 08 июн 2015, 15:07

nowiko писал(а): adventurer
Ну речь ведь идёт о переключении раскладки? То обычным способом. Или здесь речь о чём то другом?

PS. Да, вообще-то вопрос поставлен не совсем ясно. Возможно я не правильно понял. Наверное автор хочет переназначить функционал определённой клавиши. Перекинуть его на другую? Тогда я не знаю. Извиняюсь.

Re: Переназначение клавиш

Сообщение adventurer » 08 июн 2015, 15:15

Redmal, с чего Вы взяли, что нет такой возможности?

Я так никогда не делал, поэтому лучше подождать советы специалистов. А во вторых, я экспериментирую на virtualbox. А в данном случае не будет однозначного соответствия нажатия клавиш на хост-машине и реакции гостевой системы.

Также есть советы на форуме ubuntu.ru. Надо пробовать. Но по причинам, указанным выше, я предпочитаю подождать знающих людей.

Re: Переназначение клавиш

Сообщение zhart » 08 июн 2015, 20:12

Re: Переназначение клавиш

Сообщение denkin » 08 июн 2015, 21:35

если это ноутбук или нетбук — то «родная» клавиатура конечно подороже будет, долларов 30-40 обычно. если планшет — вряд ли про это речь

как вариант для ноута (нетбука) — купить недорогую клавиатуру с ЮСБ — перебиться, а затем подобрать и купить подходящую «родную»

Re: Переназначение клавиш

Сообщение Redmal » 09 июн 2015, 16:53

adventurer писал(а): Redmal, с чего Вы взяли, что нет такой возможности?

Я так никогда не делал, поэтому лучше подождать советы специалистов. А во вторых, я экспериментирую на virtualbox. А в данном случае не будет однозначного соответствия нажатия клавиш на хост-машине и реакции гостевой системы.

Источник

Linux. Настройка клавиатуры

Для чего вообще специально настраивать клавиатуру?

Можно пользоваться и стандартными настройками, но иногда внесенные изменения дают возможность набирать быстрее (это, конечно, не слепая печать, но все же), совершать меньше ошибок, меньше переключать раскладку.

Почему я захотел изменить свою клавиатуру?

Во-первых, когда я начал использовать vim как основной редактор, я понял, что не хочу каждый раз тянуться к ESC . Кроме того, я писал в основном на питоне, поэтому ; нажимал сильно реже, чем : , а в vim разница стала более явной.

Во-вторых, через некоторое время я стал пользоваться вимовскими комбинациями для навигации в браузере, дальше — тайловый оконный менеджер i3 , где они тоже использовались, и хотелось перейти на них везде (вместо обычных стрелок, например, в файловом менеджере).

В-третьих, когда начал писать конспекты на TeX в vim , я понял, что могу реально упростить и ускорить этот процесс; если английская и русская раскладки будут больше похожи друг на друга, то я смогу вводить одинаковые символы (например, точку, запятую, кавычки, доллар) одинаково. Плюс приходится часто менять язык, поэтому надо это делать быстро, надежно и удобно.

Настройка переключения раскладки

Что же, начнем. Сначала разберемся, как можно настроить смену раскладки клавиатуры.

Первый способ. Можно воспользоваться какой-нибудь программой, например, gnome-tweaks :
здесь мы можем выбрать один из вариантов, предлагаемых нам разработчиками.

Главное — мы не можем создать свой вариант. Давайте научимся делать и это.

Второй способ.
Посмотрим, как то же самое можно сделать руками, и чего еще можно добиться.
Давайте поставим переключение на правый Alt (он же AltGr ):

Читайте также:  Переменная окружения editor linux

Но где можно узнать, какие еще есть варианты, и как создать свои? Все файлы лежат /usr/share/X11/xkb/symbols/ . И наши переключения находятся в /usr/share/X11/xkb/symbols/group . Вот так выглядит выбранный вариант:

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

Ациклическое переключение раскладок

Изменим циклическое переключение по AltGr на ациклическое: AltGr переключает на латинскую раскладку, Shift+AltGr — на русскую.

Перед тем как что-то менять, посмотрим на текущие настройки:

Должны получить что-такое ( pc105 может отличаться в зависимости от количества клавиш на вашей клавиатуре):

Теперь запишем это в конфигурационный файл

В файле /usr/share/X11/xkb/symbols/group можно найти аналогичный вариант с CapsLock , откуда можно понять, что на us будет переключать ISO_First_Group , а на ru — ISO_Second_Group .

Вот такая строчка

говорит, что клавиша при обычном нажатии вызывает ISO_First_Group , а вместе с Shift — ISO_Last_Group .

Изменим в только что созданном файле xkb_symbols :

Проверим, что у нас получилось. Загружаем конфиг:

Теперь язык должен переключаться по заданным комбинациям.

Замечание

Это очень удобно, когда набираешь текст, используя сразу две раскладки (например, TeX ), потому что, переключение происходит часто и гораздо проще каждый раз когда начинаешь писать русский текст нажимать нужные клавиши, чем проверять, какой язык стоит сейчас, и переключать, если нужно. Просто меньше тратишь умственных сил, меньше совершаешь ошибок.

Еще один плюс ациклического переключения — можно больше не использовать никаких индикаторов.

Изменение клавиш

Двоеточие и точка с запятой

Поменяем местами двоеточие и точку с запятой. Как задать значение мы уже знаем, осталось понять как называются символы. Это можно посмотреть в тех же файлах /usr/share/X11/xkb/symbols/ . Выберем файл us и найдем нужную клавишу:

Осталось записать в наш конфигурационный файл в обратном порядке.

ESC и CapsLock

Поменяем ESC и CapsLock . В той же директории в файле capslock можно найти:

partical — специальные куски, которые мы можем включать в другие раскладки.
Теперь либо пишем include «swapescape» , либо просто копируем код.

Alt и Win

Еще аналогично можно поменять, например, левый Alt и Win , что особенно удобно в i3wm , если поставить главный модификатор на Win , то он будет ближе к остальной клавиатуре, и плюс мы не ограничим себя в использовании Alt в комбинациях различный программ (браузер, файловый менеджер. ).

Модификаторы

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

Существует два дополнительных уровня: level3 , level5 . И еще комбинации с Shift .

Сделаем так, чтобы клавиша CapsLock в комбинации с h, j, k, l давала эффект стрелки. Тогда не нужно будет каждый раз тянуться ним.

Назначим модификатор (мы уже решили поставить туда ESC , но можно сделать и то и другое: об этом далее):

Если мы хотим назначить для разных раскладок разное значение, то сначала нужно их определить:

Теперь нужно настроить клавиши h, j, k, l. Сначала узнаем их имя — тоже можно посмотреть файл раскладки, это несложно. Их зовут ,… . Какие команды вызывают стрелки можно узнать совершенно аналогично. Дальше пропишем поведение в комбинации с модификатором:

Читайте также:  Служба протоколов приложения windows

При нормальном нажатии будет обычная буква, при нажатии с шифтом — заглавная, с модификатором третьего уровня — стрелки.

Назначение модификатора как второе значение клавиши

Кроме стрелок можно назначить на третий слой символы или другие операции.
Давайте сделаем, чтобы кроме функции модификатора клавиша CapsLock выполняла и предназначенную ей миссию ранее — была ESC .

Для этого нам понадобится xcape , которая позволяет назначить на на клавишу значение, которое она будет иметь, если нажать ее не в комбинации. Еще есть полезная функция: можно настроить время, после истечения которого ее эффект отменяется.

Как я уже обещал, мы сделаем так, чтобы при однократном нажатии клавиши CapsLock вызывался ESC , а в комбинациях выступала в роли модификатора третьего уровня.

Для этого нужно выполнить

Я использую интервал 500 миллисекунд. Для нашей цели:

Дальнейшие изменения

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

Здесь было две идеи:

Поставим редко используемые русские буквы на крайних правых клавишах на третий слой других букв.
Схема была такая:

Клавиша Третий слой
у ю
в б
ь ъ
з ж
щ х

Для достижения такого эффекта добавляем в конфиг (здесь для у/ю, для остальных аналогично, названия букв русского алфавита можно посмотреть, где и все остальное):

А на освобожденные клавиши просто назначаем такие же символы, как во второй раскладке.
Этот вариант оказался для меня неудобным и скорее снизил скорость, так как приходилось вспоминать и искать нужные буквы (хоть я выбирал специально созвучные), кроме этого я понял, что не так уж и редко они используются. А заглавные вообще тяжело набирать было.

Этот вариант я использую и сейчас: давайте оставим русские буквы на своих местах, а на третий слой на них назначим те символы, которые стоят на них на английской раскладке.
Тогда мы сможем нажимать одинаковые клавиши, но с модификатором (причем, если мы не назначим что-то другое поверх символов а английской раскладке, то ничего не случиться, если мы будем нажимать модификатор и в ней тоже).
Получаем такую схему:

Еще можем поставить в русской раскладке слэш и вопросительный знак туда, где они стоят в английской.

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

И главное, что это реально упростило процесс набора текста.

Замечание

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

Интересный вариант BackSpace напоследок

А может хватит тянуться далеко-далеко в дальний угол клавиатуры?
Поставим-ка BackSpace на $mod3+Space ( $mod3 наш модификатор третьего уровня)!

Все настройки в принципе применимы для любых Linux дистрибутивов, использующих X.

Полные конфиги можно найти на GitHub.

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

Источник

Оцените статью