Главная > Linux > Автоматическая смена обоев в MATE

Автоматическая смена обоев в MATE

Как-то не особо давно супруга попросила сделать так, чтоб при запуске системы на рабочем столе каждый раз были бы новые обои. У неё MATE стоит в качестве окружения, и справляется с этой задачей на "отлично". Я написал скрипт, а сегодня нечаянно взял и пришиб его. Хочу в этом посте решить две проблемы:

  1. Сбекапить скрипт.
  2. Поделиться скриптом с читателем, вдруг кому пригодится.

Настройки MATE представляют собой иерархическую структуру, которая закоренелому пользователю Windows будет напоминать Редактор реестра. Примечательно, что как и в случае с редактором реестра, для управления параметрами среды есть две утилиты - консольная и графическая: dconf работает в консоли, dconf-editor - графическая утилита. Ни дать, ни взять reg.exe и regedit.
Но довольно аналогий. Нас интересует раздел

/org/mate/desktop/background

В нем есть строковый параметр picture-file, в который записывается путь к фоновому рисунку. Воспользуемся этим, и напишем скрипт, который:

  1. найдет в заданной папке случайный файл;
  2. запишет его в указанный выше параметр при помощи dconf.

Результат:

#!/bin/sh
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
file=$(find ~/wallpapers -type f|shuf -n1)
dconf write /org/mate/desktop/background/picture-filename "'$file'"
IFS=$SAVEIFS

$IFS нужно потрогать, чтобы скрипт корректно работал с файлами с кучей пробелов в названии.
Сочетание find и shuf выдаёт нам в переменную $file случайный файл из /home/ваш логин/wallpapers.
Как по мне, довольно элегантное и простое решение.
Полученный скрипт надо сделать исполняемым (chmod +x) и добавить в автозагрузку. Ну или на cron повесить, чтобы обои менялись не только при перезагрузке.

Winreview.ru можно найти в Вконтакте, Facebook и Twitter. Присоединяйтесь!