web-dev-qa-db-ja.com

トランジションの間にフェーをフェードインさせる方法はありますか?

デスクトップの壁紙をカットではなくトランジション間でフェードさせたいのですが。 fehでこれを行う方法はありますか?たぶんxcompmgrまたはcomptonを使用していますか?

そうでない場合は、別のwmに変更せずにそれを行う方法はありますか?私は今素晴らしいものを使っています。

7
ashleysmithgpu

imagemagick を方程式に追加すると、質問に対する答えははいです。以下は、かなり大雑把な実装である可能性があるものです。

mv current.bg old.bg
imagemagick convert old.bg -fill black -colorize 50% transition.bg
feh --bg-scale transition.bg
imagemagick convert new.bg -fill black -colorize 50% transition.bg
feh --bg-scale transition.bg
feh --bg-scale new.bg
mv new.bg current.bg

それでも、imagemagickを使用すると、オプションはかなり広く開かれます。

1
mikeserv

Xscreensaverを壁紙として使用でき、glslideshowは必要な処理を実行します。 -rootオプションがありますが、正しく機能するには、通常、 xwinwrap が必要です。

xwinwrap -ov -fs -- \
    /usr/lib/xscreensaver/glslideshow -window-id WID -zoom 100
# location of xscreensavers may vary between distros

-zoomオプションは、画像が画面いっぱいに表示されるように設定するため、画像がパンしません。

このソリューションでは手動で画像を選択することはできませんが、glslideshowがランダムな画像を取得するディレクトリを設定できます(サブディレクトリに再帰します)。これは、xscreensaver-demoの[詳細]タブで実行するか、ホームディレクトリに次の内容のファイル.xscreensaverを作成することで実行できます。

chooseRandomImages: True
imageDirectory: /your/wallpaper/path

カスタマイズするその他のオプションについては、glscreensaverのマンページを参照してください。


Xwinwrapがないと、合成を使用する場合(xcompmgrなど)、glslideshowがすべてのウィンドウを描画するなどの奇妙なことを行う可能性があります。ただし、合成を無効にすると、ルートイメージは移動したときにのみ再描画されるため、glslideshowを設定して連続的なイメージ変換を行うか、最後の再描画以降にウィンドウが表示されているブラックボックスが表示されます。動作する場合もありますが、xwinwrapを使用する方が安全です。

1
crater2150