On 2013-07-29 08:22, Jon TURNEY wrote:
Since this has reared it's ugly head again [1], rather than perpetuate
X-start-menu-icons into x86_64, I'll suggest the following plan:
1) Obsolete X-start-menu-icons on x86 and replace it with a dummy empty package
+1
2) Recognize that most of the links created by X-start-menu-icons are
worthless and drop them. I'd suggest that links for the following
applications are worthwhile, and should be installed by the application
package itself:
There already exists a menu system for X11 programs, namely the XDG
Desktop Menu Spec, and these programs already provide the necessary
entries (/usr/share/applications/*.desktop). Personally, when in
multiwindow mode, I run fbpanel (from Ports) which gives me both an XDG
menu and a system tray (notification area).
Links should be made using scripts something like the following:
postinstall.sh:
/usr/bin/mkdir -p "$(/usr/bin/cygpath $CYGWINFORALL -P)/Cygwin-X"
/usr/bin/mkshortcut $CYGWINFORALL -P -i /path/to/foo.exe-or-.ico -n
"Cygwin-X/AppName" -a "/usr/bin/bash.exe -l -c '/usr/bin/foo.exe -display
:0.0'" /usr/bin/run.exe
There are a few problems with this:
1) this assumes DISPLAY=:0.0, which may not always be the case.
2) many programs require --display= instead of -display, and others
don't accept either.
3) most programs nowadays require a D-Bus session. Starting programs
like this, however, will cause each to autostart their own session,
unaware of (and unable to interact with) others.
Previously, we discussed (off-list?) having the XWin tray include an XDG
menu. Not only would we have to write this from scratch (as
implementations I have seen are (L)GPL, or depend on a library so
licensed), that would not resolve #3, as a dbus-session is launched only
after starting the X server.
What we may need to do instead is create a "multiwindow session", where
startxwin launches not only the X server, but also the following:
* a D-Bus session bus
* a (specially configured) fbpanel instance
* non-desktop-specific, or XWin-specific, XDG autostart entries.
The fbpanel would be in one corner, just big enough for an X icon (the
desktop menu button), and expand/contract as needed for system tray icons.
3) Look forward to a glorious future where cygport can generate those link
installation scripts automatically from *.desktop files :D
That may be possible: parsing .desktop files isn't that hard, but
dealing with icons may be, but the aformentioned issues would need to be
resolved first.
Yaakov