<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Le 06/10/2016 à 21:34, Eloy García (PC
Actual) a écrit :<br>
</div>
<blockquote
cite="mid:CAFW_=cNB7XYN7B9dhfjGaN4uvNRMsNn7wt6Z0fcpL6PVETAXbg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>Hi all.<br>
<br>
</div>
I develop a java-based application to download and manage
wallpapers from the Internet (wallpaperdownloader) (<a
moz-do-not-send="true"
href="https://bitbucket.org/eloy_garcia_pca/wallpaperdownloader/overview">https://bitbucket.org/eloy_garcia_pca/wallpaperdownloader/overview</a>).
The applications is in the store but now I'm trying to integrate
XFCE desktop too. I mean, now you can set any wallpaper
downloaded directly from the GUI and it is working fine for
GNOME 3, Unity and MATE. All three of them use gsettings
interface and desktop-gtk3 wrapper part as you can see in the
snapcraft.yaml:<br>
<br>
<pre><span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">name</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">wallpaperdownloader</span>
<a moz-do-not-send="true" name="snapcraft.yaml-2"></a><span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">version</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-s">"2.2"</span>
<a moz-do-not-send="true" name="snapcraft.yaml-3"></a><span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">summary</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">Download and manage your favorite wallpapers from the Internet</span>
<a moz-do-not-send="true" name="snapcraft.yaml-4"></a><span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">description</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">WallpaperDownloader is a simple GUI Java based application for downloading and managing wallpapers from the Internet</span>
<a moz-do-not-send="true" name="snapcraft.yaml-5"></a><span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">grade</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">stable</span>
<a moz-do-not-send="true" name="snapcraft.yaml-6"></a><span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">confinement</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">strict</span>
<a moz-do-not-send="true" name="snapcraft.yaml-7"></a>
<a moz-do-not-send="true" name="snapcraft.yaml-8"></a><span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">apps</span><span class="gmail-p gmail-p-Indicator">:</span>
<a moz-do-not-send="true" name="snapcraft.yaml-9"></a> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">wallpaperdownloader</span><span class="gmail-p gmail-p-Indicator">:</span>
<a moz-do-not-send="true" name="snapcraft.yaml-10"></a> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">command</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">wallpaperdownloader.sh</span>
<a moz-do-not-send="true" name="snapcraft.yaml-11"></a> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">plugs</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-p gmail-p-Indicator">[</span><span class="gmail-nv">x11</span><span class="gmail-p gmail-p-Indicator">,</span> <span class="gmail-nv">network-bind</span><span class="gmail-p gmail-p-Indicator">,</span> <span class="gmail-nv">home</span><span class="gmail-p gmail-p-Indicator">,</span> <span class="gmail-nv">gsettings</span><span class="gmail-p gmail-p-Indicator">]</span>
<a moz-do-not-send="true" name="snapcraft.yaml-12"></a>
<a moz-do-not-send="true" name="snapcraft.yaml-13"></a><span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">parts</span><span class="gmail-p gmail-p-Indicator">:</span>
<a moz-do-not-send="true" name="snapcraft.yaml-14"></a> <span class="gmail-c1"># Pulls the code from the original source (master branch)</span>
<a moz-do-not-send="true" name="snapcraft.yaml-15"></a> <span class="gmail-c1"># desktop/gtk3 is a snapcraft part (snapcraft-desktop-helpers) from the Wiki: <a moz-do-not-send="true" href="https://wiki.ubuntu.com/snapcraft/parts">https://wiki.ubuntu.com/snapcraft/parts</a></span>
<a moz-do-not-send="true" name="snapcraft.yaml-16"></a> <span class="gmail-c1"># It enables desktop integration and gsettings manipulation from the confined application</span>
<a moz-do-not-send="true" name="snapcraft.yaml-17"></a> <span class="gmail-c1"># It is necessary to use gsettings interface (see above) in order to have a fully functional</span>
<a moz-do-not-send="true" name="snapcraft.yaml-18"></a> <span class="gmail-c1"># desktop/gtk3 part</span>
<a moz-do-not-send="true" name="snapcraft.yaml-19"></a> <span class="gmail-c1"># Github repository for snapcraft-desktop-helpers: <a moz-do-not-send="true" href="https://github.com/ubuntu/snapcraft-desktop-helpers">https://github.com/ubuntu/snapcraft-desktop-helpers</a></span>
<a moz-do-not-send="true" name="snapcraft.yaml-20"></a> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">wallpaperdownloader</span><span class="gmail-p gmail-p-Indicator">:</span>
<a moz-do-not-send="true" name="snapcraft.yaml-21"></a> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">plugin</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">maven</span>
<a moz-do-not-send="true" name="snapcraft.yaml-22"></a> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">source</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">..</span>
<a moz-do-not-send="true" name="snapcraft.yaml-23"></a> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">stage-packages</span><span class="gmail-p gmail-p-Indicator">:</span>
<a moz-do-not-send="true" name="snapcraft.yaml-24"></a> <span class="gmail-c1"># mate-desktop-common is necessary to have MATE gsettings schemas available for the application</span>
<a moz-do-not-send="true" name="snapcraft.yaml-25"></a> <span class="gmail-p gmail-p-Indicator">-</span> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">mate-desktop-common</span>
<a moz-do-not-send="true" name="snapcraft.yaml-26"></a> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">after</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-p gmail-p-Indicator">[</span><span class="gmail-nv">desktop/gtk3</span><span class="gmail-p gmail-p-Indicator">]</span>
<a moz-do-not-send="true" name="snapcraft.yaml-27"></a>
<a moz-do-not-send="true" name="snapcraft.yaml-28"></a> <span class="gmail-c1"># It will copy wallpaperdownloader script into /bin/</span>
<a moz-do-not-send="true" name="snapcraft.yaml-29"></a> <span class="gmail-c1"># This script contains all the commands needed (sets env variables, launches the jar file...) to</span>
<a moz-do-not-send="true" name="snapcraft.yaml-30"></a> <span class="gmail-c1"># execute the application</span>
<a moz-do-not-send="true" name="snapcraft.yaml-31"></a> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">exec</span><span class="gmail-p gmail-p-Indicator">:</span>
<a moz-do-not-send="true" name="snapcraft.yaml-32"></a> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">plugin</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">dump</span>
<a moz-do-not-send="true" name="snapcraft.yaml-33"></a> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">source</span><span class="gmail-p gmail-p-Indicator">:</span> <span class="gmail-l gmail-l-Scalar gmail-l-Scalar-Plain">scripts</span></pre>
Now, if XFCE desktop is detected by the application, the command
run inthe background is 'xfconf-query --channel xfce4-desktop
--property /backdrop/screen0/monitor0/workspace0/last-image
--set wallpaper.jpg'. If the application runs natively, there is
no problem and the wallpaper is set properly. But when I test
the snap package built, this is the error thrown:<br>
<div><br>
ERROR LinuxWallpaperChanger:188 - Property
"/backdrop/screen0/monitor0/workspace0/last-image" does not
exist on channel "xfce4-desktop". If a new property should be
created, use the --create option.<br clear="all">
<div>
<div><br>
</div>
<div>I have included xfconf as stage-package and the command
xfconf-query is found within the snap. Could you give me a
hint to solve this problem?<br>
<br>
</div>
<div>Thank you very much for your time and your help :)<br>
</div>
</div>
</div>
</div>
</blockquote>
<br>
Hey Eloy,<br>
<br>
I'm not a xfconf user and so can't answer to you precisly. However,
my guess is that you will need a file (like the dconf one we are
using in GNOME/Unity environment) shared between your user's
settings and the snap writable path.<br>
The desktop launcher is creating a symlink (accessed via the home
interface) between the main user's dconf/user file to path of the
snap writable path, to be able to read the value. The gsettings
interfaces give, on its side, access to the dbus call for this.<br>
<br>
I wonder if the unaccessible file/dbus property could trigger this
error fallback in xfconf, and hence, prints that message.<br>
<br>
I hope this helps!<br>
Cheers,<br>
Didier<br>
<br>
</body>
</html>