Как-то не особо давно супруга попросила сделать так, чтоб при запуске системы на рабочем столе каждый раз были бы новые обои. У неё MATE стоит в качестве окружения, и справляется с этой задачей на "отлично". Я написал скрипт, а сегодня нечаянно взял и пришиб его. Хочу в этом посте решить две проблемы:
- Сбекапить скрипт.
- Поделиться скриптом с читателем, вдруг кому пригодится.
Настройки MATE представляют собой иерархическую структуру, которая закоренелому пользователю Windows будет напоминать Редактор реестра. Примечательно, что как и в случае с редактором реестра, для управления параметрами среды есть две утилиты - консольная и графическая: dconf работает в консоли, dconf-editor - графическая утилита. Ни дать, ни взять reg.exe и regedit.
Но довольно аналогий. Нас интересует раздел
/org/mate/desktop/background
В нем есть строковый параметр picture-file, в который записывается путь к фоновому рисунку. Воспользуемся этим, и напишем скрипт, который:
- найдет в заданной папке случайный файл;
- запишет его в указанный выше параметр при помощи 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 повесить, чтобы обои менялись не только при перезагрузке.
💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.