переназначить правый alt, чтобы вести себя как правый ctrl

Я пытаюсь переназначить мой правый alt , чтобы он вел себя как right ctrl , чтобы я мог использовать большой палец правой руки, чтобы нажать ctrl кнопка. Это Ubuntu 12.04.

Я создал файл .Xmodmap в моей домашней папке со следующим содержимым:

clear control
clear mod1
!keycode 64 = Alt_L Meta_L
keycode 108 = Alt_R Meta_R
add control = Control_L Control_R Alt_R
add mod1 = Alt_L Meta_L

Как вы можете догадаться, моя левая клавиша alt имеет код клавиши 64 и мой левый alt ключ имеет ключевой код 108.

Это на самом деле работает в том смысле, что моя правая клавиша alt ведет себя так, как будто я нажимаю клавишу ctrl .

Однако моя левая клавиша alt больше ничего не делает, что означает, что у меня не осталось клавиши alt . Это странно, учитывая, что xmodmap дает следующий вывод:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69),  Alt_R (0x6c)
mod1        Alt_L (0x40),  Alt_L (0xcc),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

Странно, что когда я удаляю отображение Alt_R на control , alt ключи работают.

(то есть, измените вторую на последнюю строку на:)

add control = Control_L Control_R

Теперь даже мой правый alt ведет себя как ключ alt , что меня смущает. После удаления отображения Alt_R из линии управления вывод xmodmap дает:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_L (0xcc),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

Надеюсь, вы, ребята, можете помочь.

пс. Я использовал этот веб-сайт в качестве источника.

8
задан 5 July 2018 в 18:21

4 ответа

Вы можете просто использовать Раскладка клавиатуры >> Параметры >> Положение клавиши Ctrl >> Right Alt as Right Ctrl , но это не работает. Это уже было подано в Debian как Ошибка # 663218

1) Начните заново, удалив ~ / .Xmodmap.

2) Обратите внимание, что вам не нужно очищать Control и Mod1. Это облегчает изменение только того, что вы хотите. Ваш ~ / .Xmodmap должен быть:

!Swap right control and right alt
remove Control = Control_R
remove Mod1 = Alt_R
keycode 105 = Alt_R
keycode 108 = Control_R
add Control = Control_R
add Mod1 = Alt_R
0
ответ дан 5 July 2018 в 18:21

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

Если вы нажмете правую клавишу Alt и e, и вы получите é, то это решение для вас (нуждается в улучшении).

Запустите это в терминале (проверьте ваши коды клавиш с помощью xev):

xmodmap -e "keycode 108 = Alt_R Meta_R Alt_R Meta_R"

, затем вставьте этот код в свой .Xmodmap:

remove Control = Control_R
remove Mod1 = Alt_R
keycode 105 = Alt_R
keycode 108 = Control_R
add Control = Control_R
add Mod1 = Alt_R

Этот код устанавливает ваш ключ Alt_Gr в Alt_R, а затем он заменяет Alt_r на Ctrl_R.

Если вы хотите, чтобы это оставалось после выхода из системы, поместите следующие команды в любой из ваших файлов оболочки запуска, например ~ / .profile:

if [ -f $HOME/.Xmodmap ]; then
  xmodmap -e "keycode 108 = Alt_R Meta_R Alt_R Meta_R"
  /usr/bin/xmodmap $HOME/.Xmodmap
fi

sources: question1 question2

0
ответ дан 5 July 2018 в 18:21

На Ubuntu 19.04, Для создания отображения в масштабе всей системы необходимо изменить два файла:

  • /usr/share/X11/xkb/symbols/altwin
  • /usr/share/X11/xkb/symbols/pc

Добавляют следующий раздел к первому один:

// Ctrl is mapped to the Alt.
partial modifier_keys
xkb_symbols "right_alt" {
    key <LALT> { [ Alt_L, Meta_L ] };
    key <RALT> { type[Group1] = "TWO_LEVEL",
                 symbols[Group1] = [ Control_R, Control_R ] };
    modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
    modifier_map Control { <LCTL>, <RALT> };
};

И замена include "altwin(meta_alt)" к include "altwin(right_alt)" в последнем.

0
ответ дан 16 October 2019 в 10:10

Я нашел гораздо более простой способ.

Добавьте эту команду в автозапуск или .xinitrc: setxkbmap -option ctrl:ralt_rctrl

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

0
ответ дан 22 July 2020 в 18:08

Другие вопросы по тегам:

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