LinuxForum.Fans
Тема

[How-to] Динамическая смена обоев раб. стола для Linux в стиле Win7

Автор: Vadimsky 8 сообщений 7822 просмотров
#54304

Доброе время суток!
Наверняка у Вас, или у кого то из Ваших знакомых возникало желание сделать динамическую смену обоев на рабочем столе в стиле Win7.
На самом деле это элементарно. Может на так просто как в самой виндовс, но и не так уж страшно, как нам обычно малюют про Linux.
И так обо всём по порядку:
1.Складываем все картинки, фотки, любые изображения, которые хотим видеть на своём рабочем столе, в одну папку (в принципе это и не обязательно, просто так проще начать и разобраться).
2. Кладём в папку /usr/share/backgrounds/ XML скрипт следующего содержания:

text

<background>
  <starttime>
    <year>2010</year>
    <month>06</month>
    <day>22</day>
    <hour>00</hour>
    <minute>00</minute>
    <second>00</second>
  </starttime>
<!-- This animation will start at midnight. -->
  <static>
    <duration>1795.0</duration>
    <file>/usr/share/backgrounds/architecture/img13.jpg</file>
  </static>
  <transition>
    <duration>5.0</duration>
    <from>/usr/share/backgrounds/architecture/img13.jpg</from>
    <to>/usr/share/backgrounds/architecture/img14.jpg</to>
  </transition>
  <static>
    <duration>1795.0</duration>
    <file>/usr/share/backgrounds/architecture/img14.jpg</file>
  </static>
  <transition>
    <duration>5.0</duration>
    <from>/usr/share/backgrounds/architecture/img14.jpg</from>
    <to>/usr/share/backgrounds/architecture/img15.jpg</to>
  </transition>
  <static>
    <duration>1795.0</duration>
    <file>/usr/share/backgrounds/architecture/img15.jpg</file>
  </static>
  <transition>
    <duration>5.0</duration>
    <from>/usr/share/backgrounds/architecture/img15.jpg</from>
    <to>/usr/share/backgrounds/architecture/img16.jpg</to>
  </transition>
  <static>
    <duration>1795.0</duration>
    <file>/usr/share/backgrounds/architecture/img16.jpg</file>
  </static>
  <transition>
    <duration>5.0</duration>
    <from>/usr/share/backgrounds/architecture/img16.jpg</from>
    <to>/usr/share/backgrounds/architecture/img17.jpg</to>
  </transition>
  <static>
    <duration>1795.0</duration>
    <file>/usr/share/backgrounds/architecture/img17.jpg</file>
  </static>
  <transition>
    <duration>5.0</duration>
    <from>/usr/share/backgrounds/architecture/img17.jpg</from>
    <to>/usr/share/backgrounds/architecture/img18.jpg</to>
  </transition>
  <static>
    <duration>1795.0</duration>
    <file>/usr/share/backgrounds/architecture/img18.jpg</file>
  </static>
  <transition>
    <duration>5.0</duration>
    <from>/usr/share/backgrounds/architecture/img18.jpg</from>
    <to>/usr/share/backgrounds/architecture/img13.jpg</to>
  </transition>
</background>

Не забудьте поменять пути к файлам на свои. И Главное указать имена файлов без ошибок.
Помните в Linux регистр букв имеет значение, то есть Pictures.jpg, PICTURES.JPG и pictures.jpg — это ТРИ РАЗНЫХ ФАЙЛА!
Оговорюсь ещё раз, что папка может быть любой, главное указать правильно путь к фалу в каждой секции.
Меняя цифры — можно менять скорость смены и продолжительность показа, но какая цифра за что отвечает — не скажу, это вам так сказать домашнее задание (ничего не сломается!).
В свойствах рабочего стола, при выборе картинки для обоев, указываем на этот XML-файл и всё, дело в шляпе!
Гарантированно работает в Gnome 2.28 систем Fedora, Ubuntu, Debian, Mandrivalinux, Suse (все), ASPlinux, CentOS. В остальных не тестировал, но думаю тоже работать будет.
Удачи!

#54350

Не знаю как GNOME, но в KDE всё делается в настройках, всё что нужно сделать, это указать каталоги и выбрать режим "слайд-шоу".

#54363

Отважные герои всегда идут в обход.

#54561

Кстати, почему Gnome не сделает такое в настройках сразу?

upd.
Я гном толком не знаю, но в кедах это уже давно.

#54570
Rus написал:
Кстати, почему Gnome не сделает такое в настройках сразу?

ДАО не позволяет, гном стремился к упрощению и минимизации рюшечек, кнопочек, чекбоксов и прочего.
по крайней мере раньше.

#68633

Rus, если хочешь такую смену обоев,советую скачать прогу Desktop Drapes, в Убунте точно есть! Классная штука... smile

#176790

Я вот на эту тему нашел пример скрипта (http://linux.brestauto.com/sovety/sov4.html):

text
#!/bin/bash

export DIR='/home/den/Wallpapers/'

export NUMBER=$RANDOM

export TOTAL=0

for f in `ls $DIR`

do

let "TOTAL += 1"

done

let "NUMBER %= TOTAL"

export CURRENT=0

for f in `ls $DIR`

do

if [ $CURRENT = $NUMBER ]

then

/usr/bin/gconftool-2 -t string -s /desktop/gnome/background/picture_filename $DIR/$f

break

fi

let "CURRENT += 1"

done

Но он работает в случае, когда все файлы лежат без подпапок по указанному адресу. Думаю обычно, в моём случает точно, каталог с обоями имеет более сложную структуру подпапок. Попробовал переделать скрипт для произвольной структуры:

text

#!/bin/bash

export DIR='/home/nuts/media/pics/wallpapers/'

export NUMBER=$RANDOM

export TOTAL=0

for f in `find $DIR -regex '.*.\(jpg\|png\)' -print`

do

let "TOTAL += 1"

done

let "NUMBER %= TOTAL"

export CURRENT=0

for f in `find $DIR -regex '.*.\(jpg\|png\)' -print`

do

if [ $CURRENT = $NUMBER ]

then

/usr/bin/gconftool-2 -t string -s /desktop/gnome/background/picture_filename $f

break

fi

let "CURRENT += 1"

done

Но не срабатывает. Почему-то имена файлов подаются команде неправильные. Хотя сам find выдает всё хорошо. Может кто исправит?
А вообще, если сделать считываете путей к файлам из специального текстового файла и как-нибудь поудобнее этот файл формировать, с добавлением директорий, то уже практически wallmaster получается. :)

Войдите или зарегистрируйтесь, чтобы ответить.