You are not logged in.
Pages: 1


The manual page for xfdesktop describes the option -R, --reload as meaning:
-R, --reload
Causes an already-running instance of xfdesktop to reload all its
settings and redraws the desktop background.
However, as far as I can tell, since Fedora 42, the "redraw the desktop background" no longer happens.
Many years ago, I wrote a little C program to draw a desired jpg image to my desktop background. I did this by setting my desktop background to a symbolic link called "background.jpg". My program then just points the background.jpg to another image and runs
system("xfdesktop --reload");
However, since F42, this has not worked. Apparently, xfdesktop is no longer redrawing the desktop background?
I have developed a kluge to work around this that involves code such as:
system("xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorHDMI-0/workspace0/last-image -s /home/gordon/background/temp.jpg");
system("xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorHDMI-0/workspace0/last-image -s /home/gordon/background/background.jpg");
Note: I have to redirect to another image, then back to the background.jpg image, in order for this to work. If I just have the 2nd command, it doesn't update. Again, this doesn't seem right.
My kluge works, but it is a major pain in the *** figuring out what "screen/monitor/workspace" to actually use in the above code. I have looked at the files in ~/.config/xfce4/xfconf/xfce-perchannel-xml and have run "xfconf-query -c xfce4-desktop -l" and "xfconf-query -c displays -lv" but none of these seem to specify which display is actually being used. They all give a variety of displays to choose from and the actual display may or may not be in the list of options.
For example, today, I finally figured out that the display on one of my computers was
/backdrop/screen0/monitorHDMI-1/workspace0
and now my background program is updating the background perfectly well. However, when I now type "xfconf-query -c displays -lv" it no longer lists monitorHDMI-1 (but does now show monitorHDMI-0). And yet, monitorHDMI-1 still works to update the image. Clearly monitorHDMI-1 is the actual reference to my screen. I'm not sure what monitorHDMI-0 is actually referencing, since that certainly does not work.
If somebody can get "xfdesktop --reload" to properly redraw the background using the current image (regardless of its name), as specified in its manual page, that would be great! But also, it would be very useful if there was some simpler way to sort out what screen name is used for each screen. The current "Display --> Advanced --> Identifying Displays" only provides the vendor name and the resolution.
No response needed at this point. I have my background image program working on all of my computers now. But the kluge seems very awkward. It would be much better if "xfdesktop --reload" actually worked.
Offline


See: https://gitlab.xfce.org/xfce/xfdesktop/-/issues/416.
This has been fixed in master, but still not released as an official subversion yet.
Mark solved threads as [SOLVED] to make it easier for others to find solutions.
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
Pages: 1
[ Generated in 0.009 seconds, 7 queries executed - Memory usage: 529.1 KiB (Peak: 529.95 KiB) ]