จาก ลิงก์วิกิอาร์ค ฉันทำตามขั้นตอนและประสบความสำเร็จในระบบปฏิบัติการ "Arch Linux" และ "Ubuntu 20.04" สำหรับปุ่ม Keeping Caps Lock + u, h, j,n ฯลฯ วิธีนี้ช่วยให้เน้นข้อความด้วยปุ่ม Shift+Caps+h ตามที่ระบุในลิงก์
ก่อนดำเนินการต่อ โปรดอ่าน ลิงค์ข้อควรระวังและการเตรียมการ
ขั้นตอนที่ 1
แก้ไขไฟล์ /usr/share/X11/xkb/types/complete
เนื้อหาต้นฉบับใน Ubuntu 20.04
xkb_types เริ่มต้น "สมบูรณ์" {
รวม "พื้นฐาน"
รวม "mousekeys"
รวม "พีซี"
รวม "iso9995"
รวม "ระดับ 5"
รวม "พิเศษ"
รวม "แป้นตัวเลข"
};
หลังจากแก้ไข
xkb_types เริ่มต้น "สมบูรณ์" {
รวม "พื้นฐาน"
รวม "mousekeys"
รวม "พีซี"
รวม "iso9995"
รวม "ระดับ 5"
รวม "พิเศษ"
รวม "แป้นตัวเลข"
พิมพ์ "CUST_CAPSLOCK" {
ตัวดัดแปลง = Shift + Lock;
แผนที่[Shift] = ระดับ 2; // แผนที่เลื่อนและไม่มีการล็อคShift+Alt ไปที่นี่ด้วย เพราะ Alt ไม่ได้อยู่ในตัวดัดแปลง
แผนที่[ล็อค] = ระดับ 3;
แผนที่[Shift+Lock] = ระดับ 3; // แผนที่เลื่อนและล็อค Shift+Lock+Alt ไปที่นี่เช่นกัน
level_name[Level1]= "พื้นฐาน";
level_name[Level2]= "เลื่อน";
level_name[Level3]= "ล็อค";
};
};
ขั้นตอนที่ 2
แก้ไขไฟล์ /usr/share/X11/xkb/compat/comple
หลังจากแก้ไข
xkb_compatibility เริ่มต้น "สมบูรณ์" {
รวม "พื้นฐาน"
เพิ่ม "iso9995"
เพิ่ม "mousekeys"
เพิ่ม "accessx (เต็ม)"
เพิ่ม "เบ็ดเตล็ด"
เพิ่ม "xfree86"
เพิ่ม "ระดับ 5"
เพิ่ม "หมวก (caps_lock)"
ตีความ Caps_Lock+AnyOfOrNone(ทั้งหมด) {
การกระทำ = SetMods (ตัวดัดแปลง = ล็อค);
};
};
ขั้นตอนที่ 3
แก้ไขไฟล์ /usr/share/X11/xkb/ symbols/us
#เปลี่ยน เรา
ด้วยไฟล์สัญลักษณ์จริงของคุณ
เนื้อหาบางส่วนที่แก้ไข
ปุ่ม <AC05> { [ g, G ] };
// ปุ่ม <AC06> { [ h, H ] };
คีย์ <AC06> {
พิมพ์= "CUST_CAPSLOCK",
สัญลักษณ์[Group1]= [ h, H, ซ้าย],
การกระทำ[Group1]= [ NoAction(), NoAction(), RedirectKey(keycode=<LEFT>, clearmods=Lock) ]
};
ปุ่ม <AC07> { [ j, J ] };
ปุ่ม <AC08> { [ k, K ] };
แก้ไขไฟล์สัญลักษณ์ตามความต้องการของคุณ
สามารถรับสัญลักษณ์สำคัญได้โดย
xev | grep คีย์ซิม
สั่งการ
$ xev | grep คีย์ซิม
สถานะ 0x0, คีย์โค้ด 36 (keysym 0xff0d, Return), same_screen ใช่
สถานะ 0x0, คีย์โค้ด 112 (keysym 0xff55, ก่อนหน้า), same_screen ใช่
สถานะ 0x0, คีย์โค้ด 112 (keysym 0xff55, ก่อนหน้า), same_screen ใช่
สถานะ 0x0, คีย์โค้ด 117 (keysym 0xff56, ถัดไป), same_screen ใช่
สถานะ 0x0, คีย์โค้ด 117 (keysym 0xff56, ถัดไป), same_screen ใช่
สถานะ 0x0, คีย์โค้ด 22 (keysym 0xff08, BackSpace), same_screen ใช่
สถานะ 0x0, คีย์โค้ด 22 (keysym 0xff08, BackSpace), same_screen ใช่
สถานะ 0x0, คีย์โค้ด 9 (keysym 0xff1b, Escape), same_screen ใช่
สถานะ 0x0, คีย์โค้ด 9 (keysym 0xff1b, Escape), same_screen ใช่
สถานะ 0x0, คีย์โค้ด 110 (keysym 0xff50, หน้าแรก), same_screen ใช่
สถานะ 0x0, คีย์โค้ด 110 (keysym 0xff50, หน้าแรก), same_screen ใช่
สถานะ 0x0, คีย์โค้ด 115 (keysym 0xff57, End), same_screen ใช่
สถานะ 0x0, คีย์โค้ด 115 (keysym 0xff57, End), same_screen ใช่
$
ขั้นตอนที่ 4
เรียกใช้คำสั่งด้านล่างเพื่อใช้การเปลี่ยนแปลงทันที
sudo udevadm ทริกเกอร์ --subsystem-match=input --action=change
แหล่งที่มาของคำสั่งข้างต้นคือ https://askubuntu.com/a/1075707/739431