Случайные обои в GNOME

  1. #!/usr/bin/bash
  2.  
  3. # /home/user/.config/systemd/scripts/update-wallpaper
  4.  
  5. wget -O "$(systemd-path user-pictures)/.wallpaper.jpeg" 'https://source.unsplash.com/1920x1080'
  1. # /home/user/.config/systemd/user/update-wallpaper.service
  2. [Service]
  3. Type=oneshot
  4. ExecStart=/home/user/.config/systemd/scripts/update-wallpaper
  1. # /home/user/.config/systemd/user/update-wallpaper.timer
  2. [Timer]
  3. Persistent=true
  4.  
  5. [Install]
  6. WantedBy=timers.target
  1. # /home/user/.config/systemd/user/update-wallpaper.timer.d/override.conf
  2. [Timer]
  3. OnCalendar=hourly
Чтобы проверить работу, нужно:

1. Все коды положить в соответствующие им файлы (написаны в комментариях)
1.2. ВАЖНО: Нужно заменить /home/user на путь до вашей домашней директории (/home/oleg, /home/rak, итд). Это хардкод.
1.3. Скрипт update-wallpaper сделать исполняемым:

  1. chmod +x ~/.config/systemd/scripts/update-wallpaper

1.4. Обновить конфигурацию:

  1. systemctl --user daemon-reload

2. Выполнить скрипт update-wallpaper первый раз:

  1. systemctl --user start update-wallpaper.service

Файл скачается в папку картинок с именем .wallpaper.jpeg (обратите внимание на точку: файл скрытый)

3. В настройках GNOME поставить этот файл как обои или изображение экрана блокировки
4. Включить таймер на обновление файла:

  1. systemctl --user enable update-wallpaper.timer
  2. systemctl --user start update-wallpaper.timer

Частота смены обоев настраивается в файле update-wallpaper.timer.d/override.conf. При текущей конфигурации обои будут обновляться каждый час.

Как это работает?
Если поставить какой-нибудь файл как обои в GNOME и потом этот файл заменить на новый, то GNOME автоматически заменит старые обои на новые. Этот хак используется для регулярного обновления обоев.

Скрипт update-wallpaper скачивает обои из https://source.unsplash.com/1920x1080 и сохраняет их в определённый файл. Когда это происходит, GNOME обновляет обои.

Запуск этого скрипта настроен в update-wallpaper.service, а запускает этот сервис таймер update-wallpaper.timer. Настройки частоты вызова скрипта вынесены в update-wallpaper.timer.d/override.conf как пользовательские настройки.

Заметки
Чтобы долго не искать файл где редактируются настройки частоты вызова скрипта, а открывать этот файл быстро, можно выучить команду systemctl edit:

  1. systemctl --user edit update-wallpaper.timer

Мы в соцсетях

vk tw tg yt

Пожертвования

Аноним2850 р.
Freddy1700 р.
riseremi1611 р.
NaruTrey800 р.
vlavolk637 р.