Chciałbym wymienić Esci CapsLockw konsoli (nie w X i używać xev
), jak mogę to zrobić?
Mój system operacyjny to Ubuntu.
Narzędzia do manipulowania układ klawiatury na konsolach wirtualnych są loadkeys
, dumpkeys
i showkey
. Przeczytaj ich strony i dowiedz się o ich zawiłościach.
Zauważ, że narzędzia te działają tylko w wirtualnej konsoli, a nie w emulatorze terminali w środowisku graficznym takim jak gnome. Aby dowiedzieć się o różnicy, przeczytaj to pytanie i odpowiedzi: https://askubuntu.com/questions/14284/why-is-a-virtual-terminal-virtual-and-what-why-where-is-the-real-terminal .
Oto krótki przewodnik, jak robić, co chcesz:
Zapisz swój obecny układ klawiatury:
$ dumpkeys > backup.kmap
Jeśli coś pójdzie nie tak, możesz przywrócić mapę klawiszy za pomocą polecenia:
$ sudo loadkeys backup.kmap
Jeśli klawiatura jest tak pomieszana, że nie możesz tego zrobić, to jedyną opcją, która nie wiąże się ze starożytną magią jądra, jest ponowne uruchomienie.
Sprawdź, które kody dostępu są przypisane do twoich kluczy:
$ showkey
Teraz naciśnij klawisz ESC i klawisz CAPSLOCK. Kody klawiszy powinny pojawić się na ekranie. Zanotuj kody klawiszy. W moim systemie ESC ma kod 1, a CAPSLOCK ma kod 58. showkey
zakończy się po 10 sekundach bezczynności (przynajmniej w moim Ubuntu 10.04).
Zanotuj nazwy kluczy ESC i CAPSLOCK z klawiszy zrzutu:
$ dumpkeys | grep 1
...
keycode 1 = Escape
...
$ dumpkeys | grep 58
...
keycode 58 = CtrlL_Lock
...
Zanotuj wiersz mapy klawiszy ze śmietników:
$ dumpkeys | head -1
keymaps 0-127
Utwórz plik mapy klawiszy, który przełącza ESC i CAPSLOCK:
keymaps 0-127
keycode 1 = CtrlL_Lock
keycode 58 = Escape
Załaduj mapę klawiszy:
$ sudo loadkeys swap_esc_capslock.kmap
Test: Testowanie klucza CAPSLOCK jest oczywiste. Wystarczy nacisnąć klawisz CAPSLOCK i sprawdzić, czy inne klawisze wychodzą z dużej litery. Aby przetestować klucz ESC, możesz użyć CTRL + V, a następnie ESC. Powinien wydrukować ^[
. CTRL + V sprawia, że powłoka wypisuje następny klucz dosłownie zamiast go interpretować.
Aby ta modyfikacja była ładowana przy każdym ponownym uruchomieniu, umieść w swoim /etc/rc.local
pliku następujący wiersz :
/usr/bin/loadkeys /path/to/swap_esc_capslock.kmap
Informacje zebrane z różnych stron, w tym między innymi:
sudo setupcon --save
do wprowadzenia zmian na stałe, zamiast edytować plik rc.local. Jest to w zasadzie to samo, codumpkeys < /dev/tty1 | gzip > /etc/console-setup/cached.kmap.gz
/usr/bin/loadkeys
w/etc/rc.local
ponieważ zmienna środowiskowa PATH nie jest gwarantowana być ustawione na tym etapie. Isudo
nie jest potrzebny wrc.local
.rc.local
wykonywana przy każdym uruchomieniu systemu. @ bukzor nasudo setupcon
to nie wrc.local
, to komenda setup jednorazowa, która zastępuje domyślny układ układ klawiatury, bez dodawania jakiegokolwiek kodu startowego wykonawcze. Dodanieloadkeys
dorc.local
dodaje dodatkowo uruchomić kod i duplikatów, co zostało już zrobione przez domyślny system loadkeys. Tarc.local
metoda może być mniej bezpieczna, ponieważ zależy od niestandardowej ścieżki do mapy klawiszy.setupcon
metodę. Dodaj własną odpowiedź lub edytuj moją, jeśli chcesz.setupcon
. Wydaje się, że sierpień wykonane przy założeniu, żesudo setupcon --save
pójdzie dorc.local
których ja nie sądzę, to prawda, ale jeśli tak, to nie trzebasudo
sięrc.local
. Myślę, że potrzebujemy więcej informacji przed zaktualizowaniem twojej odpowiedzi. Główne pytanie brzmi: „Jak zainstalować zmodyfikowaną mapę klawiszy, aby ładowała się automatycznie podczas procesu uruchamiania?” Naprawdę nie wiem, który jest lepszy sposób,rc.local
instalowanie mapy klawiszy, a nawet to, czy instalacja klawiatury będzie działać. Ostatnio to badam i wrócę tutaj.Użyj „ctrl: nocaps” zamiast „ctrl: swapcaps”, jeśli chcesz mieć tylko dwa klawisze Capslocks (Capslock pod inną nazwą jest nadal bardzo bezużyteczny).
X11: (zobacz też:
/usr/share/X11/xkb/rules/base.lst
)Konsola tekstowa: (skradziony z setupcon)
źródło