はじめに
pywalを自分のxfceデスクトップ環境で使おうと思った時に嵌ったので備忘録として残しておきます。
pywalって?という人は次の記事をご覧ください。
- 自分の好きなデスクトップ画像を元に、自動で良い感じに合うターミナル/Vim/VSCodeのテーマを1コマンドで作る
- pywalを使ってシェルログイン時にpcの壁紙をランダムに変更し、壁紙からターミナルのカラースキーマを自動生成する
私もこの記事を見て実装することにしました!
どちらの記事も画像が本当に最高です!!!!
設定についてもとても参考になるので気になる方は是非見てみてください!(私も大分お世話に鳴りました。ありがとうございます!)
環境
- OS: Linux Mint 20.2 x86_64
- DE: Xfce
- shell: zsh
- python3: python 3.9.7
ハマったこと
簡単に言うと
walコマンドを実行しても壁紙が変らない。
という事態が発生しました。
terminalのcolorschemeは変化するのに壁紙が変わらない。。。
私が求めていたのはこれじゃない!!!壁紙も一緒に変更したいんだよ!!!!!!!
解決策
こんな中途半端な状態で終わるわけにはいかないのでいろいろ調べた結果、walコマンドとは別に壁紙を変更するコマンドを実行することで解決することが出来ました。
以下、順を追って説明します。
1.デスクトップの壁紙を変更するコマンドを作る
Xfceデスクトップ環境の場合以下のコマンドで実行することが出来ます。
xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitoreDP-1//workspace0/last-image --set (壁紙に設定したい画像のpath)
screen0/以下のパスは使っているPCによって異なる可能性があります。上記のコマンドでうまくいかない場合は
設定エディター→displays→Default
以下で現在のモニターを確認し、適宜パスを変更してください。
2. .zshrcに関数を設定する
冒頭で紹介した記事で紹介されていたaliasをもとに関数を次のような関数を作成しました。
walk(){
wallpaper=$(ls -d $HOME/.wallpaper-images/* | fzf)
xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitoreDP-1/workspace0/last-image --set $wallpaper | wal -i $wallpaper
}
fzfを利用して使いたい画像のパスをwallpaperという変数に代入し・次の行でwalと1.で作成したコマンドを実行しています。
2行目のコマンドの順番を入れ替えると,terminalのcolorxchemeが変わった後に壁紙が変わるまで少しタイムラグが発生します。
それが気になったのでこの順番でコマンドを実行しています。
設定したらsource ~/.zshrc
を実行するか,terminalを再起動してwalkを実行すれば望んでいた結果が得られます!!
やった!!!