Raspberry Pi:Операционная система/Настройка/Отключение скринсейвера в Raspbian

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


//в процессе обработки и доводки


Как отключить скринсейвер в Raspbian[1]

Отключить скринсейвер оказалось довольно непросто, но в конце концов я обнаружил, что эта задача имеет два уровня – во-первых, собственный функционал для гашения экрана есть у текстового терминала bash-оболочки, а во-вторых, у X-сервера тоже имеются свои независимые графические настойки.

Вдобавок оказалось, что многие рекомендации к Raspbian-версии Debian просто не работают, потому что, как выяснилось, Raspbian использует другие файлы.

Чтобы посмотреть настройки скринсейвера в текущей X-сессии, воспользуйтесь нижеследующей командой (следует использовать только через X-терминал):

xset q
<syntaxhighlight lang="bash">

Если вкратце, для Raspbian нужно проделать следующее...

'''1.''' Отключить гашение экрана в текстовом терминале. Поменяйте две настройки в '''/etc/kbd/config''':

<syntaxhighlight lang="bash">
BLANK_TIME=0
POWERDOWN_TIME=0

2. Отключить гашение экрана в X-сессии. Дополнительную информацию можно прочесть здесь. Добавьте нижеследующие строчки к /etc/xdg/lxsession/LXDE/autostart:

@xset s noblank 
@xset s off 
@xset -dpms

Апдейт: Мне только что пришло сообщение от Dirk’а, где он говорит, что месторасположение файла поменялось... Раньше он находился в /etc/xdg/lxsession/LXDE/autostart, а теперь – в /etc/xdg/lxsession/LXDE-pi/autostart. То есть, если в используемой вами версии файл перекочевал в это самое другое место, то скрипт нужно отредактировать.

Ниже скрипт, который окончательно отключает гашение экрана в X-сессии:

no_blank.sh

Работает он следующим образом:

#!/bin/bash

NOBLANK="
@xset s noblank
@xset s off
@xset -dpms
"

  # Задаем приятные ANSI-цвета для текста
  OFF="\033[0m"
  BOLD="\033[1m"
  DIM="\033[2m"
  RED="\033[1;31m"
  GREEN="\033[1;32m"
  YELLOW="\033[1;33m"
  BLUE="\033[1;34m"

  clear
  printf "\n\n\t $YELLOW           "; date ; printf "$OFF"
  printf "\n $GREEN"
  printf "\t +------------------------------------------------+\n"
  printf "\t |                  no_blank.sh                   |\n"
  printf "\t |                rev Oct 1, 2013                 |\n"
  printf "\t |                                                |\n"
  printf "\t |      Сделано: Яном Зумвальтом (Jan Zumwalt)    |\n"
  printf "\t |                 net-wrench.com                 |\n"
  printf "\t |                                                |\n"
  printf "\t | Этот скрипт окончательно отключает скринсейвер |\n"
  printf "\t | в X-сессии для RASPBIAN PI OS. Кроме того,     |\n"
  printf "\t | если вы передумали, скрипт можно просто        |\n"
  printf "\t | выключить, не внося никаких изменений.         |\n"
  printf "\t +------------------------------------------------+$OFF\n\n" 

  printf "\t Эта программа окончательно выключит скринсейвер \n"
  printf "\t в текущей X-сессии, вы действительно \n"
  printf "\t хотите это сделать? $YELLOW<y/n>$OFF"; read -n 1 KEYIN

  if [[ $KEYIN == "N"  ||  $KEYIN == "n" ]]; then
    printf "\n\n\t ОК, я ничего не собираюсь делать и просто выхожу.\n\n"
    exit 0
  fi

  printf "\n\n\t Я хочу отредактировать файл \n"
  printf "\t /etc/xdg/lxsession/LXDE/autostart \n"
  printf "\t Я добавлю в файл строки $GREEN GREEN$OFF ...\n\n"

  printf "$DIM\n"
  pr -t -o 9 /etc/xdg/lxsession/LXDE/autostart
  printf "$OFF$GREEN$NOBLANK" | pr -t -o 9
  printf "$OFF\n\n" 

  printf "\t Вы действительно хотите это сделать? $YELLOW<y/n>$OFF"; read -n 1 KEYIN

  if [[ $KEYIN == "N"  ||  $KEYIN == "n" ]]; then
    printf "\n\n\t ОК, я ничего не собираюсь делать и просто выхожу.\n\n"
    exit 0
  fi

  cat /etc/xdg/lxsession/LXDE/autostart > /etc/xdg/lxsession/LXDE/autostart.`date +%m-%d-%Y_%I:%M:%S`
  printf "\n\t Создана бэкап-копия файла autostart...\n"
  printf "$NOBLANK" >> /etc/xdg/lxsession/LXDE/autostart

  printf "\t Ваш новый файл выглядит следующим образом\n"
  printf "$DIM\n"
  pr -t -o 9 /etc/xdg/lxsession/LXDE/autostart
  printf "$OFF\n\n"

  printf "\t$RED Файл модифицирован. Скринсейвер отключен.$OFF\n"

  # Нижеследующий код требуется, чтобы закрыть X-терминал, т.к. сам собой он не закроется
  printf "\n\t Нажмите любую клавишу, чтобы выйти: "; read -n 1 KEYIN
  printf "\t$GREEN Программа завершена нормально $OFF\n\n"

И для полноты – еще несколько способов для других ОС.

1. Поменяйте настройки в ~/.xinitrc или /etc/X11/xinit/xinitrc или /etc/xdg/lxsession/LXDE/autostart.

ПРИМЕЧАНИЕ: Попытка создать ~/.xinitrc в Raspbian привели к тому, что X-сервер крашнулся.

@xset s noblank 
@xset s off 
@xset –dpms

2. Измените /etc/lightdm/lightdm.conf и вставьте под [SeatDefault] следующее:

xserver-command=X -s 0 dpms

ПРИМЕЧАНИЕ: «...этот метод эффективен, только если вы загружаетесь прямо в Х при помощи именно этого дисплейного менеджера (т.е. LightDM)».

3. Воспользуйтесь xdotool для отправки каких-нибудь безобидно-незначительных клавиатурных данных на Midori каждые 10 минут – например, через crontab.

...не сказать, что очень действенный метод, но для моих целей подходит.

4. Воспользуйтесь дисплейным менеджером вроде LXDE и запустите там свой браузер. У пользователя coolblue2000 была та же самая проблема, и он наконец решил ее при помощи оконного менеджера – отключил панель (полоску меню внизу) и сделал фоновый экран черным. То есть, после этого LXDE не будет видно вообще. Описание – здесь.

ПРИМЕЧАНИЕ: «Этот метод потребует больше вычислительной мощности. Если кто-то попробует его, пожалуйста, напишите в комментариях, сколько именно. Я не могу похвастаться особо мощным процессором, поэтому мне не хочется запускать ненужный оконный менеджер лишь для того, чтобы отключить скринсейвер... :( ».

5. Создайте shell-скрипт disableblank.sh, который будет запускать команды xset, и добавьте файлу .config/autostart/ запись, которая будет запускать этот скрипт. Таким образом, будут работать либо оба этих способа, либо ни один из них.

См.также

Внешние ссылки