+++ title = "Блокируем скринсейвер в полноэкранном режиме браузера Vivaldi" date = 2025-10-31 description = "Если при просмотре видео в полноэкранном режиме в Vivaldi (или любом другом браузере) скринсейвер всё равно включается, то в этой статье вы узнаете как это исправить" [taxonomies] tags = ["xscreensaver", "wmctrl", "xprop", "X11", "vivaldi", "browser"] [extra] quick_navigation_buttons = true toc = false mermaid = false social_media_card = "social_cards/disable-screensaver-fullscreen.png" +++ Иногда во время просмотра видео или презентации в браузере активируется `xscreensaver` — экран блокируется, несмотря на то, что пользователь фактически «активен». Чтобы этого не происходило, можно написать небольшой bash-скрипт, который будет следить за окном браузера и отключать скринсейвер, когда он в полноэкранном режиме. ## 💾 Установка необходимых пакетов ```bash sudo pacman -S wmctrl xorg-xprop ``` ## 🔧 Скрипт Создаём файл `/usr/local/bin/disable_screensaver_fullscreen.sh` и вставляем следующее содержимое: ```bash #!/bin/bash XSCREENSAVER_CMD="xscreensaver-command" CHECK_INTERVAL=30 # Функция для деактивации скринсейвера (вызывается постоянно, пока Vivaldi в полноэкранном режиме) deactivate_screensaver() { # echo "Vivaldi в полноэкранном режиме. Отключаем скринсейвер." "$XSCREENSAVER_CMD" -deactivate >/dev/null 2>&1 } echo "Мониторинг полноэкранного режима Vivaldi запущен (только деактивация скринсейвера)." while true; do VIVALDI_WINDOW_ID=$(wmctrl -l -x | grep "vivaldi-stable.Vivaldi" | awk '{print $1}' | head -n 1) if [ -n "$VIVALDI_WINDOW_ID" ]; then # Проверяем, что Vivaldi запущен # Vivaldi запущен, проверяем полноэкранный режим if xprop -id "$VIVALDI_WINDOW_ID" _NET_WM_STATE | grep -q "_NET_WM_STATE_FULLSCREEN"; then deactivate_screensaver # Vivaldi в полноэкранном режиме: деактивируем fi fi sleep "$CHECK_INTERVAL" done ``` Сделаем скрипт исполняемым: ```bash chmod +x /usr/local/bin/disable_screensaver_fullscreen.sh ``` ## 🚀 Автозапуск при старте системы Создайте файл: `~/.config/autostart/block-screensaver-vivaldi.desktop` ```ini [Desktop Entry] Type=Application Name=Block Screensaver in Vivaldi Fullscreen Exec=/usr/local/bin/block-screensaver-vivaldi.sh Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true ``` В bspwm достаточно добавить в `~/.config/bspwm/bspwm.conf` строчку ```bash /usr/local/bin/vivaldi-stop-screensaver.sh & ``` ## 🧠 Как это работает Скрипт каждые 30 секунд: - Проверяет, запущен ли браузер Vivaldi. - Если окно в состоянии fullscreen, выполняет `xscreensaver-command -deactivate`, тем самым сбрасывая таймер бездействия. Такой подход не мешает обычной работе скринсейвера, а только предотвращает его запуск во время полноэкранного просмотра видео. - Нагрузка: sleep 30 → менее 0.1% CPU. - Безопасность: только чтение X11, не требует root. - Логи: раскомментируйте echo в функции для отладки. ## 🧩 Совместимость Скрипт можно адаптировать под: - Chromium / Brave / Chrome — заменив vivaldi-stable.Vivaldi на chromium.Chromium или соответствующее имя. - Firefox — используйте Navigator.Firefox. ## ✅ Вывод Простой, но эффективный способ избавить себя от внезапного включения заставки во время фильмов, YouTube и стримов. Пусть xscreensaver отдыхает, когда ты смотришь видео — а не мешает! 😄