Saya mencoba untuk memetakan kembali keyboard saya agar emacs dapat digunakan. Keyboard ergonomis saya menempatkan satu tombol Kontrol di pulau terpencil dengan 4 tombol di sebelah kiri.
OS adalah pemerasan Debian.
Berikut adalah baris-baris yang saya coba beri makan xmodmap
, saya menempatkannya ke dalam file ~ / .Xmodmap:
Kontrol yang jelas hapus Mod1 ! Tombol Alt diaktifkan 'Opsi' di keyboard saya, ! menggunakan xev menunjukkan mereka untuk mengirim Alt_L dan Alt_R keysym masing-masing keysym Alt_L = Control_L keysym Alt_R = Control_R ! Kunci Super_L dan Super_R adalah kunci Windows keysym Super_L = Alt_L keysym Super_R = Alt_R tambahkan Control = Control_L Control_R tambahkan Mod1 = Alt_L Alt_R
Tujuan saya adalah membuat kunci Option (alias Alt) saya berperilaku seperti kunci Kontrol, dan untuk mendapatkan kunci Windows saya (alias Super) untuk berperilaku seperti Alt.
Berikut adalah kode kunci dan keluaran keyms oleh xev untuk kunci yang dimaksud. Catatan, keyboard saya (keyboard ergonomis Goldtouch) hanya memiliki satu tombol kontrol.
kode kunci 37 (keysym 0xffe3, Control_L) keycode 64 (keysym 0xffe9, Alt_L) keycode 133 (keysym 0xffeb, Super_L) kode kunci 134 (keysym 0xffec, Super_R) keycode 108 (keysym 0xffea, Alt_R)
Inilah yang ditampilkan xev saat berjalan xmodmap .Xmodmap
Acara MappingNotify, serial 34, NO sintetis, jendela 0x0, minta MappingKeyboard, first_keycode 204, hitungan 1 Acara MappingNotify, serial 34, NO sintetis, jendela 0x0, meminta MappingKeyboard, first_keycode 64, hitungan 1 Acara MappingNotify, serial 34, NO sintetis, jendela 0x0, request MappingKeyboard, first_keycode 108, hitungan 1 Acara MappingNotify, serial 34, NO sintetis, jendela 0x0, minta MappingKeyboard, first_keycode 206, hitungan 1 Acara MappingNotify, serial 34, NO sintetis, jendela 0x0, meminta MappingKeyboard, first_keycode 133, hitungan 1 Acara MappingNotify, serial 34, NO sintetis, jendela 0x0, minta MappingKeyboard, first_keycode 134, hitungan 1
Dan ini kesalahan yang dikembalikan oleh xmodmap
:
X Kesalahan permintaan gagal: BadValue (parameter integer di luar kisaran untuk operasi) Opcode utama permintaan gagal: 118 (X_SetModifierMapping) Nilai dalam permintaan gagal: 0x17 Nomor seri permintaan gagal: 17 Nomor seri saat ini dalam aliran output: 17
ada saran tentang bagaimana saya bisa menyelesaikan ini?
xev
di terminal, laluxmodmap
di terminal lain. Anda harus melihat beberapaMappingNotify
bait darixev
, menambahkannya ke pertanyaan Anda. Juga, dixev
jendela, tekan berbagai tombol yang terlibat dan beri tahu kami kode kunci dan kunci apa yang terkait dengan (bagian “kode kunci 37 (keysym 0xffe3, Control_L)” dari output xev).Jawaban:
Ini telah dilaporkan sebagai Bug Debian # 564327 , Bug Debian # 565279 , Bug Ubuntu # 524774 , dan Bug FreeDesktop 20145 . Ada tambalan sumber yang melekat pada diskusi bug FreeDesktop. Ada beberapa usulan solusi di Ubuntu bug diskusi, khususnya sebuah
.Xmodmap
solusi .sumber
Melihat solusi yang dikaitkan oleh Giles, inilah yang berhasil bagi saya:
Tombol Pilihan Saya sekarang berfungsi seperti tombol Kontrol dan Tombol Windows saya seperti tombol Alt.
sumber
Masalah muncul ketika Anda mencoba menambahkan kunci ke pengubah yang sudah ditambahkan ke kunci pengubah lain. Penting untuk diketahui, bahwa jika Anda menambahkan keysym ke modifier, semua keyyms lain yang menyertai keysym jika ditambahkan juga sebagai modifier itu.
Sebagai contoh:
dapat menghasilkan
karena Anda punya sesuatu seperti
di ~ / .Xmodmap Anda (Lihat pemetaan kode kunci saat ini ke keysym via
xmodmap -pke
)yang akan menghasilkan kesalahan BadValue yang dipermasalahkan ketika Anda juga mencoba melakukan sesuatu seperti
karena Caps_Lock sudah ditambahkan ke mod5 modifier.
sumber
Ini adalah solusi lain untuk masalah Anda meskipun tidak benar-benar menjawab pertanyaan Anda. Edit xorg.conf, masukkan berikut ini ke Bagian "InputDevice":
sumber