Apakah ada cara untuk mendapatkan tombol panah untuk bertindak secara berbeda saat tombol kontrol ditekan. Di sistem saya ^ -Up dan Up menghasilkan kode yang sama ...
Apakah ada cara untuk mendapatkan tombol panah untuk bertindak secara berbeda saat tombol kontrol ditekan. Di sistem saya ^ -Up dan Up menghasilkan kode yang sama ...
Jawaban:
Dari /etc/personal-linux-console.map saya:
# Up
control keycode 103 = F69
# Left
control keycode 105 = F71
...
string F69 = "\033<Cu>"
string F71 = "\033<Cl>"
Dari /etc/rc.local saya:
loadkeys -q /etc/personal-linux-console.map
Saya hanya memilih nilai-nilai ini secara sewenang-wenang. Sekarang di konsol Linux, Control-Up akan mengirim lima karakter Escape- <-Cu->, dan seterusnya. Anda memberi tahu readline bagaimana Anda ingin menafsirkannya di file ~ / .inputrc Anda.
Dengan X, ada berbagai tempat untuk mengubah hal. Beberapa perubahan dapat Anda lakukan dengan xmodmap
. Bergantung pada bagaimana Anda memulai X, Anda mungkin bisa menyimpan perintah xmodmap Anda di ~ / .Xmodmap atau / etc / X11 / Xmodmap dan langsung memuatnya. Beberapa perubahan akan terlalu rumit untuk xmodmap, dan Anda harus menulis file definisi XKB (ini berada di bawah / usr / share / X11 / xkb di komputer saya). Ini sangat berbulu dan kurang terdokumentasi. Anda harus menemukan beberapa dokumen dan tutorial yang ada di Google. Dalam sekitar satu tahun kita akan melihat generasi baru XKB dikerahkan, jadi saya tidak tahu seberapa masuk akal untuk menginvestasikan waktu dalam mempelajari format lama.
Saya tidak tahu apakah mungkin untuk melakukan kontrol-kunci dengan perintah xmodmaps. Aku rasa ini. Saya dulu punya saya di file XKB kustom (saya butuh file XKB, untuk beberapa hal.) Sekarang saya memiliki kunci kontrol yang dikonfigurasi dalam file konfigurasi terminal X (urxvt) saya. Saya menggunakan escape sequence yang dipilih secara sewenang-wenang yang sama- <-Cu-> untuk kontrol, dan seterusnya, sehingga saya bisa menggunakan pengaturan dalam file .inputrc saya (untuk readline) dan untuk program terminal lainnya (mutt, elinks, dan sebagainya).
Untuk beberapa redefinisi kunci, juga berguna untuk menulis file terminfo Anda sendiri sehingga aplikasi yang sadar terminfo akan lebih mampu menangani / mengenalinya. Saya tidak melakukan itu untuk pengaturan panah kontrol saya. Tetapi misalnya, jika Anda memiliki beberapa kunci yang ditentukan untuk mengeluarkan string Escape- <-SU->, Anda mungkin ingin menggunakan file terminfo yang menyatakan string itu sebagai kunci "Undo". Kemudian di beberapa aplikasi Anda hanya dapat merujuk ke kunci itu sebagai "Undo", tidak peduli apa yang tertulis di keyboard fisik Anda.
Ini rumit. Tidak ada solusi umum yang lebih sederhana. (Meskipun jika Anda hanya peduli dengan beberapa tombol, dalam beberapa aplikasi, Anda mungkin dapat mengabaikan beberapa kerumitan.)
Di bawah konsol, Anda dapat menggunakan dumpkeys untuk memeriksa tabel terjemahan dan loadkeys untuk mengubahnya (misalnya, di sini untuk memetakannya ke tombol fungsi tambahan F13-F16):
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
akan memberi tahu Anda kode kunci mana yang dikaitkan dengan simbol mana. (Lihat juga showkey -k
.) B0fh menugaskan Control-up ke F13, seperti yang saya tetapkan ke F69. Untuk F1-F20, saya pikir Anda tidak perlu melakukan hal yang strings...
saya lakukan dalam jawaban saya; mereka akan memiliki string yang terkait dengannya. Tetapi Anda mungkin ingin menggunakan F1-F20 untuk tujuan lain (umumnya shift-F1 akan menghasilkan F11 atau F13). Dalam hal ini, tetapkan Control-up ke Fkey tinggi dan kaitkan dengan string yang Anda inginkan.
Letakkan dempul dalam mode emulasi xterm jika dapat melakukannya, bukan VT100. Jika tidak dapat melakukan emulasi xterm, beralihlah ke emulator yang bisa. VT100 tidak dapat melakukan urutan kunci yang Anda inginkan, titik.