[PATCH weston 10/17] xdg-shell: Clarify the meaning of app ID and give example
Pekka Paalanen
ppaalanen at gmail.com
Thu Apr 30 07:50:18 PDT 2015
On Tue, 7 Apr 2015 19:38:49 -0700
Bryce Harrington <bryce at osg.samsung.com> wrote:
> On Tue, Apr 07, 2015 at 07:12:48PM -0700, Jasper St. Pierre wrote:
> > It's described as murky because it is super murky.
> >
> > In the brave new world, apps are supposed to be D-Bus Activatable.
> > That means setting DBusActivatable=true in their desktop file. A
> > requirement for this is that desktop file name needs to match their
> > bus name. D-Bus doesn't require this -- the desktop file specification
> > does.
> >
> > If you don't follow that convention, you don't have one app ID you can
> > pass to this. You have multiple. In the X11 world, this includes your
> > resource and application class you set with the WM_CLASS property,
> > your Exec line / prgname, your bus name, your PID, and plenty more
> > (startup-notification ID, _GTK_APPLICATION_ID, your ICCCM window group
> > leader, X11 Client ID).
> >
> > The best way to not be in that situation is to not be in it: you have
> > one app ID, and that's it. That's what I was trying to say in the
> > original specification.
>
> That is good background, thanks. Perhaps you could include some of this
> in the protocol description to help fill in the context. And maybe
> reference to the desktop entry spec:
>
> http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#dbus
>
> There was also some discussion on the xdg list:
>
> http://lists.freedesktop.org/archives/xdg/2013-June/012828.html
>
> > If you don't have that, there's no great answer for what to say your
> > ID is. GNOME would prefer what matches your .desktop filename. I don't
> > know what other DEs might prefer.
>
> Sounds like KDE has considered using a similar scheme:
>
> """
> * name the application .desktop file using reverse-dns-notation, e.g.
> org.kde.kmail.desktop. This way we can match the desktop file to the
> dbus service provided by the application, in both directions.
> """
>
> http://kde-core-devel.kde.narkive.com/ZaOjyDHC/dbus-activated-applications
>
> > On Tue, Apr 7, 2015 at 7:01 PM, Bryce Harrington <bryce at osg.samsung.com> wrote:
> > > On Tue, Apr 07, 2015 at 05:01:25PM +0800, Jonas Ådahl wrote:
> > >> Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
> > >> ---
> > >> protocol/xdg-shell.xml | 12 ++++++++++++
> > >> 1 file changed, 12 insertions(+)
> > >>
> > >> diff --git a/protocol/xdg-shell.xml b/protocol/xdg-shell.xml
> > >> index 3db76ab..c2e1443 100644
> > >> --- a/protocol/xdg-shell.xml
> > >> +++ b/protocol/xdg-shell.xml
> > >> @@ -197,6 +197,18 @@
> > >> the surface belongs. The compositor can use this to group multiple
> > >> surfaces together, or to determine how to launch a new application.
> > >>
> > >> + When applicable, a client should set the app ID to the basename of the
> > >> + .desktop file associated with the application, for example
> > >> + "org.freedesktop.FooViewer" where the .desktop file is
> > >> + "org.freedesktop.FooViewer.desktop".
> > >> +
> > >> + For D-Bus activatble applications, this will also be D-Bus service
> > >
> > > typo
> > >
> > > Also: 'be *the* D-Bus service'
> > >
> > >> + name used for activation of the application.
> > >
> > > Does D-Bus depend on having the service name constructed to match the
> > > .desktop file name? If not, perhaps this paragraph should be moved
> > > ahead of the prior one. I'm guessing the intention is that we're trying
> > > to say that the D-Bus service name will be the same as the app ID.
> > >
> > > "used for activation of the application" sounds redundant.
> > >
> > >> + It is not a hard requirement to specify a well formed (as described
> > >> + above) app ID, but the compositor shell may group the surface
> > >> + inadequately if the client fail to do so.
> > >
> > > s/fail/fails/
> > >
> > > The way this is written it sounds like a requirement, that's optional,
> > > but has weird side effects if you don't follow it. So it's a bit
> > > ambiguous whether you really do need to follow it or not.
> > > You might want to elaborate a bit on the implications of not having
> > > things grouped properly, so it's clear what the trade-off is.
> > >
> > > It might help if it was expressed as optional, but with extra features
> > > if you follow it. Maybe something like:
> > >
> > > The app ID identifies the general class of applications to which
> > > the surface belongs. The compositor can use this to group multiple
> > > applications together, or to determine how to launch a new
> > > application.
> > >
> > > For D-Bus activatable applications, the app ID is used as the D-Bus
> > > service name.
> > >
> > > The compositor shell will try to group application surfaces together
> > > by their app ID. As a best practice, it is suggested to select app
> > > ID's that match the basename of the application's .desktop file.
> > > For example, "org.freedesktop.FooViewer" where the .desktop file is
> > > "org.freedesktop.FooViewer.desktop".
> > >
> > > See the desktop-entry specification [0] for more details on
> > > application identifiers and how they relate to well-known DBus
> > > names and .desktop files.
Whatever you will come up with, I'm sure I'll be fine with it, because
I won't know any better. Feel free to land this patch or any variation
of it, or not.
Not a reason version bump.
Thanks,
pq
More information about the wayland-devel
mailing list