Kontrol-Atas, Bawah, Kiri, Kanan sebagai tombol tambahan

1

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 ...

Chris2048
sumber
Saya merasakan jawaban Autohotkey lain masuk!
Ivo Flipse
Anda perlu mengatakan lebih banyak tentang lingkungan tempat Anda bekerja; juga ini sangat mirip dengan superuser.com/questions/110277
dubiousjim
... dan pertanyaan Anda sendiri superuser.com/questions/110248 ! mengapa tidak bekerja dengan superuser.com/questions/94436 atau pertanyaan lain sebelumnya tentang topik ini !?
dubiousjim
Terima kasih banyak; Tetapi bisakah saya melakukan hal yang sama melalui SSH? Tampaknya tidak menggunakan keymap yang sama.
Chris2048
Duplikat "Bagaimana saya bisa mendapatkan .." ada karena satu dimigrasikan dari SO, yang lain saya buat sendiri. Pertanyaan itu khususnya mungkin terlalu rumit karena ada banyak lapisan yang harus dikerjakan. Saya tidak yakin "bagaimana cara mengkonfigurasi-dempul ..." adalah pertanyaan yang sama. Lingkungannya adalah Linux.
Chris2048

Jawaban:

2

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.)

dubiousjim
sumber
Saya dulu memetakan ulang kunci menggunakan xmodmap, tapi tentu saja itu tidak berfungsi ketika Anda tidak menggunakan X. Namun saya rasa ini sedikit lebih mudah. +1 untuk keunggulan umum dalam layanan jawaban yang sangat baik.
Charles Stewart
0

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
b0fh
sumber
Ya ini bekerja di konsol * nix, tetapi kemudian seseorang perlu melakukan sesuatu yang berbeda di X, dan sesuatu yang lagi berbeda di Windows, dan beberapa emulator terminal akan membuat ini mudah lainnya mudah sekali gila sulit. Penanya harus menguraikan, kita tidak seharusnya menebak.
dubiousjim
Mengelaborasi: dumpkeysakan 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.
dubiousjim
0

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.

Justin Smith
sumber