Поиск по сайту:

Как создавать динамические обои GNOME


GNOME (GNU Network Object Model Environment) - одна из самых популярных сред рабочего стола в Linux, и, вероятно, наиболее используемая, поскольку все основные дистрибутивы используют ее в качестве интерфейса по умолчанию. В версии 42 D.E. был представлен глобальный переключатель режима пользовательского интерфейса «светлый/темный», который уважается всеми приложениями и обоями GNOME: переключение глобального стиля на «темный», автоматически меняет тему GTK на Adwaita-dark, а все обои, поддерживающие эту функцию, на их «темные» версии. GNOME также поддерживает обои со сдвигом во времени.

В этом уроке мы узнаем, как создавать динамические обои со сдвигом во времени в соответствии с глобальным стилем GNOME.

В этом уроке вы узнаете:

  • Как создать динамические обои, которые меняются в зависимости от глобального стиля пользовательского интерфейса GNOME
  • Как создать обои со сдвигом во времени

Создание динамических обоев

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

Все, что нам нужно сделать, это поместить фотографии в подкаталог в ~/.local/share/backgrounds, если мы хотим сделать динамические обои доступными только для нашего пользователя, или в /usr/share/backgrounds, если мы хотим установить их для всей системы. В данном случае мы будем использовать первую стратегию. Чтобы отразить "тематику" изображений, мы создадим каталог с именем "tag", и скопируем два изображения, названные соответственно "tag-l.jpg" и "tag-d.jpg", внутри него:

mkdir -p ~/.local/share/backgrounds/tag
cp tag-l.jpg tag-d.jpg ~/.local/share/backgrounds/tag

После того, как изображения готовы, нам нужно создать XML-файл, в котором указано, как их следует использовать. XML-файл должен быть помещен в каталог ~/.local/share/gnome-background-properties для установок на уровне пользователя или в каталог /usr/share/gnome-background-properties для системных. Имя файла не важно, однако, чтобы быть последовательным, мы сохраняем его как tag.xml. Вот его содержание:

<?xml version="1.0"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
  <wallpaper deleted="false">
    <name>Tag</name>
    <filename>/home/doc/.local/share/backgrounds/tag/tag-l.jpg</filename>
    <filename-dark>/home/doc/.local/share/backgrounds/tag/tag-d.jpg</filename-dark>
    <options>zoom</options>
  </wallpaper>
</wallpapers>

Файл может содержать несколько определений обоев. Каждый обои определяется тегами "<wallpaper></wallpaper> ". С помощью тега "<имя> " мы указываем название обоев, а с помощью тегов "<имяфайла> " и "<имяфайла-темный>" мы определяем абсолютные пути обоев, которые должны использоваться в "светлом" и "темном" режиме соответственно.

Наконец, с помощью тега "<options> " мы указываем, как должны быть отрисованы обои. Здесь «зум» — это то, что мы хотим использовать в большинстве случаев, поскольку он заполняет экран, увеличивая изображение, когда это необходимо, соблюдая его пропорции; Другие возможные значения: "нет", "обои", "центрированные", "масштабированные", "растянутые" и "протянутые".

К этому моменту мы должны быть готовы. Если мы откроем панель «внешний вид» в приложении настроек GNOME, мы должны увидеть, как наши динамические обои красиво отображаются в качестве опции:

Светлые/темные варианты обоев будут применены при изменении стиля глобального интерфейса GNOME:

Создание обоев со сдвигом во времени

Помимо того, что светлые/темные варианты наших обоев применяются в соответствии со стилем глобального пользовательского интерфейса GNOME, мы можем убедиться, что они будут смещены через определенный период времени. Было бы неплохо, например, чтобы светлый вариант обоев наклеивался днем, а темный – вечером. Для этого все, что нам нужно сделать, это создать еще один XML-файл и, для удобства, поместить его в тот же каталог, где находятся картинки, составляющие наши динамические обои. В этом случае мы сохраним его как ~/.local/share/backgrounds/tag/tag.xml.

Внутри файла мы указываем, как и когда должны быть применены изображения. Вот пример:

<background>
  <starttime>
    <year>2023</year>
    <month>1</month>
    <day>1</day>
    <hour>8</hour>
    <minute>0</minute>
    <second>0</second>
  </starttime>
  <static>
    <file>/home/doc/.local/share/backgrounds/tag/tag-l.jpg</file>
    <duration>36000</duration>
  </static>
  <transition type="overlay">
    <duration>7200</duration>
    <from>/home/doc/.local/share/backgrounds/tag/tag-l.jpg</from>
    <to>/home/doc/.local/share/backgrounds/tag/tag-d.jpg</to>
  </transition>
  <static>
    <file>/home/doc/.local/share/backgrounds/tag/tag-d.jpg</file>
    <duration>36000</duration>
  </static>
  <transition type="overlay">
    <duration>7200</duration>
    <from>/home/doc/.local/share/backgrounds/tag/tag-d.jpg</from>
    <to>/home/doc/.local/share/backgrounds/tag/tag.l.jpg</to>
  </transition>
</background>

Данная конфигурация будет действовать с 01.01.2023 в 8:00. Первым изображением, которое будет применено в этот час, будет "светлый" вариант обоев "тег": он продержится 36000 секунд (10 часов). По истечении этого промежутка времени, в 18:00, начнется переход, который продлится 7200 секунд (2 часа), до 20:00. В 20:00 темный вариант изображения будет отображаться в течение 10 часов, то есть до 6:00. В 6:00 начнется еще один переход, который продлится 2 часа, до 8:00. Эта процедура будет повторяться каждый день.

И последнее, что нужно сделать: нам нужно сослаться на файл, который мы только что написали, в XML, который мы ранее создали в ~/.local/share/gnome-background-properties, добавив еще одну секцию <wallpaper></wallpaper:

<wallpaper deleted="false">
  <name>Tag Time of Day</name>
  <filename>/home/doc/.local/share/backgrounds/tag/tag.xml</filename>
  <options>zoom</options>
</wallpaper>

В настройках выбора фона мы теперь должны заметить обои со сдвигом времени, которые можно определить по значку таймера в левом нижнем углу миниатюры:

Создание динамических обоев с помощью инструмента "Динамические обои"

Чтобы облегчить создание динамических обоев, мы можем использовать инструмент с открытым исходным кодом «Динамические обои», который доступен в виде флэтпака на Flathub. Инструмент позволяет нам выбирать "светлые" и "темные" изображения, из которых состоят наши обои, и создает для нас все необходимые файлы и каталоги:

Инструмент с похожим названием, "Dynamic Wallpaper Editor", также доступен на Flathub (и в виде пакета rpm в официальных репозиториях Fedora): его можно использовать для создания обоев со сдвигом во времени. Инструмент позволяет нам выбрать изображения, которые мы хотим использовать, и установить, сколько времени они должны продержаться, вместе с переходами:

Заключение

В этом уроке мы узнали, как создавать динамические обои со сдвигом во времени. Первые изменяются в соответствии с глобальным стилем пользовательского интерфейса GNOME, а изображения, составляющие второй, вместо этого смещаются через определенный период времени. Поведение динамических обоев определяется с помощью XML-файлов; мы увидели, как создать их с помощью простого текстового редактора или с помощью специальных графических инструментов, таких как «Dynamic Wallpaper» и «Dynamic Wallpaper Editor».

Статьи по данной тематике: