(Xubfox) Làm cách nào để đặt hình nền bằng dòng lệnh?


11

Tôi đã làm rất nhiều việc nhưng không thể tìm ra giải pháp cho vấn đề của mình.

Tôi là giáo viên và tôi đang sử dụng Xubfox trên một số máy tính của học sinh. Tôi có mọi thứ bị khóa khá tốt, nhưng tôi không thể tìm ra cách hạn chế người dùng thay đổi hình nền mà không phải ra toàn bộ máy ở chế độ Kiosk. Tôi không quan tâm nếu họ thay đổi nó trong phiên làm việc của họ, nhưng tôi muốn tạo một crontab đặt lại về .png ban đầu khi khởi động lại.

Tôi hy vọng cho một mục cron đơn giản nhưng tôi sẵn sàng hòa mình vào thế giới của các kịch bản shell nếu đó là những gì nó cần.

Có ý kiến ​​gì không?

Câu trả lời:


10

Ở vùng đất Xfce, đó là

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

(Tất nhiên thay thế đường dẫn tệp bạn muốn.)

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

liệt kê tất cả các thuộc tính liên quan, trong trường hợp screen0 / Monitor0 không phải là thuộc tính.


Khi tôi chạy nó trong dòng lệnh, nó hoạt động như một lá bùa. Khi tôi cố gắng thêm nó vào cron, nó không làm gì cả. Có ý kiến ​​gì không? `
John

cronThay vào đó, hãy bao gồm toàn bộ nội dung trong tập lệnh shell và chạy tập lệnh shell bằng cách nào?
Chester

Tạo kịch bản shell và làm cho nó thực thi được. Nó chạy khi nhấp đúp chuột và tôi có thể chạy nó trong dòng lệnh. Tôi đã thử thêm nó vào cron với @reboot nhưng dường như nó không hoạt động. Tôi có cần thêm một cái gì đó vào cron không chỉ là đường dẫn đến tập lệnh?
Giăng

@ John Nó không hoạt động trong cron vì cron hoạt động dưới quyền root và đây là một nền tảng cụ thể của người dùng. hãy thử thay đổi lệnh để chạy với tư cách là người dùng của bạn
kamil

1
Đối với tôi, --property /backdrop/screen0/monitorLVDS1/workspace0/last-imageđã làm các mẹo.
Ilmari Karonen

9

Đối với xfce4 trong Xubfox 14.04, hãy sử dụng property / backdrop / screen0 / MonitorDisplayPort-1 / workspace0 / hình ảnh cuối thay vì / backdrop / screen0 / screen0 / image-path

Bạn cũng cần đặt biến môi trường DBUS_SESSION_BUS_ADDRESS như thế này:

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

Trong trường hợp của tôi, tôi muốn xoay hình nền (hình ảnh ngẫu nhiên từ một thư mục đã chọn) mỗi ngày một lần, nhưng tôi bật PC không thường xuyên, vì vậy tôi đã giải quyết nó bằng cách chạy tập lệnh từ cron mỗi nửa giờ, nhưng chỉ có hiệu lực một lần một ngày.

mục trong crontab (thêm nó thông qua crontab -elệnh):

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

xoay-tường giấy.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

Lưu ý: -Nếu bạn đang sử dụng ngôn ngữ hệ thống không phải tiếng Anh, tài sản có thể có một tên khác. Cách tốt nhất để tìm ra tên thuộc tính, mở một cửa sổ đầu cuối và chạy lệnh này:

xfconf-query -c xfce4-desktop -m

Điều này sẽ bật giám sát các thuộc tính máy tính để bàn xfce4. Bây giờ thay đổi nền của bạn bằng tay. Bạn sẽ thấy tên thuộc tính bị ảnh hưởng bởi thay đổi này trong cửa sổ đầu cuối. Sử dụng tên thuộc tính này nếu nó khác với / backdrop / screen0 / MonitorDisplayPort-1 / workspace0 / hình ảnh cuối cùng


2

Cài đặt image-pathkhông có hiệu lực tại hệ thống của tôi (XFCE 4.12, Debian buster / sid).

Tôi sử dụng như sau để thiết lập hình nền của tất cả các không gian làm việc:

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

0

Thử

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

Điều file://bắt buộc.


Tôi đã thử nó mà không gặp may mắn. Vì tôi đang chạy XFCE, tôi thậm chí có cài đặt gs không? Cú pháp của lệnh có ý nghĩa với tôi, nhưng tôi không biết làm thế nào để áp dụng nó cho Xubfox.
Giăng

0

Đừng dùng cron. Thay vào đó hãy sử dụng tập lệnh khởi động. Mặc dù bạn có thể sử dụng cron nhưng tôi không thích nó trong tình huống này vì nó dành riêng cho người dùng.

Làm như thế này:

sudo vi /etc/rc.local

thêm phần sau vào cuối tập tin

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

và đảm bảo bạn thay thế YOUUSERNAME bằng người dùng hiện tại của mình. Và thay thế /usr/share/backgrounds/xfce/xfce-blue.jpg bằng đường dẫn thực của hình nền mới và đảm bảo người dùng của bạn có quyền đọc hình ảnh


1
Tại sao điều này bị hạ cấp? OP yêu cầu một cách mà hiệu ứng khi khởi động lại. Có lẽ OP cần áp dụng nó cho một số người dùng, nhưng chưa tuyên bố rõ ràng như vậy. Câu trả lời này có vẻ ổn (mặc dù chưa kiểm tra nó). Vì vậy, tại sao các downvote?
Stéphane Gourichon

0

để đặt màu nền xfce trong tập lệnh bash:

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

màu sắc:

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

Vân vân.

rgb là các thành phần RGB thập phân 16 bit.

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

để chuyển đổi từ mã màu hex 8 bit, thành các thành phần RGB thập phân 16 bit:

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

nếu màu nền không thay đổi, hãy đặt kiểu ảnh thành không

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

.... và đặt kiểu điền thành solid

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

để đặt màu khác nhau cho mọi không gian làm việc:

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 nói ^^

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.