Изменить обои рабочего стола из терминала


11

Я бегу Mint 13 с корицей 1.6. Я хотел бы, чтобы мои обои для рабочего стола автоматически менялись в зависимости от времени суток. Итак, первое, что приходит на ум, - это создать работу cron, чтобы сделать это для меня. Проблема в том, что я не знаю, как изменить обои из скрипта / терминала.

Что я хотел бы знать:
1) Как можно изменить фон с терминала?
2) Есть ли уже встроенный способ сделать это?


1
Какой у тебя DE?
маргаритка

@ warl0ck - Cinnamon 1.6
aggregate1166877

Ответы:


19

Это правильный ответ на вопрос. Все остальное будет просто взломать

 gsettings set org.cinnamon.desktop.background picture-uri  "file:///filename"

4
Без каких-либо объяснений это почти бесполезно.
vonbrand

8
Это правильный ответ на запрос. Зачем тебе объяснение? Это правильный способ изменить обои на рабочем столе Cinnamon.
Ramblin Man

1
..и единственный ответ, который работает. +1
агрегат1166877

10

С Linux Mint 16 (не уверен в других версиях) вы можете использовать gsettingsкак для получения информации о ваших текущих обоев, а также установить его.

Это man gsettingsнемного тонкий, но завершение TAB будет работать на большинстве шагов в следующих командах.

Получить информацию:

gsettings get org.cinnamon.desktop.background picture-uri
gsettings get org.cinnamon.desktop.background picture-opacity
gsettings get org.cinnamon.desktop.background picture-options

Чтобы изменить любой параметр, просто измените «get» на «set» и добавьте новое значение в конец.

Вот быстрый скрипт, который будет перебирать известный список обоев:

#!/bin/sh
#
# Set the wallpaper from a list
#
# The list, all can be found in $BASE
BASE="file:///home/tigger/.wallpapers/"
LIST="shot1.png another.png just_no_space_in_name.png keep_adding.png"

# The current wallpaper
current=`gsettings get org.cinnamon.desktop.background picture-uri`
opacity=`gsettings get org.cinnamon.desktop.background picture-opacity`
options=`gsettings get org.cinnamon.desktop.background picture-options`

# loop over the list until we find a match
matched=0
new=""
for wp in $LIST
do
    if [ $matched -eq 1 ]
    then
        new="${BASE}${wp}"
        break
    elif [ "'${BASE}${wp}'" = "${current}" ]
    then
        matched=1
    fi
done

# if "$new" is blank, then we show the first shot
if [ "$new" = "" ]
then
    new=${BASE}${LIST%% *}
fi

# set the wallpaper
gsettings set org.cinnamon.desktop.background picture-uri \'${new}\'
gsettings set org.cinnamon.desktop.background picture-opacity ${opacity}
gsettings set org.cinnamon.desktop.background picture-options ${options}

2

С точки зрения системы X Window вы хотите изменить фон корневого окна. «Встроенный» -инструмент для изменения настроек этого окна есть xsetroot. К сожалению, он немного устарел, например, он поддерживает только выбор растровых изображений для фонового изображения.

Я предпочитаю инструмент hsetrootперед xsetroot. Оба инструмента должны быть использованы из командной строки.

Более того, я могу себе представить, что вы можете настроить параметры корневого окна через базу данных x ресурсов, но я не могу найти соответствующую информацию на данный момент.


hsetroot кажется именно тем, что я хочу, но он не устанавливает фон рабочего стола; вместо этого он устанавливает фон выбора рабочих пространств, когда я наводю курсор мыши на горячий угол. Есть идеи?
aggregate1166877

2

Попробуй это:

xsetbg /path/to/wallpaper.jpg

Спасибо, но это не влияет на обои. Однако он меняет экран, отображаемый при выходе из системы. Я начинаю думать, что Cinnamon обрабатывает настройки x11 иначе, чем в других средах.
aggregate1166877

@ user1166877: Странно, у меня это работает. Я использовал Metacity и Openbox в качестве оконных менеджеров, но думаю, что это «ниже». Проверьте точно, что я использую, если это могло бы предложить подсказку относительно того, что отличается.
Эмануэль Берг

2

У меня работает на Linuxmint 13 с Cinnamon 1.4.

  • cinnamon-settings desktop # в терминале> Снимите флажок "Разрешить файловому менеджеру управлять рабочим столом"
  • поменяй обои с фе
    feh --bg-fill ~ / Images / my_wallpaper.png

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.