Saya ingin memetakan ulang AltGR + Right_Windows saya, tetapi saya tidak tahu caranya. Tidak peduli apa yang saya coba, menekan tombol windows kanan memancarkan nama keysym ketika alt kanan ditekan atau tidak.
Ini adalah isi dari file xmodmap yang saya uji sekarang. Di keyboard saya, 38 adalah kode kunci untuk "a", 48 adalah kode kunci untuk aportrophe / doublequote dan 134 adalah kode kunci untuk tombol windows kanan.
keycode 38 = 1 2 3 4 5 6 7 8
keycode 48 = 1 2 3 4 5 6 7 8
keycode 134 = 1 2 3 4 5 6 7 8
Ketika saya menekan tanda Right_Alt +, output 5 tetapi Right_Alt + a dan Right_Alt + Right_Windows memberikan 1 (baik ketika alt kanan ditekan dan ketika tidak) yang bukan yang saya inginkan.
Layout keyboard saya saat ini adalah us(alt-intl)
dan alt yang tepat tampaknya diatur untuk bertindak sebagai AltGr / Iso_Level3_Shift. Output dari xmodmap -pm
adalah sebagai berikut:
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
xev
dan menekan berbagai kombinasi tombol untuk melihat apakah perangkat keras dan hingga tingkat Xwindows mendapatkan penekanan tombol yang dapat dibedakan untuk memulai.us(cz_sk_de)
tata letak keyboard dan xmodmap.Jawaban:
Menggunakan xmodmap untuk mengonfigurasi pemetaan kunci individual
Inilah saatnya untuk menuliskan hasil penelitian saya sendiri.
Saya pikir saya pasti telah melewatkan sesuatu di xmodmap dan itu tidak terdokumentasi dengan baik dan orang-orang bingung. Tapi ternyata desain X.Org tentang XKB dan xmodmap hanya bodoh.
Gagal epik: xmodmap
Anda dapat menggunakan xmodmap untuk mendefinisikan ulang pemetaan yang ada selama pemetaan itu benar-benar ada di tata letak keyboard asli Anda. Dalam kasus yang dijelaskan dalam pertanyaan, Anda tidak dapat memperluas perilaku kunci apa pun untuk menggunakan AltGr. Anda hanya dapat mengubah kunci tombol AltGr untuk kode kunci yang sudah menggunakan AltGr.
Lihat juga: http://blog.azundris.com/archives/193-X-treme-pain-XKB-vs-XModMap.html
Penanganan masalah: Mode_switch
Solusi ini dijelaskan dalam jawaban oleh @ Ned64. Anda dapat memetakan kembali
AltGr
dariISO_Level3_Shift
keMode_switch
.Saya berhasil menggunakan baris perintah berikut untuk memetakan kembali
AltGr
.Kerugiannya adalah itu akan merusak tata letak keyboard Anda saat ini tetapi Anda dapat membuat kembali semua pemetaan satu per satu menggunakan
xmodmap
seperti yang telah disebutkan @ Ned64.Penanganan masalah: Tata letak keyboard yang dimodifikasi
Saya menggunakan
us(cz_sk_de)
tata letak keyboard saya dan saya mencoba memodifikasinya dengan menambahkan konfigurasi untuk tombol yang ingin saya perpanjang.(Pada bagian
xkb_symbols "cz_sk_de"
dari/usr/share/X11/xkb/symbols/us
)Setel ulang tata letak keyboard untuk menggunakan versi yang dimodifikasi.
Sekarang Anda dapat (1) jenis Ceko dan Inggris tanda kutip dan elips menggunakan kombinasi
,
,.
,Shift
danAltGr
kunci dan / atau (2) remap tombol tersebut menggunakanxmodmap
sekarang bahwa mereka didefinisikan.Kerugian utama adalah bahwa
setxkbmap
tampaknya tidak mendukung lokasi sembarang untuk tata letak papan ketik dan oleh karena itu Anda perlu menulis ke konfigurasi sistem alih-alih direktori home Anda.Kesimpulan
Ini tampaknya menjadi contoh desain X.Org yang direkayasa ulang dan buruk di mana bahkan hal sepele seperti memetakan kode kunci dan kombinasi pengubah menjadi simbol ternyata menjadi masalah. Alat tampaknya tidak memberikan cara yang masuk akal untuk hanya mengubah pemetaan kunci individu dalam konfigurasi pengguna tanpa efek samping.
sumber
Langkah satu: Jadikan AltGr dapat digunakan
Saya menemukan bahwa AltGr-modifikasi Keys hanya berfungsi pada sistem saya jika saya juga memetakan ulang AltGr-Key untuk
Mode_switch
, seperti ini:Jika Anda memiliki keyboard yang berbeda, Anda mungkin perlu mengganti
108
dengan kode Anda, periksa dengan mengetiklalu gunakan nomor itu. (Kuncinya biasanya disebut
Alt_R
pada sistem yang saya tahu.)Atau, ini juga bisa berfungsi jika Alt_R belum ditugaskan untuk sesuatu yang lain:
Pengubah AltGr Anda sekarang akan melayani posisi 3 (dengan Shift: 4) dalam daftar pengubah Anda.
Langkah dua: Tetapkan kunci sesuai kebutuhan
Anda dapat menetapkan varian AltGr untuk tombol apa pun dari keyboard yang Anda inginkan. Jika Anda memiliki kunci lain yang tidak sesuai dengan kode yang diinginkan sekarang, Anda perlu menetapkan ulang ini seperti kunci Anda yang lain (yang Anda uji).
Langkah tiga: Konversikan ini menjadi skrip
Sekarang ambil saja
xmodmap
perintah Anda dan tuliskan semua (tetapi hanya) modifikasi pada keyboard default Anda menjadi file - yang lebih cepat daripada memuat keymap lengkap. Mulai skrip ini satu kali setelah setiap login dan kapan saja keymap akan direset oleh beberapa proses.Saya telah bereksperimen dengan ini banyak selama bertahun-tahun, di bawah Solaris, IRIX dan Linux, dan setahu saya ini adalah satu-satunya solusi untuk membuat AltGr bekerja - dan itu telah bekerja dengan baik untuk saya selama lebih dari 20 tahun.
sumber
xmodmap -pm
danxmodmap -pke | grep -w SOMECHANGEDKEY
dalam situasi ini, untuk kunci yang tidak berfungsi lagi.xmodmap
sesuai dengan output Anda)xmodmap -pke | grep Alt_R
tidak mengembalikan hasil apa pun di sistem saya. Sistem saya adalah Lenovo ThinkPad X230 dengan Gentoo stable. Saya juga mencoba dengangrep -i
tidak berhasil.us(cz_sk_de)
berhenti bekerja untuk saya. Karenanya jawaban ini tidak bekerja untuk saya dan tidak akan bekerja untuk banyak orang lain.Rupanya, xmodmap tidak membaca AltGR default sebagaimana mestinya, mungkin terbatas pada tata letak keyboard tertentu, mungkin itu semua tata letak non-AS, bagaimanapun, masalah sebenarnya adalah ketika Anda dapat mengganti tata letak keyboard Anda, beberapa orang mungkin tidak benar-benar ingin melakukan itu karena mereka perlu menggunakan karakter khusus pada tata letak yang biasa mereka gunakan (seperti tata letak keyboard skandinavia yang memiliki karakter seperti ðþæöáúíóåů dan sebagainya) yang akan merepotkan untuk dikonfigurasikan untuk tata letak keyboard lainnya.
Anda bisa lari
Untuk mengubah AltGR ke sesuatu yang dapat digunakan xmodmap, dan memang, penugasan keycoad ke-3 akan menjadi output ketika Anda menekan AltGR sekarang, namun itu akan sepenuhnya memecah tata letak keyboard asli karena tidak ada ikatan kunci AltGR yang akan berfungsi lagi dengan tombol AltGR.
Saya telah menemukan dua solusi yang tidak merusak tata letak keyboard saya yang ada dan tidak melibatkan pergantian tata letak , satu adalah untuk mengikat Mode_switch ke tombol lain.
Kunci ideal untuk ini adalah Super_R yang tepat di sebelah AltGR, kode kunci untuk itu adalah 134. Namun tidak semua keyboard memilikinya dan dalam kasus saya di laptop saya tidak memilikinya juga, jadi saya memutuskan untuk mengikatnya ke yang terakhir. sisa kunci yang praktis tidak pernah saya gunakan, Kontrol Benar.
Saya memiliki tata letak keyboard fisik Amerika, tetapi konfigurasi tata letak eropa, dan tombol kurang / lebih besar / bilah (juga dikenal sebagai ISO_Backslash, meskipun itu tidak dikenali oleh xmodmap itu sendiri) biasanya di sebelah Z pada keyboard seperti itu tidak ada. Saya terikat itu ke Menu (135) tetapi bisa berfungsi sebagai alternatif untuk R_Ctrl dan Super_R
Kurasa ini perbaikan kotor.
Solusi kedua butuh sedikit lebih lama untuk mencari tahu. Menggunakan sxhkd (alternatif xbindkeys)
Jika Anda menambahkan ini ke ~ / .config / sxhkd / sxhkdrc :
AltGR Anda akan berfungsi seperti biasa, tetapi ketika ditekan, Mode_switch akan beralih (agak seperti caps lock, tetapi untuk Mode_switch) dan tombol xmodmap apa pun yang menggunakannya akan dikunci ke dalam mode AltGR sampai Anda menekan AltGR lagi untuk melepasnya. Seharusnya masalah sederhana untuk membuat skrip untuk membuka kunci secara otomatis ketika kunci dilepaskan tetapi upaya saya untuk melakukannya cukup buggy, untuk sedikitnya.
sumber