Команда для изменения обоев в XUbuntu

При выполнении поиска в Google открывается команда

xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s <image-path>

При первом запуске этой команды я получил сообщение о том, что свойство / background / screen0 / monitor0 / image-path не существует в канале xfce4 -Desktop.

Итак, я создал это свойство:

xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s <image-path>

Но все же фон не изменился.

Затем я изменил фон с space-03.jpg на space-04.jpg как обычно, из приложения «Настройки рабочего стола» XUbuntu. Затем я запускаю:

$ xfconf-query -c xfce4-desktop -p /backdrop -lv
/backdrop/screen0/image-path                           /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor0/image-path                  /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor0/image-show                  true
/backdrop/screen0/monitor1/image-path                  /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor1/image-show                  true
/backdrop/screen0/monitorLVDS1/workspace0/color-style  0
/backdrop/screen0/monitorLVDS1/workspace0/image-style  5
/backdrop/screen0/monitorLVDS1/workspace0/last-image   /usr/share/backgrounds/space-04.jpg

Как видите, свойство /backdrop/screen0/monitorLVDS1/workspace0/last-image изменилось (!).

Если я изменяю это свойство, то оно работает просто отлично, но дело в том, что мне нужно найти общий способ для его реализации в моей программе (Wallch).

Даже Variety (кстати, очень хорошая программа) не работает должным образом на моей машине и решает изменить свойство /backdrop/screen0/monitor0/image-path, которое ничего не делает.

Одним из способов было бы создание всех возможных свойств и изменение всех их при необходимости одновременно. Мне не нравится это решение по двум причинам:

  1. Несколько системных вызовов, которые понадобятся
  2. В какой-то момент мне нужно будет выбрать путь к текущему изображению (чтобы откройте его папку, скопируйте ее путь, удалите ее и некоторые другие функции, которые предоставляет программа). Я бы не знал, какое свойство содержит путь к действительно установленному изображению, чтобы сделать его доступным для программы.

Я также не понимаю, почему XFCE сделал это так сложно. Почему одного свойства недостаточно, как в gsettings?

13
задан 2 February 2014 в 15:44

1 ответ

Я думаю, что следует выполнить работу

Используйте следующий код, чтобы получить подключенные устройства и сосчитать их:

connectedOutputs=$(xrandr | grep " connected" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/")
activeOutput=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/") 
connected=$(echo $connectedOutputs | wc -w)

, затем вам придется манипулировать ими и выбирать, устанавливать ли значение для image-path или last-image

xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s  ~/Pictures/1.jpeg
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorLVDS1/workspace0/last-image -n -t string -s  ~/Pictures/1.jpeg

for i in $(xfconf-query -c xfce4-desktop -p /backdrop -l|egrep -e "screen.*/monitor.*image-path$" -e "screen.*/monitor.*/last-image$"); do
    xfconf-query -c xfce4-desktop -p $i -n -t string -s ~/Pictures/2.png  
    xfconf-query -c xfce4-desktop -p $i -s ~/Pictures/2.png

done

Предположим, что 1.jpeg - это любой файл, необходимый для создания строки по умолчанию. И 2.png - желаемая картинка, которую нужно установить. Я добавил первую строку, чтобы убедиться, что xfce4-desktop существует.

Этот скрипт был протестирован на моей машине, и он работает хорошо.

Надеюсь, это поможет моему другу

РЕДАКТИРОВАТЬ: Список имен портов был найден здесь примерно так:

Имена выходных портов

Драйвер Intel - UMS

VGA - Аналоговый VGA-выход

LVDS - Панель ноутбука

DP1 - Выход DisplayPort

TV - Встроенный телевизионный выход

TMDS-1 - первый выход DVI SDVO

TMDS-2 - второй выход DVI SDVO

Телевизионные выходы SDVO и DVO не поддерживаются драйвером в на этот раз.

Драйвер Intel - KMS

LVDS1 - Панель ноутбука

VGA1 - Аналоговый VGA-выход

DVI1 - Цифровой видеовыход

Radeon Driver

VGA-0 - Аналоговый VGA-выход

LVDS - Панель ноутбука

S-video - Встроенный ТВ-выход

DVI-0 - выход DVI

Для получения дополнительной информации см. здесь

0
ответ дан 2 February 2014 в 15:44

Другие вопросы по тегам:

Похожие вопросы: