Score:4

ทำการแมปคีย์ผสมใหม่เป็นคีย์ผสมอื่น เช่น AltGr+C -> Ctrl+C ภายใต้ Wayland

ธง in

ฉันต้องการถามโดยทั่วไป คำถามนี้, แต่สำหรับ GNOME บน Wayland. ซึ่งหมายความว่าคำตอบที่เกี่ยวข้อง คีย์อัตโนมัติ และ xbindkeys จะไม่ทำงานเนื่องจากไม่ทำงานภายใต้ Wayland

พื้นหลัง:

ฉันต้องการทำการแมปคีย์ใหม่เพื่อให้ใช้งานได้ดีขึ้นในท้ายที่สุด CapsLock.

แผนของฉันคือการทำแผนที่ CapsLock ถึง AltGrแล้วตามด้วย นี้ เพื่อให้ได้การโยงคีย์แบบ vim บน Wayland การรีแมปนี้สามารถทำได้ผ่านไฟล์ XKB (ดูลิงก์)

อย่างไรก็ตามฉันยังต้องการใช้ CapsLock สำหรับการคัดลอก/วาง ขณะนี้ฉันได้แมปกับ Ctrl (ใช้ไฟล์ XKB) สิ่งนี้ทำให้ CapsLock + C ทำงานราบรื่นทั้งระบบและผมขอรักษาไว้

ดังนั้น: ด้วย CapsLock แมปกับ AltGrฉันต้องการ แคปล็อค (= AltGr) + C เพื่อทำหน้าที่เป็น Ctrl + C.

คำถามของฉัน:

ภายใต้ Wayland ฉันขอผูกมัดได้ไหม AltGr + C ถึง Ctrl + C?

(โดยไม่เพียงแค่ทำการพิมพ์ใหม่ AltGr ถึง Ctrlเพราะจะผิดวัตถุประสงค์)

ตัวอย่างทางเลือกด้วย Q

ในไฟล์ XKB สำหรับภาษาละติน /usr/share/X11/xkb/ symbols/latinพฤติกรรมต่อไปนี้กำหนดไว้สำหรับฉัน ถาม กุญแจ:

คีย์ <AD01> { [ q, Q, at, Greek_OMEGA ] };

สิ่งนี้ระบุว่าคีย์มีสี่เอาต์พุตที่เป็นไปได้:

  1. กดเพียงอย่างเดียวก็ผลิต ถาม.
  2. กดด้วย กะมันผลิต ถาม.
  3. กดด้วย AltGrมันผลิต @.
  4. กดด้วย AltGr + Shiftมันผลิต ©.

โดยพื้นฐานแล้วสิ่งที่ฉันต้องการบรรลุคือเมื่อใด ถาม ถูกกดทับด้วย AltGrมันไม่ได้ผลิต @ แต่ Ctrl + Q.

vanadium avatar
cn flag
ส่วน "คำตอบที่ดีที่สุด" ใน https://itectec.com/ubuntu/ubuntu-configure-caps-lock-as-altgr-and-arrows-like-in-vim/ การเปลี่ยน xkb จะทำงานบน Wayland ด้วย
in flag
@vanadium ขอบคุณ ใช่ ที่ฉันทราบและใช้งานแล้ว ตอนนี้ฉันได้เพิ่มรายละเอียดเพื่อชี้แจงคำถาม หากสามารถใช้ XKB ได้ตามวัตถุประสงค์ที่อธิบายไว้ นั่นจะเป็นข่าวดี! อนิจจาฉันไม่มีเงื่อนงำที่จะทดสอบด้วยไวยากรณ์ใด
vanadium avatar
cn flag
ตกลง ความเฉพาะเจาะจงชัดเจนขึ้นแล้ว การเปลี่ยนแปลงเฉพาะนั้นจะต้องใช้โซลูชัน "การพิมพ์ปลอม" มี `ydotool` และอาจมีเครื่องมืออื่นๆ การผูกสามารถทำได้จากภายในตัวจัดการหน้าต่างของคุณแทน `xmodmap` ตัวเองไม่มีประสบการณ์ ดังนั้นฉันจึงไม่สามารถพัฒนาสิ่งนี้เป็นคำตอบได้ในตอนนี้
Score:2
ธง in

มีเครื่องมือหลายอย่างที่สามารถทำเช่นนี้ได้ เช่น กม, เครื่องมือสกัดกั้น, และ คีย์.

ฉันประสบความสำเร็จอย่างสมบูรณ์กับ คีย์ ภายใต้ Wayland ดังนั้นฉันจึงอธิบายสิ่งที่ฉันทำกับสิ่งนั้น ฉันแนะนำให้อ่านเรื่องสั้น README เพื่อเป็นแรงบันดาลใจ ปีศาจสามารถทำอะไรได้มากกว่าที่ใช้ที่นี่

วิธีแก้ปัญหาปัจจุบันทำในสิ่งที่ฉันต้องการ แต่หลีกเลี่ยงการใช้ AltGr ทางอ้อม มันถือว่า CapsLock เช่น ควบคุม ทุกที่ยกเว้นใน ชั่วโมง ,j ,k , ลซึ่งจะเปลี่ยนเป็นปุ่มลูกศร

1. การติดตั้ง

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

เมื่อเสร็จแล้ว มันจะบอกคุณว่ามันติดตั้งอะไรไว้ที่ไหน คุณจึงสามารถลบมันเพื่อถอนการติดตั้งได้ คุณสามารถลบซอร์สโค้ดได้หลังการติดตั้ง

sudo apt ติดตั้ง cmake libudev-dev
คอมไพล์โคลน https://github.com/rvaiya/keyd
ซีดีคีย์
ทำ && sudo ทำการติดตั้ง
sudo systemctl เปิดใช้งาน keyd && sudo systemctl start keyd

2. ค้นหาชื่อของแป้นพิมพ์ที่คุณต้องการทำการแมปใหม่

คุณควรหาชื่อแป้นพิมพ์ของคุณ เพื่อให้เราทำการแมปใหม่สำหรับสิ่งนั้น วิ่ง

sudo คีย์ -m

และกดปุ่มบางปุ่ม มันจะแสดงชื่อแป้นพิมพ์และปุ่มที่กด จดชื่อไว้. ของฉันคือ แป้นพิมพ์ชุดที่แปลแล้ว 2.

3. สร้างไฟล์การกำหนดค่า

ทุกที่ ให้สร้างไฟล์คอนฟิกูเรชันที่เรียกว่าอะไรก็ได้ เราจะย้ายในภายหลัง สมมติว่าคุณใช้ ~/my_keyboard.conf.

ในนั้นให้ใส่สิ่งต่อไปนี้ #'ed คือความคิดเห็นที่อธิบายพฤติกรรมที่กำหนดไว้ (การอัปเดตสำหรับ v2.1.1 ฉันหวังว่าฉันจะไม่ได้ทำผิดพลาด):

[รหัส]

*

[หลัก]
### ชั้นหลัก
    
# ทำให้ capslock เปิดใช้งานเลเยอร์ที่สอง:

capslock = ชั้น (movement_layer)

### ชั้นที่สอง (เรียกว่า "movement_layer")

# กำหนดเลเยอร์ใหม่ซึ่งในขณะที่ใช้งานอยู่
# โดยค่าเริ่มต้นถือว่าทุกปุ่มเหมือนกับว่ากด Control
# (":C" หมายถึงเลเยอร์ควรสืบทอดเลเยอร์ควบคุม)
# และแทนที่ค่าดีฟอลต์นี้สำหรับ h, j, k และ l เท่านั้น ซึ่ง
#ถูกแมปไปยังทิศทาง

[movement_layer:C]

ชั่วโมง = ซ้าย
เจ = ลง
k = ขึ้น
ล = ขวา

# สรุปแล้วในชั้นเริ่มต้นหลักทุกอย่างเป็นมาตรฐานยกเว้น
# เมื่อกด CapsLock ชั้นที่สองจะเปิดใช้งาน
# เมื่อเปิดใช้งานเลเยอร์ที่สอง ทุกอย่างยกเว้น h, j, k, l
# ทำหน้าที่เหมือนกับว่าการควบคุมถูกควบคุมไว้ --- เช่น c สำเนาและ v วาง
#ที่เราต้องการ ขณะที่เรากด CapsLock ค้างไว้)

4. คัดลอกและเปลี่ยนชื่อไฟล์การกำหนดค่าและเริ่มคีย์ใหม่

ต่อไป เราคัดลอกการกำหนดค่าไปยังตำแหน่งที่ถูกต้องและตั้งชื่อให้ถูกต้องตามแป้นพิมพ์ที่เราต้องการทำการแมปใหม่

sudo cp ~/my_keyboard.conf /etc/keyd/AT\ Translated\ Set\ 2\ keyboard.conf

จากนั้นเราก็เริ่มต้นใหม่ คีย์ ดังนั้นจึงโหลดการกำหนดค่าใหม่:

sudo systemctl รีสตาร์ท keyd

ตอนนี้คุณพร้อมใช้งานแล้ว :)

5. เคล็ดลับ: สร้างนามแฝงเพื่อคัดลอกการกำหนดค่าและเริ่มต้นคีย์ใหม่

ฉันลงเอยด้วยการเล่นไฟล์ปรับแต่งมากมาย ฉันแก้ไขในไดเร็กทอรีย่อยของโฮมโฟลเดอร์ของฉัน จากนั้นจึงคัดลอกและเริ่มต้นใหม่

เพื่อทำให้สิ่งนี้ยุ่งยากน้อยลงใน ~/.bash_aliasesฉันเพิ่ม

นามแฝง rekeyd='sudo cp ~/my_keyboard.conf /etc/keyd/AT\ Translated\ Set\ 2\ keyboard.conf && sudo systemctl รีสตาร์ท keyd'

โพสต์คำตอบ

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