Сценарий для предотвращения экранного очищения с помощью “перемещение мыши” не работает

Обычно это - Shift+Page для прокрутки и Shift+Page Вниз для прокручивания вниз.

9
19.09.2013, 14:35
3 ответа

У Вас есть несколько проблем, во-первых, Вам будут нужны 2 повторения top каждый раз см. мой ответ здесь и отчет об ошибках здесь.

Другая проблема состоит в том, что удар не делает плавающей точки, поэтому если Ваше использование ЦП - что-то как 6.2, .2 повредит сценарий. Bash просто не разработан для 'сложных' арифметических операций. Один путь вокруг этого состоял бы в том, чтобы переместиться >5 проверьте в Вашем awk команда:

#!/usr/bin/env bash

sleep_period=60s 

while true; do
    until top -bn 2 -d 0.01 | sed -nrs '8p' | awk '{if($9>5){exit 1}else{exit 0}}'; do
      xdotool mousemove 0 100
      xdotool mousemove 0 50
      sleep ${sleep_period}
    done
   sleep ${sleep_period}
done
5
27.01.2020, 20:06

Можно использовать

xset -dpms; xset s off

мешать экрану чернеть.

Для включения этого снова используют

xset +dpms; xset s on

Так -dpms отключает опции энергосбережения питания, которые могут выключить целый монитор и s off выключает функцию экранной заставки X-сервера.

Это не работает с xscreensaver, который был упомянут в комментариях.

9
27.01.2020, 20:06
  • 1
    Не Делает, которые предполагают, что Вы используете xscreensaver? Это будет работать с какой-либо экранной заставкой? Даже DE как gnome-screensaver? –  terdon♦ 18.09.2013, 17:33
  • 2
    @terdon Насколько я знаю это, отключает все типы экранных заставок. –  Raphael Ahrens 18.09.2013, 17:41
  • 3
    , я хочу что-то, чему не нужно мое вмешательство –   18.09.2013, 19:56
  • 4
    @vasa1, пока это работает на Вашу экранную заставку, не требуется больше вмешательства, чем Ваш сценарий. Вы просто выполняете ту команду однажды, и экранная заставка выключена. спасибо –  terdon♦ 18.09.2013, 20:04
  • 5
    @vasa1 Вы могли использовать это вместо xdotool mousemove 0 100. –  Raphael Ahrens 18.09.2013, 20:17

Во-первых, вам нужно установить xdotool & rand. Пример на Ubuntu:

sudo apt install xdotool rand

Затем запустите этот -лайнер в терминале (от имени пользователя):

eval $(xdotool getdisplaygeometry --shell); while true; do xdotool mousemove `rand -M $WIDTH` `rand -M $HEIGHT` && sleep $((`rand -M 300` + 120)); done;
1
27.01.2020, 20:06

Теги

Похожие вопросы