Added article Блокируем скринсейвер в полноэкранном режиме браузера Vivaldi
This commit is contained in:
108
content/articles/disable-screensaver-fullscreen/index.md
Normal file
108
content/articles/disable-screensaver-fullscreen/index.md
Normal file
@@ -0,0 +1,108 @@
|
||||
+++
|
||||
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 отдыхает, когда ты смотришь видео — а не мешает! 😄
|
||||
Reference in New Issue
Block a user