Как переназначить клавишу Super (слева) для управления ключом

Может ли кто-нибудь рассказать мне, как переназначить ключ Super (слева) на клавишу Ctrl ?

Я имею в виду Super (слева) должен работать как Ctrl .

22 голоса | спросил Sandy 15 Mayam12 2012, 09:11:31

4 ответа


22

Чтобы внести существенные изменения в вашу клавиатуру, включая переназначение символов и изменение модификаторов, вам нужно использовать утилиту xmodmap - см. man xmodmap. Есть несколько способов выполнить изменения:

  • либо из командной строки

    xmodmap -e "your commands"
    
  • или напишите команды в файл, например .xmodmaprc, затем выполните его в своих элементах входа или в вашем .bashrc с помощью

    xmodmap .xmodmaprc
    

    Если вы назовете файл ~/.xmodmap, он будет выполнен автоматически при входе в систему.

Теперь команды

Что вы хотите сделать, это двухэтапный процесс. Сначала вы удаляете Super из своего модификатора, затем вы его сопоставляете для управления.

  1. Запустите xmodmap -pm в окне терминала, чтобы получить список связанных модификаторов. На моей машине (и, предположительно, вашей) Super называется mod4. Super_L и Super_R - это отдельные клавиши, которые выводят тот же модификатор.

    Теперь вы можете отменить модификатор. Запустите команду xmodmap (используя один из методов выше)

    remove mod4 = Super_L
    

    Теперь физический ключ все еще упоминается внутри как Super_L, но он ничего не делает.

  2. Теперь просто переделайте его. Запустите команду xmodmap:

    add control = Super_L
    

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

Нет Super_R?

Вывод xmodmap -pm может дать вам несколько ключей с именем Super_L, но ни один из них не назван Super_R). Если это так, у вас теперь есть несколько дополнительных ключей, назначенных Control, но ни один из них не назначен Super. Вам нужно будет переименовать один ключ. (NB: он может дать вам несколько Super_L и хотя бы один Super_R. Это нормально.)

Имена ключей в таблице имеют шестнадцатеричное число в круглых скобках рядом с ними. Этот номер является физическим ключом ключа на клавиатуре (он может варьироваться в зависимости от модели). Если вам нужно изменить один Super_L на Super_R, сначала найдите ключевой код, который вы хотите связать с Super_R (не уверены, какой из них правильный? Run xev, затем нажмите правую Super пару раз. Где-то в лабиринте вывода «keycode = 133» (с другим номером)). Запустите команду xmodmap

keycode 133 = Super_R

, чтобы переименовать ключ, затем

add mod4 = Super_R

, чтобы назначить его Super.

ответил pconley 15 Maypm12 2012, 21:27:33
15

Командная строка:

xmodmap -e "remove mod4 = Super_L"
xmodmap -e "add control = Super_L"

Или введите ~/.Xmodmap для активации при запуске:

remove mod4 = Super_L
add control = Super_L
ответил Coc 26 +04002012-10-26T07:55:24+04:00312012bEurope/MoscowFri, 26 Oct 2012 07:55:24 +0400 2012, 07:55:24
2

В Ubuntu вы можете отредактировать /etc/default/keyboard и установить:

XkbOptions = "altwin: ctrl_win"

Что:

  

Ctrl сопоставляется клавишам Win (и обычным клавишам Ctrl)

Для получения дополнительной информации прочитайте man 5 keyboard. Вы можете найти все возможные комбинации параметров в своей системе, выполнив следующие действия:

grep alt /usr/share/X11/xkb/rules/evdev.lst | grep win
ответил Mitar 22 32017vEurope/Moscow11bEurope/MoscowWed, 22 Nov 2017 13:27:44 +0300 2017, 13:27:44
1

Попробуйте следующее:

clear Control
clear mod4
remove Control = Control_L Control_R
remove mod4 = Super_L Super_R
add Control = Super_L

Поместите вышеуказанные строки в свой ~/.Xmodmap и выполните xmodmap ~/.Xmodmap

ответил rendon 5 Jam1000000amSat, 05 Jan 2013 06:08:50 +040013 2013, 06:08:50

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132