- Вопрос или проблема
- Ответ или решение
- Установка фона рабочего стола для всех пользователей в Xubuntu 16.04
- Введение
- Предпосылки
- Системный блог
- Этап 1: Настройка глобального фона
- Этап 2: Обновление переменной окружения XDG_CONFIG_DIRS
- Этап 3: Отмена локальных настроек пользователей
- Этап 4: Перезагрузка и проверка
- Заключение
Вопрос или проблема
Я пытаюсь установить фоновое изображение для всех пользователей в системе на Xubuntu 16.04. Версия Xubuntu:
dpkg -l xubuntu-desktop
Предпочтение=Неизвестно/Установка/R=Удаление/P=Полное удаление/H=Удержание
| Статус=Не/Установлен/Конфигурирован/U=Распакован/полуКонфигурирован/
Полу установлен/Триггер ожидания/Триггер зависимый
|/ Ошибка?=(нет)/R=Необходима переустановка (Статус, ошибка: БОЛЬШОЕ=плохо)
||/ Имя Версия Архитектура Описание
+++-=============================================-===========================-===========================-===============================
ii xubuntu-desktop 2.206 i386 Система рабочего стола Xubuntu
Рабочая сессия – это
/usr/bin/startxfce4
Я знаю, что пользовательские настройки хранятся в ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
Я пытался внести настройки в /etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
, но они не вступают в силу.
Если я вылогинюсь, удалю всю папку ~/.config/xfce4
и войду снова, настройки, связанные с пользователем, записываются снова.
Это значения по умолчанию, которые сейчас записаны:
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-desktop" version="1.0">
<property name="backdrop" type="empty">
<property name="screen0" type="empty">
<property name="monitor0" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/xfce-teal.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/xfce-teal.jpg"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/xfce-teal.jpg"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/xfce-teal.jpg"/>
</property>
</property>
</property>
</property>
</channel>
Это строка, которая, на мой взгляд, содержит правильную настройку:
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/xfce-teal.jpg"/>
Так вот, я попытался установить это в /etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!-- настройки по умолчанию -->
<channel name="xfce4-desktop" version="1.0">
<property name="desktop-icons" type="empty">
<property name="style" type="int" value="2"/>
<property name="file-icons" type="empty">
<property name="show-home" type="bool" value="true"/>
<property name="show-filesystem" type="bool" value="true"/>
<property name="show-removable" type="bool" value="true"/>
<property name="show-trash" type="bool" value="true"/>
</property>
<property name="icon-size" type="uint" value="48"/>
<property name="tooltip-size" type="double" value="64.000000"/>
</property>
<property name="backdrop" type="empty">
<property name="screen0" type="empty">
<property name="monitor0" type="empty">
<property name="image-path" type="string" value="/usr/share/xfce4/backdrops/xubuntu-wallpaper.png"/>
<property name="image-style" type="int" value="5"/>
<property name="image-show" type="bool" value="true"/>
<property name="workspace0" type="empty">
<property name="last-image" type="string" value="/usr/share/backgrounds/gnome/Terraform-green.jpg"/>
</property>
</property>
<property name="monitor1" type="empty">
<property name="image-path" type="string" value="/usr/share/xfce4/backdrops/xubuntu-wallpaper.png"/>
<property name="image-style" type="int" value="5"/>
<property name="image-show" type="bool" value="true"/>
</property>
</property>
</property>
</channel>
Следующий поиск возвращает только мою попытку установить глобальный фон:
find /etc -type f -exec grep last-image {} /dev/null \; 2> /dev/null
/etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml: <property name="last-image" type="string" value="/usr/share/backgrounds/gnome/Terraform-green.jpg"/>
Тема, которая привела меня к файлам в /etc/xdg/xdg-ubuntu
:
https://forum.xfce.org/viewtopic.php?id=6999
ОБНОВЛЕНИЕ:
Я заметил, что мои настройки вступают в силу, если я внесу следующие изменения:
cp /etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/
Примечание: файл xfce4-desktop.xml
не существовал в целевой директории.
Этот факт и этот тред привели меня к переменной XDG_CONFIG_DIRS
echo $XDG_CONFIG_DIRS
/etc/xdg/xdg-default:/etc/xdg:/etc/xdg
Примечание: я использую gdm3 в качестве менеджера сессий и установил системный по умолчанию на startxfce4
(как упоминалось ранее). Я сделал это, потому что startxfce4
является бинарным файлом, используемым в /usr/share/xsessions/xubuntu.desktop
Если я выбираю сессию xubuntu (не системную по умолчанию!), переменная XDG_CONFIG_DIRS
устанавливается следующим образом:
echo $XDG_CONFIG_DIRS
/etc/xdg/xdg-xubuntu:/usr/share/upstart/xdg:/etc/xdg:/etc/xdg
Я хочу использовать системный по умолчанию, поэтому я сейчас пробую
ln -sf /etc/xdg/xdg-xubuntu /etc/xdg/xdg-default
Держите в курсе, если это сработает.
Где я ошибаюсь?
Заранее спасибо
Мои проблемы, вероятно, возникли из-за использования gdm3.
Как указано здесь, значение переменной XDG_CONFIG_DIRS зависит от используемого .desktop файла в /usr/share/xsessions.
Поэтому для размещения глобальной конфигурации крайне важно, чтобы конфигурация была прочитана (логично..) и конфигурация была прочитана, когда она размещена в одном из путей, указанных в XDG_CONFIG_DIRS.
Решение:
-
разместите конфигурацию (например, фон рабочего стола) в
/etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
для фона рабочего стола необходимая строка следующая
Установите значение на путь к желаемому изображению. Весь файл конфигурации для меня выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<!-- настройки по умолчанию -->
<channel name="xfce4-desktop" version="1.0">
<property name="desktop-icons" type="empty">
<property name="style" type="int" value="2"/>
<property name="file-icons" type="empty">
<property name="show-home" type="bool" value="true"/>
<property name="show-filesystem" type="bool" value="true"/>
<property name="show-removable" type="bool" value="true"/>
<property name="show-trash" type="bool" value="true"/>
</property>
<property name="icon-size" type="uint" value="48"/>
<property name="tooltip-size" type="double" value="64.000000"/>
</property>
<property name="backdrop" type="empty">
<property name="screen0" type="empty">
<property name="monitor0" type="empty">
<property name="image-path" type="string" value="/usr/share/xfce4/backdrops/xubuntu-wallpaper.png"/>
<property name="image-style" type="int" value="5"/>
<property name="image-show" type="bool" value="true"/>
<property name="workspace0" type="empty">
<property name="last-image" type="string" value="/usr/share/backgrounds/gnome/Terraform-green.jpg"/>
</property>
</property>
<property name="monitor1" type="empty">
<property name="image-path" type="string" value="/usr/share/xfce4/backdrops/xubuntu-wallpaper.png"/>
<property name="image-style" type="int" value="5"/>
<property name="image-show" type="bool" value="true"/>
</property>
</property>
</property>
</channel>
-
Создайте ссылку на путь, где была сделана ваша конфигурация (
/etc/xdg/xdg-xubuntu
) к пути/etc/xdg/xdg-default
, чтобы она вступила в силу, если вы выберете “системное по умолчанию” в gdm3ln -sf /etc/xdg/xdg-xubuntu /etc/xdg/xdg-default
-
Если вы не сделали свои настройки обязательными (добавьте
unlocked="root"
к свойству, (выглядит так:
Источник: https://forum.xfce.org/viewtopic.php?id=6999), тогда убедитесь, что пользовательские настройки не переопределяют их. Вы можете вылогиниться и выполнить
rm ~/.config/xfce4
- Войдите снова
Исправьте меня, если что-то можно сделать лучше.
Ответ или решение
Установка фона рабочего стола для всех пользователей в Xubuntu 16.04
Введение
Если вы являетесь системным администратором или просто хотите установить однообразный фон рабочего стола для всех пользователей в Xubuntu 16.04, вы попали по адресу. В этой статье приводится пошаговое руководство по настройке системного фона рабочего стола, обеспечивающее нужный результат при использовании дисплейного менеджера gdm3 и среды рабочего стола XFCE.
Предпосылки
Убедитесь, что ваш Linux-дистрибутив обновлен до последней версии, так как это может скрывать потенциальные баги. Запустите следующие команды, чтобы обновить систему:
sudo apt update
sudo apt upgrade
Системный блог
Чтобы фон рабочего стола был установлен глобально для всех пользователей, необходимо внести изменения в конфигурационный файл xfce4-desktop.xml
. Этот файл управляет параметрами рабочего стола XRDE. Основная проблема заключается в том, что пользовательские настройки, хранящиеся в папке ~/.config/xfce4
, могут перезаписывать системные конфигурации.
Этап 1: Настройка глобального фона
-
Откройте файл конфигурации для редактирования:
sudo nano /etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
-
Вставьте настройки для фона рабочего стола. Полный пример файла может выглядеть следующим образом:
<?xml version="1.0" encoding="UTF-8"?> <channel name="xfce4-desktop" version="1.0"> <property name="desktop-icons" type="empty"> <property name="style" type="int" value="2"/> <property name="file-icons" type="empty"> <property name="show-home" type="bool" value="true"/> <property name="show-filesystem" type="bool" value="true"/> <property name="show-removable" type="bool" value="true"/> <property name="show-trash" type="bool" value="true"/> </property> <property name="icon-size" type="uint" value="48"/> <property name="tooltip-size" type="double" value="64.000000"/> </property> <property name="backdrop" type="empty"> <property name="screen0" type="empty"> <property name="monitor0" type="empty"> <property name="image-path" type="string" value="/usr/share/xfce4/backdrops/xubuntu-wallpaper.png"/> <property name="image-style" type="int" value="5"/> <property name="image-show" type="bool" value="true"/> <property name="workspace0" type="empty"> <property name="last-image" type="string" value="/usr/share/backgrounds/gnome/Terraform-green.jpg"/> </property> </property> </property> </property> </channel>
Убедитесь, что указанный в last-image
путь к изображению существует на вашей системе.
Этап 2: Обновление переменной окружения XDG_CONFIG_DIRS
Чтобы сделать ваши настройки доступными для всех пользователей, включите путь к созданному файлу конфигурации в переменной окружения XDG_CONFIG_DIRS
.
-
Создайте символическую ссылку, выполнив команду:
sudo ln -sf /etc/xdg/xdg-xubuntu /etc/xdg/xdg-default
Этап 3: Отмена локальных настроек пользователей
Чтобы глобальные настройки имели приоритет, удалите локальную конфигурацию:
rm -rf ~/.config/xfce4
Этап 4: Перезагрузка и проверка
После выполненных настроек вам необходимо выйти из системы и войти снова, чтобы изменения вступили в силу.
Заключение
Следуя инструкциям, вы сможете установить фон рабочего стола для всех пользователей в Xubuntu 16.04. Это займет всего несколько минут и поможет создать единый стиль оформления для всех пользователей системы. Если у вас возникли вопросы, не стесняйтесь задавать их в комментариях!