SKHD ที่ถูกพอร์ตไปยังภาษา Zig นำเสนอฟีเจอร์ที่ปรับปรุงแล้วและประสิทธิภาพที่ดีขึ้นสำหรับการจัดการ Hotkey บน macOS

ทีมชุมชน BigGo
SKHD ที่ถูกพอร์ตไปยังภาษา Zig นำเสนอฟีเจอร์ที่ปรับปรุงแล้วและประสิทธิภาพที่ดีขึ้นสำหรับการจัดการ Hotkey บน macOS

การพัฒนาใหม่ของ Simple Hotkey Daemon ( SKHD ) ยอดนิยมสำหรับ macOS ได้เกิดขึ้นแล้ว โดยถูกเขียนใหม่ด้วยภาษาโปรแกรม Zig การพอร์ตนี้รักษาความเข้ากันได้อย่างสมบูรณ์กับการกำหนดค่าที่มีอยู่เดิม พร้อมทั้งแนะนำการปรับปรุงหลายประการที่แก้ไขความต้องการของผู้ใช้ที่มีมานานและข้อกังวลเรื่องประสิทธิภาพ

ความเข้ากันได้แบบย้อนหลังอย่างสมบูรณ์กับ SKHD ต้นฉบับ

การพัฒนาด้วย Zig รักษาความเข้ากันได้อย่างสมบูรณ์กับรูปแบบการกำหนดค่า SKHD ต้นฉบับ หมายความว่าผู้ใช้สามารถย้ายข้อมูลได้โดยไม่ต้องแก้ไขไฟล์ skhdrc ที่มีอยู่ การเปลี่ยนแปลงที่ราบรื่นนี้ขจัดอุปสรรคสำคัญสำหรับผู้ใช้ที่ได้ลงทุนเวลาในการสร้างการตั้งค่า hotkey ที่ซับซ้อน เครื่องมือนี้ยังคงรองรับฟังก์ชันหลักทั้งหมดรวมถึง event tapping ผ่าน macOS Core Graphics, การแมป hotkey พร้อมการรองรับ modifier อย่างเต็มรูปแบบ และการผูกแบบเฉพาะกระบวนการ

ตำแหน่งไฟล์การกำหนดค่า (เรียงตามลำดับความสำคัญ):

  1. เส้นทางที่ระบุด้วยแฟล็ก -c
  2. ~/skhdrc
  3. ~/.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