Định kỳ thay đổi hình nền dưới Gnome 3?


15

Tôi sử dụng Fedora 15 với Gnome 3 và tôi muốn hình nền của mình thay đổi định kỳ như có thể với Windows 7. Sẽ là tốt nhất nếu nó có thể sử dụng RSS / Atom hoặc một thư mục được chỉ định.

Tôi chưa tìm thấy bất kỳ công cụ nào trong kho lưu trữ. Tôi đoán bạn có thể thay đổi nó bằng một kịch bản và cron, nhưng tôi đang tìm kiếm một cái gì đó thanh lịch hơn.

Câu trả lời:



19

Lưu tập lệnh shell sau đây ở đâu đó:

#!/bin/bash

WP_DIR=/home/honeyp0t/wallpapers

cd $WP_DIR
while [ 1 ] 
  do
  set -- * 
  length=$#
  random_num=$((( $RANDOM % ($length) ) + 1)) 

  gsettings set org.gnome.desktop.background picture-uri "file://$WP_DIR/${!random_num}"

  sleep 600 
done

Sau đó, trong thư mục chính của bạn trong .config / autostart, hãy đặt phần sau vào một tệp có tên là hình nền-changer.desktop

[Desktop Entry]
Name=wallpaper-changer
Exec=/home/sammhe/bin/setbg.sh
Comment=change wallpaper every so often
Hidden=false
Type=Application
X-GNOME-Autostart-enabled=true

Điều này sẽ thay đổi hình nền của bạn sau mỗi 10 phút, hoặc bất kỳ giá trị nào bạn đặt trong tập lệnh

Ban đầu tôi đã đăng bài này dưới dạng một bình luận trên một bài đăng có tên "Tùy chỉnh vỏ Gnome" tại Musings của một thợ sửa ống nước hệ điều hành.


Tôi không thể tìm thấy bất cứ điều gì về việc thay đổi hình nền hoặc Hubert Samm trên liên kết của bạn. Bạn có thể đặc sắc hơn không?
KovBal

Hoặc bạn chỉ có thể viết nó xuống đây :) (Tôi đã không kiểm tra tên của bạn, xin lỗi :))
KovBal

1
Điều đáng chú ý là bạn cũng có thể muốn đặt pictures-options:gsettings set org.gnome.desktop.background picture-options '<zoom|centered|none|scaled|spanned|stretched|wallpaper|zoom>'
Daniel Quinn

Điều này không làm việc cho gnome 2 phải không?
Vicfred

Chính xác thì "set - *" là gì?
SergioAraujo

3

Nếu bạn muốn sử dụng công việc định kỳ thay vì tập lệnh init, đây là những gì tôi đã làm. Cảm ơn Hubert đã truyền cảm hứng!

#!/bin/bash

walls_dir=$HOME/.wallpapers
selection=$(find $walls_dir -type f -name "*.jpg" -o -name "*.png" | shuf -n1)
gsettings set org.gnome.desktop.background picture-uri "file://$selection"

Lưu tập lệnh ở đâu đó (ví dụ $HOME/bin/rotate_bg), làm cho nó có thể thực thi được ( chmod +x $HOME/bin/rotate_bg), sau đó thêm croncông việc để chạy nó thường xuyên như bạn muốn nền của mình thay đổi. Chạy crontab -eđể chỉnh sửa cronbảng cho người dùng của bạn. Đây là một liên kết mô tả định dạng crontab . Mục nhập sau sẽ xoay nền của bạn sau mỗi 10 phút:

*0 * * * * $HOME/bin/rotate_bg

Bạn không chính xác ở đây. Giấc ngủ không phải là một sự chờ đợi bận rộn
Art Gertner

nếu bạn có một trích dẫn, tôi sẽ thay đổi câu trả lời của mình
Nathan Wallace

từ cùng một nguồn mà tôi đã liên kết ở trên : The sleep instruction suspends the calling process for at least the specified number of seconds (the default), minutes, hours or days. Ví dụ, quá trình không được gọi và không lãng phí chu kỳ CPU. Cũng từ Bận rộn chờ đợi trên Wiki :Busy-waiting itself can be made much less wasteful by using a delay function (e.g., sleep()) found in most operating systems. This puts a thread to sleep for a specified time, during which the thread will waste no CPU time
Art Gertner

1

Vì một số lý do, tôi không thể thấy cách trả lời Hubert Samm, nhưng tôi thấy liên kết của anh ấy hữu ích. Chỉ trong trường hợp nó bị hỏng hoặc bạn không muốn đọc toàn bộ để có câu trả lời cụ thể này, tôi đã thêm cách tôi quản lý để hoàn thành nền tảng cập nhật trực tiếp trong Gnome 3.

Bằng cách đi tới ~ / .cache / gnome-control / centre / phông nền, bạn sẽ tìm thấy một tập tin có tên dài (giống như "a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c9999" của bạn là tập tin của bạn. Nếu bạn xóa tệp này và tạo một liên kết tượng trưng có cùng tên để thay thế nó:

$ rm a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27 
$ ln -s /path/to/original/file a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27

sau đó, khi tệp gốc được cập nhật, nền màn hình sẽ thay đổi để phản ánh điều đó. Tôi đang sử dụng kỹ thuật này để đảm bảo nền XPlanetFX của tôi luôn cập nhật. Ví dụ: chỉ cần có một hình ảnh gọi là "background.jpg" và thay đổi tệp này bất cứ khi nào bạn muốn cập nhật nền.

Có lẽ cách chính xác hơn để thực hiện điều này là sử dụng gsinstall để thay đổi địa chỉ hình ảnh-uri để trỏ trực tiếp vào tệp bạn chọn, nhưng tôi đã chọn tùy chọn symlink vì tôi không biết thay đổi cài đặt sẽ kéo dài đến mức nào khi sử dụng UI để thay đổi hình nền. Cả hai cách nên làm việc trong lý thuyết, tuy nhiên.

Lưu ý: Tôi không biết điều này chắc chắn vì tôi đã không kiểm tra nó, nhưng rất có thể nếu bạn thay đổi nền của mình thông qua giao diện người dùng thông thường, tên tệp duy nhất dài đó sẽ thay đổi và liên kết tượng trưng của bạn sẽ không còn hữu ích nữa .


1

Lưu tập lệnh shell sau đây ở đâu đó:

#!/bin/bash
while true; do
file=`/bin/ls -1 $1 | sort --random-sort | head -1`;path=`readlink --canonicalize "$dir/$file"`;
gsettings set org.gnome.desktop.background picture-uri "file://"$1$path;sleep $2;done

Chạy nó bằng cú pháp:

scriptname directoryofpictures howmanyseconds
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.