How to set application title in Gnome Shell?

前端 未结 1 1934
不知归路
不知归路 2021-01-02 06:43

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

相关标签:
1条回答
  • 2021-01-02 06:55

    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()
    
    0 讨论(0)
提交回复
热议问题