Xterm, and likely many other X11 programs, do not set themselves window icons, which window managers typically use to represent that program window in switcher lists, taskbars, and so on. This program can set the X11 window icon for any given window, to that of a given image file.
usage: xseticon [options] path/to/icon.png
options:
-name : apply icon to the window of the name supplied
-id : apply icon to the window id supplied
Sets the window icon to the specified .png image. The image is loaded from
the file at runtime and sent to the X server; thereafter the file does not
need to exist, and can be deleted/renamed/modified without the X server or
window manager noticing.
If no window selection option is specified, the window can be interactively
selected using the cursor.
Hints:
xseticon -id "$WINDOWID" path/to/icon.png
Will set the icon for an xterm.xseticon from Paul Evans (http://www.leonerd.org.uk/).
On Ubuntu / Debian:
# Install dependencies
sudo apt install libxmu-headers libgd-dev libxmu-dev libglib2.0-dev
# Build
make
# Install
sudo cp xseticon /usr/local/bin
On EL7:
# Install dependencies
sudo yum install libXmu-devel gd gd-devel glib2-devel
# Build
make
# Install
sudo cp xseticon /usr/local/bin
On openSUSE15:
# Install dependencies
sudo zypper in libXmu-devel glib2-devel gd-devel
# Build
make
# Install
sudo cp xseticon /usr/local/bin
Using Snap (requires snapd):
sudo snap install xseticon
This is xseticon from Paul Evans (http://www.leonerd.org.uk/).
Note that there is another xseticon from Rustem Valeev on Sourceforge (https://sourceforge.net/projects/xseticon/).
See LICENSE file.