วิธีปรับแต่งการแมปคีย์บอร์ดด้วย Wayland


20

ฉันใช้ Linux บน Macbook กับแป้นพิมพ์ UK / GB และฉันปรับแต่ง keymap เพื่อแก้ไขปัญหาบางประการที่ทำให้รูปแบบแป้นพิมพ์แปลก ๆ ของ Apple ฉันใช้xmodmapทำสิ่งนี้ ฉันต้องการลอง Wayland แต่xmodmapไม่ได้ผล ฉันจะบรรลุผลลัพธ์ที่คล้ายกันใน Wayland ได้อย่างไร .Xmodmapใช้ไฟล์ที่ผมมีต่อไปนี้:

keycode  12 = 3 numbersign 3 sterling sterling sterling threesuperior sterling
clear Control
clear Mod4
add Control = Control_L Super_R
add Mod4 = Super_L
keysym Caps_Lock = NoSymbol Caps_Lock

บรรทัดที่ 1: คีย์บอร์ดในสหราชอาณาจักรShift- 3เป็น£ดังนั้น # Returnมักจะมีที่สำคัญของตัวเองที่อยู่ใกล้กับ แต่ใน Mac # จะได้รับด้วย-Altgr 3ในฐานะโปรแกรมเมอร์ฉันใช้ # มากกว่า£ดังนั้นบรรทัดนี้จะทำการแลกเปลี่ยน การเลือกเค้าโครงของสหรัฐอเมริกาก็ทำได้เช่นกัน แต่การทำเช่นนั้นใน Linux จะสลับคีย์ที่ใช้กันทั่วไปบางส่วนในขณะที่ใน OS X ปุ่มอื่น ๆ นั้นไม่ได้รับผลกระทบจาก US / UK

บรรทัด 2-5: กำหนดให้Cmdปุ่มขวาทำหน้าที่เหมือนถูก - Ctrlเนื่องจากแป้นพิมพ์นี้ไม่มีCtrlคีย์ขวาจริง

บรรทัดที่ 6: CapsLockใช้งานได้เฉพาะเมื่อคุณกดShiftเท่านั้น ไม่ใช่เฉพาะ Mac นี่ควรเป็นตัวเลือกมาตรฐานสำหรับระบบปฏิบัติการและคีย์บอร์ดทั้งหมด


ฉันไปที่นั่นแล้ว: เห็นได้ชัดว่า Wayland ใช้ xkb และ xmodmap นั้นไม่รองรับใน X อยู่ดี น่าเสียดายที่ xkb นั้นซับซ้อนกว่ามากและ GNOME ไม่เคยคิดว่าผู้ใช้จะต้องปรับแต่งมันดังนั้นฉันจึงตั้งคำถามที่สองขึ้นมา
realh

คำตอบ:


11

น่าเสียดายที่การแก้ไขฐานข้อมูลระบบ XKB /usr/share/X11/xkbเป็นวิธีเดียวเท่านั้น จากคำถามอื่นของคุณดูเหมือนว่าคุณจะได้รับส่วนนั้นแล้ว

ข้อ จำกัด ส่วนใหญ่เกิดจากการที่ยังไม่บรรลุนิติภาวะของ Wayland และการกำกับดูแลการออกแบบใน XKB

  • เครื่องมือที่ชอบsetxkbmapและxkbcompให้-Iตัวเลือกในการเพิ่มฐานข้อมูลที่ผู้ใช้กำหนดเพื่อค้นหา (เช่น~/.xkbหรือ~/.config/xkbกับไฟล์และไดเรกทอรีย่อยที่วางไว้เช่นฐานข้อมูลระบบ) เครื่องมือเหล่านี้โต้ตอบกับเซิร์ฟเวอร์ X ดังนั้นอาจเป็นประโยชน์ในการกำหนดค่าXwaylandเลเยอร์ความเข้ากันได้สำหรับการเรียกใช้แอปพลิเคชัน X ภายใต้ Wayland แต่ในปัจจุบันพวกเขาไม่ได้พูดถึงโปรโตคอลของ Wayland

  • โปรโตคอล Wayland ยังคงสุกงอม ขณะนี้ดูเหมือนว่าinput-methodและtext-inputโปรโตคอลมีความเกี่ยวข้องมากที่สุดและทั้งสองจะไม่เสถียร ไม่พูดถึงสิ่งใดเกี่ยวกับการเปลี่ยน keymap ที่กำหนดไว้ รายละเอียดเหล่านี้เหลือให้ผู้แต่ง

  • GNOME และ KDE ทั้งคู่มีการตั้งค่า daemons การจัดการแป้นพิมพ์ที่ควรจัดการกับตัวเลือกระบบ XKB รวมถึงการเปลี่ยนแปลงได้ทันที เพื่อความรู้ที่ดีที่สุดของฉันไม่มีทางที่จะบอกเกี่ยวกับการปรับแต่งของผู้ใช้ เท่าที่ฉันรู้เวสตันและผู้แต่งคนอื่น ๆ พึ่งพาไฟล์ปรับแต่งหรือตัวแปรสภาพแวดล้อมเพื่อตั้งค่าตัวเลือก XKB เมื่อเริ่มต้นและไม่มีทางที่จะเปลี่ยนแปลงตัวเลือกอื่นนอกจากออกและรีสตาร์ท

  • แม้จะอยู่ใน XKB เอง แต่ก็ไม่ได้รับการสนับสนุนอย่างเต็มที่ ไฟล์สัญลักษณ์ที่กำหนดเองของคุณสามารถincludeไฟล์สัญลักษณ์ระบบอื่น ๆ แต่ในปัจจุบันไม่มีincludeฟังก์ชั่นสำหรับไฟล์กฎ XKB ดังนั้นแม้ว่าคุณจะมีเครื่องมือที่จะพูดคุยกับนักแต่งเพลง Wayland และจะค้นหาการปรับแต่งส่วนตัวของคุณคุณต้องรวมกฎทั้งหมดที่คุณต้องการใช้ด้วยตนเอง (เช่นการคัดลอกrules/evdev*จากระบบ XKB และแก้ไข) libxkbcommonมีเปิดประเด็นในหัวข้อนี้และข้อผิดพลาดที่เกี่ยวข้อง


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

แน่ใจ แต่มันก็ยังคงเป็นคำถามที่ยังไม่ได้ตอบดังนั้นฉันพยายามที่จะอยู่ที่ Wayland เทียบเท่า -of- .Xmodmapด้าน
quixotic

3
ฉันได้รับการบันทึกไว้ในขณะนี้นี้ในรายละเอียดในบล็อกโพสต์
realh

5

ฉันใช้เครื่องมือสกัดกั้นสำหรับ Linux ด้วยความสำเร็จและรู้ว่าผู้ผลิตปลั๊กอินอื่น ๆ สำหรับการจับคู่ที่กำหนดเองเช่นกัน caps2escเป็นปลั๊กอินสำหรับพิสูจน์แนวคิดแรกที่ฉันใช้ทุกวันและใช้ได้ทั้งใน X และ Wayland เครื่องมือนี้มีระดับที่ต่ำกว่าซอฟต์แวร์การทำแผนที่ปกติเล็กน้อย แต่มีความยืดหยุ่นค่อนข้างมากและแผนของฉันสำหรับปลั๊กอินถัดไปเป็นเครื่องมือการทำแผนที่แบบ chording ทั่วไป

คำเตือน: ฉันเป็นผู้เขียน


เครื่องมือการสกัดกั้นดูน่าสนใจจริงๆ! ขอบคุณสำหรับการทำงานของคุณ!
balu

1
ไม่แน่ใจว่าฉันรู้สึกอย่างไรกับการใช้งานคีย์บอร์ดทั้งหมดผ่านสคริปต์ไพ
ธ อน

4

สำหรับผู้ที่มาที่นี่ในปี 2018 (Ubuntu 17.10) ส่วนที่สำคัญที่สุดของสิ่งนี้สามารถทำได้โดยใช้เครื่องมือปรับแต่ง GNOME

เครื่องมือ Gnome Tweak> แป้นพิมพ์และเมาส์> ตัวเลือกเค้าโครงเพิ่มเติม> Ctrl ถูกแมปกับปุ่ม Win (และปุ่ม Ctrl ปกติ)


2
การใช้ "Gnome Tweak Tool" (สิ่งใดก็ตาม) ตั้งค่าการแมปใหม่สำหรับตัวจัดการ windows / environment / เชลล์เชลล์แบบกราฟิกอื่น ๆ ด้วยหรือไม่
Mali Remorker

Gnome Tweak Tool ไม่สามารถทำการตั้งค่า Caps Lock ใหม่
andyn

@ และฉันgnome-tweaks-3.34.0-1.fc31.noarchสามารถทำการแมป Caps Lock อีกครั้งได้เช่น 'Caps Lock ยังเป็น Ctrl', 'สร้าง Caps Lock เป็น Esc เพิ่มเติม', 'Caps Lock as Ctrl' และอีกมากมาย
maxschlepzig

2

คำตอบนี้มีแนวคิดเหมือนกับคำตอบของ quickotic แต่มีเพียงตัวอย่างที่มีรายละเอียดมากขึ้น:

Gnome Tweaks มีรายการการปรับแต่งคีย์บอร์ด 20 หรือ 30 รายการที่คุณสามารถทำได้ผ่าน xkb บางครั้งคุณสามารถหาบิดที่คุณกำลังมองหาโดยค่าเริ่มต้น ในกรณีของฉันฉันต้องการสลับคีย์ของหน้าจอการพิมพ์ด้วยเมนู

ตัวเลือกเดียวในการแก้ไขคีย์ printscr ที่มีให้ผ่าน xkb คือการแทนที่ด้วย Win_R Gunnar Hjalmarsson ในหัวข้อนี้แนะนำให้ฉันว่าฉันแก้ไขการปรับเปลี่ยนของ xkb เพื่อให้ printscr / win_r จะทำ printscr / เมนูแทน เราหาวิธีแก้ปัญหาด้วยกันแล้วฉันจะส่งอีกครั้งที่นี่:

ในเทอร์มินัลให้ป้อน:

sudo su
nano /usr/share/X11/xkb/symbols/altwin

ที่ด้านล่างของไฟล์คุณจะพบกับ:

// Win is mapped to the PrtSc key (and the usual Win key).
partial modifier_keys
xkb_symbols "prtsc_rwin" {
    replace key <PRSC> { [ Super_R, Super_R ] };
    modifier_map Mod4 { <PRSC>, <RWIN> };
};

ลบหัวข้อนี้และแทนที่ด้วย:

// Menu is mapped to the PrtSc key (and the usual Win key).
xkb_symbols "prtsc_rwin" {
     replace key <PRSC> { [ Menu, Menu ] };
     modifier_map Mod4 { <PRSC>, <MENU> };
};

หากต้องการลบในนาโนใช้ปุ่ม backspace (การไฮไลต์และการลบไม่ทำงาน) ในการวางใช้ shift-ctrl-v หากต้องการออกและบันทึกให้กด ctrl-x เลือกใช่เพื่อเขียนทับและกด Enter

Reboot ใน Gnome / Ubuntu ไปที่ gnome-tweak-tools ในเครื่องมือ tweak ไปที่ส่วน Keyboard & Mouse กดปุ่มตัวเลือกเค้าโครงเพิ่มเติมและขยายการทำงานของปุ่ม Alt / Win การเลือกตัวเลือกที่ด้านล่างสุด: Win ถูกแมปไปยัง printscr (โปรดจำไว้ว่าเราได้แก้ไขพฤติกรรมนี้เพื่อสลับการพิมพ์และเมนูแทนการพิมพ์และ Win) (ฉันแน่ใจว่ามีวิธีการเปิดใช้ตัวเลือก xkb ดัดแปลงใน KDE แต่ฉันไม่ได้ใช้ดังนั้นฉันไม่สามารถให้ขั้นตอนที่แน่นอนแก่คุณได้)

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