Start menu shortcuts

Yaakov (Cygwin/X) yselkowitz@users.sourceforge.net
Tue Jul 30 00:03:00 GMT 2013


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



More information about the Cygwin-apps mailing list