Вопрос или проблема
Я хочу установить HTML-файл с JavaScript в качестве обоев на Linux. Я использую Openbox, как я могу настроить это, чтобы это был мой фон рабочего стола?
Я бы порекомендовал запустить легковесный браузер в фоновом режиме, как уже было предложено ранее.
Этот браузер должен быть идеальным, так как вы хотите использовать его лишь для установки одной страницы в качестве фона. Он использует WebKit, так что все должно отображаться нормально, и он достаточно легкий, чтобы запуск происходил мгновенно.
Пока у вас есть gtk, webkit-gtk, python и python-обёртки для webkit-gtk (которые устанавливаются по умолчанию во многих дистрибутивах и доступны в большинстве менеджеров пакетов), вы можете сохранить его в вашем домашнем каталоге, например, как browser.py
и добавить что-то вроде:
python ~/browser.py ВАШ_САЙТ & #browser.py требует http:// перед удалёнными URL
в ваш файл ~/.config/openbox/autostart, чтобы он запускался вместе с openbox.
Затем вы можете отредактировать ваш файл ~/.config/openbox/rc.xml, чтобы включить что-то подобное в секции <applications>
:
<application class="Browser.py">
<decor>no</decor>
<maximized>yes</maximized>
<layer>below</layer>
<desktop>all</desktop>
</application>
Чтобы работали сочетания клавиш, такие как “W-d”, вам может понадобиться установить wmctrl (также доступен в большинстве менеджеров пакетов).
Этот скрипт должен перенести вас на ваш “рабочий стол”, независимо от того, запущен он или нет (смотрите здесь для оригинального скрипта; также может быть небольшая задержка, в течение которой ваш фактический рабочий стол отображается перед переключением фокуса на ваш браузер, но это не должно быть слишком заметно):
#!/bin/sh
terminal_wm_class="Browser.py"
terminal_exec="python ~/browser.py ВАШ_САЙТ"
# терминал не запущен, так что запустим один
if [ -z "`wmctrl -lx | grep Browser.py`" ]; then
$terminal_exec &
else
wmctrl -x -a $terminal_wm_class
fi;
Вы можете сохранить его в вашем домашнем каталоге как что-то вроде showdesktop.sh, затем заменить сочетание клавиш W-d в ~/.config/openbox/rc.xml
<keybind key="W-d">
<action name="ToggleShowDesktop"/>
</keybind>
на
<keybind key="W-d">
<action name="ToggleShowDesktop"/>
<action name="Execute">
<command>~/showdesktop.sh</command>
</action>
</keybind>
Когда вы закончите, вы можете просто нажать A-Tab, чтобы вернуться к предыдущему окну.
(Если вы хотите сохранить раскладку окон, проще всего переключиться на пустой рабочий стол с помощью C-A-Left или W-F4 и т.д. (смотрите файл rc.xml по умолчанию), а затем вернуться с помощью C-A-Right или W-F1 и т.д., в зависимости от ваших сочетаний клавиш и текущего рабочего стола.)
Если вы по какой-либо причине покинете свою стартовую страницу, вы можете просто закрыть окно (A-F4 по умолчанию) и нажать W-d, чтобы запустить showdesktop.sh и вернуться на свою домашнюю страницу.
Любой из этих способов можно модифицировать или использовать без других, так что не стесняйтесь использовать то, что лучше всего подходит для вас.
Вы, возможно, не сможете использовать HTML-файл в качестве обоев сам по себе, но вы наверняка можете сделать это достаточно близким с помощью xsetroot -bitmap filename
… настройте задание cron, которое будет каждый раз рендерить ваш html как битмап, а затем запустите xsetroot, чтобы сделать его фоном. Google предлагает мне это как рендерер HTML в битмап. Я его не пробовал, так что скачивайте на свой страх и риск.
Для пользователей GNOME я рекомендую Hidamari, приложение для живых обоев, поддерживающее видео, потоковую передачу и HTML5-страницы. Оно также поддерживает локальные HTML5-файлы, если вы предпочитаете не использовать веб-адрес.
Flatpak:
Вы не можете установить HTML-файл в качестве обоев. Вы можете либо:
- Сделать снимок экрана вашего браузера и установить его в качестве обоев.
- Запустить браузер в фоновом режиме и установить его на более низкий уровень, чем все другие приложения.
Ответ или решение
Установить HTML-страницу с JavaScript в качестве обоев на Linux можно, используя некоторые обходные методы, поскольку Linux не поддерживает установку HTML-файлов в качестве фонового изображения напрямую. Если вы работаете с оконным менеджером Openbox, предлагаю следующее решение:
Шаг 1: Установка необходимых пакетов
Перед началом убедитесь, что у вас установлены следующие пакеты: gtk
, webkit-gtk
, python
и биндинги Python для WebKit. Обычно они доступны в менеджерах пакетов для большинства дистрибутивов.
Шаг 2: Скачивание и настройка скрипта браузера
-
Скачать скрипт браузера, который позволяет отображать HTML-страницы. Например, вы можете использовать лёгкий браузер на Python, основанный на WebKit. Сохраните скрипт в вашем домашнем каталоге как
browser.py
:# Например, ваш browser.py может выглядеть так: import sys from gi.repository import WebKit, Gtk url = sys.argv[1] if len(sys.argv) > 1 else "http://your-default-url.com" webview = WebKit.WebView() webview.load_uri(url) window = Gtk.Window() window.add(webview) window.set_decorated(False) window.fullscreen() window.show_all() Gtk.main()
-
Для запуска браузера добавьте команду в файл
~/.config/openbox/autostart
:python ~/browser.py http://ваш_адрес &
Шаг 3: Настройка Openbox
В файле ~/.config/openbox/rc.xml
добавьте секцию, чтобы указать Openbox, как обрабатывать ваш браузер:
<applications>
<application class="Browser.py">
<decor>no</decor>
<maximized>yes</maximized>
<layer>below</layer>
<desktop>all</desktop>
</application>
</applications>
Шаг 4: Создание скрипта для переключения на рабочий стол
Создайте новый скрипт showdesktop.sh
в вашем домашнем каталоге:
#!/bin/sh
terminal_wm_class="Browser.py"
terminal_exec="python ~/browser.py http://ваш_адрес"
if [ -z "`wmctrl -lx | grep $terminal_wm_class`" ]; then
$terminal_exec &
else
wmctrl -x -a $terminal_wm_class
fi;
Не забудьте дать исполняемые права вашему скрипту:
chmod +x ~/showdesktop.sh
Шаг 5: Настройка комбинации клавиш
Чтобы добавить возможность быстрого переключения на ваш "рабочий стол" с помощью кастомной комбинации клавиш, измените файл ~/.config/openbox/rc.xml
:
<keybind key="W-d">
<action name="ToggleShowDesktop"/>
<action name="Execute">
<command>~/showdesktop.sh</command>
</action>
</keybind>
Заключение
После завершения этих шагов, ваш HTML-файл будет отображаться как обои рабочего стола, управляемые браузером, работающим в фоновом режиме. Вы сможете переключаться между окнами и вашим "рабочим столом" с использованием настроенной комбинации клавиш. Обратите внимание, что данный метод является косвенным, и HTML действительно не устанавливается как обои в классическом понимании этого термина.
Это решение подойдет для тех, кто хочет активно использовать интерактивные элементы веб-страниц в качестве фонового изображения. Однако, если вам нужно просто статичное изображение, возможно, будет проще создать скриншот страницы и установить его как фоновое изображение.