Есть функция XSetWMHints(). В неё передаётся структура XWMHints в которой есть поля:
Pixmap icon_pixmap;
Pixmap icon_mask;
Window icon_window;
Насколько я понял из man XWMHints - icon_pixmap должна быть bitmap'ом. А bitmap может быть только чёрно-белым. В том же мануале написано, что icon_mask'ом можно задать какие пиксели из icon_pixmap нужно использовать. Получается обычная не alpha прозрачность.
Поле icon_window позволяет задать окно которое будет использоватся как иконка. Не совсем понятно как это должно работать. Пробовал присваивать icon_window окно - иконкой стала стандартная иконка для X Window программ, а не то что нарисовано в окне.
Вопрос - как задать alpha-прозрачную цветную иконку для окна X Window программы?
Гуглить пробовал - ничего по теме не нашёл. Поидее иконку рисует менеджер окон. Может быть не все менеджеры могут работать с прозрачными иконками? Такое впечатление что программы на Qt и GTK используют какие-то секретные функции или способы KDE и GNOME для задания иконок окнам.