xmodmap
mungkin tampaknya memberikan jawaban, tetapi tidak, karena kode kunci yang dimanipulasi adalah kunci yang ada pada keyboard, bukan kunci yang dimodifikasi . A controlAadalah kunci yang dimodifikasi.
xmodmap
hanya dapat menetapkan kembali kode kunci yang ada atau (nama mereka) kunci, seperti yang tercantum dalam halaman manualnya:
keycode
NUMBER = KEYSYMNAME ... = KEYSYMNAME ... KEYSYMNAME = KEYSYMNAME ...
keycode
any
keysym
Untuk melihat kode kunci yang xmodmap
tahu tentang, jalankan
xmodmap -pk
yang menunjukkan sesuatu seperti ini (disingkat kejelasan):
There are 4 KeySyms per KeyCode; KeyCodes range from 8 to 255.
KeyCode Keysym (Keysym) ...
Value Value (Name) ...
8 0x0061 (a) 0x0041 (A) 0x00e5 (aring) 0x00c5 (Aring)
9 0x0073 (s) 0x0053 (S) 0x00df (ssharp) 0x00cd (Iacute)
10 0x0064 (d) 0x0044 (D) 0x08ef (partialderivative) 0x00ce (Icircumflex)
11 0x0066 (f) 0x0046 (F) 0x08f6 (function) 0x00cf (Idiaeresis)
12 0x0068 (h) 0x0048 (H) 0x01ff (abovedot) 0x00d3 (Oacute)
13 0x0067 (g) 0x0047 (G) 0x00a9 (copyright) 0x01bd (doubleacute)
14 0x007a (z) 0x005a (Z) 0x07d9 (Greek_OMEGA) 0x00b8 (cedilla)
...
xev
menunjukkan apa yang sebenarnya terjadi:
KeyPress event, serial 34, synthetic NO, window 0xc00001,
root 0x111, subw 0xc00002, time 2209364614, (27,43), root:(47,86),
state 0x4, keycode 8 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (01) "^A"
XmbLookupString gives 1 bytes: (01) "^A"
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0xc00001,
root 0x111, subw 0xc00002, time 2209364773, (27,43), root:(47,86),
state 0x4, keycode 8 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (01) "^A"
XFilterEvent returns: False
Pengubah kontrol adalah 0x4
di negara bagian; the XLookupString
(salah satu dari beberapa fungsi terkait untuk mengkombinasikan peristiwa-peristiwa penting) mentransformasikan keyym untuk "a" menjadi ^A
(control / A).
Karena tidak ada keysym untuk salah satu tombol kontrol, menetapkan ulang kode kunci menggunakan xmodmap
tidak akan mungkin untuk masalah OP.
Untuk mengatasi masalah OP, orang harus memiliki cara untuk memberi tahu sistem operasi untuk (pada dasarnya) menolak untuk memberikan acara terpisah untuk controldan A- tetapi Linux dan X tidak bekerja seperti itu. Membatasi ruang lingkup untuk aplikasi tertentu (xterm) atau serangkaian aplikasi (program berbasis Gtk), orang mungkin membahasnya secara terpisah. Tetapi solusi yang berlaku di seluruh sistem sepertinya tidak bisa dilakukan.
screen
, yang saya gunakan (kecualitmux
tersedia). Jadi, Anda harus mengetikkan Ctrl-A dua kali untuk mendapatkannya. Bukankah klik mouse lebih cepat untuk mencapai posisi yang diinginkan.