รีเซ็ตเวลาที่ไม่ได้ใช้งานเมื่อถอดปลั๊กไฟ หรือรีเซ็ตเวลาที่ไม่ได้ใช้งาน ในขณะที่ คุณอยู่บน AC?
แม้ว่าคุณจะสามารถสร้างการดำเนินการเกี่ยวกับการถอดปลั๊ก (คุณทำได้) คำถามก็คือว่าคุณจะทันเวลาเพื่อป้องกันการระงับหรือไม่
เคล็ดลับที่น่าเชื่อถือกว่าคือการป้องกันไม่ให้เวลาว่างผ่านเกณฑ์เวลาว่าง เลยแต่ถ้าคุณใช้ AC
หากคุณอยู่บน X เราจะทำอย่างนั้นได้อย่างไร
เรียกใช้สคริปต์พื้นหลังที่มีลักษณะคล้ายดีมอนขนาดเล็กที่ - เฉพาะเมื่อคุณใช้ AC และ ไม่ได้ใช้งานนานกว่า (สมมุติว่า) หนึ่งนาที - จำลองการกดปุ่ม ควบคุม. นั่นเป็นกุญแจที่ไม่ทำอะไรเลยหากคุณไม่ได้ใช้งานแล็ปท็อปจริง ๆ แต่จะรีเซ็ตเวลาที่ไม่ได้ใช้งานเท่านั้น
จากนั้นหากคุณถอดปลั๊ก การกดปุ่มเสมือนจะถูกข้ามไป และแล็ปท็อปจะทำทุกอย่างที่คุณตั้งค่าให้ทำหลังจากเวลา x
ด้านล่างเป็นตัวอย่างของสคริปต์ดังกล่าว ในความคิดเห็น คุณบอกว่าคุณใช้ Ubuntu 18.04, Gnome ซึ่งหมายความว่าคุณใช้ Mutter (X) ดังนั้นคุณจึงใช้เครื่องมือในสคริปต์ด้านล่างได้
วิธีใช้?
- ตรวจสอบให้แน่ใจ
xprintidle
, xdotool
และ แอคพิ
มีการติดตั้ง: sudo apt ติดตั้ง xdotool acpi xprintidle
- คัดลอกสคริปต์ลงในไฟล์เปล่า
- ทดสอบรันจากเทอร์มินัล:
python3 /path/to/script
. หากทุกอย่างทำงานได้ดี ให้เพิ่มลงในคำสั่งเริ่มต้นของคุณ
สคริปต์
#!/usr/bin/env python3
นำเข้ากระบวนการย่อย
นำเข้า GI
gi.require_version("Gtk", "3.0")
จาก gi.repository นำเข้า GLib, Gtk
การทดสอบ def (arg):
#มาดูกันว่าเวลาว่างปัจจุบันคืออะไร
idletime = int(subprocess.check_output("xprintidle").decode("utf-8"))
#และถ้าเราติด
onpower = "ออนไลน์" ใน subprocess.check_output(
["acpi", "-a"]
).ถอดรหัส("utf-8")
# หากไม่ได้ใช้งานนานกว่า 60 วินาทีและเปิดเครื่อง ให้แตะ Ctrl เพื่อรีเซ็ตสถานะไม่ได้ใช้งาน
ถ้าทั้งหมด ([idletime/1000 > 60, onpower]):
กระบวนการย่อย Popen (
["xdotool", "คีย์", "Ctrl"]
)
#โปรดดำเนินการต่อ
กลับทรู
GLib.timeout_add_seconds(15, ทดสอบ, ไม่มี)
Gtk.main()