Raspberry Pi:Операционная система/Настройка/Отключение скринсейвера в Raspbian
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
//в процессе обработки и доводки
Как отключить скринсейвер в 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/ запись, которая будет запускать этот скрипт. Таким образом, будут работать либо оба этих способа, либо ни один из них.