วิธีป้องกันหน้าจอของฉันไม่ให้หรี่ลงหรือล็อคหน้าจอเริ่มต้นเมื่อดู YouTube


100

ความสว่างหน้าจอของฉันใช้ในการสลัวหลังจากไม่กี่วินาทีเพื่อรักษาแบตเตอรี่ นี่เป็นค่าเริ่มต้นใน Ubuntu 12.04 อย่างไรก็ตามเมื่อดูวิดีโอไม่ควรหรี่

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

ฉันเคยใช้ Mac OSX ที่ฉันมีการตั้งค่าการหรี่แสงแบบเดียวกันและวิดีโอ Flash ถูกนำมาพิจารณาอย่างถูกต้อง

ทุกคนมีความคิดว่าคุณสามารถทำให้ YouTube ป้องกันหน้าจอของคุณลดแสงได้อย่างไร


4
ดังนั้นเนื่องจากปัญหานี้เป็นปัญหาที่ผู้ใช้ Ubuntu ส่วนใหญ่ต้องการทางออกเราสามารถพิจารณาข้อบกพร่องนี้ในระบบปฏิบัติการหรือข้อบกพร่องในซอฟต์แวร์ (แฟลช, Chrome, Firefox) และรับการแก้ไขเพื่อให้ผู้ใช้ทุกคนไม่ต้องการ มาที่หน้า AskUbuntu นี้หรือไม่
blong

1
ฉันขอขอบคุณความช่วยเหลือทั้งหมด แต่มันไร้สาระที่เกิดขึ้นในปี 2559 มาเลยนี่เป็นสิ่งพื้นฐานที่ไม่ได้รับการสนับสนุน วิดีโอ HTML5 ด้วย - ทำไมมันช้าและบั๊กกี้ มันเป็นปัญหาใหญ่ที่จะแก้ไข .. ? มันควรจะแทนที่ Flash .. ตอนนี้ดูเหมือนว่าไร้สาระ
Dor

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

@earthmeLon หรือใครก็ตามคุณช่วยอธิบายได้อย่างไรว่ามันจะปลอดภัยน้อยลงได้อย่างไร
Sergey Chupov

คำตอบ:


54

HOWTO: ปิดการใช้งานโปรแกรมรักษาหน้าจอขณะที่แฟลชกำลังทำงาน

รันคำสั่งต่อไปนี้ในเทอร์มินัล:

mkdir -p ~/bin

เปิด gedit หรือแก้ไขข้อความที่คุณต้องการและพิมพ์สิ่งนี้:

#!/bin/bash

# Cleanup any bad state we left behind if the user exited while flash was
# running
gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled --type bool true

we_turned_it_off=0

while true; do
    sleep 60
    flash_on=0

    for pid in `pgrep firefox` ; do
        if grep libflashplayer /proc/$pid/maps > /dev/null ; then
            flash_on=1
        fi

        ss_on=`gconftool-2 -g /apps/gnome-screensaver/idle_activation_enabled`

        if [ "$flash_on" = "1" ] && [ "$ss_on" = "true" ]; then
            gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled \
                --type bool false
            we_turned_it_off=1
        elif [ "$flash_on" = "0" ] && [ "$ss_on" = "false" ] \
                && [ "$we_turned_it_off" = "1" ]; then
            gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled \
                --type bool true
            we_turned_it_off=0
        fi

    done
done

~/bin/flash_saver.shบันทึกแฟ้มนี้เป็น

กลับไปที่เทอร์มินัลแล้วเรียกใช้:

chmod +x ~/bin/flash_saver.sh

หากต้องการเรียกใช้งานให้ไปที่เทอร์มินัลแล้วพิมพ์:

~/bin/flash_saver.sh

หากคุณต้องการคุณสามารถตั้งค่าสคริปต์นี้ให้ทำงานเมื่อเข้าสู่ระบบโดยทำดังต่อไปนี้:

  1. เรียกใช้โปรแกรม "แอปพลิเคชันเริ่มต้น"
  2. คลิก "เพิ่ม"
  3. ภายใต้ชื่อประเภท "FlashMonitor" หรือบางสิ่งที่คุณจะจำได้
  4. ภายใต้ประเภทคำสั่ง ~/bin/flash_saver.sh
  5. ภายใต้ความคิดเห็น (ถ้าคุณต้องการ) พิมพ์คำอธิบายสั้น ๆ เช่น "หน้าจอหยุดทำงานเมื่อแฟลชกำลังทำงาน"

แหล่งที่มา: HOWTO: ปิดการใช้งานโปรแกรมรักษาหน้าจอขณะที่แฟลชกำลังทำงาน - ubuntuforums


4
ถ้าฉันทำได้ฉันจะลงคะแนนให้ +5 สคริปต์จากฟอรัมอูบุนตูนั้นเขียนได้อย่างดีเยี่ยมเหมือนคำตอบ นอกจากนี้ยังมีนิ้วหัวแม่มือขนาดใหญ่ขึ้นเพื่อรวมถึงแหล่งที่มาจริง
con-f-use


4
สิ่งนี้ใช้ได้กับ Firefox เท่านั้น ใครบ้างที่สามารถเขียนสิ่งนี้เพื่อรองรับหลายเบราว์เซอร์
Steven Roose

3
มันจะทำงานกับเครื่องเล่นวิดีโอ html5 หรือไม่
kdureidy

2
จำเป็นต้องรองรับวิดีโอ HTML5 แน่นอน
ulidtko

31

แก้ไข

นี่อาจจะไม่ทำงานหากคุณใช้ Ubuntu รุ่นใหม่กว่า 12.04 (ได้ลองใน 13.04 และ 13.10 และมันไม่ทำงานเลย) ดูเหมือนว่าผู้พัฒนาหลักจะไม่ทำงานอีกต่อไปในโครงการนี้ดังนั้นโอกาสในการได้รับการแก้ไขจะไม่ดี


ในระบบของฉัน (Ubuntu 11.10) ใช้ i คาเฟอีน คุณสามารถลองใช้งานได้ใน Xubuntu ด้วย มันเพิ่มไอคอนพื้นที่แจ้งเตือนที่คุณสามารถเปิดใช้งาน / ปิดการใช้งานสกรีนเซฟเวอร์สำหรับบางโปรแกรม ในการติดตั้ง Caffeine ให้ทำดังต่อไปนี้:

sudo add-apt-repository ppa:caffeine-developers/ppa
sudo apt-get update
sudo apt-get install caffeine

จากนั้นดำเนินการใน terminal:

caffeine -p &

จากนั้นคุณสามารถเลือกโปรแกรมที่ควรปิดการใช้งานสกรีนเซฟเวอร์:
vlcสำหรับ VLC, mplayerสำหรับ Movie Player ฯลฯ

การตั้งค่าคาเฟอีน

หวังว่ามันจะช่วย


มันใช้งานได้ดีในวันที่ 12.04 ขอบคุณ!
Geppettvs D'Constanzo

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

ตอนนี้ฉันอยู่ที่ 12.04 และฉันยังคงใช้แอปพลิเคชันนั้นอยู่ไม่หยุดสกรีนเซฟเวอร์ แต่เพื่อปิดการลดความสว่างของหน้าจออย่างรวดเร็ว สำหรับสิ่งที่ฉันเห็นถ้ามันเป็นข้อผิดพลาดมันอยู่ในเบราว์เซอร์: มันเป็นความรับผิดชอบของเขาที่จะยับยั้งหน้าจอเมื่ออยู่ในแบบเต็มหน้าจอ
Salem

ไม่ได้ติดตั้งใน 13.10
NoBugs

1
คำตอบนี้จำเป็นต้องได้รับการอัปเดตเนื่องจาก Caffeine สามารถใช้งานได้ใน Ubuntu 16.04 Xenial ;)
Andrea Lazzarotto

14

มีสคริปต์เล็ก ๆ น้อย ๆ ที่ดีในGitHub เรียกว่า lightsOnซึ่งควรทำตามเคล็ดลับที่คุณต้องการ

โดยทั่วไปแล้วจะค้นหาวิดีโอแบบเต็มหน้าจอ (แฟลชใน firefox หรือ chromium, mplayer หรือ vlc) และหากเป็นเช่นนั้นให้ปิดการใช้งาน xscreensaver และความสามารถของหน้าจอสลัวผู้จัดการพลังงานอัตโนมัติ

จากสคริปต์ตัวเอง:

วิธีใช้: เริ่มต้นสคริปต์ด้วยจำนวนวินาทีที่คุณต้องการตรวจสอบ
เพื่อให้เต็มหน้าจอ ตัวอย่าง:
 "./lightsOn.sh 120 &" จะตรวจสอบทุก 120 วินาทีหาก ​​Mplayer
 VLC, Firefox หรือ Chromium เป็นสกรีนเซฟเวอร์แบบเต็มหน้าจอและหน่วงเวลาและการจัดการพลังงานถ้าใช่
 คุณต้องการจำนวนวินาทีให้น้อยกว่าเวลาที่ใช้ในการ ~ 10 วินาที
 สกรีนเซฟเวอร์ของคุณหรือการจัดการพลังงานเพื่อเปิดใช้งาน
 หากคุณไม่ผ่านการโต้แย้งการตรวจสอบจะทำทุก 50 วินาที

ดังนั้นจึงเรียกสคริปต์จากโฟลเดอร์ autostart ของคุณเป็นต่อคำตอบของฉันที่นี่

ปรับสคริปต์ไม่ว่าคุณจะเรียกใช้แฟลช / vlc / mplayer

อย่าลืมให้สิทธิ์แก่สคริปต์ในการรันเช่น

chmod +x lightsOn.sh

3
Lightson ดูไร้ผู้คน แต่มีส้อม ( github.com/partizand/lightsOn , github.com/unhammer/lightsOn )
Jérôme

10

ไม่ได้เป็นอย่างที่คุณต้องการ แต่สคริปต์เล็ก ๆ นี้จะบันทึกการเคลื่อนไหวของเมาส์ทุกครั้งที่ทำงาน คุณสามารถวางมันลงใน cron เพื่อทำงานหนึ่งครั้งทุก ๆ จำนวน x-of-time สิ่งนี้จะหยุดหน้าจอไม่ให้ปิดและการเคลื่อนไหวของเมาส์ 1 1 จะแทบจะสังเกตไม่เห็นถ้ามันทำงานเมื่อคุณไม่ได้ดูวิดีโอ

#!/bin/bash
#move the mouse
xte 'mousermove 1 1' 

ฉันได้รับแนวคิดนี้จากการ์ตูน xkcd โดยสิ้นเชิง http://xkcd.com/196/


หรือเรียกใช้จากสคริปต์ Bash (ในขณะที่และหลับ) เช่นคำตอบอื่น ๆ ที่นี่
Peter Mortensen

7

สำหรับการเทียบเท่าสคริปต์ที่จัดทำล่วงหน้าโดย @njallam พร้อมองค์ประกอบ Gnome UI ที่ประณีตให้ลองแอปเพล็ต Caffeine:

https://launchpad.net/caffeine
http://ubuntu-tweak.com/app/caffeine/


ฉันติดตั้งคาเฟอีนแล้ว แต่ไม่เห็นว่าคุณต้องเปิดใช้งานเพื่อให้ทำงานได้ ขอบคุณ!
Steven Roose

ข้อมูลจากนักพัฒนา Caffeine:“ การสนับสนุนวิดีโอ Flash หายไปเนื่องจากมันซับซ้อนเกินกว่าที่จะให้มันทำงานได้” ดังนั้นคุณสามารถลืมช่องทำเครื่องหมาย Flash video ในการตั้งค่า อย่างไรก็ตามหากคุณใช้ Firefox ให้เพิ่มplugin-containerเข้าไปในรายการโปรแกรมและ Caffeine จะเปิดใช้งานวิดีโอ Flash อย่างถูกต้อง (การปิดการใช้งานจะล่าช้าเล็กน้อยเนื่องจากปลั๊กอินคอนเทนเนอร์ไม่โหลดออกมาทันทีเมื่อคุณปิดแท็บด้วยวิดีโอจะใช้เวลาหลายนาที )
whtyger

6

Webupd8 มีบทความเกี่ยวกับ Caffeine และ Lightson.sh เพื่อปิดการใช้งานโปรแกรมรักษาหน้าจอในขณะที่เล่นวิดีโอ Flash หรือ HTML5 สคริปต์ Lightson ทำงานได้ทั้ง Firefox และ Chrome และสามารถตั้งค่าให้รวม VLC ฉันหวังว่านี่จะช่วยได้

ในกรณีที่โค้ดของ Webupd8 ติดตั้งสคริปต์ดังต่อไปนี้:

mkdir -p ~/scripts && cd ~/scripts

wget https://raw.github.com/hotice/lightsOn/master/lightsOn.sh

chmod +x lightsOn.sh

1
วิธีที่ใช้ในสคริปต์นั้น ( lightsOn.sh) เพื่อตรวจสอบว่าเบราว์เซอร์ใช้โปรแกรมเล่น HTML5 นั้นไม่ดีหรือไม่ ในความเป็นจริงวิธีการกำหนดถ้า Firefox หรือ Chromium เป็นแบบเต็มหน้าจอ ... ในส่วนที่เหลือบทความเป็นสิ่งที่ดีและคำตอบของคุณเป็นวิธีที่ดีที่สุดเกี่ยวกับสิ่งที่ฉันถาม
Radu Rădeanu

1
ฉันได้ทำการค้นคว้าเพิ่มเติมอีกเล็กน้อยพบสคริปต์ที่ใช้ CPU หรือกิจกรรมบนเครือข่าย มันตั้งอยู่บนฟอรั่มมิ้นท์มันอาจช่วยให้คุณควบคุมได้ดีขึ้น เพลิดเพลินกับการดู YouTube
Garry

5

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

โปรดทราบว่าในแล็ปท็อปมีการตั้งค่าสองอย่างด้วยชื่อนั้น: เมื่อแล็ปท็อปกำลังทำงานโดยใช้ไฟ AC และเมื่อใช้แบตเตอรี่


2

ใช้คาเฟอีน: หน้า ppa

ติดตั้งอย่างไร:

sudo apt-add-repository ppa:caffeine-developers/ppa 
sudo apt-get update
sudo apt-get install caffeine

วิธีการใช้งาน:

  1. ตีAlt+ แล้วพิมพ์F2caffeine

  2. คลิกที่ไอคอน "Caffeine" จากนั้นคลิก "ปิดการใช้งานสกรีนเซฟเวอร์"


1
ฉันไม่ได้ตั้งใจที่จะปิดการใช้งานสกรีนเซฟเวอร์ อย่างไรก็ตามฉันลองคาเฟอีน แต่ก็ไม่ได้ผล ฉันไม่คิดว่ามันอัปเดตเป็น Gnome เวอร์ชั่นล่าสุด
Radu Rădeanu

@ RaduRădeanuคาเฟอีนปิดการใช้งานสกรีนเซฟเวอร์ของคอมพิวเตอร์ของคุณมันไม่มีส่วนเกี่ยวข้องกับเว็บเบราว์เซอร์ของคุณ
Alvar

@ อัลวาร์ถ้าคุณต้องการ ... เอาล่ะก็ไม่ได้ผลสำหรับฉัน
Radu Rădeanu

2

ค่อนข้างเก่า แต่นี่มันรองรับเบราว์เซอร์หลายตัว:

#!/bin/bash -eu

# List your browsers here
browsers_list=( "firefox" "chrome" "chromium" "opera" )

# Cleanup any bad state we left behind if the user exited while flash was running
gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled --type bool true

idle_off=0

while true; do

    sleep 60

    for browser in "${browsers_list[@]}" ; do
    for pid in `pgrep $browser` ; do

        flash_on=0
        if [ -O /proc/$pid/maps ] && grep libflashplayer /proc/$pid/maps > /dev/null ; then
            flash_on=1
        fi

        ss_on=`gconftool-2 -g /apps/gnome-screensaver/idle_activation_enabled`

        if [ "$flash_on" = "1" ] && [ "$ss_on" = "true" ]; then
            gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled --type bool false
            idle_off=1
        elif [ "$flash_on" = "0" ] && [ "$ss_on" = "false" ] && [ "$idle_off" = "1" ]; then
            gconftool-2 -s /apps/gnome-screensaver/idle_activation_enabled --type bool true
            idle_off=0
        fi

    done
    done

done

เพียงบันทึกสคริปต์ไว้ที่ใดที่หนึ่งแล้วchmod +xเพิ่มลงใน StartupApplications อาจมีวิธีแสดงรายการเบราว์เซอร์ที่มีอยู่ทั้งหมดโดยใช้สิ่งที่ชอบ:

update-alternatives --list x-www-browser

แต่ผมไม่ทราบวิธีการจัดการกับความจริงที่ว่า executables บางคนไม่ได้มีชื่อกว่ากระบวนการของพวกเขา (เช่น/usr/bin/google-chromeทำงานเป็นchrome)



2

สำหรับผู้ที่ใช้โปรแกรมรักษาหน้าจอนอกเหนือจาก 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เมื่อต้องการเรียกใช้สคริปต์ใหม่ของคุณทำงาน

หากคุณต้องการคุณสามารถตั้งค่าสคริปต์นี้ให้ทำงานเมื่อเข้าสู่ระบบโดยทำดังต่อไปนี้:

  1. การค้นหาในDashสำหรับการประยุกต์ใช้งานเริ่มต้นเปิดและคลิกเพิ่ม
  2. ภายใต้ชื่อประเภท "YouTube Monitor" หรือบางอย่างที่คุณจะจำได้
  3. ภายใต้ประเภทคำสั่ง "/home/$USER/bin/gnome_screensaver_off.sh" (เปลี่ยน US $ ด้วยชื่อผู้ใช้ของคุณ)
  4. ภายใต้ความคิดเห็น (ถ้าคุณต้องการ) ให้พิมพ์คำอธิบายสั้น ๆ (เช่น "หน้าจอหยุดทำงานเมื่อโปรแกรมเล่น Flash ทำงานในเบราว์เซอร์")

ปิดการใช้งานสกรีนเซฟเวอร์ gnome ขณะที่ YouTube กำลังใช้เครื่องเล่นHTML5

คำถามยังคงเปิดอยู่ในแง่นี้ ...

ขอบคุณสำหรับคำแนะนำที่เสนอโดย: fossfreedom , Meer Borg , njallam , desguaและอื่น ๆ


2

โซลูชันสำหรับการเล่น HTML5 ใน Chrome

ภาพรวม

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

  • หน้าต่างไม่เต็มหน้าจอ
  • หน้าต่างไม่ได้อยู่ในโฟกัส
  • ไม่มีหน้าต่างอีกต่อไป

ต้นฉบับ

#!/bin/bash

## Variables ##

ChromeWmClass="Google-chrome"
FullScreenProperty="_NET_WM_STATE_FULLSCREEN"
CheckInterval="300" # check every 5 minutes

## Main ##

while true; do

  sleep "$CheckInterval"

  ActiveWinID=$(xdotool getactivewindow)

  if [[ -z "$ActiveWinID" ]]; then
    continue
  fi

  ActiveWinProp=$(xprop -id "$ActiveWinID")

  if echo "$ActiveWinProp" | grep "$FullScreenProperty" > /dev/null 2>&1 \
  && echo "$ActiveWinProp" | grep "WM_CLASS" | grep "$ChromeWmClass" > /dev/null 2>&1
    then
      if [[ -z "$SuspendingID" ]]; then
        echo "Suspending screensaver for $ActiveWinID"
        xdg-screensaver suspend "$ActiveWinID"
        SuspendingID="$ActiveWinID"
      elif [[ "$ActiveWinID" = "$SuspendingID" ]]; then
        echo "$ActiveWinID is already suspending  screensaver."
      elif [[ -n "$SuspendingID" ]]; then
        echo "Resuming screensaver for $SuspendingID"
        xdg-screensaver resume "$SuspendingID"
        echo "Suspending screensaver for $ActiveWinID"
        xdg-screensaver suspend "$ActiveWinID"
        SuspendingID="$ActiveWinID"
      fi
    else
      if [[ -n "$SuspendingID" ]] \
      && xprop -id "$SuspendingID" > /dev/null 2>&1
        then
          echo "Resuming screensaver for $SuspendingID"
          xdg-screensaver resume "$SuspendingID"
          SuspendingID=""
        else
          echo "No change."
      fi
  fi
done

2

วิธีการที่ไม่ใช่ทางปัญญาที่ง่ายที่สุดซึ่งไม่เชื่อเรื่องเดสก์ท็อปและอาศัยxdotoolคือการจำลองจังหวะสำคัญทุก ๆ N วินาที

ฉันใช้สคริปต์ที่เรียกว่าheartbeat.sh:

#!/bin/bash
while : 
do
    nice -n 1 xdotool key shift
    date +%T ## show some sign of life
    sleep 100
done

ฉันเปิดใช้งานสคริปต์ขณะที่เล่นวิดีโอแล้วหยุดเมื่อไม่ต้องการใช้อีกต่อไป

xdotoolsudo apt-get install xdotoolสามารถติดตั้งได้กับ

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

#!/bin/bash

while : 
do
    if [[ ! -z $(pacmd list-sink-inputs | grep RUNNING) ]] ; then
        echo 'Audio is playing. Inhibiting screensaver'
        nice -n 1 xdotool key shift ;
    else
        echo 'No audio detected'
    fi
    date +%T ## show some sign of life
    sleep 100
done

หากใช้ Alsa การทดสอบน่าจะเป็นอะไรที่ไม่ได้ทดสอบ:

if [[ ! -z $(grep RUNNING /proc/asound/card*/pcm*/sub*/status) ]] ; then...

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


1

สำหรับผู้ที่ชอบการควบคุมเต็มรูปแบบหรือด้วยตนเองที่มือของพวกเขา

บรรทัดคำสั่งนี้สามารถตั้งค่าเวลาหน่วงหน้าจอของสกรีนเซฟเวอร์:

gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0

ใช้ "0" (ศูนย์) เพื่อเก็บไว้หรือค่าอื่นเพื่อกำหนดความล่าช้าในไม่กี่วินาที

สคริปต์ต่อไปนี้จะเปิดหน้าจอไว้จนกว่าจะมีการกดปุ่มบางปุ่ม

#!/bin/bash

# 
# To turn screen sleep time off for a while then back on
#
# by desgua 2013/01/27
#

# Getting the previous configuration
back=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-display-ac)

# 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=$(echo "$back / 60" | bc)
#notify-send "Screen sleep time restored to $bmin minutes."
echo
echo "Screen sleep time restored to $bmin minutes."
echo 

exit 0
}

# 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

echo
echo "Screen sleep time turned off."
echo 

#notify-send "Screen sleep time turned off."

# Waiting for user to press some key and then restore the previous configuration
read -n 1 -p 'Press any key to turn it on again. ' b

RESTORE

exit 0

วิธีเรียกใช้สคริปต์:

  1. คัดลอกข้อความลงในไฟล์ว่าง
  2. บันทึกไฟล์
  3. ทำให้ไฟล์ปฏิบัติการได้
  4. เรียกใช้จากเทอร์มินัล

1

VLC ในPPAนี้นอกเหนือจากการเป็นเวอร์ชันปัจจุบันของ VLC ยังใช้การยับยั้งโปรแกรมรักษาหน้าจอได้อย่างถูกต้อง

คุณสามารถเพิ่ม PPA นี้โดยใช้คำสั่งนี้

sudo add-apt-repository ppa:n-muench/vlc

สิ่งนี้เกี่ยวข้องกับการลดแสงของวิดีโอในเบราว์เซอร์
Peter Mortensen

ดูเหมือนมีคำถามที่แตกต่างกันมากมายที่ถูกรวมเข้ากับคำถามนี้ ตรวจสอบประวัติการแก้ไขและคุณอาจเห็นว่าคำถามบางข้อมีปัญหากับโปรแกรมรักษาหน้าจอ
Rob

0

คุณสามารถดำเนินการ / ตั้งค่าคำสั่งนี้ในขณะที่เริ่มต้น:

gconftool --type string --set /apps/compiz-1/plugins/fade/screen0/dim_unresponsive false   

คุณสามารถลองยกเลิกการเลือกตัวเลือกการเร่งด้วยฮาร์ดแวร์บน firefox ได้หรือไม่?


2
ผมพูดแบบนี้มาก่อน: ฉันไม่ได้ตั้งใจที่จะปิดการใช้งานหน้าจอ ฉันต้องการเพียงเพื่อป้องกันไม่ให้หน้าจอมืดลงเมื่อดู YouTube
Radu Rădeanu

0

สำหรับผู้ที่ใช้Ubuntu-Gnome 14.04มีส่วนขยายที่เรียบง่ายและมีประโยชน์ที่เรียกว่า Caffeine ซึ่งมีไอคอนสลับซึ่งช่วยให้คุณปิดการใช้งานการหรี่แสงและการทำงานของโปรแกรมรักษาหน้าจอจากแถบด้านบนด้วยการคลิก

สามารถติดตั้งส่วนขยายได้ตามลิงค์นี้ไปยังเว็บไซต์ Gnome-Shell Extensions:

https://extensions.gnome.org/extension/517/caffeine/

ที่มา: ส่วนความคิดเห็นในบทความนี้:

http://www.maketecheasier.com/prevent-ubuntu-sleep-while-watching-video/


0

นี่คือทางออกของฉัน:

https://github.com/yanyingwang/shanghai-tools/blob/master/kit/the-bund-light.md

https://github.com/yanyingwang/shanghai-tools/blob/master/kit/the-bund-light.sh

เพียงดาวน์โหลดthe-bund-light.shและเพิ่มลงในแอปพลิเคชั่น startbooting:

sudo apt-get install xdotool

cd ~ && wget https://raw.githubusercontent.com/yanyingwang/shanghai-tools/master/kit/the-bund-light.sh

cat >> ~/.config/autostart/the-bund-light.sh.desktop <<EOF
[Desktop Entry]
Type=Application
Exec=$HOME/shanghai-tools/kit/the-bund-light.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[zh_CN]=TheBundLight
Name=TheBundLight
Comment[zh_CN]=
Comment=
EOF

ข้อควรระวัง: Execค่าในรหัสควรเป็นเส้นทางของthe-bund-light.shในคอมพิวเตอร์ของคุณ


0

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

หากคุณมีระบบที่เก่ากว่าคุณอาจต้องหาที่อื่นสำหรับการตั้งค่านี้ แต่มันมีอยู่ที่ใดที่หนึ่ง


4
ใช่ แต่ฉันไม่ต้องการปิดการใช้งานอย่างถาวร
ste_kwr

0

ฉันใช้สคริปต์ต่อไปนี้เป็นวิธีแก้ปัญหา:

#!/bin/bash
while true
do
   xdotool key Shift_L
   sleep 1m
done

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

คุณอาจต้องติดตั้งสิ่งนี้

sudo apt-get install xdotool

0

สคริปต์ที่ด้านบนไม่ทำงานสำหรับฉันบน Ubuntu 14.04 LTS Unity นี่คือรุ่นที่ได้รับการปรับปรุงซึ่งใช้งานได้:

#!/bin/bash

id_saved=0
sac_saved=0
sbat_saved=0
dim_saved=false

ss_save()
{
    id_saved=`gsettings get org.gnome.desktop.session idle-delay`
    sac_saved=`gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout`
    sbat_saved=`gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout`
    dim_saved=`gsettings get org.gnome.settings-daemon.plugins.power idle-dim`
}

ss_set()
{
    gsettings set org.gnome.desktop.session idle-delay "$1"
    gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout "$2"
    gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout "$3"
    gsettings set org.gnome.settings-daemon.plugins.power idle-dim "$4"
}

ss_on()
{
    ss_set "$id_saved" "$sac_saved" "$sbat_saved" "$dim_saved"
}

ss_off()
{
    ss_set 0 0 0 false
}

trap ss_on EXIT

already_off=0
flash_on=0
ss_save

while true; do
    if top -bcw 200 | sed -e '1,/PID/d' | head -1 | grep flash > /dev/null
    then
        flash_on=1
        off_count=0
    else
        off_count=`expr $off_count + 1`
        echo "flash_off_count=$off_count"
        if [ $off_count -gt 5 ]; then
            flash_on=0
        fi
    fi

    if [ "$flash_on" = "1" -a "$already_off" = "0" ]; then
        echo "screensaver: off"
        ss_off
        already_off=1
    elif [ "$flash_on" = "0" -a "$already_off" = "1" ]; then
        echo "screensaver: on"
        ss_on
        already_off=0
    elif [ "$already_off" = "0" ]; then
        echo "screensaver: save possibly new params"
        ss_save # user may update the values
    fi

    sleep 30
done

BTW สคริปต์นี้ปิดการใช้งานสกรีนเซฟเวอร์เฉพาะเมื่อเล่นวิดีโอเช่นเมื่อ flashplayer อยู่ด้านบนของผู้ใช้ CPU

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.