สำหรับผู้ที่ใช้โปรแกรมรักษาหน้าจอนอกเหนือจาก gnome-screensaver (ซึ่งเป็นโปรแกรมรักษาหน้าจอเริ่มต้นใน Ubuntu ที่เริ่มต้นด้วยรุ่น 11.10) คำตอบนี้อาจมีประโยชน์
โดยส่วนตัวแล้วฉันไม่ได้เปลี่ยนสกรีนเซฟเวอร์ของ gnome เป็นอย่างอื่นและฉันไม่รู้ด้วยเหตุผลอะไรคาเฟอีนไม่ได้ผลสำหรับฉันในทางใดทางหนึ่ง (อาจจะล้าสมัย)
ที่ถูกกล่าวว่าเริ่มต้นจากสคริปต์ทุบตีของผู้อื่น ( นี่คือสิ่งนี้และสิ่งนี้ ) ฉันจัดการเพื่อสร้างสคริปต์ใหม่gnome_screensaver_off.sh
ซึ่งทำงานได้อย่างสมบูรณ์แบบสำหรับสิ่งที่ฉันตั้งใจไว้เมื่อ YouTube ใช้ Flash Player ในการแสดงวิดีโอ
ปิดการใช้งานสกรีนเซฟเวอร์คำพังเพยในขณะที่ YouTube กำลังใช้โปรแกรมเล่นแฟลช
เปิดเทอร์มินัลแล้วเรียกใช้คำสั่งถัดไปตามด้วยคำแนะนำ:
mkdir -p bin
- คำสั่งนี้จะสร้างbin
ไดเรกทอรีในhome
โฟลเดอร์ของคุณหากคุณยังไม่มี
gedit ~/bin/gnome_screensaver_off.sh
- นี่จะสร้างไฟล์ใหม่gnome_screensaver_off.sh
ใน gedit
- คัดลอกและวางสคริปต์ต่อไปที่นั่น:
#!/bin/bash
# Getting the previous configuration
back=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-display-ac)
screensaver_is_off=0
delay=$[$back - 10]
# Defining the restore function
function restore {
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac $back
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery $back
gsettings set org.gnome.desktop.session idle-delay $back
bmin=$[$back / 60]
#notify-send "Screen sleep time restored to $bmin minutes."
notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Screen sleep time restored to $bmin minutes."
}
# Defining the disable_screensaver function
function disable_screensaver {
# Making sure the user don't mess up...
trap 'restore && exit 0' INT HUP
# Disabling sleep time
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0
gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 0
gsettings set org.gnome.desktop.session idle-delay 0
notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Screen sleep time turned off."
}
while true; do
if [ "$delay" -le "50" ]; then
sleep 50
else
sleep $delay
fi
flash_on=0
#Check if Chrome, Chromium or Firefox is open with a flash video running on it
if pgrep -lfc ".*((c|C)hrome|chromium|firefox|).*flashp.*" > /dev/null ; then
flash_on=1
else
flash_on=0
fi
if [ "$flash_on" -eq "1" ] && [ "$back" -ne "0" ] && [ "$screensaver_is_off" -eq "0" ]; then
disable_screensaver
screensaver_is_off=1
elif [ "$flash_on" -eq "0" ] && [ "$screensaver_is_off" -eq "1" ]; then
restore
screensaver_is_off=0
fi
done
exit 0
- บันทึกไฟล์และปิด
- กลับไปที่เทอร์มินัลแล้วรัน:
chmod +x gnome_screensaver_off.sh
- เพื่อให้สิทธิ์การเข้าถึงเพื่อเรียกใช้งานสคริปต์
~/bin/gnome_screensaver_off.sh
เมื่อต้องการเรียกใช้สคริปต์ใหม่ของคุณทำงาน
หากคุณต้องการคุณสามารถตั้งค่าสคริปต์นี้ให้ทำงานเมื่อเข้าสู่ระบบโดยทำดังต่อไปนี้:
- การค้นหาในDashสำหรับการประยุกต์ใช้งานเริ่มต้นเปิดและคลิกเพิ่ม
- ภายใต้ชื่อประเภท "YouTube Monitor" หรือบางอย่างที่คุณจะจำได้
- ภายใต้ประเภทคำสั่ง "/home/$USER/bin/gnome_screensaver_off.sh" (เปลี่ยน US $ ด้วยชื่อผู้ใช้ของคุณ)
- ภายใต้ความคิดเห็น (ถ้าคุณต้องการ) ให้พิมพ์คำอธิบายสั้น ๆ (เช่น "หน้าจอหยุดทำงานเมื่อโปรแกรมเล่น Flash ทำงานในเบราว์เซอร์")
ปิดการใช้งานสกรีนเซฟเวอร์ gnome ขณะที่ YouTube กำลังใช้เครื่องเล่นHTML5
คำถามยังคงเปิดอยู่ในแง่นี้ ...
ขอบคุณสำหรับคำแนะนำที่เสนอโดย: fossfreedom , Meer Borg , njallam , desguaและอื่น ๆ