Могу ли я изменить клавишу Caps Lock на Control и при этом сохранить природу Caps Lock? Я проверял использование xmodmap и, похоже, зашел в тупик. Многие люди хотят поменять их местами, но они также хотят поменять способ работы. Я бы предпочел оставить свой новый ключ управления в качестве выключателя для управления.

2 ответа2

1

Как сказал Игнасио, это невозможно сделать с помощью клавиш. Но это может быть, например, простой сценарий с использованием xbindkeys и xdotool.

Во-первых, удалите Caps Lock из его специальной функциональности, используя xmodmap (это нужно делать каждый раз при запуске X):

xmodmap -e 'keycode 66 = F13'

Затем добавьте следующие привязки к вам .xbindkeysrc:

"xdotool keyup Control_L; xdotool keydown Control_L"
    F13
"xdotool keydown Control_L; xdotool keyup Control_L"
    Control + F13

Это создает ложное нажатие (без отпускания) клавиши Ctrl при каждом нажатии Caps Lock (теперь F13). Последовательность up+down существует по некоторым техническим причинам, как работают фальшивые события.

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .