Внимание

Этот блог переехал по адресу yktoo.com/ru/

Attention

This blog has moved to yktoo.com/en/

November 17, 2012

Создание XML-файла обоев в Ubuntu/GNOME 3 ~ Ubuntu/GNOME 3 XML wallpaper creation

Я уже приводил скрипт, устанавливающий случайный файл изображения в качестве обоев рабочего стола. У него есть лишь один недостаток: его требуется запускать каждый раз, чтобы сменить обои.

Между тем, ещё в GNOME 2.28 появилась возможность установить на обои слайд-шоу в виде списка картинок в XML-файле. В нём указывается последовательность и длительность отображения каждого изображения. Более того, в нём можно даже указать плавный переход от одного изображения к другому.

Я решил создать простой скрипт, генерирующий XML-файл из заданного набора изображений и опционально устанавливающий его в качестве обоев. Для работы скрипта нужен GNOME 3+ или Ubuntu (начиная 11.10).
I already published a script that sets a random image file as desktop wallpaper. It has only one downside: you have to run it every time you want to rotate your wallpaper.

However GNOME since 2.28 allows assigning a slide show as wallpaper by providing an image list in XML format. There you can specify the order and duration for each image. Moreover, you can even define a transition from one image to another.

So I decided to create a simple script that generates an XML file for a given set of images and, optionally, sets that as the current wallpaper. It requires GNOME 3+ or Ubuntu (11.10 or later).

Исходный код

Скачать самую свежую версию можно на странице скрипта на моём сайте.

Source code

You can download the latest version on script page on my website.

Параметры

Скрипт получился довольно универсальным. Использовать его нужно следующим образом:

generate-wallpaper-xml [options] pictures_dir xml_file

Здесь:
optionsЛюбое сочетание следующих опций:
-d числоПереопределить длительность отображения по умолчанию (1795 секунд, то есть примерно полчаса)
-s режим Упорядочить файлы в соответствии с режимом, допустимые значения которого:
name Отсортировать список по пути и имени файла
shuffleПеремешать список файлов
-t числоПереопределить длительность перехода между изображениями по умолчанию (5 секунд). Если указано значение 0, переход не используется
-v Выводить детальную информацию
-w Установить созданный XML-файл в качестве обоев
pictures_dirПуть к каталогу с изображениями
xml_fileПуть к создаваемому XML-файлу

Parameters

The script is quite flexible. Use it as follows:

generate-wallpaper-xml [options] pictures_dir xml_file

Where:
optionsAny combination of the following:
-d numberOverride default display duration (1795 seconds, ca. half an hour)
-s mode Sort the files according to mode, whose values are:
name Sort by file path and name
shuffleRandomize file order
-t numberOverride default transition duration (5 seconds). If 0, no transition is used
-v Verbose output
-w Set the generated XML file as current wallpaper
pictures_dirPath to directory with pictures
xml_filePath to the output XML file

Примеры использования

  1. generate-wallpaper-xml ~/Pictures ~/Pictures/wallpapers.xml
    Создаёт файл wallpapers.xml в подкаталоге Pictures (из домашнего каталога пользователя) на основе изображений из этого же подкаталога.
  2. generate-wallpaper-xml -w ~/Pictures ~/Pictures/wallpapers.xml
    То же самое, но дополнительно устанавливает сгенерированный файл в качестве текущих обоев.
  3. generate-wallpaper-xml -w -d 600 -t 0 ~/Pictures ~/Pictures/wallpapers.xml
    То же самое, плюс длительность отображения каждого файла установлена в 10 минут (600 секунд), а переходы между изображениями отключены.
  4. generate-wallpaper-xml -w -s shuffle -d 600 -t 0 ~/Pictures ~/Pictures/wallpapers.xml
    То же самое, плюс список файлов перемешивается, так что они следуют в случайном порядке.

Usage examples

  1. generate-wallpaper-xml ~/Pictures ~/Pictures/wallpapers.xml
    Creates the file wallpapers.xml in the Pictures subdirectory (in the user's home directory) from picture files from the same subdirectory.
  2. generate-wallpaper-xml -w ~/Pictures ~/Pictures/wallpapers.xml
    The same as above, but additionally sets the generated file as the current wallpaper.
  3. generate-wallpaper-xml -w -d 600 -t 0 ~/Pictures ~/Pictures/wallpapers.xml
    The same as above, plus sets display duration of each file to 10 minutes (600 seconds), and disables transitions between images.
  4. generate-wallpaper-xml -w -s shuffle -d 600 -t 0 ~/Pictures ~/Pictures/wallpapers.xml
    The same as above, plus shuffles the file list so that they are ordered randomly.