Caps Lock ve Shift + Caps Lock'u xkb'de yeniden eşleme


13

Caps Lock ve geleneksel Caps Lock gibi Shift + Caps Lock işlevleri için Caps Lock eşlenir xkb yapılandırmaya çalışıyorum. Aşağıdakileri adlı yeni bir dosyaya koydum /usr/share/X11/xkb/symbols/gdwatson:

partial modifier keys
xkb_symbols "compose" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Multi_key, Caps_Lock ]
    };
};

Sonra setxkbmap -symbols 'pc+us+gdwatson(compose)'başarıyla tamamlanan koştum . Caps Lock, Compose olarak çalışır, ancak Shift + Caps Lock, Caps Lock yerine Compose olarak çalışır. xkbcomp :0.0aşağıdakileri gösterir:

key <CAPS> {
    type= "TWO_LEVEL",
    symbols[Group1]= [       Multi_key,       Multi_key ]
};

İkinci seviye sembol eşlemesi, vermeye çalıştığım ayrı bir değer yerine, bir nedenden ötürü ilkini çoğaltmaktır. Kimse bana neyi yanlış yaptığımı ya da nasıl düzeltebileceğimi söyleyecek kadar güçlü xkb-fu var mı?


1
Bunu Xmodmap'ta yapmanıza yardımcı olabilirim, ama xkb'de değil. Bunu istiyorsanız @mirabilos, bir yorumda olumlu yanıt verin ( cevabınızı yazmayı unutmayın, böylece fark ettim), o zaman bu yorumu silip bir cevap olarak yazacağım (daha sonra yorum yanıtınızı da silmelisiniz).
mirabilos

1
İlk satırında, partial modifier keysaslında olmalı partial modifier_keys? Bu değişiklik olmadan, setxkbmap -symbols 'pc+us+gdwatson(compose)'aslında bir hata ile çıkar, ancak değişiklikle, istenen çıktıyı alırım xkbcomp :0.0. Ancak Capslock tuşuna aynı anda beni Capslock moduna sokup tuş modunu oluşturmanın istenmeyen yan etkisini elde ediyorum.
billyjmc

Yanıtlar:


11

Bu aradığınız şeyi başarıyor gibi görünüyor.

partial modifier_keys
xkb_symbols "compose" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Multi_key, Caps_Lock ],
        actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
    };
};

XKB ile uğraşırken aşağıdaki kaynaklar paha biçilmezdir (Geleceğin kanıtlanması için WayBack Machine'in bu sayfaların aynalarına bağladım):


Ayrıca, ilk satırı default partial modifier_keysyaparsanız, açıkça belirtmeniz setxkbmap -symbols 'pc+us+gdwatson(compose)'gerekmez, bunu yapabilirsinizsetxkbmap -symbols 'pc+us+gdwatson'
billyjmc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.