(Xubuntu) Komut satırını kullanarak duvar kağıdını nasıl ayarlayabilirim?


11

Çok fazla googling yaptım ama sorunuma bir çözüm bulamadım.

Ben öğretmenim ve bazı öğrenci bilgisayarlarında Xubuntu kullanıyorum. Her şeyi oldukça iyi kilitledim, ancak Kiosk modunda tüm makineyi çıkarmak zorunda kalmadan kullanıcıların duvar kağıdını değiştirmelerini nasıl kısıtlayacağımı anlayamıyorum. Çalışma oturumu sırasında değiştirip değiştirmedikleri umurumda değil, ancak yeniden başlatma sırasında orijinal .png'ye geri dönen bir crontab oluşturmak istiyorum.

Basit bir cron girişi umuyorum, ancak kabuk komut dosyalarının dünyasına bu kadar kolay gelirse rahatlamaya hazırım.

Herhangi bir fikir?

Yanıtlar:


10

Xfce ülkesinde, bu

xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-path --set /usr/share/backgrounds/xfce/xfce-blue.jpg

(Tabii ki istediğiniz dosya yolunu değiştirin.)

xfconf-query --channel xfce4-desktop --list

screen0 / monitor0'ın tek olmaması durumunda ilgili tüm özellikleri listeler.


Bunu komut satırında çalıştırdığımda, bir cazibe gibi çalışıyor. Yine de cron'a eklemeye çalıştığımda hiçbir şey yapmıyor. Herhangi bir fikir? `
John

Her şeyi bir kabuk betiğine yerleştirmeye ve cronbunun yerine kabuk betiğini çalıştırmaya ne dersiniz ?
Chester

Kabuk betiğini oluşturdu ve çalıştırılabilir hale getirdi. Çift tıklandığında çalışır ve komut satırında çalıştırabilirim. Zamanla @reboot ile cron'a eklemeyi denedim ama işe yaramıyor gibi görünüyor. Cron'a betiğin yolundan başka bir şey eklemem gerekir mi?
John

@John Cron kök ayrıcalığı altında çalıştığından cron'da çalışmaz ve bu kullanıcıya özgü bir arka plandır. kullanıcı olarak çalıştırmak için komutu değiştirmeyi deneyin
kamil

1
Benim --property /backdrop/screen0/monitorLVDS1/workspace0/last-imageiçin hile yaptı.
Ilmari Karonen

9

Xubuntu 14.04'teki xfce4 için / backdrop / screen0 / monitor0 / image-path yerine property / backdrop / screen0 / monitorDisplayPort-1 / workspace0 / son görüntü kullanın

Ayrıca DBUS_SESSION_BUS_ADDRESS ortam değişkenini şu şekilde ayarlamanız gerekir:

PID=$(pgrep xfce4-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)

Benim durumumda duvar kağıdını (seçilen bir klasörden rastgele görüntü) günde bir kez döndürmek istedim, ancak bilgisayarımı düzensiz olarak açtım, bu yüzden her yarım saatte bir cron'dan bir komut dosyası çalıştırarak çözdüm, ancak sadece bir kez etkili ol bir gün.

crontab'a giriş ( crontab -ekomutla ekleyin ):

0,30 * * * * /home/lucifer/scripts/rotate-wallpaper.sh

rotate-wallpaper.sh:

#!/bin/bash
wallpaperdir="/home/lucifer/Pictures/wallpapers"
datefile="/home/lucifer/.wallsw"
thisday=$( date +%j )
wallfiles=($wallpaperdir/*)
randompic=`printf "%s\n" "${wallfiles[RANDOM % ${#wallfiles[@]}]}"`
PID=$(pgrep xfce4-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)

if [ -f "$datefile" ]
then
    lastday=$( cat "$datefile" )
    if [ "$lastday" != "$thisday" ]
    then    
        date +%j > "$datefile"
        xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDisplayPort-1/workspace0/last-image --set $randompic 
    fi
else
    date +%j > "$datefile"
    xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorDisplayPort-1/workspace0/last-image --set $randompic
fi

Not: -İngilizce olmayan sistem yerel ayarını kullanıyorsanız, özellik farklı bir ada sahip olabilir. Özellik adını bulmanın, terminal penceresini açmanın ve şu komutu çalıştırmanın en iyi yolu:

xfconf-query -c xfce4-desktop -m

Bu, xfce4-masaüstü özelliklerinin izlenmesini açacaktır. Şimdi arka planınızı manuel olarak değiştirin. Terminal penceresinde bu değişiklikten etkilenen özellik adını görmelisiniz. / Backdrop / screen0 / monitorDisplayPort-1 / workspace0 / last-image öğesinden farklıysa bu özellik adını kullanın


2

Ayarın image-pathsistemim üzerinde bir etkisi yok (XFCE 4.12, Debian buster / sid).

Tüm çalışma alanlarının arka plan görüntüsünü ayarlamak için aşağıdakileri kullanıyorum:

xfconf-query --channel xfce4-desktop --list | grep last-image | while read path; do
    xfconf-query --channel xfce4-desktop --property $path --set <path>
done

0

Deneyin

gsettings set org.gnome.desktop.background picture-uri file:///your/picture/location.jpg

file://Gereklidir.


Hiç şanssız denedim. XFCE çalıştırdığım için gsetting'im bile var mı? Komutun sözdizimi benim için anlamlıdır, ancak Xubuntu için nasıl uygulanacağını bilmiyorum.
John

0

Cron kullanmayın. Bunun yerine başlangıç ​​komut dosyasını kullanın. Her ne kadar cron kullanabilirsiniz ama ben bu durumda tercih etmiyorum çünkü kullanıcıya özel.

Bu şekilde yapın:

sudo vi /etc/rc.local

dosyayı sonuna aşağıdakini ekle

sudo -u YOURUSERNAME -g $( id -g YOURUSERNAME ) xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-path --set /usr/share/backgrounds/xfce/xfce-blue.jpg

ve YOURUSERNAME adlı kişiyi mevcut kullanıcınızla değiştirdiğinizden emin olun. Ve /usr/share/backgrounds/xfce/xfce-blue.jpg dosyasını yeni arka plan resminin gerçek yoluyla değiştirin ve kullanıcınızın resmi okuma iznine sahip olduğundan emin olun


1
Bu neden reddedildi? OP, yeniden başlatmayı etkileyen bir yol istedi. Belki de OP'nin birkaç kullanıcıya uygulanması gerekiyordu, ancak açıkça belirtmedi. Bu cevap iyi görünüyor (yine de test etmedim). Peki, neden iniş vekili?
Stéphane Gourichon

0

komut dosyasında xfce arka plan rengini ayarlamak için:

d=0; r=$d; g=$d; b=$d; \
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace0/color1 \
-s $r -s $g -s $b -s 65535

renkler:

black: d=0;
white: d=65535;
red:   r=65535; g=0; b=0;

vb.

rgb, 16bit ondalık RGB bileşenleridir.

65535 = 255 * 257. 255 = hex cinsinden 0xFF.

8 bit onaltılık renk kodundan 16 bit ondalık RGB bileşenlerine dönüştürmek için:

x='C31717' # dark red
r=$((16#${x:0:2} * 257))
g=$((16#${x:2:2} * 257))
b=$((16#${x:4:2} * 257))

arka plan rengi değişmezse, resim stilini yok olarak ayarlayın

xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace0/image-style \
-s 0

.... ve dolgu stilini düz olarak ayarla

xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace0/color-style \
-s 0

her çalışma alanı için farklı bir renk ayarlamak için:

xfconf-query -c xfce4-desktop \
-p /backdrop/single-workspace-mode \
-s false

i=1; # workspace id
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace$i/image-style \
-s 0
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace$i/color-style \
-s 0
x=0; r=$x; g=$x; b=$x; \
xfconf-query -c xfce4-desktop \
-p /backdrop/screen0/monitor0/workspace$i/color1 \
-s $r -s $g -s $b -s 65535

nuff dedi ^^

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.