Korzystam z Fedory 15 z GNOME 3 i chciałbym, aby moja tapeta okresowo się zmieniała, tak jak jest to możliwe w systemie Windows 7. Byłoby najlepiej, gdyby mógł używać RSS / Atom lub określonego katalogu.
Nie znalazłem żadnych narzędzi w repozytorium. Myślę, że możesz to zmienić za pomocą skryptu i crona, ale szukam czegoś bardziej eleganckiego.
#!/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
Następnie w swoim katalogu domowym w .config / autostart umieść następujące polecenie w pliku o nazwie wallpaper-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
Spowoduje to zmianę tapety co 10 minut… lub dowolną wartość ustawioną w skrypcie…
Nie mogę znaleźć niczego na temat zmiany tapety lub Huberta Samma na twoim łączu. Możesz być bardziej dokładny?
KovBal
Albo możesz to zapisać tutaj :) (nie sprawdziłem twojego imienia, przepraszam :))
KovBal
1
Warto zauważyć, że możesz również chcieć ustawić pictures-options:gsettings set org.gnome.desktop.background picture-options '<zoom|centered|none|scaled|spanned|stretched|wallpaper|zoom>'
Daniel Quinn
to nie działa na gnome 2, prawda?
Vicfred
Co „set - *” robi dokładnie?
SergioAraujo,
3
Jeśli wolisz używać zadania cron zamiast skryptu init, oto co zrobiłem. Dzięki Hubert za inspirację!
#!/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"
Zapisz skrypt gdzieś (np. $HOME/bin/rotate_bg), Spraw, aby był wykonywalny ( chmod +x $HOME/bin/rotate_bg), a następnie dodaj cronzadanie, aby uruchamiać go tak często, jak chcesz, aby zmieniło się tło. Uruchom, crontab -eaby edytować crontabelę dla użytkownika. Oto link opisujący format crontab . Poniższy wpis spowoduje obrócenie tła co 10 minut:
Jesteś tutaj niepoprawny. Sen nie jest zajęty czekaniem
Art Gertner
jeśli dostaniesz cytat, zmienię moją odpowiedź
Nathan Wallace
z tego samego źródła, że mam połączone powyżej: The sleep instruction suspends the calling process for at least the specified number of seconds (the default), minutes, hours or days. Np. Proces nie zostaje wywołany i nie marnuje cykli procesora. Również z Busy Waiting on 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
Z jakiegoś powodu nie widzę sposobu na odpowiedź Hubertowi Sammowi, ale uznałem jego link za pomocny. Na wypadek, gdyby się nie udało lub nie chcesz przeczytać całości, aby uzyskać tę konkretną odpowiedź, dodałem, w jaki sposób udało mi się uzyskać aktualizację na żywo w Gnome 3.
Przechodząc do ~ / .cache / gnome-control / center / tła znajdziesz plik o długiej nazwie (coś w rodzaju „a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27”), która jest buforowaną wersją pliku, na którym ustawiłeś tło. Jeśli usuniesz ten plik i utworzysz dowiązanie symboliczne o tej samej nazwie, aby go zastąpić:
następnie, gdy oryginalny plik zostanie zaktualizowany, tło pulpitu zmieni się, aby to odzwierciedlić. Używam tej techniki, aby upewnić się, że moje tło XPlanetFX jest aktualne. Na przykład po prostu obraz o nazwie „background.jpg” i zmieniaj ten plik za każdym razem, gdy chcesz zaktualizować tło.
Prawdopodobnie bardziej poprawnym sposobem jest skorzystanie z gsettings, aby zmienić adres obrazu-uri, aby wskazywał bezpośrednio na wybrany plik, ale wybrałem opcję dowiązania symbolicznego, ponieważ nie wiedziałem, jak trwała będzie zmiana ustawienia podczas korzystania z interfejsu użytkownika do zmiany tapety. Oba sposoby powinny jednak działać w teorii.
Uwaga: nie wiem tego na pewno, ponieważ go nie testowałem, ale istnieje duża szansa, że jeśli zmienisz tło za pomocą zwykłego interfejsu użytkownika, zmieni się długa unikalna nazwa pliku, a twoje dowiązanie symboliczne nie będzie już przydatne .
pictures-options
:gsettings set org.gnome.desktop.background picture-options '<zoom|centered|none|scaled|spanned|stretched|wallpaper|zoom>'
Jeśli wolisz używać zadania cron zamiast skryptu init, oto co zrobiłem. Dzięki Hubert za inspirację!
Zapisz skrypt gdzieś (np.
$HOME/bin/rotate_bg
), Spraw, aby był wykonywalny (chmod +x $HOME/bin/rotate_bg
), a następnie dodajcron
zadanie, aby uruchamiać go tak często, jak chcesz, aby zmieniło się tło. Uruchom,crontab -e
aby edytowaćcron
tabelę dla użytkownika. Oto link opisujący format crontab . Poniższy wpis spowoduje obrócenie tła co 10 minut:źródło
The sleep instruction suspends the calling process for at least the specified number of seconds (the default), minutes, hours or days
. Np. Proces nie zostaje wywołany i nie marnuje cykli procesora. Również z Busy Waiting on 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
Z jakiegoś powodu nie widzę sposobu na odpowiedź Hubertowi Sammowi, ale uznałem jego link za pomocny. Na wypadek, gdyby się nie udało lub nie chcesz przeczytać całości, aby uzyskać tę konkretną odpowiedź, dodałem, w jaki sposób udało mi się uzyskać aktualizację na żywo w Gnome 3.
Przechodząc do ~ / .cache / gnome-control / center / tła znajdziesz plik o długiej nazwie (coś w rodzaju „a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27”), która jest buforowaną wersją pliku, na którym ustawiłeś tło. Jeśli usuniesz ten plik i utworzysz dowiązanie symboliczne o tej samej nazwie, aby go zastąpić:
następnie, gdy oryginalny plik zostanie zaktualizowany, tło pulpitu zmieni się, aby to odzwierciedlić. Używam tej techniki, aby upewnić się, że moje tło XPlanetFX jest aktualne. Na przykład po prostu obraz o nazwie „background.jpg” i zmieniaj ten plik za każdym razem, gdy chcesz zaktualizować tło.
Prawdopodobnie bardziej poprawnym sposobem jest skorzystanie z gsettings, aby zmienić adres obrazu-uri, aby wskazywał bezpośrednio na wybrany plik, ale wybrałem opcję dowiązania symbolicznego, ponieważ nie wiedziałem, jak trwała będzie zmiana ustawienia podczas korzystania z interfejsu użytkownika do zmiany tapety. Oba sposoby powinny jednak działać w teorii.
Uwaga: nie wiem tego na pewno, ponieważ go nie testowałem, ale istnieje duża szansa, że jeśli zmienisz tło za pomocą zwykłego interfejsu użytkownika, zmieni się długa unikalna nazwa pliku, a twoje dowiązanie symboliczne nie będzie już przydatne .
źródło
Zapisz gdzieś następujący skrypt powłoki:
Uruchom go, używając składni:
źródło