KeyZen เอนจินรีแมปปิงคีย์แบบอิงเลเยอร์
(github.com/Seungchan0325)คำอธิบาย
KeyZen เป็นเอนจินรีแมปปิงคีย์แบบอิงเลเยอร์ที่รวดเร็วและใช้ทรัพยากรน้อย
- ใช้เลเยอร์คีย์บอร์ดแบบสแตก
- รองรับการทำงานอย่างรวดเร็วในระดับรันได้ทันทีหลังล็อกอิน
- สามารถกำหนดค่าการรีแมปได้ผ่านไฟล์ YAML
ดูวิธีตั้งค่าโดยละเอียดได้ที่ คู่มือการตั้งค่า
สถานการณ์ที่เหมาะกับการใช้ KeyZen
หากตอนใช้คีย์บอร์ดแล้วรู้สึกว่าปุ่มลูกศรอยู่ไกลจากปุ่มหลักอย่าง F, J มากเกินไปจนจังหวะการทำงานสะดุด ลองแมป Capslock + H, J, K, L เป็น Left, Down, Up, Right ดู
ลองแมปคำก่อนหน้า (Ctrl + Left), คำถัดไป (Ctrl + Right), จุดเริ่มต้นของบรรทัด (Home), จุดสิ้นสุดของบรรทัด (End) เป็น W, E, P, O ตามลำดับ จะช่วยลดสถานการณ์ที่ต้องเอื้อมมือไปจับเมาส์
เหตุผลที่สร้างขึ้นมา
ทุกคนน่าจะเห็นตรงกันว่า capslock อยู่ในตำแหน่งที่สะดวกมากเมื่อเทียบกับความถี่ในการใช้งาน ดังนั้นจึงลองหาวิธีต่าง ๆ เพื่อให้สามารถใช้ร่วมกับปุ่ม capslock แล้วทำงานคล้าย vim ได้ เดิมทีผมใช้ autohotkey เพื่อจุดประสงค์นี้ แต่ก็มีปัญหาบางอย่าง
- มีปัญหาที่สถานะของปุ่ม capslock ซิงก์ได้ไม่ปกติ เรื่องนี้อาจแตกต่างกันไปตามวิธีเขียนโค้ด แต่ในกรณีของผมมีหลายครั้งที่ระบบรับรู้เหมือนกด capslock ทั้งที่ไม่ได้กด ทำให้ต้องกด capslock รัว ๆ
- ผมใช้งานแบบให้เริ่มทำงานตอนล็อกอินโดยใส่ไว้ในโฟลเดอร์ Startup แต่กรณีนี้มีปัญหาว่าต้องรอหลาย分钟หลังเปิดคอมพิวเตอร์กว่าจะเริ่มทำงาน
ผมเคยมองหาโปรเจกต์ทางเลือกอย่าง kanata ด้วย แต่สำหรับ kanata นั้นฟีเจอร์เยอะเกินความจำเป็น ใช้ทรัพยากร CPU มากกว่าที่คิด และไม่รองรับการรันตอนล็อกอิน (แม้จะใส่ไว้ในโฟลเดอร์ Startup แบบเดียวกับ autohotkey ได้ แต่ก็จะเกิดปัญหาเดียวกัน)
อีกทั้ง Keyboard Manager ของ PowerToys ก็มีปัญหาว่าในกรณีอย่าง Capslock + H = Left Arrow จำเป็นต้องกด Capslock ร่วมทุกครั้งที่พิมพ์
ด้วยเหตุนี้จึงสร้าง KeyZen ขึ้นมา โดยมุ่งหวังให้ใช้ทรัพยากรน้อย ตั้งค่าง่าย และเริ่มทำงานได้รวดเร็วตอนล็อกอิน
เรื่องทางเทคนิค
โค้ดส่วนใหญ่เขียนโดยใช้ Codex หลังจากศึกษาข้อมูลล่วงหน้าประมาณ 10 วัน ก็เริ่มพัฒนาด้วย Codex และรู้สึกประหลาดใจที่เสร็จภายในวันเดียว
พัฒนาด้วย Rust และติดตั้ง keyboard hook ผ่าน Windows API เดิมทีลังเลว่าจะติดตั้ง keyboard hook ในระดับผู้ใช้หรือจะทำผ่านไดรเวอร์ แต่สุดท้ายเลือกใช้การติดตั้ง keyboard hook แม้ keyboard hook จะมีปัญหาว่าไม่ทำงานกับโปรแกรมอย่าง Task Manager แต่ก็คิดว่าการไปแตะฝั่งไดรเวอร์อาจมีความเสี่ยงอยู่บ้าง
ยังไม่มีความคิดเห็น