Відповіді:
Інструменти для управління розкладкою клавіатури на віртуальних консолях є loadkeys
, dumpkeys
і showkey
. Прочитайте їхні керівники та повідомте про свої тонкощі.
Зауважте, що ці інструменти працюють лише у віртуальній консолі, а не в емуляторі терміналу в графічному середовищі, наприклад, gnome. Дізнайтеся про різницю читайте це запитання та відповіді: https://askubuntu.com/questions/14284/why-is-a-virtual-terminal-virtual-and-what-why-where-is-the-real-terminal .
Ось короткий посібник, щоб зробити те, що ви хочете:
Збережіть поточну розкладку клавіатури:
$ dumpkeys > backup.kmap
У випадку, якщо щось піде не так, можливо, ви зможете відновити свою карту клавіш за допомогою команди:
$ sudo loadkeys backup.kmap
Якщо клавіатура настільки заплутана, що ви навіть не можете цього зробити, то ваш єдиний варіант, що не передбачає давньої магії ядра, - це перезавантажити.
Перевірте, які ключові коди призначені вашим ключам:
$ showkey
Тепер натисніть клавішу ESC і клавішу CAPSLOCK. Ключові коди повинні відображатися на екрані. Зверніть увагу на ключові коди. У моїй системі ESC має код 1 і CAPSLOCK має код 58. showkey
Він припиняється через 10 секунд бездіяльності (принаймні, це відбувається на моєму ubuntu 10.04).
Зверніть увагу на назви клавіш ESC та CAPSLOCK з дамперів:
$ dumpkeys | grep 1
...
keycode 1 = Escape
...
$ dumpkeys | grep 58
...
keycode 58 = CtrlL_Lock
...
Зверніть увагу на рядок ключових карт з дамперів:
$ dumpkeys | head -1
keymaps 0-127
Створіть файл ключової карти, який перемикає ESC та CAPSLOCK:
keymaps 0-127
keycode 1 = CtrlL_Lock
keycode 58 = Escape
Завантажте ключову карту:
$ sudo loadkeys swap_esc_capslock.kmap
Тест: Тестування клавіші CAPSLOCK очевидно. Просто натисніть клавішу CAPSLOCK і перевірте, чи не використовуються інші клавіші з великої літери. Для тестування ключа ESC ви можете використовувати CTRL + V, а потім ESC. Він повинен надрукувати ^[
. CTRL + V змушує оболонку друкувати наступний ключ дослівно, а не інтерпретувати його.
Щоб завантажувати цю модифікацію під час кожного перезавантаження, введіть у /etc/rc.local
файл наступний рядок :
/usr/bin/loadkeys /path/to/swap_esc_capslock.kmap
Інформація, зібрана з різних сторінок, включаючи, але не обмежуючись ними:
/usr/bin/loadkeys
в /etc/rc.local
так змінної середовища шлях не гарантується бути встановлена на даному етапі. І sudo
не потрібен в rc.local
.
rc.local
виконується кожного разу, коли система завантажується. @ Bukzor - х sudo setupcon
це НЕ в rc.local
, це команда установки разової, який замінює розкладку системи по замовчуванню, без додавання будь - якого коду запуску середовища виконання. Додавання loadkeys
до rc.local
, додає додатковий запуск коду і дублікати , що вже було зроблено по loadkeys системи по замовчуванню. Цей rc.local
метод насправді може бути менш безпечним, оскільки він залежить від нестандартного шляху до ключової карти.
setupcon
метод. Додайте власну відповідь або відредагуйте мою, якщо бажаєте.
setupcon
. Виявляється , що Август зробив припущення про те , що sudo setupcon --save
буде йти в rc.local
який я не думаю , що це правда, але якщо це станеться, вам не потрібно sudo
в rc.local
. Я думаю, нам потрібна додаткова інформація, перш ніж оновлювати вашу відповідь. Головне питання - "Як встановити змінену карту клавіш, щоб вона автоматично завантажувалася під час завантаження?" Я дійсно не знаю, що є кращим способом, rc.local
або встановити карту клавіш, або навіть якщо встановити карту буде працювати. Я досліджував це останнім часом, і я перевірю тут.
Використовуйте "ctrl: nocaps" замість "ctrl: swapcaps", якщо ви просто хочете мати два ключа caplocks (caplock під іншим ім'ям все ще супер марний).
X11: (див. Також /usr/share/X11/xkb/rules/base.lst
:)
sudo vim /etc/default/keyboard
XKBOPTIONS="ctrl:swapcaps"
udevadm trigger --subsystem-match=input --action=change
sudo restart lightdm
Текстова консоль: (викрадено у програмі setupcon)
#!/bin/sh
. /etc/default/console-setup
. /etc/default/keyboard
ckbcomp $acm_option $rules_option -model "$XKBMODEL" \
"$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" \
| gzip -9 2>/dev/null >/etc/console-setup/cached.kmap.gz
loadkeys /etc/console-setup/cached.kmap.gz
sudo setupcon --save
зміни постійними, а не редагувати rc.local. Це по суті те саме, щоdumpkeys < /dev/tty1 | gzip > /etc/console-setup/cached.kmap.gz