実行中のプログラムに応じて端末エミュレータのアイコンを変更する

実行中のプログラムに応じて端末エミュレータのアイコンを変更する

vim私は、ターミナルエミュレータで直接ipython実行されるような「ncurses」スタイルのアプリケーションをもっと使い始めました。そうすると、複数の端末アプリケーションを開いたままにすることが多いのですが、問題は各端末アプリケーションごとに同じアイコンがあり、ウィンドウ間でAlt+Tabを押して目的の端末アプリケーションを読み込もうとすると、すべての端末アプリケーションがすべて見えるということです。同じです。現在、私はこの理由で特別にgvim代わりを使用していますが、見てわかるように、独自vimのアイコンが素敵に表示されます。

2つの端末(Firefoxとgvim)を使用したAltタブの表示

これは過剰なようです。理想的には、端末で実行されているvim他の長期実行プログラムがアプリケーションで指定されたいくつかのアイコンと一致するように端末アイコンを変更します。nvimipythongdb

私はArch LinuxでCinnamonを使用しています。この機能を備えた同様の端末エミュレータがある場合は、GNOME端末の使用を放棄することもできます。

答え1

成功!私を案内してくれたGoogleとSOに感謝します。xseticon

最初xseticonのインストール

次のスクリプトを場所のいずれかに追加しますPATH

# setWinIcon.sh
#!/bin/sh                                                                                           

# Usage: setWinIcon [title] [icon]                                                                  
# - title: a string to match within the title of the window                                         
# - icon: path to the icon file. Use png for best results.                                          

title="$1"                                                                                          
ICONPATH="$2"                                                                                       

known_windows=$(wmctrl -l |grep $title|awk '{ print $1 }')                                          

for id in ${known_windows}                                                                          
do                                                                                                  
    xseticon -id "$id" "$ICONPATH"                                                                  
done 

次に、この関数をyoursに追加し、.vimrc必要に応じてパスを置き換えます。

system("setWinIcon.sh", "$WINDOWID [path/to/vimicon.png]")

アイコンは復元されません。vimLeave次のように自動コマンドを実行して端末アイコンを更新できます。

au vimLeave system("setWinIcon.sh", "$WINDOWID [path/to/termicon.png]")

他のプログラムの場合は、別名で構成するだけです。alias ipython="setWinIcon.sh $WINDOWID [path/to/ipyicon.png] && ipython && setWinIcon.sh $WINDOWID [path/to/termicon.png]"

関連情報