Kontrol tuşuna basıldığında ok tuşlarının farklı şekilde hareket etmesinin bir yolu var mı? Benim sistemde ^ -Up ve Up aynı kodu üretirler ...
Kontrol tuşuna basıldığında ok tuşlarının farklı şekilde hareket etmesinin bir yolu var mı? Benim sistemde ^ -Up ve Up aynı kodu üretirler ...
Yanıtlar:
/Etc/personal-linux-console.map sayfamdan:
# Up
control keycode 103 = F69
# Left
control keycode 105 = F71
...
string F69 = "\033<Cu>"
string F71 = "\033<Cl>"
/Etc/rc.local adresinden:
loadkeys -q /etc/personal-linux-console.map
Ben sadece keyfi olarak bu değerleri seçtim. Şimdi Linux konsolunda Control-Up, Escape <<Cu-> beş karakterini gönderecek. Readline'a ~ / .inputrc dosyanızdakileri nasıl yorumlamak istediğinizi söylüyorsunuz.
X ile şeyleri değiştirmek için çeşitli yerler var. Yapabileceğiniz bazı değişiklikler xmodmap
. X'i nasıl başlattığınıza bağlı olarak, xmodmap komutlarınızı ~ / .Xmodmap veya / etc / X11 / Xmodmap biçiminde kaydedebilir ve otomatik olarak yükleyebilirsiniz. Bazı değişiklikler xmodmap için çok zor olacak ve XKB tanım dosyalarını yazmanız gerekecek (bunlar makinemde / usr / share / X11 / xkb altında bulunur). Bunlar çok kıllı ve kötü belgelenmiş. Googling'e göre ne kadar az doktor ve öğretici olduğunu bulmalısın. Yaklaşık bir yıl içinde yeni bir XKB jenerasyonu konuşlandırıldığını görmeliyiz, bu yüzden eski formatı öğrenmek için ne kadar zaman harcadığını anlamıyorum.
Xmodmaps komutları ile Control-keys yapmak mümkün olup olmadığını bilmiyorum. Sanirim oyle. Özel XKB dosyalarında benim yerim vardı (bazı şeylerde zaten XKB dosyalarına ihtiyacım vardı.) Artık X terminalimde (urxvt) yapılandırma dosyalarında yapılandırılmış kontrol tuşlarına sahibim. Kontrol için ve aynı şekilde rastgele seçilen bir sıra kaçış - <-Cu-> kullanıyorum, böylece .inputrc dosyamdaki ayarları (okuma satırı için) ve diğer terminal programlarında (mutt, elinks ve yakında).
Bazı önemli yeniden tanımlamalar için, kendi terminfo dosyalarınızı yazmanız da yararlıdır, böylece terminfoya duyarlı uygulamaların bunları ele alma / tanıma olasılığı daha yüksektir. Bunu Control-ok ayarlarım için yapmıyorum. Ancak, örneğin, Escape- <-SU-> dizesini çıkarmak için tanımlanmış bir anahtarınız varsa, bu dizgiyi "Geri Al" tuşu olarak ilan eden bir terminfo dosyası kullanmak isteyebilirsiniz. Daha sonra bazı uygulamalarda, fiziksel klavyenizde ne yazdığı fark etmeksizin, sadece bu tuşa "Geri Al" olarak başvurabilirsiniz.
Bu karmaşık. Daha basit bir genel çözüm yok. (Yalnızca birkaç anahtarla ilgileniyor olsanız da, birkaç uygulamada, karmaşıklığın bir kısmını görmezden gelebilirsiniz.)
Konsolun altında, çeviri tablosunu incelemek için dump tuşlarını ve değiştirmek için yük tuşlarını kullanabilirsiniz (örneğin, burada F13-F16 ek fonksiyon tuşlarına eşlemek için):
box# dumpkeys
...
keycode 103 = Up
keycode 105 = Left
keycode 106 = Right
keycode 108 = Down
...
box# loadkeys <<EOF
control keycode 103 = F13
control keycode 105 = F14
control keycode 106 = F15
control keycode 108 = F16
EOF
dumpkeys
size hangi tuş kodlarının hangi sembollerle ilişkili olduğunu söyleyecektir. (Ayrıca bkz showkey -k
.) B0fh, F69'a atadığım gibi F13'e Kontrol ataması yapıyor. F1-F20 için cevabımda yaptığım işi yapmana gerek kalmayacağını düşünüyorum strings...
; zaten onlarla ilişkilendirilmiş dizeleri olacak. Ancak, F1-F20'yi başka amaçlar için kullanmak isteyebilirsiniz (genellikle F1'in F11 veya F13'ü üreteceği). Bu durumda, Control-up'u yüksek bir Fkey'e atayın ve istediğiniz dizeyle ilişkilendirin.
VT100 yerine, bunu yapabiliyorsa, xterm öykünme moduna geçin. Xterm emülasyonu yapamıyorsa, yapabilen bir emülatöre geçin. VT100 istediğiniz anahtar dizileri yapamaz, periyot.