FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Fedora Development

 
 
LinkBack Thread Tools
 
Old 03-14-2010, 06:37 PM
Colin Walters
 
Default Desktop app maintainers: Please check for StartupNotify=true

Hi,

For GNOME 3 to more reliably do application tracking, we will be
associating through startup-notification. Some background here:

http://lists.freedesktop.org/archives/xdg/2010-February/011321.html

However for startup notification to work, for compatibility reasons,
the upstream .desktop file must have StartupNotify=true. It's come to
my attention that a lot of .desktop files are missing this, even
though they use GTK+. I've written a quick script which heuristically
examines installed apps (attached); if someone writes the script which
checks the whole repository, that'd be cool.

If you maintain a desktop app, please check for StartupNotify=true,
and if your app uses GTK+ or Qt, then please submit a patch *upstream*
to add it, and at your option apply that patch in Fedora.

Here's sample output from the script on my workstation, which shows a
vast swath of system-config-* missing it; others of these are false
positives since they're not user-visible apps.

[walters@megatron gtk+ (master)]$ ~/bin/verify-startupnotify.py
'/usr/share/applications/system-config-date.desktop' probably needs
StartupNotify=true
'/usr/share/applications/nm-pptp.desktop' probably needs StartupNotify=true
'/usr/share/applications/emacs.desktop' probably needs StartupNotify=true
'/usr/share/applications/nm-openvpn.desktop' probably needs StartupNotify=true
'/usr/share/applications/mimeinfo.cache' probably needs StartupNotify=true
'/usr/share/applications/system-config-boot.desktop' probably needs
StartupNotify=true
'/usr/share/applications/redhat-userinfo.desktop' probably needs
StartupNotify=true
'/usr/share/applications/livna-config-display.desktop' probably needs
StartupNotify=true
'/usr/share/applications/redhat-authconfig.desktop' probably needs
StartupNotify=true
'/usr/share/applications/mount-archive.desktop' probably needs
StartupNotify=true
'/usr/share/applications/fedora-liveusb-creator.desktop' probably
needs StartupNotify=true
'/usr/share/applications/virt-manager.desktop' probably needs StartupNotify=true
'/usr/share/applications/mutter.desktop' probably needs StartupNotify=true
'/usr/share/applications/palimpsest.desktop' probably needs StartupNotify=true
'/usr/share/applications/redhat-userpasswd.desktop' probably needs
StartupNotify=true
'/usr/share/applications/gnome-shell.desktop' probably needs StartupNotify=true
'/usr/share/applications/spring-installer.desktop' probably needs
StartupNotify=true
'/usr/share/applications/redhat-system-control-network.desktop'
probably needs StartupNotify=true
'/usr/share/applications/fedora-empathy.desktop' probably needs
StartupNotify=true
'/usr/share/applications/ca-installer.desktop' probably needs StartupNotify=true
'/usr/share/applications/jpackage-logfactor5.desktop' probably needs
StartupNotify=true
'/usr/share/applications/redhat-email.desktop' probably needs StartupNotify=true
'/usr/share/applications/paperbox.desktop' probably needs StartupNotify=true
'/usr/share/applications/fedora-vagalume.desktop' probably needs
StartupNotify=true
'/usr/share/applications/eclipse.desktop' probably needs StartupNotify=true
'/usr/share/applications/javaws.desktop' probably needs StartupNotify=true
'/usr/share/applications/redhat-web.desktop' probably needs StartupNotify=true
'/usr/share/applications/my-default-printer.desktop' probably needs
StartupNotify=true
'/usr/share/applications/system-config-users.desktop' probably needs
StartupNotify=true
'/usr/share/applications/transmission.desktop' probably needs StartupNotify=true
'/usr/share/applications/nvidia-settings.desktop' probably needs
StartupNotify=true
'/usr/share/applications/springlobby.desktop' probably needs StartupNotify=true
'/usr/share/applications/redhat-system-config-network.desktop'
probably needs StartupNotify=true
'/usr/share/applications/metacity.desktop' probably needs StartupNotify=true
'/usr/share/applications/qt4-qtconfig.desktop' probably needs StartupNotify=true
'/usr/share/applications/gnome-glade-2.desktop' probably needs
StartupNotify=true
'/usr/share/applications/spring.desktop' probably needs StartupNotify=true
'/usr/share/applications/compiz-gtk.desktop' probably needs StartupNotify=true
'/usr/share/applications/jpackage-chainsaw.desktop' probably needs
StartupNotify=true
'/usr/share/applications/mozilla-thunderbird.desktop' probably needs
StartupNotify=true
'/usr/share/applications/nm-connection-editor.desktop' probably needs
StartupNotify=true
'/usr/share/applications/alacarte.desktop' probably needs StartupNotify=true
'/usr/share/applications/nm-vpnc.desktop' probably needs StartupNotify=true
'/usr/share/applications/redhat-usermount.desktop' probably needs
StartupNotify=true
'/usr/share/applications/defaults.list' probably needs StartupNotify=true
'/usr/share/applications/manage-print-jobs.desktop' probably needs
StartupNotify=true
[walters@megatron gtk+ (master)]$
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
 
Old 03-14-2010, 07:20 PM
Michael Schwendt
 
Default Desktop app maintainers: Please check for StartupNotify=true

On Sun, 14 Mar 2010 15:37:24 -0400, Colin wrote:

> However for startup notification to work, for compatibility reasons,
> the upstream .desktop file must have StartupNotify=true. It's come to
> my attention that a lot of .desktop files are missing this, even
> though they use GTK+.

Hmmm, I'm certain we've had this in the guidelines (or in the Wiki or in
the old QA Checklist) several years ago, including help on how to
determine the StartupWMClass= name if necessary.

Currently can only find:
https://fedoraproject.org/wiki/Packaging:Guidelines#Desktop_files

| Installed .desktop files MUST follow the desktop-entry-spec , paying
| particular attention to validating correct usage of Name, GenericName,
| Categories , StartupNotify entries.
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
 
Old 03-14-2010, 08:40 PM
Ville Skyttń
 
Default Desktop app maintainers: Please check for StartupNotify=true

On Sunday 14 March 2010, Colin Walters wrote:

> If you maintain a desktop app, please check for StartupNotify=true,
> and if your app uses GTK+ or Qt, then please submit a patch *upstream*
> to add it, and at your option apply that patch in Fedora.

If an app uses GTK+ or Qt, does that alone always imply that it satisfies the
desktop entry spec's requirements for StartupNotify=true, i.e. no further
examination of the app's behavior is necessary?

http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html

"If true, it is KNOWN that the application will send a "remove" message when
started with the DESKTOP_STARTUP_ID environment variable set."
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
 
Old 03-14-2010, 09:35 PM
Victor Vasilyev
 
Default Desktop app maintainers: Please check for StartupNotify=true

Michael Schwendt wrote:
> On Sun, 14 Mar 2010 15:37:24 -0400, Colin wrote:
>
> Currently can only find:
> https://fedoraproject.org/wiki/Packaging:Guidelines#Desktop_files
>
> | Installed .desktop files MUST follow the desktop-entry-spec , paying
> | particular attention to validating correct usage of Name, GenericName,
> | Categories , StartupNotify entries.
>
Explanation for the StartupNotify entry usage in the desktop-entry-spec
[1] that is linked in the guidelines. Also, there are important details
in the Startup Notification Protocol Specification [2].

[1]
http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
[2]
http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt

FYI When the StartupNotify=true was specified in the desktop file of the
NetBeans I've seen bugs in launching of the NetBeans' child processes
(e.g FireFox [3]) due to the DESKTOP_STARTUP_ID environment variable. It
was fixed in the NetBeans launcher by a patch [4] according to
recommendations of the Startup Notification Protocol Specification.

[3] https://bugzilla.redhat.com/show_bug.cgi?id=467546
[4]
http://cvs.fedoraproject.org/viewvc/rpms/netbeans/F-13/netbeans-6.8~40-ide-launcher.patch?view=markup

Cheers,
Victor

--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
 
Old 03-14-2010, 11:59 PM
Colin Walters
 
Default Desktop app maintainers: Please check for StartupNotify=true

On Sun, Mar 14, 2010 at 6:35 PM, Victor Vasilyev
<Victor.Vasilyev@sun.com> wrote:
>
> FYI When the StartupNotify=true was specified in the desktop file of the
> NetBeans I've seen bugs in launching of the NetBeans' child processes
> (e.g FireFox [3]) due to the DESKTOP_STARTUP_ID environment variable. It
> was fixed in the NetBeans launcher by a patch [4] according to
> recommendations of the Startup Notification Protocol Specification.

Swing needs to clear the environment variable. See:
http://git.gnome.org/browse/gtk+/tree/gdk/x11/gdkdisplay-x11.c#n1015
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
 
Old 03-15-2010, 01:33 PM
Colin Walters
 
Default Desktop app maintainers: Please check for StartupNotify=true

On Sun, Mar 14, 2010 at 5:40 PM, Ville Skyttń <ville.skytta@iki.fi> wrote:
>
> If an app uses GTK+ or Qt, does that alone always imply that it satisfies the
> desktop entry spec's requirements for StartupNotify=true, i.e. no further
> examination of the app's behavior is necessary?

The main tricky situation comes when the app implements
single-instance behavior internally, and does some sort of IPC (dbus,
whatever) to talk to an existing instance. In GNOME 3 this doesn't
matter as much because we do single-instance by default, but otherwise
it's definitely possible to get the stale "Starting foo..." until it
times out. Actually handling this correctly is tricky[1], and I just
noticed one of my apps doesn't. Maybe I should really take the plunge
and backport app tracking to GNOME 2 which would obviate this.

But as a general rule: add it. Even for the IPC case, it only occurs
if the user tries to relaunch an existing app, which (albeit without
data, but with some educated background) is unusual. Without IPC,
having it has a 99.9% chance of being correct.

[1] libunique handles this, but see also my fix for my app here:
http://git.gnome.org/browse/hotssh/commit/?id=57c43b39413c5128983286f5c09cbaba6b397103

We have plans to basically make all this work out of the box when
using GTK+ but it blocks on gdbus.
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
 
Old 03-15-2010, 01:44 PM
"Chen Lei"
 
Default Desktop app maintainers: Please check for StartupNotify=true

Should we also add┬* StartupWMClass=someting if StartupNotify=true doesn't work?


ňťĘ2010-03-15┬*22:33:58´╝î"Colin┬*Walters"┬*<walters@verbum.o rg>┬*ňćÖÚüô´╝Ü
>On┬*Sun,┬*Mar┬*14,┬*2010┬*at┬*5:40┬*PM,┬*Ville┬*S kytt├Ą┬*<ville.skytta@iki.fi>┬*wrote:
>>
>>┬*If┬*an┬*app┬*uses┬*GTK+┬*or┬*Qt,┬*does┬*that┬* alone┬*always┬*imply┬*that┬*it┬*satisfies┬*the
>>┬*desktop┬*entry┬*spec's┬*requirements┬*for┬*Sta rtupNotify=true,┬*i.e.┬*no┬*further
>>┬*examination┬*of┬*the┬*app's┬*behavior┬*is┬*nec essary?
>
>The┬*main┬*tricky┬*situation┬*comes┬*when┬*the┬*a pp┬*implements
>single-instance┬*behavior┬*internally,┬*and┬*does┬*some┬* sort┬*of┬*IPC┬*(dbus,
>whatever)┬*to┬*talk┬*to┬*an┬*existing┬*instance.┬ *┬*In┬*GNOME┬*3┬*this┬*doesn't
>matter┬*as┬*much┬*because┬*we┬*do┬*single-instance┬*by┬*default,┬*but┬*otherwise
>it's┬*definitely┬*possible┬*to┬*get┬*the┬*stale┬* "Starting┬*foo..."┬*until┬*it
>times┬*out.┬*┬*┬*Actually┬*handling┬*this┬*correc tly┬*is┬*tricky[1],┬*and┬*I┬*just
>noticed┬*one┬*of┬*my┬*apps┬*doesn't.┬*┬*Maybe┬*I┬ *should┬*really┬*take┬*the┬*plunge
>and┬*backport┬*app┬*tracking┬*to┬*GNOME┬*2┬*which ┬*would┬*obviate┬*this.
>
>But┬*as┬*a┬*general┬*rule:┬*add┬*it.┬*┬*Even┬*for ┬*the┬*IPC┬*case,┬*it┬*only┬*occurs
>if┬*the┬*user┬*tries┬*to┬*relaunch┬*an┬*existing┬ *app,┬*which┬*(albeit┬*without
>data,┬*but┬*with┬*some┬*educated┬*background)┬*is ┬*unusual.┬*┬*Without┬*IPC,
>having┬*it┬*has┬*a┬*99.9%┬*chance┬*of┬*being┬*cor rect.
>
>[1]┬*libunique┬*handles┬*this,┬*but┬*see┬*also┬*my┬*f ix┬*for┬*my┬*app┬*here:
>http://git.gnome.org/browse/hotssh/commit/?id=57c43b39413c5128983286f5c09cbaba6b397103
>
>We┬*have┬*plans┬*to┬*basically┬*make┬*all┬*this┬* work┬*out┬*of┬*the┬*box┬*when
>using┬*GTK+┬*but┬*it┬*blocks┬*on┬*gdbus.
>--┬*
>devel┬*mailing┬*list
>devel@lists.fedoraproject.org
>https://admin.fedoraproject.org/mailman/listinfo/devel


--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
 
Old 03-15-2010, 02:07 PM
Colin Walters
 
Default Desktop app maintainers: Please check for StartupNotify=true

On Mon, Mar 15, 2010 at 10:44 AM, Chen Lei <supercyper@163.com> wrote:
> Should we also add* StartupWMClass=someting if StartupNotify=true doesn't
> work?

You're going to need to elaborate on "doesn't work".

* You don't see a "Starting..." notification in the tasklist in GNOME 2?
* You do, but it times out instead of disappearing when the app window comes up?
* Something else?
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
 
Old 03-15-2010, 02:14 PM
Mary Ellen Foster
 
Default Desktop app maintainers: Please check for StartupNotify=true

On 15 March 2010 15:07, Colin Walters <walters@verbum.org> wrote:
> On Mon, Mar 15, 2010 at 10:44 AM, Chen Lei <supercyper@163.com> wrote:
>> Should we also add* StartupWMClass=someting if StartupNotify=true doesn't
>> work?
>
> You're going to need to elaborate on "doesn't work".
>
> * You don't see a "Starting..." notification in the tasklist in GNOME 2?
> * You do, but it times out instead of disappearing when the app window comes up?
> * Something else?

Well, for Firefox at least, it's option 2 and has been for a while (at
least under KDE):
https://bugzilla.redhat.com/show_bug.cgi?id=445543

,

MEF

--
Mary Ellen Foster -- http://www.macs.hw.ac.uk/~mef3/
Interaction Lab -- http://www.macs.hw.ac.uk/InteractionLab
School of Mathematical and Computer Sciences, Heriot-Watt University

Heriot-Watt University is a Scottish charity registered under charity
number SC000278
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
 
Old 03-15-2010, 03:27 PM
Rajeesh K Nambiar
 
Default Desktop app maintainers: Please check for StartupNotify=true

On Mon, Mar 15, 2010 at 1:07 AM, Colin Walters <walters@verbum.org> wrote:
> Hi,
>
> For GNOME 3 to more reliably do application tracking, we will be
> associating through startup-notification. *Some background here:
>
> http://lists.freedesktop.org/archives/xdg/2010-February/011321.html
>
> However for startup notification to work, for compatibility reasons,
> the upstream .desktop file must have StartupNotify=true. *It's come to
> my attention that a lot of .desktop files are missing this, even
> though they use GTK+. *I've written a quick script which heuristically
> examines installed apps (attached); if someone writes the script which
> checks the whole repository, that'd be cool.
>
> If you maintain a desktop app, please check for StartupNotify=true,
> and if your app uses GTK+ or Qt, then please submit a patch *upstream*
> to add it, and at your option apply that patch in Fedora.
>
> Here's sample output from the script on my workstation, which shows a
> vast swath of system-config-* missing it; others of these are false
> positives since they're not user-visible apps.

Upstream just accepted the patch for Meiga :
http://git.igalia.com/cgi-bin/gitweb.cgi?p=meiga.git;a=commitdiff;h=5359f57e2b7d 269d860cc4af55b39e07c3b08b5f

>
> [walters@megatron gtk+ (master)]$ ~/bin/verify-startupnotify.py
> '/usr/share/applications/system-config-date.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/nm-pptp.desktop' probably needs StartupNotify=true
> '/usr/share/applications/emacs.desktop' probably needs StartupNotify=true
> '/usr/share/applications/nm-openvpn.desktop' probably needs StartupNotify=true
> '/usr/share/applications/mimeinfo.cache' probably needs StartupNotify=true
> '/usr/share/applications/system-config-boot.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/redhat-userinfo.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/livna-config-display.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/redhat-authconfig.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/mount-archive.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/fedora-liveusb-creator.desktop' probably
> needs StartupNotify=true
> '/usr/share/applications/virt-manager.desktop' probably needs StartupNotify=true
> '/usr/share/applications/mutter.desktop' probably needs StartupNotify=true
> '/usr/share/applications/palimpsest.desktop' probably needs StartupNotify=true
> '/usr/share/applications/redhat-userpasswd.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/gnome-shell.desktop' probably needs StartupNotify=true
> '/usr/share/applications/spring-installer.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/redhat-system-control-network.desktop'
> probably needs StartupNotify=true
> '/usr/share/applications/fedora-empathy.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/ca-installer.desktop' probably needs StartupNotify=true
> '/usr/share/applications/jpackage-logfactor5.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/redhat-email.desktop' probably needs StartupNotify=true
> '/usr/share/applications/paperbox.desktop' probably needs StartupNotify=true
> '/usr/share/applications/fedora-vagalume.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/eclipse.desktop' probably needs StartupNotify=true
> '/usr/share/applications/javaws.desktop' probably needs StartupNotify=true
> '/usr/share/applications/redhat-web.desktop' probably needs StartupNotify=true
> '/usr/share/applications/my-default-printer.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/system-config-users.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/transmission.desktop' probably needs StartupNotify=true
> '/usr/share/applications/nvidia-settings.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/springlobby.desktop' probably needs StartupNotify=true
> '/usr/share/applications/redhat-system-config-network.desktop'
> probably needs StartupNotify=true
> '/usr/share/applications/metacity.desktop' probably needs StartupNotify=true
> '/usr/share/applications/qt4-qtconfig.desktop' probably needs StartupNotify=true
> '/usr/share/applications/gnome-glade-2.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/spring.desktop' probably needs StartupNotify=true
> '/usr/share/applications/compiz-gtk.desktop' probably needs StartupNotify=true
> '/usr/share/applications/jpackage-chainsaw.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/mozilla-thunderbird.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/nm-connection-editor.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/alacarte.desktop' probably needs StartupNotify=true
> '/usr/share/applications/nm-vpnc.desktop' probably needs StartupNotify=true
> '/usr/share/applications/redhat-usermount.desktop' probably needs
> StartupNotify=true
> '/usr/share/applications/defaults.list' probably needs StartupNotify=true
> '/usr/share/applications/manage-print-jobs.desktop' probably needs
> StartupNotify=true
> [walters@megatron gtk+ (master)]$
>
> --
> devel mailing list
> devel@lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/devel
>



--
Cheers,
Rajeesh
http://rajeeshknambiar.wordpress.com
--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
 

Thread Tools




All times are GMT. The time now is 07:40 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ę2007 - 2008, www.linux-archive.org