I am new to Gtk+ development, and am trying to write an app using PyGObject and Gtk+3.0. When I run my app in Gnome Shell from the command line, however, the application nam
gnome-shell tries to match the window to an an app (a ShellApp
instance) and use that name. The code do that is here: http://git.gnome.org/browse/gnome-shell/tree/src/shell-window-tracker.c#n328
But if it fails to find ShellApp
for the window then it falls back to using the ICCCM specified WM_CLASS
(spec is at http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.5) here: http://git.gnome.org/browse/gnome-shell/tree/src/shell-app.c#n361
So if you're not installing a .desktop file for it to find the application name from you'll get the default WM_CLASS
appearing in there. GTK automatically generates based on the executable name. You can override that before the window is realized (this means before calling _show
on the window) using gtk_window_set_wmclass()
Here is a simple example that will appear as "Hello World". Don't forget to set a window title too!
#!/usr/bin/python
from gi.repository import Gtk
win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.set_wmclass ("Hello World", "Hello World")
win.set_title ("Hello World")
win.show_all()
Gtk.main()