vim
私は、ターミナルエミュレータで直接ipython
実行されるような「ncurses」スタイルのアプリケーションをもっと使い始めました。そうすると、複数の端末アプリケーションを開いたままにすることが多いのですが、問題は各端末アプリケーションごとに同じアイコンがあり、ウィンドウ間でAlt+Tabを押して目的の端末アプリケーションを読み込もうとすると、すべての端末アプリケーションがすべて見えるということです。同じです。現在、私はこの理由で特別にgvim
代わりを使用していますが、見てわかるように、独自vim
のアイコンが素敵に表示されます。
これは過剰なようです。理想的には、端末で実行されているvim
他の長期実行プログラムがアプリケーションで指定されたいくつかのアイコンと一致するように端末アイコンを変更します。nvim
ipython
gdb
私はArch LinuxでCinnamonを使用しています。この機能を備えた同様の端末エミュレータがある場合は、GNOME端末の使用を放棄することもできます。
答え1
成功!私を案内してくれたGoogleとSOに感謝します。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]"