วิธีผูก AltGr กับ <Ctrl> + <Alt>


11

ฉันพยายามสร้างลินุกซ์เทียบเท่ากับรูปแบบแป้นพิมพ์ Ergonomic Telugu Keyboard ที่เรียกว่า Sarala (Hard la) ฉันสามารถแมปปุ่มทั้งหมดได้แล้ว เลย์เอาต์ใช้คีย์ผสมต่อไปนี้สำหรับระดับต่างๆ

None (Base): Level1
Shift: Level2
Ctrl + Alt: Level3
Ctrl + Alt + Shift:Level4

โดยที่ linux ใช้สิ่งต่อไปนี้ในระดับต่างๆ

None (Base): Level1
Shift: Level2
RAlt: Level3
RAlt + Shift:Level4

เพื่อให้สามารถให้ตรงกับคีย์ผสมกับรูปแบบของฉันฉันจะต้อง map AltGrกับ+Ctrl ฉันได้ค้นหาไฟล์ต่างๆไม่ประสบความสำเร็จแม้ว่าจะอยู่ในAlt /usr/share/X11/xkb/ร่างกายใด ๆ รู้ว่าฉันจะผูกISO_Level3_ShiftกับCtrl+ ได้Altอย่างไร

key <RALT>  {
    symbols[Group1]= [ Mode_switch, Multi_key  ],
    virtualMods= AltGr
};

ถ้าคุณต้องการดูเค้าโครงมันอยู่ที่นี่



2
ขอบคุณที่ให้ข้อมูลมาก แต่มันพูดถึงทุกอย่างยกเว้นxkbการกำหนดค่า
ShaggyInjun

คุณสามารถดูวิกินี้จาก arch linux wiki และดูส่วนเกี่ยวกับ Alt และ Altgr (ระดับ 3) ฉันไม่แน่ใจว่าสิ่งนี้จะช่วยคุณได้หรือไม่ แต่ดูเหมือนว่าจะมีข้อมูลมากมายเกี่ยวกับ XKB
ไม่มีเวลา

ฉันได้ลองแล้ว xkb ไม่สามารถโหลดโดยมีข้อผิดพลาดที่ไม่สื่อความหมายได้ ฉันไม่มีข้อผิดพลาดที่มีประโยชน์ แต่ฉันสามารถแนบได้ในภายหลัง
ShaggyInjun

คำตอบ:


6

คุณต้องกำหนดประเภท xkb ใหม่ คุณสามารถดูตัวอย่างในไดเรกทอรี xkb / types ของคุณ (ปกติ/usr/share/X11/xkb/types) ที่นั่นคุณสามารถกำหนดชุดค่าผสมโดยพลการเพื่อให้ได้ระดับการเลื่อนที่แตกต่างกัน สำหรับปัญหาของคุณคุณสามารถใช้สิ่งนี้:

type "C_A_to_L3" {
    modifiers = Control+Alt+Shift;
    map[None] = Level1;
    map[Shift] = Level2;
    map[Control+Alt] = Level3;
    map[Control+Alt+Shift] = Level4;
    level_name[Level1] = "Base";
    level_name[Level2] = "Shift";
    level_name[Level3] = "Alt Base";
    level_name[Level4] = "Shift Alt";
};

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

ฉันทำการแฮ็กข้อมูลแป้นพิมพ์ด้วยตัวเองเพื่อสร้างเลย์เอาต์ที่กำหนดเอง ( https://github.com/willghatch/hatchak ) ซึ่งผ่านการทำซ้ำหลายครั้งที่ฉันได้ทดลองทำสิ่งแปลก ๆ XKB นั้นค่อนข้างประณีตและแปลกไปหลายครั้ง แต่มันก็ยังเป็นระบบแป้นพิมพ์ที่สามารถกำหนดค่าได้มากที่สุดเท่าที่ฉันเคยเห็นมา การอ้างอิงที่ดีที่สุดหากคุณมีปัญหาเพิ่มเติมคือ:

[แก้ไข: ลิงก์เดิมไม่ทำงานในขณะนี้ แต่มีอยู่อย่างถาวร archive.org]

https://web.archive.org/web/20150722164820/http://www.charvolant.org/~doug/xkb/html/index.html

และ

https://web.archive.org/web/20190419170426/http://pascal.tsu.ru/en/xkb/

ระวัง - ในขณะที่เอกสารที่ดีที่สุดที่ฉันได้พบมันออกจากกรณีขอบที่มืดมนมากมาย โชคดี.


ฉันคิดว่าความคิดของคุณมีประโยชน์จริง ๆ แต่ฉันพยายามดิ้นรนเพื่อใช้ประเภทที่สร้างขึ้นในไฟล์สัญลักษณ์เป็นค่าเริ่มต้นตามที่คุณกล่าวถึง ไฟล์สัญลักษณ์ที่ฉันมีในคอมพิวเตอร์ของฉันค่อนข้างยาวและฉันไม่เห็นบรรทัดใด ๆ ที่ดูเหมือนคำจำกัดความของประเภทเริ่มต้น
เดฟ

1
key.typeคุณสามารถกำหนดเริ่มต้นสำหรับส่วนภายในแฟ้มสัญลักษณ์โดยการตั้งค่า คุณอาจเห็นตัวอย่างได้ที่/usr/share/X11/xkb/symbols/srvr_ctrl(หรือที่อื่นเช่นนั้น) ในส่วน "no_srvr_keys" นี่คือสิ่งที่ฉันมี: xkb_symbols "no_srvr_keys" {key.type = "TWO_LEVEL"; คีย์ <FK01> {[F1, F1]}; คีย์ <FK02> {[F2, F2]}; <etc ... >};
William Hatch

ขอบคุณสำหรับคำตอบด่วน ฉันคิดว่าฉันจะสามารถสมัครได้ ขอบคุณมากในล่วงหน้า.
เดฟ

เช่นเดียวกับข้อเสนอแนะสำหรับผู้ที่มาที่หน้านี้กลับแม้ในภายหลังเป็นเวลานาน สำหรับฉันวิธีนี้ใช้ได้กับ Fedora ที่เพิ่งติดตั้งใหม่ ด้วยเหตุผลบางอย่าง (กับฉัน) ไม่ทราบสาเหตุมันไม่ได้ทำงานกับ Mint เมื่อฉันเขียนความคิดเห็นข้างต้น แต่ตอนนี้มันใช้งานได้และประหยัดเวลาได้มาก
เดฟ

-1

จากสิ่งที่ฉันดูเหมือนว่าคุณต้องการรูปแบบแป้นพิมพ์ที่รองรับ AltGr ดังนั้นคุณสามารถเปลี่ยนปุ่มลัดได้ที่ "keyboard> ทางลัด> ปุ่มอักขระทางเลือก" ในเมนู config โดยปกติคุณสามารถดูได้โดยเปลี่ยนเป็นเค้าโครงที่ "มีคีย์ที่ตายแล้ว" หรือเขียนเป็น "AltGr Dead Keys"


ฉันไม่ได้ขอของใช้ส่วนตัวฉันต้องจัดวางเลย์เอาท์ น่าเสียดายที่นี่เป็นคำตอบที่ไม่ดี ขอบคุณอย่างไรก็ตาม
ShaggyInjun
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.