web-dev-qa-db-ja.com

gsettingsを使用して壁紙を設定する際の問題

この回答 で提案されているように、gsettings set org.gnome.desktop.background picture-uri 'file://PathToImage'を使用して画像を壁紙として設定しました。これはジョブを適切に行いません。今日のbing画像の場合、 script here は私の背景をこのように変更します

Image of my desktop

これはランダムに発生し、時々壁紙を適切に設定します。 GUIを使用して、画像を右クリックして壁紙として設定すると、毎回適切に機能します。この問題の考えられる原因は何ですか?

編集1:ダウンロードは完全に問題ありません。前述したように、写真を右クリックし、メニューから「壁紙に設定」を選択することで、写真を壁紙として設定できます。

6
nitishch

あなたは言及しました

ダウンロードはまったく問題ありません。前述したように、写真を右クリックし、メニューから「壁紙に設定」を選択することで、写真を壁紙として設定できます。

壁紙を手動で設定できるため、問題はキャッシュにある可能性があります。これは、ダウンローダーがファイルにデータを完全に書き込む前に生成されます。そのため、このような場合にはキャッシュを再生成する必要があります。

そのため、壁紙キャッシュrm /home/$USER/.cache/wallpaper/*を削除します。このコードをsleepの後にスクリプトの最後に追加します。

テストしてみましょう

  1. /home/$USER/.cache/wallpaper/から現在の壁紙の画像キャッシュを見つけて開きます
  2. 画像を編集します(時計回りに回転するなど。Ctrl+ R(または編集->回転)を使用して、デフォルトのimageg viwer(GNOME画像ビューア)で実行できます)
  3. ログアウトして、ubuntuにログイン(または再起動)

これでデスクトップの壁紙の変更を確認できます(画像を回転させると、壁紙も回転します)

4
totti

次のコマンドは正しく、どのような状況でも機能するはずです。

gsettings set org.gnome.desktop.background picture-uri 'file://PathToImage'

だから、このことが起こる主な理由は、@-d3vidが commentで述べたように、ダウンロードが失敗している(部分的なファイルのみをダウンロードしているため) )またはダウンロードが完了する前に背景が表示されます

問題を解決するには、質問から the script を実行するか、私の回答からのスクリプトのようにcurlの代わりに wget を使用するときに、より良いインターネット接続があることを確認してください ここ

2
Radu Rădeanu

スクリプト内で、次のような一時ファイルに新しい画像を最初にダウンロードする必要があります。

wget --no-proxy --output-document=dwallpaper.temp (...)

そして、wgetコマンドが実行された後にのみ、以下を実行します。

cp dwallpaper.temp dwallpaper

このように、gsettingsは常に100%ダウンロードされたファイルを指しており、これにより、観察した問題が修正される可能性があります。

0
oscar