Я хочу изменить привязки клавиш на некоторых клавишах на моей клавиатуре. Я хочу, чтобы некоторые команды запускали команды и другие, чтобы активировать разные ключи.
Какие приложения я могу использовать для этого?
Индекс:
Xbindkeys Стандартная клавиатура и ярлыки по умолчанию (изнутри системных настроек) Xmodmap Xkeycaps Autokey xkb Перейдите в раздел «Системные настройки & rarr; На клавиатуре выберите вкладку «Ярлыки» и добавьте новый пользовательский ярлык для вашего браузера. Если ваш браузер по умолчанию - Firefox, используйте firefox
для поля команды; если ваш браузер по умолчанию - Firefox, используйте chromium-browser
и т. д.:
[/g0]
ИСПОЛЬЗОВАНИЕ КЛАВИАТУРЫ КЛАВИАТУРЫ КАК КНОПКИ МЫШИ
Возможно, вы хотите навести клавиатуру на кнопку мыши. Если вы хотите щелкнуть клавишей клавиатуры (полезно, если у вас есть macbook или плохая кнопка трекпада), вы можете сделать следующее.
sudo apt-get install x11-utils xkbset x11-xserver-utils
xev | grep keycode
в терминале нажмите интересующую клавишу, и появится строка, подобная этой: state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
xkbset m
xmodmap -e "keycode 64 = Pointer_Button1"
Pointer_Button3
- это правая кнопка мыши, а Pointer_Button2
- средняя.
Я хотел нажать Print Screen, чтобы сохранить снимок экрана с помощью приложения gnome-screenshot
, как в Mint
. Но я хотел сделать это с помощью терминала, а не GUI, поскольку я хочу сделать его по умолчанию при создании пользовательского ISO с использованием инструментов squashfs
.
Сначала я установил gnome-screenshot с помощью команды
sudo apt-get install gnome-screenshot
Затем я назначил пользовательский ярлык с помощью «Настройки» -> «Клавиатура» -> «Пользовательский» ярлыки -> Добавить (+) ->
В диалоговом окне:
Нажмите кнопку «Добавить»
Затем нажмите клавишу «Печать».
Теперь ключ привязан, и я могу сохранить снимки экрана по мере необходимости. Но не используя терминал, это GUI-путь
Затем я установил dconf-editor
, используя
sudo apt-get install dconf-editor
И искал gnome-screenshot
Я нахожу свои пользовательские привязки клавиш по этому пути
/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/
Значения клавиш:
Теперь я копирую их и удаляю пользовательскую комбинацию клавиш GUI
Открываю терминал и набираю эти команды
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/command "'gnome-screenshot'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/binding "'Print'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/name "'print screen'"
И вуаля
Теперь я могу сохранять снимки экрана без использования графического интерфейса только с помощью dconf
и терминала. Мне больше не нужен dconf-editor
, он просто был установлен для получения значений.
CCSM позволяет вам сменить некоторые сочетания клавиш системы.
Чтобы установить его, используйте Центр программного обеспечения или эту команду:
sudo apt-get install compizconfig-settings-manager
Я использовал его, чтобы изменить ярлык «Распространение окна» со стандартной Super + W на Super + Tab, например, в Windows 10. Из мой ответ на другой поток :
blockquote>
xkb
- расширение X Keyboard. Он отвечает за сопоставление клавиш вашей клавиатуры с назначенной функцией. Символы xkb
можно найти в /usr/share/X11/xkb/symbols/
.
Говорят, мне нужно переключить функции клавиш Caps Lock
и Left Control
. Эти изменения необходимы для файла pc
:
key <CAPS> { [ Control_L ] };
key <LCTL> { [ Caps_Lock ] };
. Чтобы применить новые сопоставления, вам необходимо очистить кеш xkb
от /var/lib/xkb
:
rm -rf /var/lib/xkb/*
] Теперь просто перезапустите X-сессию, и вам хорошо идти.
Источник: https://radu.cotescu.com/remapping-keys-in-ubuntu-14.04/
Изменить: Выполнение ls
внутри каталога symbols
дает следующее:
af cm gn kz nec_vndr sk
al cn gr la ng sn
altwin compose group latam nl sony_vndr
am ctrl hp_vndr latin no srvr_ctrl
apl cz hr level3 nokia_vndr sun_vndr
ara de hu level5 np sy
at digital_vndr ie lk olpc terminate
az dk il lt pc th
ba ee in lv ph tj
bd empty inet ma pk tm
be epo iq macintosh_vndr pl tr
bg es ir mao pt tw
br et is md ro typo
brai eurosign it me rs tz
bt fi jp mk ru ua
bw fo ke ml rupeesign us
by fr keypad mm se uz
ca fujitsu_vndr kg mn sgi_vndr vn
capslock gb kh mt sharp_vndr xfree68_vndr
cd ge kpdl mv shift za
ch gh kr nbsp si
Отображения внутри файла ru
основаны на русском стандартная клавиатура. Папка macintosh_vndr
содержит сопоставления для клавиатур Apple. В двух словах этот подход настолько универсален. Идите дальше и играйте с ним:)
Если вы просто хотите переназначить ключи, другие ответы будут отличными.
Однако есть еще один способ приблизиться к нему. AutoKey - это макропроцессор клавиатуры, который позволяет вам связывать любую комбинацию клавиш / модификаторов с макросом, который может делать практически все, что вы можете делать с клавиатуры и многое другое.
AutoKey имеет макрозаписывающее устройство и простой способ ввода базовых последовательностей ключей, но его макросы написаны на Python и могут делать почти все, что вы можете кодировать.
Самый простой способ использовать его - заставить его отправлять нажатия клавиш ваши приложения / рабочий стол. При использовании этого способа система / приложения не могут сказать, что вы не печатаете, поэтому нет никакого API или другого интерфейса, они просто делают то, что вы «набрали».
AutoKey также может обрабатывать фразы. Когда вы вводите строку символов запуска, она может заменить новый текст для этой строки (либо сразу, либо после того, как вы наберете символ разделителя, например, новую строку или вкладку.)
Он также имеет фильтры окон, чтобы вы могли ограничить определенную фразу или макрос, чтобы работать только в определенных типах окон (например, те, которые имеют Mozilla в заголовке, поэтому они работают только в таких вещах, как Firefox или Thunderbird).
В настоящее время AutoKey имеет версии Gtk и Qt.
Редактирование:
Руководство по установке Это очень подробно. Мы попытались сделать его доступным как для новичков, так и для экспертов.
Пользователь Forum Активный пользовательский форум.
Было место для внесенных скриптов, но кажется чтобы уйти. Я проверю это. Поскольку это в первую очередь графическое приложение с множеством опций, для примеров потребуется много скриншотов и целая статья.
У меня есть фраза, определяемая так, что когда я набираю « Jmail! », он мгновенно заменяет его моим довольно длинным адресом электронной почты.
Я написал макрос, который запускается путем ввода Ctrl-P, который активен только в окнах с именем «Mozilla» в заголовке. Ввод Ctrl-P вызывает диалоговое окно печати (Firefox или Thunderbird), выбирает «Печать в файл», а затем заполняет имя следующего доступного файла печати в моей очереди печати (я их номер 01, 02, ... и сценарий читает каталог очереди, находит последний номер файла и увеличивает его на 1). Я использую его с моим эмуляционным программным обеспечением для дуплексной печати ( duplexpr ), чтобы устранить тонну нажатий клавиш и движений мыши (только с клавиатурой, AutoKey еще не (это находится в разработке) изначально выдает события мыши) .
Я видел некоторые другие макросы от геймеров, которые позволяют им быстро получить информацию об их характере и ресурсах, чтобы они могли сосредоточиться на действии.
Вы можете создавать сложные (многокнопочные) сочетания клавиш, установив AutoKey из программного центра. В отличие от xmodmap, AutoKey не перепроверяет фактические клавиши на клавиатуре; он запускается в фоновом режиме и перехватывает определенные сочетания клавиш, а затем отправляет имитированные нажатия клавиш в ваши приложения.
При первом запуске AutoKey он запустит службу в фоновом режиме (значок уведомления не был обновлено для единства, поэтому визуального указания нет). После его запуска вы можете вызвать интерфейс конфигурации, снова запустив программу запуска:
[/g5]
Теперь откройте «Редактирование»> «Установки» и выберите «Автоматически запускать AutoKey на login ", чтобы убедиться, что ваши ярлыки работают всякий раз, когда вы вошли в систему.
+
между ними (например, <ctrl>+c
будет копировать в большинстве приложений; <ctrl>+c<ctrl>+n<ctrl>+v
создаст новый документ, содержащий выбор; <shift>+ubuntu
будет печатать текст «Ubuntu») Пример завершенной конфигурации (которая отправляет <enter>
при нажатии <ctrl>+m
) выглядит следующим образом:
[/g7]
Оказалось, что оно находится под «клавиатурным» приложением.
Если вы принесете это, вы можете при необходимости изменить ярлыки ...
изменить немного странный при первом использовании. Вы нажмете справа (столбец ctrl-alt-T, Disabled и т. Д., Затем щелкните фактические клавиши, например ctrlaltb, которые вы хотите. Вы увидите новую последовательность клавиш, появляющуюся сейчас в этом пространстве. (или нажмите), и новый ярлык теперь будет работать.
Ярлык уже существует как WWW, просто измените его на Ctrl + Alt + b. Нет необходимости создавать новую.
[/g0]
Перейдите в раздел «Системные настройки & rarr; На клавиатуре выберите вкладку «Ярлыки» и добавьте новый пользовательский ярлык для вашего браузера. Если ваш браузер по умолчанию - Firefox, используйте firefox
для поля команды; если ваш браузер по умолчанию - Firefox, используйте chromium-browser
и т. д.:
[/g0]
ИСПОЛЬЗОВАНИЕ КЛАВИАТУРЫ КЛАВИАТУРЫ КАК КНОПКИ МЫШИ
Возможно, вы хотите навести клавиатуру на кнопку мыши. Если вы хотите щелкнуть клавишей клавиатуры (полезно, если у вас есть macbook или плохая кнопка трекпада), вы можете сделать следующее.
sudo apt-get install x11-utils xkbset x11-xserver-utils
xev | grep keycode
в терминале нажмите интересующую клавишу, и появится строка, подобная этой: state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
xkbset m
xmodmap -e "keycode 64 = Pointer_Button1"
Pointer_Button3
- это правая кнопка мыши, а Pointer_Button2
- средняя.
Я хотел нажать Print Screen, чтобы сохранить снимок экрана с помощью приложения gnome-screenshot
, как в Mint
. Но я хотел сделать это с помощью терминала, а не GUI, поскольку я хочу сделать его по умолчанию при создании пользовательского ISO с использованием инструментов squashfs
.
Сначала я установил gnome-screenshot с помощью команды
sudo apt-get install gnome-screenshot
Затем я назначил пользовательский ярлык с помощью «Настройки» -> «Клавиатура» -> «Пользовательский» ярлыки -> Добавить (+) ->
В диалоговом окне:
Нажмите кнопку «Добавить»
Затем нажмите клавишу «Печать».
Теперь ключ привязан, и я могу сохранить снимки экрана по мере необходимости. Но не используя терминал, это GUI-путь
Затем я установил dconf-editor
, используя
sudo apt-get install dconf-editor
И искал gnome-screenshot
Я нахожу свои пользовательские привязки клавиш по этому пути
/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/
Значения клавиш:
Теперь я копирую их и удаляю пользовательскую комбинацию клавиш GUI
Открываю терминал и набираю эти команды
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/command "'gnome-screenshot'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/binding "'Print'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/name "'print screen'"
И вуаля
Теперь я могу сохранять снимки экрана без использования графического интерфейса только с помощью dconf
и терминала. Мне больше не нужен dconf-editor
, он просто был установлен для получения значений.
CCSM позволяет вам сменить некоторые сочетания клавиш системы.
Чтобы установить его, используйте Центр программного обеспечения или эту команду:
sudo apt-get install compizconfig-settings-manager
Я использовал его, чтобы изменить ярлык «Распространение окна» со стандартной Super + W на Super + Tab, например, в Windows 10. Из мой ответ на другой поток :
blockquote>
xkb
- расширение X Keyboard. Он отвечает за сопоставление клавиш вашей клавиатуры с назначенной функцией. Символы xkb
можно найти в /usr/share/X11/xkb/symbols/
.
Говорят, мне нужно переключить функции клавиш Caps Lock
и Left Control
. Эти изменения необходимы для файла pc
:
key <CAPS> { [ Control_L ] };
key <LCTL> { [ Caps_Lock ] };
. Чтобы применить новые сопоставления, вам необходимо очистить кеш xkb
от /var/lib/xkb
:
rm -rf /var/lib/xkb/*
] Теперь просто перезапустите X-сессию, и вам хорошо идти.
Источник: https://radu.cotescu.com/remapping-keys-in-ubuntu-14.04/
Изменить: Выполнение ls
внутри каталога symbols
дает следующее:
af cm gn kz nec_vndr sk
al cn gr la ng sn
altwin compose group latam nl sony_vndr
am ctrl hp_vndr latin no srvr_ctrl
apl cz hr level3 nokia_vndr sun_vndr
ara de hu level5 np sy
at digital_vndr ie lk olpc terminate
az dk il lt pc th
ba ee in lv ph tj
bd empty inet ma pk tm
be epo iq macintosh_vndr pl tr
bg es ir mao pt tw
br et is md ro typo
brai eurosign it me rs tz
bt fi jp mk ru ua
bw fo ke ml rupeesign us
by fr keypad mm se uz
ca fujitsu_vndr kg mn sgi_vndr vn
capslock gb kh mt sharp_vndr xfree68_vndr
cd ge kpdl mv shift za
ch gh kr nbsp si
Отображения внутри файла ru
основаны на русском стандартная клавиатура. Папка macintosh_vndr
содержит сопоставления для клавиатур Apple. В двух словах этот подход настолько универсален. Идите дальше и играйте с ним:)
Если вы просто хотите переназначить ключи, другие ответы будут отличными.
Однако есть еще один способ приблизиться к нему. AutoKey - это макропроцессор клавиатуры, который позволяет вам связывать любую комбинацию клавиш / модификаторов с макросом, который может делать практически все, что вы можете делать с клавиатуры и многое другое.
AutoKey имеет макрозаписывающее устройство и простой способ ввода базовых последовательностей ключей, но его макросы написаны на Python и могут делать почти все, что вы можете кодировать.
Самый простой способ использовать его - заставить его отправлять нажатия клавиш ваши приложения / рабочий стол. При использовании этого способа система / приложения не могут сказать, что вы не печатаете, поэтому нет никакого API или другого интерфейса, они просто делают то, что вы «набрали».
AutoKey также может обрабатывать фразы. Когда вы вводите строку символов запуска, она может заменить новый текст для этой строки (либо сразу, либо после того, как вы наберете символ разделителя, например, новую строку или вкладку.)
Он также имеет фильтры окон, чтобы вы могли ограничить определенную фразу или макрос, чтобы работать только в определенных типах окон (например, те, которые имеют Mozilla в заголовке, поэтому они работают только в таких вещах, как Firefox или Thunderbird).
В настоящее время AutoKey имеет версии Gtk и Qt.
Редактирование:
Руководство по установке Это очень подробно. Мы попытались сделать его доступным как для новичков, так и для экспертов.
Пользователь Forum Активный пользовательский форум.
Было место для внесенных скриптов, но кажется чтобы уйти. Я проверю это. Поскольку это в первую очередь графическое приложение с множеством опций, для примеров потребуется много скриншотов и целая статья.
У меня есть фраза, определяемая так, что когда я набираю « Jmail! », он мгновенно заменяет его моим довольно длинным адресом электронной почты.
Я написал макрос, который запускается путем ввода Ctrl-P, который активен только в окнах с именем «Mozilla» в заголовке. Ввод Ctrl-P вызывает диалоговое окно печати (Firefox или Thunderbird), выбирает «Печать в файл», а затем заполняет имя следующего доступного файла печати в моей очереди печати (я их номер 01, 02, ... и сценарий читает каталог очереди, находит последний номер файла и увеличивает его на 1). Я использую его с моим эмуляционным программным обеспечением для дуплексной печати ( duplexpr ), чтобы устранить тонну нажатий клавиш и движений мыши (только с клавиатурой, AutoKey еще не (это находится в разработке) изначально выдает события мыши) .
Я видел некоторые другие макросы от геймеров, которые позволяют им быстро получить информацию об их характере и ресурсах, чтобы они могли сосредоточиться на действии.
Вы можете создавать сложные (многокнопочные) сочетания клавиш, установив AutoKey из программного центра. В отличие от xmodmap, AutoKey не перепроверяет фактические клавиши на клавиатуре; он запускается в фоновом режиме и перехватывает определенные сочетания клавиш, а затем отправляет имитированные нажатия клавиш в ваши приложения.
При первом запуске AutoKey он запустит службу в фоновом режиме (значок уведомления не был обновлено для единства, поэтому визуального указания нет). После его запуска вы можете вызвать интерфейс конфигурации, снова запустив программу запуска:
[/g5]
Теперь откройте «Редактирование»> «Установки» и выберите «Автоматически запускать AutoKey на login ", чтобы убедиться, что ваши ярлыки работают всякий раз, когда вы вошли в систему.
+
между ними (например, <ctrl>+c
будет копировать в большинстве приложений; <ctrl>+c<ctrl>+n<ctrl>+v
создаст новый документ, содержащий выбор; <shift>+ubuntu
будет печатать текст «Ubuntu») Пример завершенной конфигурации (которая отправляет <enter>
при нажатии <ctrl>+m
) выглядит следующим образом:
[/g7]
Оказалось, что оно находится под «клавиатурным» приложением.
Если вы принесете это, вы можете при необходимости изменить ярлыки ...
изменить немного странный при первом использовании. Вы нажмете справа (столбец ctrl-alt-T, Disabled и т. Д., Затем щелкните фактические клавиши, например ctrlaltb, которые вы хотите. Вы увидите новую последовательность клавиш, появляющуюся сейчас в этом пространстве. (или нажмите), и новый ярлык теперь будет работать.
Ярлык уже существует как WWW, просто измените его на Ctrl + Alt + b. Нет необходимости создавать новую.
[/g0]
Перейдите в раздел «Системные настройки & rarr; На клавиатуре выберите вкладку «Ярлыки» и добавьте новый пользовательский ярлык для вашего браузера. Если ваш браузер по умолчанию - Firefox, используйте firefox
для поля команды; если ваш браузер по умолчанию - Firefox, используйте chromium-browser
и т. д.:
[/g0]
ИСПОЛЬЗОВАНИЕ КЛАВИАТУРЫ КЛАВИАТУРЫ КАК КНОПКИ МЫШИ
Возможно, вы хотите навести клавиатуру на кнопку мыши. Если вы хотите щелкнуть клавишей клавиатуры (полезно, если у вас есть macbook или плохая кнопка трекпада), вы можете сделать следующее.
sudo apt-get install x11-utils xkbset x11-xserver-utils
xev | grep keycode
в терминале нажмите интересующую клавишу, и появится строка, подобная этой: state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
xkbset m
xmodmap -e "keycode 64 = Pointer_Button1"
Pointer_Button3
- это правая кнопка мыши, а Pointer_Button2
- средняя.
Я хотел нажать Print Screen, чтобы сохранить снимок экрана с помощью приложения gnome-screenshot
, как в Mint
. Но я хотел сделать это с помощью терминала, а не GUI, поскольку я хочу сделать его по умолчанию при создании пользовательского ISO с использованием инструментов squashfs
.
Сначала я установил gnome-screenshot с помощью команды
sudo apt-get install gnome-screenshot
Затем я назначил пользовательский ярлык с помощью «Настройки» -> «Клавиатура» -> «Пользовательский» ярлыки -> Добавить (+) ->
В диалоговом окне:
Нажмите кнопку «Добавить»
Затем нажмите клавишу «Печать».
Теперь ключ привязан, и я могу сохранить снимки экрана по мере необходимости. Но не используя терминал, это GUI-путь
Затем я установил dconf-editor
, используя
sudo apt-get install dconf-editor
И искал gnome-screenshot
Я нахожу свои пользовательские привязки клавиш по этому пути
/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/
Значения клавиш:
Теперь я копирую их и удаляю пользовательскую комбинацию клавиш GUI
Открываю терминал и набираю эти команды
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/command "'gnome-screenshot'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/binding "'Print'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/name "'print screen'"
И вуаля
Теперь я могу сохранять снимки экрана без использования графического интерфейса только с помощью dconf
и терминала. Мне больше не нужен dconf-editor
, он просто был установлен для получения значений.
Попробуйте это:
Установите программу под названием XKeyCaps. Чтобы установить, просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите следующие команды:
sudo apt-get install xkeycaps
После установки вы можете сделать xkeycaps в приглашении для запуска программы. После запуска выберите правильную раскладку клавиатуры и нажмите OK
[/g1]
Затем, когда вы набираете клавиатуру на экране, щелкните по клавише, который вы хотите , в вашем случае это S и выберите обменные ключи.
[/g2]
Обязательно добавьте строку ниже в свои сеансы, чтобы она автоматически запускалась каждый раз, когда вы Загрузите.
xmodmap ~/.xmodmap-`uname-n`
Источник: UFM ytsejam1138
По умолчанию (это только для того, чтобы дополнить отличный ответ Seth), Ubuntu (в этом примере я использую 16.04) имеет 2 категории, которые появляются по умолчанию в системных настройках:
Чтобы перейти к Системные настройки в правом верхнем углу щелкните значок Gear:
Затем выберите «Системные настройки»:
Здесь вы найдете 2 варианта, которые могут отправить вас в раздел «Создание ярлыка».
Если вы выберите «Ввод текста», вам нужно будет выбрать ссылку «Настройки клавиатуры» внизу справа, которая отправит вас непосредственно в опции «Ярлыки».
Если вы выберете в разделе «Клавиатура» вам нужно будет щелкнуть вкладку «Ярлыки»
После того, как вы перейдете на вкладку «Ярлыки», вы должны выбрать «Пользовательские ярлыки» внизу списка в левой части:
И затем нажмите на знак плюса внизу, чтобы начать создавать свой собственный n Ярлык:
Оттуда вы просто добавляете имя ярлыка (не путайте имя ярлыка, для имени фактической команды, которую вы будете исполнять). И ниже, в поле «Команда», вы укажете, какая команда будет выполнена для этого ярлыка. В следующем примере я назвал ярлык «Sublime Text 3», чтобы узнать, к чему относится этот конкретный ярлык. И в поле команды я добавил фактическую команду, которая является subl
.
На экране вы увидите следующее: поскольку ярлык еще не назначен ключ или комбинация клавиш, он по умолчанию отключен:
Затем мы нажимаем «Отключено», чтобы добавить к нему комбинацию клавиш:
В этой части я назначаю комбинацию клавиш SHIFT + CTRL + S, чтобы при Я нажимаю эту комбинацию, она открывает приложение Sublime Text.
После этого вы можете просто протестировать свою комбинацию, нажав соответствующую комбинацию клавиш и увидев app open:
ПРИМЕЧАНИЕ. Для специальных комбинаций, таких как тот, который должен убить X-сервер, я предлагаю посетить следующую ссылку: Как сделать Я разрешаю Ctrl-Alt-Backspace, чтобы убить X-сервер?
If you click on the Options button at the bottom right (Found on 13.04 or previous versions)...
Где кнопка опций в версиях & gt; 13.04?
– dinosaur
27 September 2016 в 02:18
Изменение привязок клавиш с использованием xev
и xmodmap
.
Оба приложения командной строки доступны по умолчанию, поэтому нет необходимости устанавливать дополнительное программное обеспечение .
Xev "создает окно, а затем запрашивает X-сервер для отправки его событий всякий раз, когда что-либо происходит с окном (например, оно перемещается, изменяется, вводится, нажимается и т. д.). . xev man page
xmodmap - это программа "используется для редактирования и отображения карты модификатора клавиатуры и таблицы раскладки клавиатуры, которые используются клиентскими приложениями для преобразования кодов событий событий в keysyms. " xmodmap man page
Следующий пример переназначит ключ Caps_Lock на поведение клавиши Esc (многие пользователи vi / vim найти это полезное клавиатурное отображение).
Запустите приложение xev
из окна терминала (Ctrl-Alt-t).
Приложение будет инициализироваться, отображать ряд строк и запускать пустое окно. Держите окно приложения xev
в фокусе и нажмите клавишу, свойства / поведение которой вы хотите использовать.
В окне терминала вы увидите несколько строк вывода. Обратите внимание на третью строку. Это будет содержать имя свойства, которое вы хотите переместить на другой ключ.
KeyPress event, serial 32, synthetic NO, window 0x3e00001,
root 0x256, subw 0x0, time 16245388, (616,73), root:(1487,535),
state 0x10, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
XLookupString gives 1 bytes: (1b) ""
В этом случае клавиша Esc (код 9) использует имя «Escape» .
. На этот раз мы ищем код ключа, который использует Caps Lock.
Снова обратите внимание на третью строку:
KeyRelease event, serial 32, synthetic NO, window 0x4c00001,
root 0x256, subw 0x0, time 94702774, (862,151), root:(1733,613),
state 0x10, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
XKeysymToKeycode returns keycode: 9
XLookupString gives 1 bytes: (1b) ""
Теперь, когда мы получили информацию о ключах, которые мы хотим изменить с xev
, мы будем использовать xmodmap
для изменения раскладок. Из командного терминала (Ctrl + Alt + t) выполните следующие команды:
xmodmap -e "keycode 66 = Escape"
~/.Xmodmap
xmodmap -pke > ~/.Xmodmap
Активировать изменения (только для этого сеанса входа) с помощью следующей команды:
xmodmap ~/.Xmodmap
Внесение изменений в перезагрузку:
.xinitrc
. touch .xinitrc
Поместите следующую строку в файл и сохраните файл: xmodmap ~/.Xmodmap
xmodmap -pm
shift Shift_L (0x32), Shift_R (0x3e)
mod2 Num_Lock (0x4d)
Если вы хотите изменить, например , поведение периода на клавише Del / Period на цифровой клавиатуре, в запятую, используйте следующую команду:
xmodmap -e "keycode 91 mod2 = KP_Delete comma"
Обратите внимание, что это использует mod2
раскладку клавиш, чтобы изменить поведение клавиши, когда модификатор Num Lock. Синтаксис для этого:
xmodmap -e "<KEYCODE> <MODIFIER> = <behaviour> <behaviour_with_modifier>"
sudo apt-get install xbindkeys
Xbindkeys - очень универсальная программа, которая позволяет легко переназначить ключи.
Для создания конфигурационного файла по умолчанию используется команда:
xbindkeys --defaults
Распечатывает файл конфигурации по умолчанию. Поэтому, если вы хотите создать файл, содержащий значения по умолчанию, которые вы использовали бы:
xbindkeys --defaults > $HOME/.xbindkeysrc
Что печатает значения по умолчанию в скрытый файл с именем .xbindkeysrc
, расположенный в доме ( ~
).
Теперь, чтобы на самом деле измените привязки клавиш, нам сначала нужно знать, что такое имя или keysym этих ключей. xbindkeys
позволяет нам использовать дескриптор -k
, чтобы найти имя ключа или комбинации клавиш. Run:
xbindkeys -k
И нажмите комбинацию клавиш или клавиш. На вашем выходе будет выглядеть что-то , подобное этому (при нажатии пробела):
"NoCommand"
m:0x10 + c:65
Mod2 + space
"No Command"
сообщает, что в настоящее время никакая команда не связана с пробелом.
m:0x10 + c:65
Mod2 + space
Является именем комбинации клавиш / клавиш.
Позволяет открыть файл конфигурации, который вы сделали ранее:
gedit .xbindkeysrc
Вот отрывок из файла конфигурации по умолчанию:
#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
# Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
# Mod3 (CapsLock), Mod4, Mod5 (Scroll).
#
# The release modifier is not a standard X modifier, but you can
# use it if you want to catch release events instead of press events
# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.
#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable
# Examples of commands:
"xbindkeys_show"
control+shift + q
Каждая строка, начинающаяся с #
, является комментарием и не будет считана или запущена xbindkeys
.
Пока единственная строка, которая не закомментирована:
"xbindkeys_show"
control+shift + q
В этой выдержке показан основной синтаксис команд xbindkeys
:
"Command to run (in quotes)"
key to associate with command (no quotes)
Итак, вы можете видеть:
"xbindkeys_show"
control+shift + q
Запускает команду xbindkeys_show
при нажатии Ctrl + Shift + q.
Теперь попробуйте привязать несколько ключей. Я рекомендую очистить весь файл по умолчанию, чтобы он был пустым. Он содержит предустановленные привязки клавиш, которые вы, вероятно, не хотите.
Теперь скажем, вы хотите использовать Ctrl + b, чтобы открыть браузер. Сначала вам нужно знать, что такое имя или keysym из Ctrl + b. Как упоминалось ранее, вы можете использовать xbindkeys -k
, чтобы найти имя ключа или ключей, но есть более простой способ. Для простых комбинаций, таких как Ctrl + b, вы можете просто использовать:
Control+b
Намного проще!
Теперь найдите команду для своего любимого браузера:
firefox
chromium-browser
opera
Запомнить синтаксис ранее? Команда xbindkeys
для запуска Firefox (или другого любимого браузера) при нажатии Ctrl + b:
"firefox"
Control+b
Теперь поместите это в свой файл конфигурации и сохраните его. Теперь вы можете заметить, что ваша команда еще не работает, потому что xbindkeys
не работает. Чтобы запустить его, просто запустите xbindkeys
с терминала. Теперь ваш Ctrl + b должен начать ваш браузер!
Если вы хотите, чтобы клавиша на клавиатуре вызывала другой ключ на клавиатуре, вы нужна дополнительная часть программного обеспечения, поскольку xbindkeys
не поддерживает это самостоятельно. Я знаю две программы, которые мы можем использовать, xdotool
и xte
. Я предпочитаю xte
, поэтому я буду использовать это.
Установите его:
sudo apt-get install xautomation
Синтаксис для xte
выглядит так:
xte 'command key/mousebutton/xyCoordinates'
Примеры:
xte 'key keyName'
xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName
xte 'mouseclick buttonNumber'
(Мы немного поговорим о том, чтобы найти номера кнопок) xte 'mousemove xCoordinate yCoordinate'
man xte
Теперь, когда вы знаете команду для имитации нажатия клавиш, вы можете вызвать ее из своего сценария xbindkeys
, например:
"xte 'key b'"
Control+b
As вы можете догадаться, это вызывает xte 'key b'
, когда мы нажимаем Ctrl + b, который вводит ab в любой документ, над которым вы в настоящее время работаете.
Следует отметить, однако, что xbindkeys
и xte
не всегда хорошо работают вместе. Иногда вам нужно нажимать клавиши ровно одновременно, чтобы получить выход, в других случаях он работает отлично. Это может быть связано или не связано с конфигурацией системы и / или аппаратным обеспечением. Я не уверен. См. Ответ maggotbrain для более надежного способа привязки ключей к другим клавишам.
Вы также можете использовать xbindkeys
привязать кнопки мыши к командам (и оттуда сочетания клавиш, см. выше). Основной формат кнопок мыши должен быть вам знаком теперь:
" [command to run] "
b:n
Где [command to run]
- это команда, которую вы хотите запустить, и n
номер кнопки мыши, которую вы хотите использовать для этого command.
Если вы не знаете номер своей кнопки мыши, вы можете использовать xev
, чтобы узнать, что это такое:
xev | grep button
Выход будет чем-то вроде это:
user@host:~$ xev | grep button
state 0x10, button 1, same_screen YES
state 0x110, button 1, same_screen YES
state 0x10, button 2, same_screen YES
state 0x210, button 2, same_screen YES
state 0x10, button 3, same_screen YES
state 0x410, button 3, same_screen YES
Когда я нажимаю каждую из кнопок мыши.
Например:
" firefox "
b:2
Запускает firefox при нажатии средней кнопки мыши .