Оказывается, создать собственную систему автоматической смены обоев для GNOME гораздо проще, чем кажется! Всё, что мне понадобилось — обычный терминальный редактор вроде nano и стандартный таймер. Сейчас покажу, как всё это реализуется на Ubuntu.
Зачем довольствоваться унылым рабочим столом, если можно превратить его в постоянно обновляющуюся галерею?
Автоматическая смена обоев — отличный способ придать GNOME индивидуальность. Я сам выбирал, как часто менять картинки: хоть каждую секунду, минуту, час, день или неделю. Можно подбирать самые разные темы — от аниме и природы до автомобилей или абстракций. Самое приятно — никаких сторонних плагинов: всё уже есть в вашем GNOME! Давай разбираться, как это сделать.
Готовим рабочую папку для проекта в Ubuntu
Поскольку nano установлен почти во всех популярных дистрибутивах Linux, проще всего сразу создать отдельную папку для проекта. Это можно сделать через файловый менеджер или командой mkdir в терминале. У меня папка называется, например, «Обои GNOME».
Переходим в созданную папку командой cd и внутри делаем ещё одну, например, «HD Wallpapers». Заходим на Unsplash или любой другой сайт с бесплатными изображениями, и загружаем туда любые понравившиеся HD-обои.
Скрипт работает с картинками в форматах .jpg, .jpeg и .png, так что просто скачивай нужные файлы в этих форматах.
На этом этапе подготовка закончена. Теперь начинается самое интересное — автоматизация смены обоев с помощью своих любимых картинок.
Делаем свой движок для смены обоев из локальных файлов
Открываем терминал, переходим в папку «Обои GNOME» с помощью cd и создаём новый Python-файл — например, «Wallpaper_changer.py». Копируй туда следующий код и не забудь сохранить изменения.
В nano: для сохранения — Ctrl + O и Enter, чтобы выйти — Ctrl + X.
Делаем файл исполняемым через команду chmod и запускаем.
Теперь каждый раз, когда запускаешь скрипт — обои автоматически меняются на одну из загруженных картинок.
У нас уже получился простой инструмент для смены локальных обоев, но почему бы не расширить его и не научить автоматически подтягивать свежие фото из интернета?
Подключаем Unsplash API и получаем обои на свой вкус!
Дорабатываем скрипт так, чтобы он использовал не только скачанные изображения, но и автоматически загружал их с Unsplash. Вероятность каждого варианта — 50:50.
Недавно Unsplash отключил функцию Unsplash Source, поэтому теперь нужен бесплатный API-ключ. Зарегистрируйся на Unsplash, перейди в раздел для разработчиков, создай приложение, прими условия и получи ключ доступа.
Ограничения бесплатного тарифа — максимум 50 запросов в час. Чтобы не выбиться из лимита, я поставил смену обоев каждые 2 минуты. Совету: при регистрации не используй в названии приложения слова вроде ‘wallpaper’ или ‘image’, а выбери что-то нейтральное, например, HTG1.
Иногда на некоторых версиях GNOME Pythonу бывает сложно подключиться к интернету. Для стабильной работы я поставил нужную библиотеку через apt.
Открывай свой «Wallpaper_changer.py» в nano и замени код на обновлённый (см. ниже). В новом варианте реализована случайная логика: или загружается локальная картинка, или свежая фотография с Unsplash!
Сохраняем, снова делаем исполняемым — и тестируем!
Теперь при каждом запуске обои либо выбираются из твоей коллекции, либо подгружаются актуальные фото с Unsplash. Если интернета нет — программа просто поставит одну из локальных картинок.
Автоматизация на максимум: настраиваю systemd и забываю про ручную смену обоев!
Вот здесь начинается настоящая магия автоматизации — с помощью systemd! Открываю терминал и через nano создаю новый юнит-сервис.
Вписываю нужную конфигурацию: указываю, что запускать, под каким пользователем и где найти твой Python.
Число 1000 — это обычно ID первого пользователя в Ubuntu. Чтобы узнать свой, напиши в терминале id -u. Если там другое значение (например, 1001) — не забудь поменять эту строчку, иначе скрипт может не работать.
Сохраняем юнит, теперь создаём отдельный файл таймера (тоже через nano) и прописываем там конфиг таймера.
Остаётся только всё активировать: перезапустить демона systemd и включить таймер. Готово! Теперь обои будут меняться автоматически каждые 2 минуты, а проверить статус работы — проще простого через journalctl или systemctl status.
Почему я забыл про Cron и полностью перешёл на systemd-таймеры в Ubuntu
Cron — это прошлый век! С systemd-таймерами ты получаешь гибкость, полный контроль журналов, зависимостей и можешь запускать скрипты хоть через минуту после загрузки системы.
Поздравляю! Теперь твой рабочий стол GNOME живёт своей жизнью — автоматически сменяет локальные и свежие обои с Unsplash. Всё работает само, никаких лишних усилий и больше никаких устаревших инструментов!
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru