Saya mencoba mengkonfigurasi xkb sehingga Caps Lock dipetakan ke tombol Compose dan Shift + Caps Lock berfungsi sebagai Caps Lock tradisional. Saya menaruh yang berikut ini di file baru bernama /usr/share/X11/xkb/symbols/gdwatson
:
partial modifier keys
xkb_symbols "compose" {
key <CAPS> {
type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Multi_key, Caps_Lock ]
};
};
Kemudian saya berlari setxkbmap -symbols 'pc+us+gdwatson(compose)'
, yang selesai dengan sukses. Caps Lock berfungsi sebagai Tulis, tetapi Shift + Caps Lock berfungsi sebagai Tulis bukan Caps Lock. xkbcomp :0.0
mengungkapkan yang berikut:
key <CAPS> {
type= "TWO_LEVEL",
symbols[Group1]= [ Multi_key, Multi_key ]
};
Pemetaan simbol level kedua menduplikasi yang pertama karena suatu alasan, alih-alih nilai terpisah yang saya coba berikan. Adakah yang punya xkb-fu yang cukup kuat untuk memberi tahu saya apa yang telah saya lakukan salah atau bagaimana cara memperbaikinya?
keyboard-layout
xkb
Grant Watson
sumber
sumber
@mirabilos
di respons Anda, jadi saya perhatikan) dalam komentar, maka saya akan menghapus komentar ini dan menuliskannya sebagai jawaban (Anda juga harus menghapus respons komentar Anda).partial modifier keys
benar-benar menjadipartial modifier_keys
? Tanpa perubahan ini,setxkbmap -symbols 'pc+us+gdwatson(compose)'
sebenarnya keluar dengan kesalahan, tetapi dengan perubahan itu, saya mendapatkan output yang diinginkanxkbcomp :0.0
. Namun saya mendapatkan efek samping yang tidak diinginkan yang menekan Capslock secara bersamaan membuat saya dalam mode Capslock dan membuat mode tombol.Jawaban:
Ini sepertinya mencapai apa yang Anda cari.
Sumber daya berikut ini sangat berharga ketika berhadapan dengan XKB (Saya telah menautkan ke cermin-mesin WayBack dari halaman-halaman ini untuk pemeriksaan kedepan):
sumber
default partial modifier_keys
, maka Anda tidak perlu menentukan secara eksplisitsetxkbmap -symbols 'pc+us+gdwatson(compose)'
, Anda cukup melakukannyasetxkbmap -symbols 'pc+us+gdwatson'