25 ноября 2012

Как добавить собственные обои в динамически изменяемые, установленные по умолчанию в Ubuntu 12/10/12.04

Многие пользователи Ubuntu задаются вопросом, как добавить собственные обои в динамически изменяемые, установленные по умолчанию в Ubuntu 12/10/12.04?
Я также заинтересовался данным вопросом, т.к. убунтовские обои мне тоже не очень нравятся. Добавить одну картинку из папки Изображения и использовать её вместо дефолтных конечно можно, но добавить в папку с дефолтными, которые меняются в течение дня - динамические, не получалось, т.е. картинка добавлялась в эту папку, но не менялась вместе с остальными. Гугление практического результата не дало. На всех сайтах, которые я просмотрел, везде давалась одна и та же инструкция, открыть папку backgrounds с правами администратора и вставить туда свою картинку, о чём я писал выше, но... НЕ получалось. Тогда я решился на эксперимент, который в конце-концов увенчался успехом. См. снимок.



Теперь всё по-порядку.

1. Необходимо заготовить свои обои в количестве 10-12 штук в любой папке, не важно в какой, но в этой же системе и обязательно с расширением .jpg.

2. Откройте папку с заготовленными обоями и выполните команду в терминале для открытия папки с дефолтными обоями:

gksu nautilus /usr/share/backgrounds

Расположите две папки рядом.



3. Правый клик на картинке с дефолтными обоями и в контекстном меню - Свойства:





Скопируйте из поля Имя название файла дефолтных обоев (указано стрелкой).

Теперь кликните правой кнопкой на одной из картинок в своей папке, также Свойства:



И переименуйте свою картинку на то, что скопировали с дефолтной.  Теперь перетащите свою переименованную картинку в папку backgrounds. Выскочит окно, что файл с таким названием существует, нажмите кнопку Заменить.

И последнее. Нужно в каждой картинке выставить полные права на файл, иначе вы увидите сплошной чёрный фон вместо обоев:



Нашей "железяке" ведь не важно что показывать, главное чтобы название было тоже самое.

Вот и всё. Переименовывайте другие свои картинки. После этого ваши обои должны меняться на мониторе.

Удачи.

21 комментарий :

  1. А еще можно открыть /usr/share/backgrounds/contest/quantal.xml
    и добавить/заменить пути к графическим файлам. :)

    ОтветитьУдалить
    Ответы
    1. to Админ: не поверишь, я уже её тебе скинул прям тебе в систему, теперь она у тебя лежит в /usr/share/backgrounds/contest/ и называется по имени твоего дистрибутива .xml

      Удалить
  2. Кстати да, можно и свою xml ку добавить пользуясь уже готовым шаблоном :)

    ОтветитьУдалить
    Ответы
    1. Так, будь добрый, скинь xml ку, я её опубликую от твоего имени.

      Удалить
    2. Думаю, пригодится это /usr/share/gnome-background-properties/precise-wallpapers.xml. Я добавил в него имя своей картинки, которую скопировал в /usr/share/backgrounds. Теперь она отображается вместе с дефолтными в Параметры системы - Внешний вид. И самое главное - в начале файла указывается xml-ка с динамическими обоями. Теперь если в папке /usr/share/backgrounds/contest создать свой файл xml, а в precise-wallpapers.xml добавить на него ссылку, то все должно заработать. У меня 12.04, поэтому precise.

      Удалить
    3. Немного доработал схему. В /usr/share/backgrounds создал свою папку own для своих картинок, в ней уже создал файл own.xml - это доработанная копия /usr/share/backgrounds/contest/precise.xml, где я изменил соответствующие имена картинок на свои (001, 002, 003... - чтобы потом при замене этих картинок на другие не редактировать own.xml) и сократил их количество до 10, так же изменил путь к картинкам с /usr/share/backgrounds/ на /usr/share/backgrounds/own/. Не забываем выставить полные права на файлы. Следующий шаг - /usr/share/gnome-background-properties/precise-wallpapers.xml. В нем есть строчки


      Ubuntu 12.04 Community Wallpapers
      /usr/share/backgrounds/contest/precise.xml
      zoom


      которые мы копируем, вставляем чуть ниже, редактируем название и путь и получаем


      Ubuntu 12.04 Community Wallpapers
      /usr/share/backgrounds/contest/precise.xml
      zoom


      Own Wallpapers
      /usr/share/backgrounds/own/own.xml
      zoom


      сохраняем. У меня работает, уже проверил.

      Удалить
  3. #!/bin/bash



    V="$PWD"
    FILES=.file-$RANDOM
    DEBUG=y


    #GETTEXT
    export TEXTDOMAIN="xml-background-creator"
    #


    #finishing script function
    die() {
    local F=$1
    rm -f $F
    echo "Exiting..."
    exit 0
    }


    echo ${DEBUG:+"The temp file is $FILES."}
    echo ${DEBUG:+"Searching images in $V."}

    #searching for files
    for EXT in jpg jpeg png gif; do
    find "$V" -iname "*.$EXT" | sort -d >> $FILES
    done

    LINES=$(wc -l < "$FILES")

    if [ $LINES -eq 0 ]; then
    echo ${DEBUG:+"No images was found in the directory."}
    zenity --error --text "$(gettext "No images found!")"
    die $FILES
    fi

    TIME=$(zenity --scale --title "$(gettext "Time configuration")" --text \
    "$(gettext "Length of wallpaper (minutes)")" --min-value=1 --max-value=120 --value=5)
    [ $? -ne 0 ] && die $FILES
    echo ${DEBUG:+"The time was set to $TIME minutes."}

    TIME=$(($TIME*60))

    ANIMATION=$(zenity --scale --title "$(gettext "Time configuration")" --text \
    "$(gettext "Length of animation (seconds)")" --min-value=1 --max-value=10 --value=5)
    [ $? -ne 0 ] && die $FILES
    echo ${DEBUG:+"The animation time was set to $ANIMATION seconds."}

    until [ -n "$NAMEXML" ]; do
    NAMEXML=$(zenity --entry --entry-text "background" --text \
    "$(gettext "Input the name of .xml background file")")
    [ $? -ne 0 ] && die $FILES
    [ -z "$NAMEXML" ] && echo ${DEBUG:+"Invalid name, trying again."}
    done

    BACK="$NAMEXML.xml"
    echo ${DEBUG:+"The name of the xml file is $BACK."}
    echo ${DEBUG:+"Creating the xml file."}

    echo "" > "$BACK"

    echo "

    2009
    08
    04
    00
    00
    00
    " >> "$BACK"


    for ((i = 2; i <= $LINES; ++i)); do
    FROM=$(sed -n "$(($i-1))p" "$FILES")
    TO=$(sed -n "${i}p" "$FILES")
    echo "
    $TIME.0
    $FROM


    $ANIMATION.0
    $FROM
    $TO
    " >> "$BACK"
    done

    FROM=$(sed -n 1p $FILES)

    echo "
    $TIME.0
    $TO


    $ANIMATION.0
    $TO
    $FROM
    " >> "$BACK"
    echo "" >> "$BACK"
    echo ${DEBUG:+"The xml file was created."}

    zenity --question --text "$(gettext "Do you want to put the .xml file as background?")"
    OPTION=$?

    if [ $OPTION -eq 0 ]; then
    echo ${DEBUG:+"Putting the $BACK file as background."}
    gsettings set org.gnome.desktop.background picture-uri file:///"$V"/"$BACK"
    fi

    echo ${DEBUG:+"Deleting the temp file and finishing the execution."}
    die $FILES





    __________________________можно запустить этот скрипт в папке с картинками и он создаст и запустит .xml

    ОтветитьУдалить
    Ответы
    1. классный скрипт, но XML заэскэейпился, не выложите куда-нибудь?

      Удалить
    2. нашёл первоисточник http://www.webupd8.org/2011/12/create-wallpaper-slideshow-with-xml.html
      но на 13.04 кажется этого недостаточно...

      Удалить
    3. дальше оказалось несложно, достаточно вставить в файл /usr/share/gnome-background-properties/raring-wallpapers.xml ещё один блок wallpaper с путём к вашему хмл файлу
      п.с. Админ - сделай ввод ббкода или что-то такое, ну невозможно же ресурсом пользоваться, тут же не про бабочек и Бетховена пишут!

      Удалить
  4. а вот у меня руки не оттуда... файл вроде сформировался, а вот обои не работают... я правда под Mate это проверяю... но всё же
    Может не затруднит для чайников разъяснить а ещё лучше скомпилировать утилитку с GUI

    ОтветитьУдалить
    Ответы
    1. Это не руки не оттуда, а статья для Unity, а не для MATE.

      Удалить
    2. вот для mate

      http://files.mail.ru/AB61D66ABD1941899756498FC663796C

      Удалить
  5. Уважаемый Админ Подскажите пожалуйста где можно скачать виджет аля HTC на рабочий стол как у вас на картинке

    ОтветитьУдалить
  6. Анонимный7 мая 2013 г., 6:13

    В репах есть Wallch - Автоматически меняет фоновые изображения рабочего стола

    ОтветитьУдалить
  7. Можно обои из старых версий Ubuntu поставить, тоже автоматически меняются. Также можно на свои эаменить, как описано выше. Команда терминала- sudo apt-get install ubuntu-wallpapers-natty ubuntu-wallpapers-karmic ubuntu-wallpapers-oneiric ubuntu-wallpapers-lucid ubuntu-wallpapers-precise ubuntu-wallpapers-maverick edgy-wallpapers feisty-wallpapers gutsy-wallpapers

    ОтветитьУдалить