コマンドラインからアプリケーションのウィンドウのアイコンを変更する方法はありますか?
たとえば、Firefoxウィンドウのアイコンを異なるプロファイル(異なるプロセス)で個別に設定したり、ターミナルがtmux
を実行している場合はターミナルのアイコンを変更したりしたいと思います。
「アイコン」とは、ウィンドウスイッチャーによって表示される小さな画像を意味します。 Alt+Tab。特に、これがxfwm4
の下で機能することに興味がありますが、より一般的な解決策は歓迎されます。
どうやら、xdotool
もwmctrl
もこれはできません。
xseticon それを正確に行うことができます。
xprop
を実行してウィンドウをクリックすると、Xサーバーのウィンドウ構造に割り当てられている「メタデータ」の中に、名前と_NET_WM_ICON(CARDINAL)
を入力すると、アイコンが表示されます。これらのパラメーターは、他のXアプリケーションによって変更できます。たとえば、ウィンドウマネージャーは、そこにたくさんのものを書き込んだり変更したりします。キー関数はXChangeProperty
になります。
コマンドラインから簡単にこれを行うツールは知りませんが、これはそれらが存在しないという意味ではありません。
いずれにせよ、ゼロから書くこともできますが、難しくはありません(未加工のxlib
で書き込むと胸の毛が逆立ちし、おそらくPTSDになります)。
OSやフレーバーによって異なる場合があります。ほとんどの場合、デスクトップファイルを/ usr/share/applicationsで直接編集するか、デスクトップファイルを/home/username/.local/share/applications/でコピーまたは作成することで、これを実現できます。
アイコン=/usr/share/icons/HighContrast/48x48/apps/firefox.png
参照してください http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html