ทำการแมปทั้ง Caps Lock และ Shift + Caps Lock ใน xkb


13

ฉันพยายามกำหนดค่า xkb เพื่อให้ Caps Lock ถูกจับคู่กับคีย์ Compose และฟังก์ชัน Shift + Caps Lock เป็น Caps Lock แบบดั้งเดิม ฉันใส่ต่อไปนี้ในไฟล์ใหม่ที่เรียกว่า/usr/share/X11/xkb/symbols/gdwatson:

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

จากนั้นฉันก็วิ่งsetxkbmap -symbols 'pc+us+gdwatson(compose)'ซึ่งทำสำเร็จ Caps Lock ทำงานเป็นเขียน แต่ Shift + Caps Lock ทำงานเป็นเขียนแทน Caps Lock xkbcomp :0.0เผยให้เห็นต่อไปนี้:

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

การแมปสัญลักษณ์ระดับที่สองคือการทำสำเนาแรกด้วยเหตุผลบางอย่างแทนที่จะเป็นค่าแยกต่างหากที่ฉันพยายามจะให้ ไม่มีใครมี xkb-fu ที่แข็งแกร่งพอที่จะบอกฉันว่าฉันทำอะไรผิดหรือจะแก้ไขได้อย่างไร?


1
ฉันสามารถช่วยคุณทำสิ่งนี้ใน Xmodmap ได้ แต่ไม่ใช่ xkb ถ้าคุณต้องการสิ่งนี้ตอบสนองเชิงบวก (อย่าลืมที่จะเขียน@mirabilosในการตอบสนองของคุณดังนั้นฉันสังเกตเห็นมัน) ในความคิดเห็นแล้วฉันจะลบความคิดเห็นนี้และเขียนมันเป็นคำตอบ (คุณควรลบการตอบสนองความคิดเห็นของคุณ)
mirabilos

1
ในบรรทัดแรกของคุณควรpartial modifier keysเป็นจริงpartial modifier_keys? โดยไม่มีการเปลี่ยนแปลงนี้setxkbmap -symbols 'pc+us+gdwatson(compose)'จริงออกมีข้อผิดพลาด xkbcomp :0.0แต่กับการเปลี่ยนแปลงที่ฉันได้รับผลลัพธ์ที่ต้องการจาก อย่างไรก็ตามฉันได้รับผลข้างเคียงที่ไม่พึงประสงค์ที่การกด Capslock พร้อมกันทำให้ฉันอยู่ในโหมด Capslock และเขียนโหมดคีย์
billyjmc

คำตอบ:


11

ดูเหมือนว่าจะบรรลุสิ่งที่คุณต้องการ

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 (ฉันได้เชื่อมโยงกับมิเรอร์ของเครื่อง WayBack ของหน้าเหล่านี้สำหรับการพิสูจน์อักษรในอนาคต):


นอกจากนี้หากคุณสร้างบรรทัดแรกdefault partial modifier_keysคุณไม่จำเป็นต้องระบุอย่างชัดเจนsetxkbmap -symbols 'pc+us+gdwatson(compose)'คุณสามารถทำได้setxkbmap -symbols 'pc+us+gdwatson'
billyjmc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.