บันทึกเทคนิคของ zhaoJian

ทำยังไงไม่ให้ Mac พักเครื่องเอง? Tokimori แอปฟรีโอเพนซอร์ส กดครั้งเดียวกัน Mac หลับ แถมตั้งเวลาเปิดและออกจากแอปได้

เทคโนโลยี ~9566 คำ · อ่าน 24 นาที - ครั้งที่อ่าน

Tokimori เป็นแอปแถบเมนูสำหรับ macOS ที่ใช้งานได้ฟรีและเป็นโอเพนซอร์ส แอปนี้ป้องกันไม่ให้ Mac ของคุณพักเครื่อง ไม่ว่าจะเป็นตอนนี้ทันที ตามกำหนดการรายสัปดาห์ หรือขณะที่แอปหรือคำสั่งบางตัวกำลังทำงาน และยังเปิดหรือออกจากแอปตามเวลาที่คุณตั้งไว้ แอปนี้ไม่มีไอคอนใน Dock

ใช้เพื่อไม่ให้ Mac พักเครื่องระหว่างดาวน์โหลด บิลด์ ส่งออกวิดีโอ รันเอเจนต์ AI เชื่อมต่อระยะไกล หรือนำเสนองาน แอปนี้ใช้กลไกเดียวกับคำสั่ง caffeinate ที่มีในระบบ เพิ่มเมนู กำหนดการ และตัวจับเวลาแอป และไม่ขยับเมาส์

เมนูแถบเมนูของ Tokimori: สวิตช์ป้องกันการพักเครื่อง ปุ่มระยะเวลา ตัวเลือกเปิดจอภาพค้างไว้ และตัวจับเวลาแอปถัดไป

คุณสมบัติ

  • ป้องกันการพักเครื่องในคลิกเดียว เปิดไว้ไม่มีกำหนด 30 นาที 1, 2 หรือ 4 ชั่วโมง หรือจนถึงเวลาที่คุณเลือก ระบบจะไม่พักเครื่อง ขณะที่จอภาพยังปิดได้ตามการตั้งค่าปกติ
  • เปิดจอภาพค้างไว้ หรือปิดตอนนี้เลย คุณเลือกให้จอภาพเปิดค้างไว้ด้วยก็ได้ ปิดจอภาพ จะทำให้หน้าจอมืดลงขณะที่ Mac ยังทำงานต่อ
  • กำหนดการ เช่น ป้องกันไม่ให้ Mac พักเครื่องทุกวันทำงานตั้งแต่ 09:00 ถึง 18:00 ช่วงเวลาสามารถสิ้นสุดหลังเที่ยงคืนได้ โดยจะนับเป็นของวันที่เริ่มต้น
  • ขณะทำงาน ป้องกันไม่ให้ Mac พักเครื่องขณะที่แอปเปิดอยู่ หรือขณะที่โปรเซสบรรทัดคำสั่งกำลังทำงาน โดยจับคู่จากชื่อ (ffmpeg) หรือจากข้อความในบรรทัดคำสั่ง (claude สำหรับเครื่องมือที่ทำงานภายใน node หรือ python)
  • ตัวจับเวลาแอป เปิดหรือออกจากแอปในวันที่เลือกตามเวลาที่ตั้งไว้ แอปเดียวกันมีตัวจับเวลาได้หลายตัว หากแอปยังไม่ออกหลังผ่านไป 30 วินาที (เช่น เพราะกำลังถามให้คุณบันทึก) Tokimori จะแจ้งเตือนคุณหรือบังคับออก ซึ่งคุณเลือกได้สำหรับแต่ละตัวจับเวลา
  • การปกป้องแบตเตอรี่ เมื่อ Mac ใช้แบตเตอรี่และระดับแบตเตอรี่ต่ำกว่าที่คุณกำหนด (ค่าเริ่มต้น 20%) Tokimori จะหยุดป้องกันการพักเครื่อง กำหนดการและกฎขณะทำงานจะกลับมาทำงานเมื่อคุณเสียบปลั๊ก
  • การทำงานของคำสั่งลัด ป้องกันไม่ให้ Mac พักเครื่อง, หยุดป้องกันไม่ให้ Mac พักเครื่อง และ Mac ถูกป้องกันการพักเครื่องอยู่หรือไม่ ใช้ได้ในแอปคำสั่งลัด เช่น ในการทำงานอัตโนมัติของโฟกัสหรือ Wi-Fi
  • 15 ภาษา อังกฤษ จีนตัวย่อ จีนตัวเต็ม ญี่ปุ่น เกาหลี เยอรมัน ฝรั่งเศส สเปน โปรตุเกส อินโดนีเซีย ไทย เวียดนาม อาหรับ รัสเซีย และฮินดี โดยสลับได้ภายในแอป

การติดตั้ง

ต้องใช้ macOS 14 Sonoma ขึ้นไป

  1. เปิดหน้า Releases แล้วดาวน์โหลด Tokimori-<version>.dmg จากส่วน Assets ของรุ่นล่าสุด
  2. คลิกสองครั้งที่ DMG ที่ดาวน์โหลดมาเพื่อเปิด
  3. ลาก Tokimori ไปวางบนโฟลเดอร์ แอปพลิเคชัน ที่แสดงในหน้าต่างเดียวกัน
  4. ดีดออก DMG แล้วเปิด Tokimori จากโฟลเดอร์แอปพลิเคชัน ในครั้งแรก macOS จะขอให้คุณอนุญาต ดูหัวข้อ “การเปิดครั้งแรก” ด้านล่าง

ไม่มีตัวติดตั้งและไม่ต้องใช้รหัสผ่านผู้ดูแลระบบ

การอัปเดต: ดาวน์โหลด DMG ใหม่แล้วลาก Tokimori ไปยังแอปพลิเคชันอีกครั้งเพื่อแทนที่ฉบับเก่า กฎของคุณจะยังคงอยู่ หากต้องการดูว่ามีเวอร์ชันใหม่หรือไม่ ให้คลิก ตรวจหาอัปเดต… ใน การตั้งค่า › ทั่วไป

การถอนการติดตั้ง: ออกจาก Tokimori จากเมนูของแอป แล้วย้ายไปที่ถังขยะ หากต้องการลบกฎและการตั้งค่าด้วย ให้ลบ ~/Library/Application Support/net.zhaojian.tokimori และ ~/Library/Preferences/net.zhaojian.tokimori.plist หากคุณเปิด เปิดเมื่อเข้าสู่ระบบ ไว้ ให้ปิดก่อน หรือเอา Tokimori ออกในการตั้งค่าระบบ › ทั่วไป › รายการเข้าสู่ระบบ

การเปิดครั้งแรก

Tokimori ยังไม่ได้รับการรับรองจาก Apple ดังนั้น macOS จะบล็อกแอปในครั้งแรกที่คุณเปิด ให้อนุญาตหนึ่งครั้งดังนี้

  1. คลิกสองครั้งที่ Tokimori เมื่อ macOS แจ้งว่าไม่สามารถตรวจสอบ Tokimori ได้ ให้คลิก เสร็จสิ้น อย่าคลิกปุ่มสีน้ำเงิน ย้ายไปที่ถังขยะ

    หน้าต่างโต้ตอบของ macOS แจ้งว่าไม่สามารถตรวจสอบ Tokimori ได้ ให้คลิกปุ่มเสร็จสิ้น

  2. เปิด การตั้งค่าระบบ › ความเป็นส่วนตัวและความปลอดภัย เลื่อนลงไปที่ ความปลอดภัย แล้วคลิก เปิดต่อไป ข้าง Tokimori ปุ่มนี้จะแสดงอยู่ประมาณหนึ่งชั่วโมงหลังขั้นตอนที่ 1

    หน้าความเป็นส่วนตัวและความปลอดภัยในการตั้งค่าระบบ ส่วนความปลอดภัยแสดงว่า Tokimori ถูกบล็อก พร้อมปุ่มเปิดต่อไปอยู่ข้างๆ

  3. ป้อนรหัสผ่านเข้าสู่ระบบหรือใช้ Touch ID ในหน้าต่างโต้ตอบที่ตามมา ให้คลิก เปิดต่อไป อีกครั้ง

    หน้าต่างยืนยัน คลิกเปิดต่อไปเพื่อเรียกใช้ Tokimori

หลังจากนี้ Tokimori จะเปิดได้ตามปกติ ใน DMG ยังมีขั้นตอนเหล่านี้อยู่ในไฟล์ First Launch.txt

การใช้งาน

คลิกนาฬิกาทรายในแถบเมนู ขณะที่มีบางอย่างกำลังป้องกันไม่ให้ Mac พักเครื่อง ทรายจะไหลลงและนาฬิกาทรายจะพลิกกลับทุก 30 นาที เมื่อ Mac พักเครื่องได้ตามปกติ นาฬิกาทรายจะหยุดนิ่งโดยมีทรายทั้งหมดอยู่ด้านบน

  • ป้องกันการพักเครื่อง ใช้เปิดหรือปิดการป้องกันการพักเครื่อง ด้านล่างจะแสดงว่าตอนนี้อะไรกำลังป้องกันไม่ให้ Mac พักเครื่องและไปจนถึงเมื่อไร
  • ปุ่มระยะเวลาจะป้องกันการพักเครื่องตามเวลานั้น จนถึง… ให้คุณเลือกเวลา หากเวลานั้นผ่านไปแล้วในวันนี้จะหมายถึงพรุ่งนี้
  • เปิดจอภาพค้างไว้ มีผลกับการป้องกันการพักเครื่องที่คุณเปิดเอง กำหนดการและกฎขณะทำงานมีการตั้งค่าของตัวเอง จอภาพจะเปิดค้างไว้หากมีแหล่งที่ทำงานอยู่แหล่งใดแหล่งหนึ่งต้องการ
  • บรรทัดสุดท้ายแสดงตัวจับเวลาแอปถัดไป

หากคุณปิดการป้องกันการพักเครื่องขณะที่กำหนดการทำงานอยู่ Tokimori จะถามว่าคุณต้องการอะไร

  • หยุดจนถึง 18:00 — ปิดไว้ตลอดช่วงเวลาที่เหลือนี้ แล้วกำหนดการจะเปิดอีกครั้งในรอบถัดไป
  • ปิดกำหนดการนี้ — ปิดกำหนดการนี้จนกว่าคุณจะเปิดอีกครั้งในการตั้งค่า
  • คงการทำงานต่อไป — ไม่เปลี่ยนแปลงอะไร

การปิดยังหยุดกฎขณะทำงานที่ทำงานอยู่ชั่วคราว จนกว่าแอปหรือโปรเซสนั้นจะออก

เปิด การตั้งค่า… เพื่อจัดการกฎ กฎแต่ละข้อเป็นการ์ดที่แก้ไขได้ในที่ การเปลี่ยนแปลงจะมีผลทันที สวิตช์บนการ์ดใช้เปิดหรือปิดกฎ และปุ่มถังขยะใช้ลบกฎ

ทั่วไป: เปิดเมื่อเข้าสู่ระบบ แสดงเวลาที่เหลือข้างไอคอนแถบเมนู การปกป้องแบตเตอรี่ ภาษา การอัปเดต

การตั้งค่าทั่วไปของ Tokimori: เปิดเมื่อเข้าสู่ระบบ หยุดป้องกันการพักเครื่องเมื่อแบตเตอรี่ต่ำกว่า 20% ภาษา และตรวจหาอัปเดต

กำหนดการ: เพิ่มกำหนดการ จะเพิ่มกำหนดการวันทำงาน 09:00–18:00 จากนั้นแก้ไขชื่อ วัน และเวลาบนการ์ด

การตั้งค่ากำหนดการของ Tokimori: ป้องกันการพักเครื่องวันศุกร์และวันเสาร์ ตั้งแต่ 23:00 ถึง 03:00 ของวันถัดไป

ขณะทำงาน: เพิ่ม จะแสดงรายการแอปที่เปิดอยู่ในขณะนี้ เลือกแอปใดแอปหนึ่ง เลือก แอปอื่น… หรือเลือก โปรเซสบรรทัดคำสั่ง… แล้วพิมพ์ชื่อหรือบางส่วนของบรรทัดคำสั่ง

การตั้งค่าขณะทำงานของ Tokimori: กฎสำหรับโปรเซสที่บรรทัดคำสั่งมีคำว่า claude

ตัวจับเวลาแอป: เพิ่มตัวจับเวลา จะแสดงรายการแอปที่เปิดอยู่ในขณะนี้ ตัวจับเวลาใหม่จะเปิดแอปเวลา 09:00 ในวันทำงาน หรือออกจากแอปเวลา 18:00 หากแอปนั้นมีตัวจับเวลาสำหรับเปิดอยู่แล้ว สำหรับการออก ให้เลือกว่าจะทำอะไรหากแอปยังไม่ออกหลังผ่านไป 30 วินาที ตัวจับเวลาที่จะเปิดและออกจากแอปเดียวกันในนาทีเดียวกับตัวจับเวลาอื่นจะเปิดใช้ไม่ได้

การตั้งค่าตัวจับเวลาแอปของ Tokimori: เปิด Safari เวลา 9:00 ในวันทำงาน

เมื่อคุณเพิ่มกฎแรก Tokimori จะถามว่าจะให้เปิดเมื่อเข้าสู่ระบบหรือไม่ เพราะกฎจะทำงานเฉพาะขณะที่แอปเปิดอยู่ การออกจาก Tokimori ขณะที่มีกฎเปิดอยู่จะขอการยืนยันหนึ่งครั้ง (คุณปิดคำถามนี้ได้)

หลักการทำงาน

  • การป้องกันการพักเครื่องใช้ power assertion ของ IOKit ประเภท PreventUserIdleSystemSleep ซึ่งเป็นกลไกเดียวกับ caffeinate -i ส่วน เปิดจอภาพค้างไว้ จะเพิ่ม PreventUserIdleDisplaySleep เรียกใช้ pmset -g assertions ในเทอร์มินัลเพื่อดู Tokimori ไม่ขยับเมาส์และไม่เรียกใช้ caffeinate
  • assertion เป็นของโปรเซส Tokimori ดังนั้น macOS จะปล่อยให้อัตโนมัติหาก Tokimori ออกหรือขัดข้อง Mac จะไม่มีวันค้างอยู่ในสถานะไม่พักเครื่องเพราะ assertion ที่หลงเหลืออยู่
  • Tokimori จะคำนวณใหม่เมื่อช่วงเวลาเริ่มหรือสิ้นสุด เมื่อ Mac ตื่น เมื่อเวลาหรือเขตเวลาเปลี่ยน เมื่อแอปเปิดหรือออก และทุก 30 วินาทีสำหรับโปรเซสและระดับแบตเตอรี่
  • ตัวจับเวลาแอปที่ถึงเวลาขณะ Mac พักเครื่องหรือ Tokimori ไม่ได้ทำงาน จะยังถูกดำเนินการหาก Tokimori พบภายใน 10 นาที ส่วนที่เก่ากว่านั้นจะถูกข้าม คุณจึงไม่เจอการเปิดและออกจากแอปที่ล้าสมัยพร้อมกันทีเดียวเมื่อเปิดฝาเครื่องในตอนเช้า
  • การเปิดแอปใช้ NSWorkspace การออกจะขอให้แอปออกตามปกติ และการบังคับออกใช้ NSRunningApplication.forceTerminate() macOS ไม่อนุญาตให้แอปที่อยู่ในแซนด์บ็อกซ์ออกจากแอปอื่น Tokimori จึงไม่ได้อยู่ในแซนด์บ็อกซ์และไม่มีใน Mac App Store
  • กฎถูกจัดเก็บใน ~/Library/Application Support/net.zhaojian.tokimori/configuration.json คำขอเครือข่ายเพียงอย่างเดียวคือการตรวจหาอัปเดต และจะเกิดขึ้นเฉพาะเมื่อคุณคลิกเท่านั้น

คำถามที่พบบ่อย

แอปนี้ป้องกันไม่ให้ MacBook พักเครื่องขณะปิดฝาได้หรือไม่ ไม่ได้ Tokimori ป้องกันได้เฉพาะการพักเครื่องเมื่อไม่มีการใช้งาน การปิดฝาจะทำให้ MacBook พักเครื่องทันที เว้นแต่จะต่อจอภาพภายนอก แป้นพิมพ์ และสายไฟไว้ (โหมดปิดฝา)

แอปนี้ปลุก Mac เพื่อเรียกใช้ตัวจับเวลาแอปได้หรือไม่ ไม่ได้ การปลุก Mac ที่พักเครื่องอยู่ตามเวลาที่กำหนดต้องใช้สิทธิ์ผู้ดูแลระบบ (pmset schedule) ตัวจับเวลาจะทำงานขณะที่ Mac ตื่นอยู่ โดยมีช่วงผ่อนผัน 10 นาทีตามที่อธิบายไว้ข้างต้น

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

ใช้กับการทำงานอัตโนมัติของคำสั่งลัดใน macOS 26 ได้หรือไม่ ได้ ใช้การทำงานของ Tokimori ในการทำงานอัตโนมัติส่วนตัว เช่น “เมื่อฉันเชื่อมต่อ Wi-Fi … ป้องกันไม่ให้ Mac พักเครื่อง”

ข้อจำกัดที่ทราบ

  • ปิดจอภาพ อาจล็อค Mac ด้วย หากคุณตั้งค่าในการตั้งค่าระบบ › หน้าจอล็อค ให้ต้องใช้รหัสผ่านหลังจอภาพปิด
  • การจับคู่จากบรรทัดคำสั่งจะเห็นเฉพาะโปรเซสที่เริ่มโดยบัญชีผู้ใช้ของคุณ
  • ตัวจับเวลาแอปทำงานด้วยความแม่นยำระดับนาที และต้องให้ Tokimori ทำงานอยู่

ภาพหน้าจอเป็นอินเทอร์เฟซภาษาอังกฤษ ส่วนชื่อปุ่มในอินเทอร์เฟซภาษาไทยคือชื่อที่ใช้ในบทความนี้

โปรเจกต์บน GitHub: https://github.com/zhaojiannet/tokimori

แชร์:

ความคิดเห็น