среда, 29 февраля 2012 г.

Автоматическая смена обоев Linux(или опять свой велосипед)

Есть куча скриптов, генератором демонов, но хоть одноколёсный , хоть без руля но свой приятнее. На самом деле это мотив немного подучить bash, и регулярные выражения.

На самом деле, к обоям на рабочий стол я отношусь мягко так сказать, нейтрально. Я в принципе к окружению отношусь нейтрально. Важна юзабельность, всякие Альт-табы, большая рабочая область экрана, несколько рабочих столов. Мой глаз не должно беспокоить ничего кроме среды разработки, часов, индикатора батареи, и индикатора раскладки клавиатуры, а на другом рабочем столе должен быть браузер с доками(мечтаю о 2-х мониторах). Но вот вдруг захотелось динамики. И решил написать. Заодно подучить баш. Это было полезно. Я узнал о таких командах как find ,tr, shuf
,пощупал конструкции циклов, условий, помацал работу с переменными в bash, ну и самое развратное это я можно сказать вошел в регулярные выражения. Пусть пока не особо глубоко вошел, но достаточно для выбора файлов с нерусскими названиями, без пробелов, оканчивающихся на .jpg(png,gif...), надеюсь наши отношения с продлятся ещё долго, пусть не регулярно но я хочу их познать в разных позициях.
Собственно, первый велосипед был очень громоздок и некрасив, потом я постепенно его довёл до более не менее состояния.
вышло вот что:

#!/bin/bash 

pre="file:"
florder="/media/Files/Media/Media_mix/Photo/wallpaper/"
time=20

pic(){
  pic=`ls $florder |grep '\(png\|gif\|jpg\|jpeg\)$'|shuf -n 1`
  GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri ${pre}${florder}${pic}
  sleep $time
}

i=0
while [ ""-z ]
do
 pic
done

Смысл прост. Скрипт выбирает случайную картинку и каждые time раз меняет на следующую случайную в папке florder

чтоб оно работало надо его сохранить в файл типа *.sh раздать ему права на выполнение chmod +x путь_к_скрипту и прописать его выполнение в профайле пользователя $HOME/.profile или в .xinitrc(так кошерней).

Ну вот. Как я уже писал способ не единственный, один из кажущихся мне кошерными это создание xml документа с путями картинок( если не знали, то в гноме можно ставить на рабочий стол xml документ, с путями и он будет работать как анимация) подробнее про это http://linuxforum.ru/viewtopic.php?id=4591.
У меня планы создать python\qt\java программу, которая будет из выбранных пользователем изображений создавать xml документ, всё красиво с блэкджеком и шлюхами, задержками и прочим. Есть проблема в создании блэкджека и шлюх, потому что просто выбирать папку и строить xml по ней легко, но хочется Ui с красивой настройкой анимации, выставление параметров задержек, порядка фотографий и прочего. Концепция в голове, реализация красивого и серьёзного UI это ещё проблема, но будем расти :-)

Читать дальше......