Перезавантажте CapsLock для втечі та управління системою широко


18

Чи можливо перенастроїти систему клавіш CapsLock настільки широко, що при натисканні кнопки CapsLock сама вона виконує функцію клавіші втечі, а при натисканні на іншу клавішу вона виконує функцію керуючої клавіші?


5
Це здається, що це було б дуже важко. Наприклад, він не міг генерувати події вниз, оскільки ви не знаєте, яку клавішу щойно натискали. Якщо його випускають без натискання іншої клавіші, то це був Escape, інакше це було Control.
cjm

Відповіді:


16

Я знайшов дуже вдале рішення під назвою xcape . З ПРОЧИТАННЯ:

xcape працює як демон і перехоплює клавішу Control. Якщо клавішу Control натиснути і відпустити самостійно, вона створить подія клавіші Escape.

Це має більше сенсу, якщо ви перезавантажили клавішу Caps Lock для керування. Майбутні версії цієї програми можуть зробити це відображення для вас, але наразі це щось, що ви повинні зробити самостійно.


Для цього я зробив хакі-скрипт: github.com/cmatheson/super-caps
cam

6

Я намалював Caps для Escape, щоб мені було зручніше друкувати у Vim. Я використовував xmodmapі вкладав це ~/.Xmodmap.

clear Lock
keycode 0x42 = Escape

Для застосування: xmodmap ~/.Xmodmap. Ви можете помістити це у такий файл, як ~ / .bash_profile (я вкладаю в ~ / .xinitrc, тому що я не використовую менеджер входу.

Щоб зіставити CapsLock + [інший ключ], розгляньте можливість використання xbindkeys.


4

Рішення для перекомпонування ключів у всій системі Linux - це написання простого правила udev. Це не залежатиме від X, працюватиме на будь-якому терміналі чи додатку та переноситься між будь-якими останніми встановленнями Linux, просто скопіювавши два файли.

Вам потрібно написати два файли: один, що містить правило udev, яке вказує ядру, щоб перезавантажити ключі, і той, що містить фактичні потрібні відображення.

Використовуючи цей метод, я перекомпонував всю клавіатуру, можливо, код корисний як натхнення http://git.adirat.com/carpalx-keyboard


посилання мертве, чи можете ви оновити її? Спасибі!
qed

Я оновив його, вибачте за затримку
gimmesudo

Bitbucket говорить: "Ви не маєте доступу до цього сховища". Чи можете ви знову оприлюднити це? Спасибі!
Тіані Куй

@TianyiCui перевірити посилання зараз
gimmesudo

1
Посилання для мене мертве або заблоковано. Будь-який шанс, що ви могли б поставити фактичні файли у своїй відповіді?
лабіринт


1

Я натрапив на інше питання щодо AskUbuntu, на який було добре відповісти , але мені довелося трохи змінити його, щоб працювати на моїх системах.

За коментарями Луї та Сергія там я придумав це рішення, яке працює для мене на Ubuntu 16.04 (Xenial), і я буду переносити його з собою в інші системи Linux, які я використовую.

Я встановив xcape і помістив наступні рядки коду у свій .profileфайл у своєму домашньому каталозі.

ОНОВЛЕНИЙ МЕТОД:

Через те, що різні диспетчери дисплеїв (gdm / kdm / sddm / тощо) поводяться дивними способами та скидають setxbmapпісля призупинення / відновлення чи блокування / розблокування, я виявив, як встановити параметри таким чином, щоб вони успадкували його та не робили ' t постійно його скидати. Оскільки я призупиняю та поновлюю багато, що мені потрібно, щоб переконатися, що я не отримав багато копій xcapeзапущених, що вирішено в новому сценарії нижче.

Спочатку змініть конфігурацію клавіатури за допомогою sudo gedit /etc/default/keyboardта встановіть, XKBOPTIONS="ctrl:nocaps"а потім введіть ~/.xprofileодин рядок нижче.

ps aux | grep -i '[x]cape' && killall -9 xcape; hash xcape 2>&1 >/dev/null && xcape -e 'Control_L=Escape' -t 100 &

Сподіваємось, різні розділи сценарію економлять вам певний час / проблеми та запобігають застряглому входу. Спочатку він перевіряє, чи є вже запущений екземпляр, і вбиває його, оскільки єдине, що xcapeце зробити, це зіставити Ctrl на Esc, це безпечно, тоді ця hashчастина гарантує, що ви xcape встановили, інакше ваша система може зависнути при спробі входу, тому що всі запуски. Очікується, що сценарії вийдуть чисто.

Старий шлях:

setxkbmap -option 'caps:ctrl_modifier'; xcape -e '#66=Escape'

Сергій:

Я використовував інструмент gnome-tweak, щоб зіставити Caps Lock на Ctrl, оскільки в системних налаштуваннях Ubuntu 14.04 відсутня розкладка клавіатури. Тоді xcape -e 'Control_L = Escape' не працював, але після використання xcape -d я виявив, що Caps Lock генерує код ключа 66 і перезаписав його відповідно: xcape -e '# 66 = Escape'. - Сергій Бієлозьоров 4 вересня '14 о 10:08

Луї:

Відповідно до цієї публікації в блозі, це можна зробити за допомогою xcape поодинці: setxkbmap -option 'caps: ctrl_modifier'; xcape -e 'Caps_Lock = Escape' setxkbmap -option 'cap: ctrl_modifier'; xcape -e 'Caps_Lock = Втеча; Control_L = Втеча; Control_R = Втеча' - Луї Сімоно 4 серпня '15 о 10:06

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.