ฉันต้องการให้มันเป็นระบบปฏิบัติการดังนั้นฉันไม่จำเป็นต้องมีการเชื่อมต่ออินเทอร์เน็ตหรือเปิดเบราว์เซอร์เป็นต้นสิ่งที่เกิดขึ้นในพื้นหลัง
วิธีที่ง่ายที่สุดที่จะทำคือใช้แอปพลิเคชั่น แต่นี่คือวิธีการที่ทำได้โดยใช้คำสั่งระบบปฏิบัติการในตัวเท่านั้น ฉันรู้ว่าคุณต้องการให้เป็นไปตามเหตุการณ์ แต่ฉันไม่แน่ใจว่าจะทำอย่างไรดังนั้นนี่คือวิธีหนึ่งในการตรวจสอบระดับแบตเตอรี่
คุณอาจพิจารณาlaunchd
กระบวนการนี้เป็นงานตามกำหนดเวลาที่ทำงานทุกx
นาที ผู้ใช้ขั้นสูงมักใช้งานบ่อย แต่ไม่ยากเกินกว่าจะตั้งค่าได้ คุณกำหนดค่างานที่กำหนดเวลา launchd ด้วยไฟล์. plist ที่คุณใส่ไว้ในไดเรกทอรีนี้: Macintosh HD\Library\LaunchDaemons
และนี่คือวิธีที่คุณจัดโครงสร้างไฟล์. plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Debug</key>
<true/>
<key>ExitTimeOut</key>
<integer>120</integer>
<key>Label</key>
<string>com.me.BatteryInfo</string>
<key>ProgramArguments</key>
<array>
<string>/Users/yourusername/batt.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>1800</integer>
</dict>
</plist>
หากคุณต้องบันทึกไฟล์นั้นcom.me.BatteryInfo
ในLaunchDaemons
โฟลเดอร์ที่กล่าวถึงข้างต้นมันจะสร้างงานที่กำหนดเวลาไว้ซึ่งจะรันทุก 30 นาที หมายเลข,, 1800
โดยตรงข้างต้น</dict>
คือเวลาในหน่วยวินาทีของความถี่ที่คุณต้องการให้งานรัน ที่กล่าวว่า<string>/Users/yourusername/batt.sh</string>
เป็นที่ที่คุณระบุสคริปต์ที่ทำงานตามกำหนดเวลา คุณต้องออกไป<string>
และ</sting>
ไม่บุบสลาย
บรรทัด<string>com.me.BatteryInfo</string>
คือชื่อเฉพาะของภารกิจที่กำหนดเวลาไว้ หากคุณกำลังจะทำมากกว่าหนึ่งรายการโปรดตรวจสอบให้แน่ใจว่าแต่ละรายการมีชื่อเฉพาะที่นี่
สิ่งต่อไปที่คุณต้องทำคือการเปลี่ยนความเป็นเจ้าของของ .plist root
เพื่อ จำเป็นต้องใช้คุณลักษณะความปลอดภัย (เพื่อหยุดซอฟต์แวร์ / ผู้ใช้ที่สร้างงานที่เป็นอันตรายตามกำหนดเวลาฉันถือว่า) ในการเปลี่ยนความเป็นเจ้าของไฟล์ให้ทำsudo chown root \Library\LaunchDaemons\yourtask.plist
(แทนที่ yourtask.plist ด้วยชื่อไฟล์จริงของ. plist ที่คุณสร้าง) งานนี้จะขอให้คุณใส่รหัสผ่าน
ตอนนี้คุณต้องสร้างสคริปต์ที่จะรันเป็นระยะ คุณต้องสร้างไฟล์. sh (สคริปต์ทุบตี) เพื่อบอกคอมพิวเตอร์ว่าจะต้องทำอย่างไร การทำไฟล์ .sh ให้เปิดขึ้นเป็นบรรณาธิการโปรแกรมเมอร์ข้อความเช่นSublime ข้อความหรือKomodo แก้ไข อย่าใช้การแก้ไขข้อความเพราะมักจะเพิ่มข้อความในไฟล์ของคุณซึ่งจะรบกวนการทำงานของสคริปต์ของคุณ การแก้ไขข้อความไม่ควรใช้กับรหัสจริงๆ
สร้างสคริปต์ (ไฟล์. sh) ด้วยรหัสต่อไปนี้
#!/bin/sh
percent=$(ioreg -l | awk '$3~/Capacity/{c[$3]=$5}END{OFMT="%.3f";max=c["\"MaxCapacity\""];print(max>0?100*c["\"CurrentCapacity\""]/max:"?")}')
if [ $percent > 95 ]
then
echo 'charged.'
fi
exit 0
แทนที่echo 'charged.'
ด้วยคำสั่งเทอร์มินัลที่คุณต้องการเรียกใช้เมื่อชาร์จแบตเตอรี่ open /Applications/Notes.app
จะเปิดแอปพลิเคชัน Notes; คุณสามารถเปลี่ยนไดเรกทอรีเพื่อเปิดแอปพลิเคชันอื่น
$percent > 95
สิ่งนี้บอกให้บรรทัดถัดไปทำงานเมื่อแบตเตอรี่มี95
ประจุมากกว่าเท่านั้น คุณสามารถเปลี่ยนสิ่งนี้เป็นสิ่งที่คุณต้องการ ระดับแบตเตอรี่ที่นี่มักจะแตกต่างจากที่แสดงในแถบเมนูด้านบนเล็กน้อย หากคุณต้องการที่จะวิ่งเมื่อแบตเตอรี่ชาร์จเต็ม 'ผมขอแนะนำให้ออกจากนี้เช่น> 95 หากคุณต้องการให้งานทำงานเมื่อแบตเตอรี่ของคุณต่ำกว่า 20% ให้เปลี่ยนเป็น$percent < 20
หมายเหตุ: เนื่องจากนี่เป็นงานที่กำหนดเวลาไว้สคริปต์ของคุณจะทำงานทุก ๆx
นาที ซึ่งหมายความว่าถ้าคุณใส่open \Applications\Notes.app
ในสคริปต์ของคุณแอปพลิเคชัน Notes จะเริ่มทุกx
นาที (หากแบตเตอรี่ของคุณมีการชาร์จ)
งานนี้จะทำงานแม้ว่าจะไม่มีใครลงชื่อเข้าใช้
ฉันรู้ว่าคุณเคยถามคำถามนี้มานานแล้ว แต่หวังว่านี่จะช่วยใครซักคน