
現在の壁紙をウォールクロックから削除できるbashスクリプトを書きたいプレイリストプレイリストとは、wallch 内のリストのことで、これに画像やフォルダーを追加して、wallch にこれらを壁紙として使用できることを通知できます。
このプレイリストは wallch によってどのように保存されますか? sqlite ですか? xml ですか? プログラムでこのプレイリストにアクセスして変更できますか?
答え1
Wallch が実行中で壁紙を変更している間は、リストがメモリによってアクセスされるため、Wallch のリストから現在の壁紙を削除するのはかなり困難です (~/.config/Wallch/MainWindow.conf にも保存されますが、ライブで読み取られることはありません。この場所は、たとえばコンピューターがクラッシュした場合やプログラムが適切にシャットダウンされなかった場合に、プレイリストを復元するために使用されます)。
次のコマンドを使用して、album.wallchファイルを読み込んでいるときに背景を自動変更するスクリプトを作成する方がはるかに簡単です。
gsettings set org.gnome.desktop.background picture-uri "/path to image/here.jpg"
そして 'while' ループ。例:
while read line; do
gsettings set org.gnome.desktop.background picture-uri "$line"
#here do what you want, remove image from the file being read, move image to trash
#(located in ~/.local/share/Trash/files) and mark it as not wallpaper material.
sleep $timeout #<- sleep the timeout you want until the next image
done < album.wallch
もう 1 つの解決策は、複雑すぎるものの、次のようになります。
- Wallchを通常通り起動し、リストに画像がない場合は画像を追加します。
- Wallch を終了 (Ctrl+Q)
- ターミナルで次のコマンドを使用してWallchを起動します。
wallch --constant
- ~/.config/Wallch/MainWindow.confから対応する壁紙を削除します。
- やりたいことは何でもやってください。
- 手順3から繰り返します。
しかし、私は本当に1番目の解決策、つまり独自のスクリプトを作成することを推奨します。Wallchを背景画像の変更にのみ使用したい場合は、直接コマンドを使用する必要があります。
gsettings set org.gnome.desktop.background picture-uri "/path to image/here.jpg"
答え2
私は wallch を使っていますが、あまり好きではありません。ファイルのリストを変更するのは面倒です (ご覧のとおり)。しかし、ソフトリンクだらけのディレクトリを作成して、wallch にそれらを表示させることは可能です。そうすれば、スクリプトでソフトリンクをいじることができ、wallch はそれに気づきません。ソフトリンクを設定するには、-s 付きの "ln" コマンドを使用します。リンクを含むディレクトリとして /home/me/Pictures/Backgrounds がある場合、次のようにします。
ln -sf /home/me/Pictures/Vacation2013/GreatPic.jpg /home/me/Pictures/Backgrounds/1.jpg
Backgrounds ディレクトリのファイル「1.jpg」を置き換えます。これは他のディレクトリの GreatPic.jpg にリンクされ、プログラムで簡単に置き換えることができます。イメージをハードリンクしないように、ソフトリンク (-s オプション) を使用します。ディレクトリ内の既存のリンクまたはファイルを削除して置き換えるには、「force」オプション (-f または -sf) を使用します。
1 つの問題: この方法では、ウォールチに表示される背景の数を変更できません。変更できるのは、どの画像を表示するかだけです。
gsettingsコマンドを試してみたところ、「パス」の部分はfile:/blah/blah/blahという形式にする必要があることがわかりました。http://server.tld/blah/blah/blah動作しません。
現在表示されている背景に対して何かできることは重要ですか? その場合は、Python または Perl スクリプト (使い慣れている方) を実行してシグナルを処理する方がよいでしょう。たとえば、現在表示されているファイルを削除するシグナル ハンドラーをスクリプトに指定できます (それが目的の場合)。