Menggunakan setxkbmap untuk remap sederhana (mirip dengan xmodmap)

13

Saya telah menghadapi beberapa masalah setelah memetakan kembali keyboard dengan xmodmap: pengaturan dapat diatur ulang secara acak setelah 2-20 menit setelah mendaftar. Cari di Google tetapi tidak membantu: sesuatu me-reset mereka, tetapi semua menyebutkan berlaku untuk xfce, sementara saya di bawah Ubuntu biasa 14,04 dengan kesatuan.

Saya melihat frasa seperti 'gunakan xkb, lupakan xmodmap', tetapi masih belum tahu bagaimana melakukannya. Entah diklasifikasikan atau sangat rumit, karena jumlah info tentang itu secara signifikan lebih kecil daripada cara xmodmap.

Inilah daftar penyesuaian saya:

xmodmap -e "keycode 84 = Down"
xmodmap -e "keycode 79 = Home"
xmodmap -e "keycode 80 = Up"
xmodmap -e "keycode 83 = Left"
xmodmap -e "keycode 85 = Right"
xmodmap -e "keycode 87 = End"
xmodmap -e "keycode 90 = Insert"
xmodmap -e "keycode 91 = Delete"
xmodmap -e "keycode 89 = Next"
xmodmap -e "keycode 81 = Prior"

di mana kode kunci adalah tombol yang sesuai pada numpad, dengan numlock = off (pada dasarnya, saya mengganti KP_Del dengan Delete, KP_Home dengan Home dll - jangan tanya kenapa))

Dapatkah seseorang membantu menemukan cara untuk melakukannya menggunakan xkb - setidaknya satu dari baris? Dan di mana menemukan "nama" kunci untuk yang lain sehingga saya bisa melakukan sisanya dengan contoh?

Den Drobiazko
sumber
5
Ya. Punya masalah yang sama persis. Lihat di sini: rlog.rgtti.com/2014/05/01/… dan askubuntu.com/questions/422650/… . Jika Anda dapat menemukan cara menggunakan xkbtanpa menulis ulang file sistem, tulis jawaban di sini ... Anda akan diberi hadiah dengan zillions upvotes.
Rmano
Wow - akhirnya panduan remap xkb yang membuat segalanya lebih jelas ... Tapi saya tidak bisa melihat apa-apa tentang memetakan kembali Home, Delete's dan Up- & Down-arows. Itu selalu tentang beberapa huruf Yunani atau Spanyol. Sejauh ini saya pergi ke arah lain - mencoba menghentikan sistem dari menimpa pengaturan Xmodmap saya (resep # 3 dari sini: programmingiroiro.blogspot.com/2013/03/… )
Den Drobiazko
1
Gagasan buruk - tidak ada penggantian tata letak yang tersedia setelah itu (
Den Drobiazko

Jawaban:

4

Anda dapat mengikuti ide umum yang terlihat dalam jawaban saya pada masalah yang sama ; jika Anda masih ingin beralih tata letak (walaupun masih cukup rusak ) Anda harus menentukan tata letak atau varian baru .

Perhatikan bahwa template untuk menyalin dan memodifikasi untuk mengedit keypad agak sulit ditemukan. Di keyboard saya, misalnya, geometri adalah "pc105"; ini didefinisikan dalam /usr/share/X11/xkb/symbols/pc. Jika Anda melihatnya, itu termasuk :

[...]
key <SPCE> {        [        space          ]       };

include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"

key <BKSP> {        [ BackSpace, BackSpace  ]       };
[...]

Papan tombol ditentukan dalam file /usr/share/X11/xkb/symbols/keypad

[...] 
default  partial hidden keypad_keys
xkb_symbols "x11" {
   include "keypad(operators)"

   key  <KP7> {        [  KP_Home,     KP_7    ]       };
   key  <KP8> {        [  KP_Up,       KP_8    ]       };
[...]

Untuk nama simbol kunci (keysims), tempat terbaik untuk melihat adalah ke dalam file /usr/include/X11/keysymdef.h; Anda mungkin perlu menginstal paket pengembangan untuk memilikinya (atau menginstalnya dengan menginstal x11proto-core-dev):

[...]
/* Cursor control & motion */

#define XK_Home                          0xff50
#define XK_Left                          0xff51  /* Move left, left arrow */
#define XK_Up                            0xff52  /* Move up, up arrow */
[...]

nama keysym adalah yang pernah Anda hapus string "XK_".

Rmano
sumber