Відповіді:
Інструменти для управління розкладкою клавіатури на віртуальних консолях є 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