(Xubuntu) วิธีตั้งวอลล์เปเปอร์โดยใช้บรรทัดคำสั่ง?


11

ฉันทำ Google เป็นจำนวนมาก แต่ไม่สามารถหาวิธีแก้ไขปัญหาของฉันได้

ฉันเป็นครูและฉันใช้ Xubuntu กับคอมพิวเตอร์นักเรียนบางเครื่อง ฉันมีทุกอย่างที่ล็อคไว้ค่อนข้างดี แต่ฉันไม่สามารถหาวิธี จำกัด ผู้ใช้จากการเปลี่ยนรูปพื้นหลังโดยไม่ต้องใช้ทั้งเครื่องในโหมด Kiosk ฉันไม่สนใจว่าพวกเขาจะเปลี่ยนมันในระหว่างการทำงานของพวกเขาหรือไม่ แต่ฉันต้องการสร้าง crontab ที่รีเซ็ตกลับเป็น. png ดั้งเดิมเมื่อรีบูต

ฉันหวังว่าจะมีรายการ cron อย่างง่าย แต่ฉันยินดีที่จะผ่อนคลายในโลกของเชลล์สคริปต์ถ้านั่นคือสิ่งที่ต้องทำ

ความคิดใด ๆ

คำตอบ:


10

ใน Xfce land นั่นคือ

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

(แทนเส้นทางไฟล์ที่คุณต้องการแน่นอน)

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

แสดงรายการคุณสมบัติที่เกี่ยวข้องทั้งหมดในกรณีที่ screen0 / monitor0 ไม่ใช่คุณสมบัติ


เมื่อฉันเรียกใช้สิ่งนั้นในบรรทัดคำสั่งมันใช้งานได้อย่างมีเสน่ห์ เมื่อฉันพยายามที่จะเพิ่มลงใน cron แม้ว่ามันจะไม่ทำอะไรเลย ความคิดใด ๆ `
จอห์น

วิธีการเกี่ยวกับการล้อมรอบสิ่งทั้งหมดในเชลล์สคริปต์และรันเชลล์สคริปต์โดยใช้cronแทน?
เชสเตอร์

สร้างเชลล์สคริปต์และทำให้สามารถเรียกใช้งานได้ มันทำงานเมื่อดับเบิลคลิกและฉันสามารถเรียกใช้ในบรรทัดคำสั่ง ฉันพยายามเพิ่มลงใน cron ด้วย @reboot เป็นเวลา แต่ดูเหมือนจะไม่ทำงาน ฉันจำเป็นต้องเพิ่มบางสิ่งบางอย่างให้กับ cron นอกเหนือจากเส้นทางของสคริปต์หรือไม่
จอห์น

@John มันไม่ทำงานใน cron เพราะ cron ทำงานภายใต้สิทธิ์ของรูทและนี่เป็นพื้นหลังเฉพาะของผู้ใช้ ลองเปลี่ยนคำสั่งเพื่อให้ทำงานในฐานะผู้ใช้ของคุณ
kamil

1
สำหรับฉัน--property /backdrop/screen0/monitorLVDS1/workspace0/last-imageได้หลอกลวง
Ilmari Karonen

9

สำหรับ xfce4 ใน Xubuntu 14.04 ให้ใช้ทรัพย์สิน/ Backdrop / screen0 / monitorDisplayPort-1 / workspace0 / last-imageแทน/ Backdrop / screen0 / monitor0 / image-path

คุณต้องตั้งค่าตัวแปรสภาพแวดล้อม DBUS_SESSION_BUS_ADDRESS ดังนี้:

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

ในกรณีของฉันฉันต้องการหมุนภาพพื้นหลัง (ภาพสุ่มจากโฟลเดอร์ที่เลือก) วันละครั้ง แต่ฉันเปิดเครื่องคอมพิวเตอร์ของฉันอย่างไม่สม่ำเสมอดังนั้นฉันจึงแก้ไขมันโดยใช้สคริปต์จาก cron ทุกครึ่งชั่วโมง แต่จะมีผลเพียงครั้งเดียว วันหนึ่ง.

รายการใน crontab (เพิ่มผ่านcrontab -eคำสั่ง):

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

หมายเหตุ: - หากคุณใช้ระบบภาษาที่ไม่ใช่ภาษาอังกฤษคุณสมบัติอาจมีชื่ออื่น วิธีที่ดีที่สุดในการค้นหาชื่อคุณสมบัติเปิดหน้าต่างเทอร์มินัลและเรียกใช้คำสั่งนี้:

xfconf-query -c xfce4-desktop -m

สิ่งนี้จะเปิดการตรวจสอบคุณสมบัติ xfce4-desktop ตอนนี้เปลี่ยนพื้นหลังของคุณด้วยตนเอง คุณควรเห็นชื่อคุณสมบัติที่ได้รับผลกระทบจากการเปลี่ยนแปลงนี้ในหน้าต่างเทอร์มินัล ใช้ชื่อคุณสมบัตินี้หากแตกต่างจาก/ Backdrop / screen0 / monitorDisplayPort-1 / workspace0 / last-image


2

การตั้งค่าimage-pathไม่มีผลกระทบต่อระบบของฉัน (XFCE 4.12, Debian buster / sid)

ฉันใช้สิ่งต่อไปนี้เพื่อตั้งค่าภาพพื้นหลังของพื้นที่ทำงานทั้งหมด:

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

0

ลอง

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

file://เป็นสิ่งจำเป็น


ฉันลองมันโดยไม่มีโชค ตั้งแต่ฉันใช้ XFCE ฉันมี gsettings ไหม? ไวยากรณ์ของคำสั่งนั้นสมเหตุสมผลสำหรับฉัน แต่ฉันไม่รู้ว่าจะใช้กับ Xubuntu ได้อย่างไร
จอห์น

0

อย่าใช้ cron ใช้สคริปต์เริ่มต้นแทน แม้ว่าคุณจะสามารถใช้ cron ได้ แต่ฉันไม่ชอบมันในสถานการณ์นี้เพราะมันเฉพาะผู้ใช้

ทำเช่นนี้:

sudo vi /etc/rc.local

เพิ่มต่อไปนี้ในตอนท้ายของไฟล์

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

และให้แน่ใจว่าคุณได้เปลี่ยนชื่อผู้ใช้ของคุณเป็นผู้ใช้ปัจจุบันของคุณ และแทนที่ /usr/share/backgrounds/xfce/xfce-blue.jpg ด้วยเส้นทางจริงของภาพพื้นหลังใหม่และตรวจสอบให้แน่ใจว่าผู้ใช้ของคุณได้รับอนุญาตให้อ่านภาพ


1
ทำไมการลงคะแนนนี้ OP ขอวิธีที่มีผลเมื่อรีบูต บางที OP จำเป็นต้องใช้กับผู้ใช้หลายคน แต่ไม่ได้ระบุไว้อย่างชัดเจน คำตอบนี้ดูเหมือนว่าใช้ได้ (ยังไม่ได้ทดสอบ) ดังนั้นทำไม downvote
Stéphane Gourichon

0

การตั้งค่าสีพื้นหลัง xfce ในสคริปต์ทุบตี:

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

สี:

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

เป็นต้น

rgb เป็นส่วนประกอบ RGB 16 บิตแบบทศนิยม

65535 = 255 * 257 255 = 0xFF เป็นฐานสิบหก

การแปลงจากรหัสสีฐานสิบหก 8 บิตเป็นคอมโพเนนต์ RGB ทศนิยม 16 บิต:

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

หากสีพื้นหลังไม่เปลี่ยนให้ตั้งค่ารูปแบบภาพเป็นไม่มี

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

.... และตั้งค่าลักษณะการเติมให้เป็นของแข็ง

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

การตั้งค่าสีที่แตกต่างสำหรับทุกพื้นที่ทำงาน:

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

นัฟพูดแล้ว ^^

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.