Yanıtlar:
Araçlar üzerinde klavye düzeni işlemek için sanal konsolları vardır loadkeys
, dumpkeys
ve showkey
. Sayfalarını okuyun ve inceliklerini inceleyin.
Bu araçların yalnızca sanal bir konsolda çalıştığını, gnome gibi grafiksel bir ortamda terminal emülatöründe çalışmadığını unutmayın. Fark hakkında bilgi edinmek için bu soruyu ve cevapları okuyun: https://askubuntu.com/questions/14284/why-is-a-virtual-terminal-virtual-and-what-why-where-is-the-real-terminal .
İstediğinizi yapmak için kısa bir rehber:
Mevcut klavye düzeninizi kaydedin:
$ dumpkeys > backup.kmap
Bir şeyler ters giderse, aşağıdaki komutu kullanarak ana haritanızı geri yükleyebilirsiniz:
$ sudo loadkeys backup.kmap
Klavye o kadar karışıksa, bunu bile yapamazsınız o zaman antik çekirdek sihirini içermeyen tek seçeneğiniz yeniden başlatmaktır.
Anahtarlarınıza hangi tuş kodlarının atandığını kontrol edin:
$ showkey
Şimdi ESC tuşuna ve CAPSLOCK tuşuna basın. Tuş kodları ekranda görünmelidir. Tuş kodlarını not edin. Sistemimde ESC 1 anahtar koduna sahip ve CAPSLOCK anahtar 58 koduna sahip. showkey
10 saniye aktif olmadığında sona erecek (en azından benim ubuntu 10.04'ümde var).
Boşaltma tuşlarından ESC ve CAPSLOCK anahtarlarının adlarını not edin:
$ dumpkeys | grep 1
...
keycode 1 = Escape
...
$ dumpkeys | grep 58
...
keycode 58 = CtrlL_Lock
...
Dumpkeys'den gelen keymap satırını not edin:
$ dumpkeys | head -1
keymaps 0-127
ESC ve CAPSLOCK anahtarlarını değiştiren bir keymap dosyası oluşturun:
keymaps 0-127
keycode 1 = CtrlL_Lock
keycode 58 = Escape
Tuş haritasını yükleyin:
$ sudo loadkeys swap_esc_capslock.kmap
Test: CAPSLOCK anahtarının test edilmesi açıktır. Sadece CAPSLOCK tuşuna basın ve diğer tuşların büyük harf olup olmadığını kontrol edin. ESC anahtarını test etmek için CTRL + V ve ardından ESC kullanabilirsiniz. Basmalı ^[
. CTRL + V, kabuğun yorumlamak yerine bir sonraki anahtarı sözlü yazdırmasını sağlar.
Bu değişikliğin her yeniden başlatmaya yüklenmesini sağlamak için /etc/rc.local
dosyanızı aşağıdaki satırı ekleyin :
/usr/bin/loadkeys /path/to/swap_esc_capslock.kmap
Aşağıdakiler dahil ancak bunlarla sınırlı olmamak üzere, çeşitli sayfalardan toplanan bilgiler:
/usr/bin/loadkeys
içinde /etc/rc.local
yol ortam değişkeni bu aşamada ayarlanması garanti edilmez. Ve sudo
buna gerek yok rc.local
.
rc.local
, sistemin her önyüklemesinde çalıştırılır. @ bukzor en sudo setupcon
olduğu değil de rc.local
herhangi bir çalışma zamanı başlatma kodu eklemeden, sistem varsayılan keymap yerini bir kerelik kurulum komut, var. Ekleme loadkeys
için rc.local
, fazladan kod ve zaten sistem varsayılan loadkeys tarafından yapılanlar çiftleri başlatmak ekler. Bu rc.local
yöntem aslında daha az güvenli olabilir, çünkü anahtar eşlemenin standart olmayan bir yoluna bağlıdır.
setupcon
yöntemi hazırlayın . İsterseniz kendi cevabınızı ekleyin veya benimkileri düzenleyin.
setupcon
. O Ağustos varsayımını icra ettikleri anlaşılıyor sudo setupcon --save
girecek rc.local
ben gerçek olduğunu düşünmüyorum hangi ama olursa, sen gerekmez sudo
içinde rc.local
. Cevabınızı güncellemeden önce daha fazla bilgiye ihtiyacımız olduğunu düşünüyorum. Asıl soru "Önyükleme işlemi sırasında otomatik olarak yüklenecek şekilde değiştirilmiş keymap nasıl kurulur?" Hangisinin daha iyi bir yol olduğunu rc.local
ya da bir anahtar harita takmanın ya da bir anahtar harita takmanın işe yarayacağını bile bilmiyorum . Son zamanlarda bunu araştırıyorum ve burayı tekrar kontrol edeceğim.
Eğer sadece iki capslocks anahtarına sahip olmak istiyorsanız 'ctrl: swapcaps' yerine 'ctrl: nocaps' kullanın (başka bir ismin capslock'u yine de kullanışsızdır).
X11: (ayrıca bkz: /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
Metin konsolu: (setupcon'dan çalınmış)
#!/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 dosyasını düzenlemek yerine değişiklikleri kalıcı yapmak için de kullanabilirsiniz . Bu aslında aynıdumpkeys < /dev/tty1 | gzip > /etc/console-setup/cached.kmap.gz