<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Droid Sans Mono'; font-size:10pt; font-weight:400; font-style:normal;">Hi all,<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>I'm just writing to let you know that I'm working on changing the handling of .desktop files for the next major version of KDE.  The work itself is being tracked on kde-core-devel but a synopsis of the plan is:<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>When launching a .desktop file (which I'll refer to as a service), if any of the following conditions are true, the launch is permitted:<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>1. The service is executable by the user<br>
2. The service is owned by root (to handle the common case of system-installed files)<br>
3. The service is contained in a standard service directory.  Right now this means "xdgdata-apps" in addition to standard KDE service locations.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>In the event that the launch would have been forbidden based on the preceding restrictions, the user is given the option of automatically making the service executable and then launching.  Although this part makes me a bit queasy I think it's the best option to easily allow existing Desktop icons, panel launchers, etc. to continue to work.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>If the file is made executable automatically it is given a "#!/usr/bin/env xdg-open" header as well if it did not already have a #! header so that running the file from the command line will do the right thing.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Are there any thoughts or anything I need to implement to allow GNOME/Xfce/etc. launchers to continue to work?  I would expect that the second exemption combined with xdgdata-apps in the third would be sufficient but now's the time to let me know if that's not the case.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>I've subscribed for the purposes of this discussion so you don't have to CC me (unless I don't answer after a day I guess) ;).<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Regards,<br>
 - Michael Pyne</p></body></html>