我已经开始使用更多“ncurses”风格的应用程序,例如vim
直接ipython
从终端模拟器运行的应用程序。结果,我经常打开多个终端应用程序,但问题是每个终端应用程序都有相同的图标,因此当我尝试在窗口之间按 Alt+Tab 拉出我想要的终端应用程序时,所有终端应用程序看起来都一样。目前我一直在使用gvim
而不是vim
专门出于这个原因,正如你所看到的,它很好地显示了自己的图标:
这似乎有点矫枉过正。理想情况下,运行vim
或nvim
或ipython
或gdb
或在终端中运行的其他一些长时间运行的程序将更改终端图标以匹配为应用程序指定的某些图标。
我在 Arch Linux 上使用 Cinnamon。如果有类似的终端模拟器具有此功能,我可以放弃使用 GNOME 终端。
答案1
第一的安装 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
然后将此函数添加到您的 中.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]"