Current windowing specifications (see EWMH, ICCCM) specify that each window sets an icon of sort sort, which is XPM based and stored in the X Server as a resource. AllTray currently fetches this icon through wnck's get_icon method and uses it in the tray. Regretfully as XPM is a raster format and as the icons are usually quite small (e.g. 24x24) they will not scale up properly (e.g. when the panel is resized).
There is a window manager hint called WM_ICON_NAME but it does not seem like this is used (the specification defines it as a should, not a must), so a possible workaround could be:
1. Find an icon using the name from /proc/<pid>/status.
2. If that fails, fall back to what libwnck uses.
It may however also be possible to cache all .desktop files and find the application icon by matching the values from /proc against the Exec keys. If a .desktop file cannot be found the procedure above may provide a nice fallback mechanism.
Using GTop as an abstraction towards all the process stuff looks like a good idea to me. As there aren't yet any bindings for Vala to GTop this will have to wait (Michael is working on this).
Current windowing specifications (see EWMH, ICCCM) specify that each window sets an icon of sort sort, which is XPM based and stored in the X Server as a resource. AllTray currently fetches this icon through wnck's get_icon method and uses it in the tray. Regretfully as XPM is a raster format and as the icons are usually quite small (e.g. 24x24) they will not scale up properly (e.g. when the panel is resized).
There is a window manager hint called WM_ICON_NAME but it does not seem like this is used (the specification defines it as a should, not a must), so a possible workaround could be:
1. Find an icon using the name from /proc/<pid>/status.
2. If that fails, fall back to what libwnck uses.
It may however also be possible to cache all .desktop files and find the application icon by matching the values from /proc against the Exec keys. If a .desktop file cannot be found the procedure above may provide a nice fallback mechanism.
Using GTop as an abstraction towards all the process stuff looks like a good idea to me. As there aren't yet any bindings for Vala to GTop this will have to wait (Michael is working on this).