การพัฒนาใหม่ของ Simple Hotkey Daemon ( SKHD ) ยอดนิยมสำหรับ macOS ได้เกิดขึ้นแล้ว โดยถูกเขียนใหม่ด้วยภาษาโปรแกรม Zig การพอร์ตนี้รักษาความเข้ากันได้อย่างสมบูรณ์กับการกำหนดค่าที่มีอยู่เดิม พร้อมทั้งแนะนำการปรับปรุงหลายประการที่แก้ไขความต้องการของผู้ใช้ที่มีมานานและข้อกังวลเรื่องประสิทธิภาพ
ความเข้ากันได้แบบย้อนหลังอย่างสมบูรณ์กับ SKHD ต้นฉบับ
การพัฒนาด้วย Zig รักษาความเข้ากันได้อย่างสมบูรณ์กับรูปแบบการกำหนดค่า SKHD ต้นฉบับ หมายความว่าผู้ใช้สามารถย้ายข้อมูลได้โดยไม่ต้องแก้ไขไฟล์ skhdrc
ที่มีอยู่ การเปลี่ยนแปลงที่ราบรื่นนี้ขจัดอุปสรรคสำคัญสำหรับผู้ใช้ที่ได้ลงทุนเวลาในการสร้างการตั้งค่า hotkey ที่ซับซ้อน เครื่องมือนี้ยังคงรองรับฟังก์ชันหลักทั้งหมดรวมถึง event tapping ผ่าน macOS Core Graphics, การแมป hotkey พร้อมการรองรับ modifier อย่างเต็มรูปแบบ และการผูกแบบเฉพาะกระบวนการ
ตำแหน่งไฟล์การกำหนดค่า (เรียงตามลำดับความสำคัญ):
- เส้นทางที่ระบุด้วยแฟล็ก
-c
~/skhdrc
~/.config/skhd/skhdrc
ฟีเจอร์ใหม่แก้ไขจุดเจ็บปวดของผู้ใช้
ฟีเจอร์ใหม่หลายประการทำให้การพัฒนานี้แตกต่างจากต้นฉบับ กลุ่มกระบวนการช่วยให้ผู้ใช้สามารถกำหนดคอลเลกชันที่มีชื่อของแอปพลิเคชัน ทำให้การกำหนดค่าสะอาดและดูแลรักษาได้ง่ายขึ้น การกำหนดคำสั่งแนะนำคำสั่งที่สามารถนำกลับมาใช้ใหม่ได้พร้อมตัวยึดตำแหน่ง ลดการทำซ้ำในการตั้งค่าที่ซับซ้อน ความสามารถในการส่งต่อและแมปคีย์ใหม่ให้การจัดการอินพุตที่ยืดหยุ่นมากขึ้น ในขณะที่การรายงานข้อผิดพลาดที่ปรับปรุงแล้วเสนอการดีบักที่ดีขึ้นด้วยข้อความแบบละเอียดและหมายเลขบรรทัด
การตอบสนองจากชุมชนเป็นไปในทางบวกอย่างเห็นได้ชัด โดยเฉพาะจากผู้ใช้ที่จัดการการตั้งค่าหน้าต่างที่ซับซ้อน ผู้ใช้คนหนึ่งกล่าวว่าพวกเขาใช้ SKHD กับ yabai สำหรับการจัดการหน้าต่างแบบไม่ใช้เมาส์ แต่พบปัญหากับการอัปเดตล่าสุด และแสดงความสนใจในการลองใช้การพัฒนาใหม่นี้เป็นวิธีแก้ปัญหาที่เป็นไปได้
ฟีเจอร์ใหม่ในการพัฒนาด้วย Zig :
- กลุ่มกระบวนการสำหรับการจัดการคอนฟิกที่เป็นระเบียบมากขึ้น
- คำจำกัดความของคำสั่งพร้อมตัวแทนสำหรับการนำโค้ดกลับมาใช้ใหม่
- ความสามารถในการส่งต่อและจับคู่คีย์ใหม่
- การเปิดใช้งานโหมดพร้อมการรันคำสั่ง
- การรายงานข้อผิดพลาดที่ดีขึ้นพร้อมหมายเลขบรรทัด
- การโหลดไฟล์คอนฟิกแบบเรียลไทม์
การเพิ่มประสิทธิภาพและตัวเลือกการสร้าง
การพัฒนาด้วย Zig เสนอระดับการเพิ่มประสิทธิภาพการสร้างหลายระดับเพื่อให้เหมาะกับกรณีการใช้งานที่แตกต่างกัน การสร้าง ReleaseFast ให้ความสำคัญกับประสิทธิภาพสูงสุดโดยการคอมไพล์โค้ดโปรไฟล์ออกและจำกัดการบันทึกให้เฉพาะข้อผิดพลาดและคำเตือนเท่านั้น การสร้าง ReleaseSafe สร้างสมดุลระหว่างประสิทธิภาพกับความสามารถในการดีบัก ในขณะที่การสร้าง Debug ให้การบันทึกและโปรไฟล์อย่างเต็มรูปแบบสำหรับวัตถุประสงค์การพัฒนา ความยืดหยุ่นนี้ช่วยให้ผู้ใช้เลือกระหว่างความสะดวกและประสิทธิภาพตามความต้องการเฉพาะของพวกเขา
ระดับการปรับแต่งประสิทธิภาพการ Build:
- Debug: มีการบันทึกข้อมูลและการวิเคราะห์ประสิทธิภาพแบบเต็มรูปแบบ แสดงข้อความ debug ทั้งหมด
- ReleaseSafe: ประสิทธิภาพที่สมดุลพร้อมความสามารถในการ debug แนะนำสำหรับการใช้งานประจำวัน
- ReleaseFast: ประสิทธิภาพสูงสุด การบันทึกข้อมูลน้อยที่สุด (เฉพาะข้อผิดพลาดและคำเตือนเท่านั้น)
- ReleaseSmall: ปรับแต่งเพื่อให้ได้ไฟล์ binary ที่มีขนาดเล็กที่สุด
การเปรียบเทียบกับโซลูชันทางเลือก
ในขณะที่ SKHD.zig มุ่งเน้นไปที่การจัดการ hotkey ผู้ใช้บางคนกำลังประเมินมันเทียบกับโซลูชันที่ครอบคลุมมากขึ้นเช่น Hammerspoon การอภิปรายเผยให้เห็นว่า Hammerspoon เสนอความสามารถที่กว้างขวางกว่ารวมถึงการตรวจจับอุปกรณ์และการทำงานอัตโนมัติของเวิร์กโฟลว์ที่ซับซ้อน แต่ SKHD.zig ให้วิธีการที่เบากว่าและมุ่งเน้นมากขึ้นสำหรับผู้ใช้ที่ต้องการฟังก์ชัน hotkey เป็นหลักโดยไม่มีภาระของเฟรมเวิร์กอัตโนมัติแบบเต็มรูปแบบ
โครงการนี้แก้ไขช่องว่างเฉพาะในระบบนิเวศ macOS ที่ผู้ใช้ต้องการการจัดการ hotkey ที่เชื่อถือได้และมีประสิทธิภาพโดยไม่มีความซับซ้อนของเครื่องมืออัตโนมัติแบบเต็มรูปแบบ การมุ่งเน้นไปที่การรักษาความเข้ากันได้ในขณะที่เพิ่มการปรับปรุงที่มีเป้าหมายทำให้เป็นตัวเลือกที่น่าสนใจสำหรับผู้ใช้ SKHD ที่มีอยู่ที่แสวงหาประสิทธิภาพที่ดีขึ้นและฟีเจอร์ที่ปรับปรุงแล้ว
อ้างอิง: SKHD in Zig