unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#57781: missing wallpaper command
@ 2022-09-13 20:20 Felix
  2022-09-14  5:41 ` Stefan Kangas
  2022-09-14 13:50 ` bug#57781: wbg " Felix
  0 siblings, 2 replies; 35+ messages in thread
From: Felix @ 2022-09-13 20:20 UTC (permalink / raw)
  To: 57781


I'm not using swaybg but wbg as wallpaper command on wayland which is
not yet part of the wallpaper-commands.
'wallpaper-set' works if i evaluate:
(add-to-list 'wallpaper-commands '("wbg" "%f"))





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-13 20:20 bug#57781: missing wallpaper command Felix
@ 2022-09-14  5:41 ` Stefan Kangas
  2022-09-14 17:00   ` Sean Whitton
  2022-09-14 13:50 ` bug#57781: wbg " Felix
  1 sibling, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-09-14  5:41 UTC (permalink / raw)
  To: Felix, 57781

tags 57781 + pending
thanks

Felix <felix.dick@web.de> writes:

> I'm not using swaybg but wbg as wallpaper command on wayland which is
> not yet part of the wallpaper-commands.
> 'wallpaper-set' works if i evaluate:
> (add-to-list 'wallpaper-commands '("wbg" "%f"))

Thanks for the bug report!

I've added it now (commit f0798ac13d), could you please test?

To test for Wayland, it only checks if $WAYLAND_DISPLAY is set.
We could do something more fancy if needed, possibly involving
loginctl.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: wbg wallpaper command
  2022-09-13 20:20 bug#57781: missing wallpaper command Felix
  2022-09-14  5:41 ` Stefan Kangas
@ 2022-09-14 13:50 ` Felix
  2022-09-14 16:27   ` Stefan Kangas
  1 sibling, 1 reply; 35+ messages in thread
From: Felix @ 2022-09-14 13:50 UTC (permalink / raw)
  To: 57781


It is not working like this.
It does work the %f needs to be double quoted:

("wbg" "%f")

Thanks.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: wbg wallpaper command
  2022-09-14 13:50 ` bug#57781: wbg " Felix
@ 2022-09-14 16:27   ` Stefan Kangas
  2022-09-14 20:01     ` Felix
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-09-14 16:27 UTC (permalink / raw)
  To: Felix, 57781

Felix <felix.dick@web.de> writes:

> It is not working like this.
> It does work the %f needs to be double quoted:
>
> ("wbg" "%f")

Sorry, that was a typo; fixed now.  Do you mind trying again?

Thanks in advance.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-14  5:41 ` Stefan Kangas
@ 2022-09-14 17:00   ` Sean Whitton
  2022-09-14 22:51     ` Stefan Kangas
  0 siblings, 1 reply; 35+ messages in thread
From: Sean Whitton @ 2022-09-14 17:00 UTC (permalink / raw)
  To: Stefan Kangas, Felix, 57781

Hello,

On Tue 13 Sep 2022 at 10:41PM -07, Stefan Kangas wrote:

> tags 57781 + pending
> thanks
>
> Felix <felix.dick@web.de> writes:
>
>> I'm not using swaybg but wbg as wallpaper command on wayland which is
>> not yet part of the wallpaper-commands.
>> 'wallpaper-set' works if i evaluate:
>> (add-to-list 'wallpaper-commands '("wbg" "%f"))
>
> Thanks for the bug report!
>
> I've added it now (commit f0798ac13d), could you please test?
>
> To test for Wayland, it only checks if $WAYLAND_DISPLAY is set.
> We could do something more fancy if needed, possibly involving
> loginctl.

Since it's protocol-dependent, I don't know if it will work on anything
other than wlroots-based compositors.  Before relying solely on
WAYLAND_DISPLAY, perhaps we should also check it works with GNOME?

-- 
Sean Whitton





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: wbg wallpaper command
  2022-09-14 16:27   ` Stefan Kangas
@ 2022-09-14 20:01     ` Felix
  2022-09-14 23:06       ` Stefan Kangas
  0 siblings, 1 reply; 35+ messages in thread
From: Felix @ 2022-09-14 20:01 UTC (permalink / raw)
  To: 57781


Stefan Kangas <stefankangas@gmail.com> writes:

> Felix <felix.dick@web.de> writes:
>
>> It is not working like this.
>> It does work the %f needs to be double quoted:
>>
>> ("wbg" "%f")
>
> Sorry, that was a typo; fixed now.  Do you mind trying again?
>
> Thanks in advance.

No need to apologize! I'm forever thankful for all the work that's
done by you and all the people working on emacs!
It works now!
Thanks a lot,
Felix





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-14 17:00   ` Sean Whitton
@ 2022-09-14 22:51     ` Stefan Kangas
  2022-09-14 22:51       ` Felix
  2022-09-14 23:25       ` Sean Whitton
  0 siblings, 2 replies; 35+ messages in thread
From: Stefan Kangas @ 2022-09-14 22:51 UTC (permalink / raw)
  To: Sean Whitton, Felix, 57781

Sean Whitton <spwhitton@spwhitton.name> writes:

>> To test for Wayland, it only checks if $WAYLAND_DISPLAY is set.
>> We could do something more fancy if needed, possibly involving
>> loginctl.
>
> Since it's protocol-dependent, I don't know if it will work on anything
> other than wlroots-based compositors.  Before relying solely on
> WAYLAND_DISPLAY, perhaps we should also check it works with GNOME?

I need help here, as I don't have access to Wayland.

Would you be willing to help test it, and/or make concrete suggestions
for how to do better?  I'd ideally need someone to tell me which
environment variables or commands to run, and which values to expect,
but any information you could provide would help.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-14 22:51     ` Stefan Kangas
@ 2022-09-14 22:51       ` Felix
  2022-09-14 23:22         ` Stefan Kangas
  2022-10-04  5:58         ` Stefan Kangas
  2022-09-14 23:25       ` Sean Whitton
  1 sibling, 2 replies; 35+ messages in thread
From: Felix @ 2022-09-14 22:51 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 57781, Sean Whitton


Stefan Kangas <stefankangas@gmail.com> writes:

> Sean Whitton <spwhitton@spwhitton.name> writes:
>
>>> To test for Wayland, it only checks if $WAYLAND_DISPLAY is set.
>>> We could do something more fancy if needed, possibly involving
>>> loginctl.
>>
>> Since it's protocol-dependent, I don't know if it will work on anything
>> other than wlroots-based compositors.  Before relying solely on
>> WAYLAND_DISPLAY, perhaps we should also check it works with GNOME?
>
> I need help here, as I don't have access to Wayland.
>
> Would you be willing to help test it, and/or make concrete suggestions
> for how to do better?  I'd ideally need someone to tell me which
> environment variables or commands to run, and which values to expect,
> but any information you could provide would help.

I'm switching back and forth from Xorg to wayland and I'm
tinkering with different desktops/WMs anyways.
I would be happy to help!
I will try wallpaper.el with gnome tomorrow.
If there are any things you want me
to test, just let me know.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: wbg wallpaper command
  2022-09-14 20:01     ` Felix
@ 2022-09-14 23:06       ` Stefan Kangas
  0 siblings, 0 replies; 35+ messages in thread
From: Stefan Kangas @ 2022-09-14 23:06 UTC (permalink / raw)
  To: Felix, 57781

close 57781 29.1
thanks

Felix <felix.dick@web.de> writes:

> It works now!

Thanks for testing, I'm therefore closing this bug.

Sean Whitton has made some further suggestions; we can continue
discussing them in this bug report for now.  Someone could also create a
new bug report, if that's better.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-14 22:51       ` Felix
@ 2022-09-14 23:22         ` Stefan Kangas
  2022-09-15  9:47           ` Felix
                             ` (2 more replies)
  2022-10-04  5:58         ` Stefan Kangas
  1 sibling, 3 replies; 35+ messages in thread
From: Stefan Kangas @ 2022-09-14 23:22 UTC (permalink / raw)
  To: Felix; +Cc: 57781, Sean Whitton

Felix <felix.dick@web.de> writes:

> I'm switching back and forth from Xorg to wayland and I'm
> tinkering with different desktops/WMs anyways.
> I would be happy to help!
> I will try wallpaper.el with gnome tomorrow.
> If there are any things you want me
> to test, just let me know.

Thank you!  That offer to help is much appreciated.

I know next to nothing about Wayland, but any testing you could do with
Gnome, KDE and Sway is welcome.  Or anything else you think might be
useful and worth doing, really.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-14 22:51     ` Stefan Kangas
  2022-09-14 22:51       ` Felix
@ 2022-09-14 23:25       ` Sean Whitton
  1 sibling, 0 replies; 35+ messages in thread
From: Sean Whitton @ 2022-09-14 23:25 UTC (permalink / raw)
  To: Stefan Kangas, Felix, 57781

Hello,

On Wed 14 Sep 2022 at 03:51PM -07, Stefan Kangas wrote:

> Sean Whitton <spwhitton@spwhitton.name> writes:
>
>>> To test for Wayland, it only checks if $WAYLAND_DISPLAY is set.
>>> We could do something more fancy if needed, possibly involving
>>> loginctl.
>>
>> Since it's protocol-dependent, I don't know if it will work on anything
>> other than wlroots-based compositors.  Before relying solely on
>> WAYLAND_DISPLAY, perhaps we should also check it works with GNOME?
>
> I need help here, as I don't have access to Wayland.
>
> Would you be willing to help test it, and/or make concrete suggestions
> for how to do better?  I'd ideally need someone to tell me which
> environment variables or commands to run, and which values to expect,
> but any information you could provide would help.

Yes, though sounds like it's easier for Felix to switch back and forth,
so perhaps I can test the final version of it, or something.  LMK.

-- 
Sean Whitton





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-14 23:22         ` Stefan Kangas
@ 2022-09-15  9:47           ` Felix
  2022-09-16 21:09             ` Stefan Kangas
  2022-09-15 10:37           ` Felix
  2022-09-16 15:50           ` Thierry Volpiatto
  2 siblings, 1 reply; 35+ messages in thread
From: Felix @ 2022-09-15  9:47 UTC (permalink / raw)
  To: Stefan Kangas, Sean Whitton, 57781


Stefan Kangas <stefankangas@gmail.com> writes:

> Felix <felix.dick@web.de> writes:
>
>> I'm switching back and forth from Xorg to wayland and I'm
>> tinkering with different desktops/WMs anyways.
>> I would be happy to help!
>> I will try wallpaper.el with gnome tomorrow.
>> If there are any things you want me
>> to test, just let me know.
>
> Thank you!  That offer to help is much appreciated.
>
> I know next to nothing about Wayland, but any testing you could do with
> Gnome, KDE and Sway is welcome.  Or anything else you think might be
> useful and worth doing, really.

Neither swaybg nor wgb is running under gnome-shell with wayland.
Gnome has it's own way of setting wallpapers.
As kind of expected wbg depends on wlroots i guess.
I'm not shure how to check which wm/desktop is running.
wmctrl would be very usefull, but there is not garantee for it to be
installed.

Another point is that:
("gsettings" "set" "org.gnome.desktop.background" "picture-uri" "file://%f")
only effects the light scheme of gnome.
If you want to change the wallpaper of the dark scheme
("gsettings" "set" "org.gnome.desktop.background" "picture-uri-dark" "file://%f")
is the command.
'gsettings get org.gnome.desktop.interface color-scheme'
can be used to check which of both schemes is active.
It returns either 'prefer-dark' or 'prefer-light'
One could think about setting the wallpaper for both themes, or
only for the active color-scheme.

I can check KDE later, but I don't expect wgb or swaybg to work there.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-14 23:22         ` Stefan Kangas
  2022-09-15  9:47           ` Felix
@ 2022-09-15 10:37           ` Felix
  2022-09-16 21:09             ` Stefan Kangas
  2022-09-16 15:50           ` Thierry Volpiatto
  2 siblings, 1 reply; 35+ messages in thread
From: Felix @ 2022-09-15 10:37 UTC (permalink / raw)
  To: Stefan Kangas, Sean Whitton, 57781


Stefan Kangas <stefankangas@gmail.com> writes:

> Felix <felix.dick@web.de> writes:
>
>> I'm switching back and forth from Xorg to wayland and I'm
>> tinkering with different desktops/WMs anyways.
>> I would be happy to help!
>> I will try wallpaper.el with gnome tomorrow.
>> If there are any things you want me
>> to test, just let me know.
>
> Thank you!  That offer to help is much appreciated.
>
> I know next to nothing about Wayland, but any testing you could do with
> Gnome, KDE and Sway is welcome.  Or anything else you think might be
> useful and worth doing, really.

swaybg and wbg are starting a new instance each time wallpaper-set is
called. That means that if wallpaper-set is used more than once in an emacs session, multiple
wallpapers set.
In case of wallpaper applications that work like that, running instances
of wbg/swaybg should be terminated before loading new once.

with those "stand-alone" wallpaper applications, the wallpaper process
is attached to emacs if wallpaper-set is used.
With that the wallpaper only stays as long as emacs is running.
I think the process should be detached from emacs.

I'm not shure if that information is useful,
please let me know if it is, or if there is something i should test next.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-14 23:22         ` Stefan Kangas
  2022-09-15  9:47           ` Felix
  2022-09-15 10:37           ` Felix
@ 2022-09-16 15:50           ` Thierry Volpiatto
  2022-09-16 20:52             ` Stefan Kangas
  2 siblings, 1 reply; 35+ messages in thread
From: Thierry Volpiatto @ 2022-09-16 15:50 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 57781, Felix, Sean Whitton

Stefan Kangas <stefankangas@gmail.com> writes:

> Felix <felix.dick@web.de> writes:
>
>> I'm switching back and forth from Xorg to wayland and I'm
>> tinkering with different desktops/WMs anyways.
>> I would be happy to help!
>> I will try wallpaper.el with gnome tomorrow.
>> If there are any things you want me
>> to test, just let me know.
>
> Thank you!  That offer to help is much appreciated.
>
> I know next to nothing about Wayland, but any testing you could do with
> Gnome, KDE and Sway is welcome.  Or anything else you think might be
> useful and worth doing, really.

Don't know if you already added a command for xfce, if not here is what
I use:

    (apply #'call-process "xfconf-query" nil nil nil
           `("-c"
            "xfce4-desktop" "-p"
            "/backdrop/screen0/monitoreDP/workspace0/last-image" "-s"
            ,file))

-- 
Thierry





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-16 15:50           ` Thierry Volpiatto
@ 2022-09-16 20:52             ` Stefan Kangas
  2022-09-17  6:14               ` Thierry Volpiatto
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-09-16 20:52 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: 57781, Felix, Sean Whitton

[-- Attachment #1: Type: text/plain, Size: 521 bytes --]

Thierry Volpiatto <thievol@posteo.net> writes:

> Don't know if you already added a command for xfce, if not here is what
> I use:
>
>     (apply #'call-process "xfconf-query" nil nil nil
>            `("-c"
>             "xfce4-desktop" "-p"
>             "/backdrop/screen0/monitoreDP/workspace0/last-image" "-s"
>             ,file))

I did not yet have the command, so thank you.  I have added this to
wallpaper.el on master now (commit fe7c015b20 or attached patch).

Do you mind testing to see if it works for you?

[-- Attachment #2: 0001-Support-XFCE-in-wallpaper.el.patch --]
[-- Type: text/x-diff, Size: 2008 bytes --]

From fe7c015b20b5bca07aa178d28b9fd5cc66ad16f9 Mon Sep 17 00:00:00 2001
From: Stefan Kangas <stefankangas@gmail.com>
Date: Fri, 16 Sep 2022 22:37:56 +0200
Subject: [PATCH] Support XFCE in wallpaper.el

* lisp/image/wallpaper.el (wallpaper--default-commands)
(wallpaper-command): Support XFCE.  (Bug#57781)
Thanks to Thierry Volpiatto <thievol@posteo.net>.
---
 lisp/image/wallpaper.el | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/lisp/image/wallpaper.el b/lisp/image/wallpaper.el
index 9572349c36..4572a8c062 100644
--- a/lisp/image/wallpaper.el
+++ b/lisp/image/wallpaper.el
@@ -63,6 +63,9 @@ wallpaper--default-commands
     ("gsettings" "set" "org.gnome.desktop.background" "picture-uri" "file://%f")
     ;; KDE Plasma
     ("plasma-apply-wallpaperimage" "%f")
+    ;; XFCE
+    ("xfconf-query" "-c" "xfce4-desktop" "-p"
+     "/backdrop/screen0/monitoreDP/workspace0/last-image" "-s" "%f")
     ;; macOS
     ("osascript" "-e" "tell application \"Finder\" to set desktop picture to POSIX file \"%f\"")
     ;; Other / General X
@@ -97,6 +100,9 @@ wallpaper--check-command
 (cl-defmethod wallpaper--check-command ((_type (eql 'plasma-apply-wallpaperimage)))
   (member "KDE" (xdg-current-desktop)))
 
+(cl-defmethod wallpaper--check-command ((_type (eql 'xfconf-query)))
+  (member "XFCE" (xdg-current-desktop)))
+
 (cl-defmethod wallpaper--check-command ((_type (eql 'swaybg)))
   (and (getenv "WAYLAND_DISPLAY")
        (getenv "SWAYSOCK")))
@@ -156,6 +162,7 @@ wallpaper-command
     (radio
      (const :tag "gsettings                   (GNOME)"            "gsettings")
      (const :tag "plasma-apply-wallpaperimage (KDE Plasma)"       "plasma-apply-wallpaperimage")
+     (const :tag "xfconf-query                (XFCE)"             "xfconf-query")
      (const :tag "swaybg                      (Wayland/Sway)"     "swaybg")
      (const :tag "wbg                         (Wayland)"          "wbg")
      (const :tag "gm                          (X Window System)"  "gm")
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-15  9:47           ` Felix
@ 2022-09-16 21:09             ` Stefan Kangas
  2022-09-17 12:00               ` Felix
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-09-16 21:09 UTC (permalink / raw)
  To: Felix, Sean Whitton, 57781

Felix <felix.dick@web.de> writes:

> Neither swaybg nor wgb is running under gnome-shell with wayland.
> Gnome has it's own way of setting wallpapers.
> As kind of expected wbg depends on wlroots i guess.
> I'm not shure how to check which wm/desktop is running.

Does that mean that setting the wallpaper using `wallpaper-set' doesn't
work when running gnome-shell under Wayland?

If you still have access to it, what is the value of the environment
variables $XDG_CURRENT_DESKTOP, $WAYLAND_DISPLAY and $SWAYSOCK in this
configuration?

If you like, perhaps you could send the output of the `env' command to
me privately.  Just edit out anything sensitive before sending it.

> wmctrl would be very usefull, but there is not garantee for it to be
> installed.

Thanks, I did not know about wmctrl.  I took a look at its website

    https://sites.google.com/site/tstyblo/wmctrl

but I could not find any way to set the wallpaper using it.  Maybe I
missed it.  Do you know if it can be done, and if so, how?

(We can check if it installed with `executable-find'.)

> Another point is that:
> ("gsettings" "set" "org.gnome.desktop.background" "picture-uri" "file://%f")
> only effects the light scheme of gnome.
> If you want to change the wallpaper of the dark scheme
> ("gsettings" "set" "org.gnome.desktop.background" "picture-uri-dark" "file://%f")
> is the command.
> 'gsettings get org.gnome.desktop.interface color-scheme'
> can be used to check which of both schemes is active.
> It returns either 'prefer-dark' or 'prefer-light'
> One could think about setting the wallpaper for both themes, or
> only for the active color-scheme.

Hmm, this is interesting.  It is clear that we need to extend
wallpaper.el to run another command first, to decide which command
should be run in various situations.  I will look into it.

> I can check KDE later, but I don't expect wgb or swaybg to work there.

That will be much appreciated.

Thanks for all of the above, this is very useful.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-15 10:37           ` Felix
@ 2022-09-16 21:09             ` Stefan Kangas
  0 siblings, 0 replies; 35+ messages in thread
From: Stefan Kangas @ 2022-09-16 21:09 UTC (permalink / raw)
  To: Felix, Sean Whitton, 57781

Felix <felix.dick@web.de> writes:

> swaybg and wbg are starting a new instance each time wallpaper-set is
> called. That means that if wallpaper-set is used more than once in an emacs session, multiple
> wallpapers set.
> In case of wallpaper applications that work like that, running instances
> of wbg/swaybg should be terminated before loading new once.
>
> with those "stand-alone" wallpaper applications, the wallpaper process
> is attached to emacs if wallpaper-set is used.
> With that the wallpaper only stays as long as emacs is running.
> I think the process should be detached from emacs.

Right, okay.  I will have to think about how to implement support for
this, because it's not something that wallpaper.el can currently handle.

> I'm not shure if that information is useful,
> please let me know if it is, or if there is something i should test next.

It is very useful, thanks!

You could take a look at my other email where I had some followup
questions.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-16 20:52             ` Stefan Kangas
@ 2022-09-17  6:14               ` Thierry Volpiatto
  2022-09-17 18:34                 ` Stefan Kangas
  0 siblings, 1 reply; 35+ messages in thread
From: Thierry Volpiatto @ 2022-09-17  6:14 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 57781, Felix, Sean Whitton

[-- Attachment #1: Type: text/plain, Size: 2509 bytes --]


Stefan Kangas <stefankangas@gmail.com> writes:

> Thierry Volpiatto <thievol@posteo.net> writes:
>
>> Don't know if you already added a command for xfce, if not here is what
>> I use:
>>
>>     (apply #'call-process "xfconf-query" nil nil nil
>>            `("-c"
>>             "xfce4-desktop" "-p"
>>             "/backdrop/screen0/monitoreDP/workspace0/last-image" "-s"
>>             ,file))
>
> I did not yet have the command, so thank you.  I have added this to
> wallpaper.el on master now (commit fe7c015b20 or attached patch).
>
> Do you mind testing to see if it works for you?

The xconf-query command is detected and working fine, thanks.
Perhaps you can store last wallpapers used and use it as default for the
read-file-name?
Something like this:

diff --git a/lisp/image/wallpaper.el b/lisp/image/wallpaper.el
index 4572a8c0628..8426fc4b126 100644
--- a/lisp/image/wallpaper.el
+++ b/lisp/image/wallpaper.el
@@ -227,6 +227,8 @@ See also `wallpaper-default-height'.")
 This is only used when it can't be detected automatically.
 See also `wallpaper-default-width'.")
 
+(defvar wallpaper-last-used nil)
+
 (defun wallpaper--get-height-or-width (desc fun default)
   (if (display-graphic-p)
       (funcall fun)
@@ -246,7 +248,10 @@ options `wallpaper-command' and `wallpaper-command-args'.
 On MS-Windows and Haiku systems, no external command is needed,
 so the value of `wallpaper-commands' is ignored."
   (interactive (list (read-file-name "Set desktop background to: "
-                                     default-directory nil t nil
+                                     (and wallpaper-last-used
+                                          (file-name-directory
+                                           (car (last wallpaper-last-used))))
+                                     wallpaper-last-used t nil
                                      (lambda (fn)
                                        (or (file-directory-p fn)
                                            (string-match (image-file-name-regexp) fn))))))
@@ -257,6 +262,7 @@ so the value of `wallpaper-commands' is ignored."
   (unless (file-readable-p file)
     (error "File is not readable: %s" file))
   (wallpaper-debug "Using image %S:" file)
+  (push file wallpaper-last-used)
   (cond ((eq system-type 'windows-nt)
          (w32-set-wallpaper file))
         ((featurep 'haiku)


> [2. text/x-diff; 0001-Support-XFCE-in-wallpaper.el.patch]...


-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-16 21:09             ` Stefan Kangas
@ 2022-09-17 12:00               ` Felix
  2022-09-17 17:48                 ` Stefan Kangas
  0 siblings, 1 reply; 35+ messages in thread
From: Felix @ 2022-09-17 12:00 UTC (permalink / raw)
  To: Stefan Kangas, Sean Whitton, 57781

Stefan Kangas <stefankangas@gmail.com> writes:

> Felix <felix.dick@web.de> writes:
>
>> Neither swaybg nor wgb is running under gnome-shell with wayland.
>> Gnome has it's own way of setting wallpapers.
>> As kind of expected wbg depends on wlroots i guess.
>> I'm not shure how to check which wm/desktop is running.
>
> Does that mean that setting the wallpaper using `wallpaper-set' doesn't
> work when running gnome-shell under Wayland?

No it works under gnome-shell (if the light color scheme is active),
what i meant is that those wlroots dependend applications
(swaybg,wbg,hyprpaper ...)
are not working under gnome and probably not under kde.

>
> If you still have access to it, what is the value of the environment
> variables $XDG_CURRENT_DESKTOP, $WAYLAND_DISPLAY and $SWAYSOCK in this
> configuration?

On a fresh debian install with
- gnome-shell:
$XDG_CURRENT_DESKTOP is not set (i will check on arch linux later today)
$WAYLAND_DISPLAY = wayland-1
- sway:
$SWAYSOCK = /run/user/1000/sway-ipc.1000.13582.sock

>
> If you like, perhaps you could send the output of the `env' command to
> me privately.  Just edit out anything sensitive before sending it.
>

I will do that later today aswell.

>> wmctrl would be very usefull, but there is not garantee for it to be
>> installed.
>
> Thanks, I did not know about wmctrl.  I took a look at its website
>
>     https://sites.google.com/site/tstyblo/wmctrl
>
> but I could not find any way to set the wallpaper using it.  Maybe I
> missed it.  Do you know if it can be done, and if so, how?
>
> (We can check if it installed with `executable-find'.)
>

wmctrl is not for setting wallpapers, i meant that it would be a
convenient way to check which desktop/wm is running.

>> Another point is that:
>> ("gsettings" "set" "org.gnome.desktop.background" "picture-uri" "file://%f")
>> only effects the light scheme of gnome.
>> If you want to change the wallpaper of the dark scheme
>> ("gsettings" "set" "org.gnome.desktop.background" "picture-uri-dark" "file://%f")
>> is the command.
>> 'gsettings get org.gnome.desktop.interface color-scheme'
>> can be used to check which of both schemes is active.
>> It returns either 'prefer-dark' or 'prefer-light'
>> One could think about setting the wallpaper for both themes, or
>> only for the active color-scheme.
>
> Hmm, this is interesting.  It is clear that we need to extend
> wallpaper.el to run another command first, to decide which command
> should be run in various situations.  I will look into it.
>
>> I can check KDE later, but I don't expect wgb or swaybg to work there.

I'll include that later today (i'm on a train back home at the moment)

>
> That will be much appreciated.

>
> Thanks for all of the above, this is very useful.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-17 12:00               ` Felix
@ 2022-09-17 17:48                 ` Stefan Kangas
  2022-09-18 11:16                   ` Felix
  2022-09-18 22:19                   ` Felix
  0 siblings, 2 replies; 35+ messages in thread
From: Stefan Kangas @ 2022-09-17 17:48 UTC (permalink / raw)
  To: Felix, Sean Whitton, 57781

Felix <felix.dick@web.de> writes:

> On a fresh debian install with
> - gnome-shell:
> $XDG_CURRENT_DESKTOP is not set (i will check on arch linux later today)

This is surprising to me.  But I guess that variable should be set by
something like "gdm"?  Is that what you used?

>> If you like, perhaps you could send the output of the `env' command to
>> me privately.  Just edit out anything sensitive before sending it.
>
> I will do that later today aswell.
[...]
>>> I can check KDE later, but I don't expect wgb or swaybg to work there.
>
> I'll include that later today (i'm on a train back home at the moment)

Excellent, thank you!





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-17  6:14               ` Thierry Volpiatto
@ 2022-09-17 18:34                 ` Stefan Kangas
  2022-09-18  3:33                   ` Thierry Volpiatto
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-09-17 18:34 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: 57781, Felix, Sean Whitton

Thierry Volpiatto <thievol@posteo.net> writes:

> The xconf-query command is detected and working fine, thanks.
> Perhaps you can store last wallpapers used and use it as default for the
> read-file-name?
> Something like this:

Hmm, maybe.  But shouldn't the default rather be something like
`ffap-file-at-point'?  Or maybe even

    (cons (ffap-file-at-point) wallpaper-last-used)

?

> diff --git a/lisp/image/wallpaper.el b/lisp/image/wallpaper.el
> index 4572a8c0628..8426fc4b126 100644
> --- a/lisp/image/wallpaper.el
> +++ b/lisp/image/wallpaper.el
> @@ -227,6 +227,8 @@ See also `wallpaper-default-height'.")
>  This is only used when it can't be detected automatically.
>  See also `wallpaper-default-width'.")
>
> +(defvar wallpaper-last-used nil)
> +
>  (defun wallpaper--get-height-or-width (desc fun default)
>    (if (display-graphic-p)
>        (funcall fun)
> @@ -246,7 +248,10 @@ options `wallpaper-command' and `wallpaper-command-args'.
>  On MS-Windows and Haiku systems, no external command is needed,
>  so the value of `wallpaper-commands' is ignored."
>    (interactive (list (read-file-name "Set desktop background to: "
> -                                     default-directory nil t nil
> +                                     (and wallpaper-last-used
> +                                          (file-name-directory
> +                                           (car (last wallpaper-last-used))))
> +                                     wallpaper-last-used t nil
>                                       (lambda (fn)
>                                         (or (file-directory-p fn)
>                                             (string-match (image-file-name-regexp) fn))))))
> @@ -257,6 +262,7 @@ so the value of `wallpaper-commands' is ignored."
>    (unless (file-readable-p file)
>      (error "File is not readable: %s" file))
>    (wallpaper-debug "Using image %S:" file)
> +  (push file wallpaper-last-used)
>    (cond ((eq system-type 'windows-nt)
>           (w32-set-wallpaper file))
>          ((featurep 'haiku)





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-17 18:34                 ` Stefan Kangas
@ 2022-09-18  3:33                   ` Thierry Volpiatto
  0 siblings, 0 replies; 35+ messages in thread
From: Thierry Volpiatto @ 2022-09-18  3:33 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 57781, Felix, Sean Whitton

[-- Attachment #1: Type: text/plain, Size: 2379 bytes --]


Stefan Kangas <stefankangas@gmail.com> writes:

> Thierry Volpiatto <thievol@posteo.net> writes:
>
>> The xconf-query command is detected and working fine, thanks.
>> Perhaps you can store last wallpapers used and use it as default for the
>> read-file-name?
>> Something like this:
>
> Hmm, maybe.  But shouldn't the default rather be something like
> `ffap-file-at-point'?  Or maybe even
>
>     (cons (ffap-file-at-point) wallpaper-last-used)

This assume you have an image at point, if not when cycling with M-n in
defaults the first M-n hit will show a non filename i.e. your current
buffer-file-name.

>> diff --git a/lisp/image/wallpaper.el b/lisp/image/wallpaper.el
>> index 4572a8c0628..8426fc4b126 100644
>> --- a/lisp/image/wallpaper.el
>> +++ b/lisp/image/wallpaper.el
>> @@ -227,6 +227,8 @@ See also `wallpaper-default-height'.")
>>  This is only used when it can't be detected automatically.
>>  See also `wallpaper-default-width'.")
>>
>> +(defvar wallpaper-last-used nil)
>> +
>>  (defun wallpaper--get-height-or-width (desc fun default)
>>    (if (display-graphic-p)
>>        (funcall fun)
>> @@ -246,7 +248,10 @@ options `wallpaper-command' and `wallpaper-command-args'.
>>  On MS-Windows and Haiku systems, no external command is needed,
>>  so the value of `wallpaper-commands' is ignored."
>>    (interactive (list (read-file-name "Set desktop background to: "
>> -                                     default-directory nil t nil
>> +                                     (and wallpaper-last-used
>> +                                          (file-name-directory
>> +                                           (car (last wallpaper-last-used))))
>> +                                     wallpaper-last-used t nil
>>                                       (lambda (fn)
>>                                         (or (file-directory-p fn)
>>                                             (string-match (image-file-name-regexp) fn))))))
>> @@ -257,6 +262,7 @@ so the value of `wallpaper-commands' is ignored."
>>    (unless (file-readable-p file)
>>      (error "File is not readable: %s" file))
>>    (wallpaper-debug "Using image %S:" file)
>> +  (push file wallpaper-last-used)
>>    (cond ((eq system-type 'windows-nt)
>>           (w32-set-wallpaper file))
>>          ((featurep 'haiku)


-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-17 17:48                 ` Stefan Kangas
@ 2022-09-18 11:16                   ` Felix
  2022-09-19  9:40                     ` Stefan Kangas
  2022-09-18 22:19                   ` Felix
  1 sibling, 1 reply; 35+ messages in thread
From: Felix @ 2022-09-18 11:16 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 57781, Sean Whitton


Stefan Kangas <stefankangas@gmail.com> writes:

> Felix <felix.dick@web.de> writes:
>
>> On a fresh debian install with
>> - gnome-shell:
>> $XDG_CURRENT_DESKTOP is not set (i will check on arch linux later today)
>
> This is surprising to me.  But I guess that variable should be set by
> something like "gdm"?  Is that what you used?
>

You are right! I'm kind of used to start things from tty.
Starting gnome with gdm:
$XDG_CURRENT_DESKTOP=GNOME
$DESKTOP_SESSION=gnome
Though it's not certain that everybody who uses gnome also uses gdm,
most of the time it will be the case i guess.


>>> If you like, perhaps you could send the output of the `env' command to
>>> me privately.  Just edit out anything sensitive before sending it.
>>
>> I will do that later today aswell.
> [...]
>>>> I can check KDE later, but I don't expect wgb or swaybg to work there.
>>
>> I'll include that later today (i'm on a train back home at the moment)
>
> Excellent, thank you!





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-17 17:48                 ` Stefan Kangas
  2022-09-18 11:16                   ` Felix
@ 2022-09-18 22:19                   ` Felix
  2022-09-19  9:40                     ` Stefan Kangas
  1 sibling, 1 reply; 35+ messages in thread
From: Felix @ 2022-09-18 22:19 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 57781, Sean Whitton


Stefan Kangas <stefankangas@gmail.com> writes:

> Felix <felix.dick@web.de> writes:
>
>> On a fresh debian install with
>> - gnome-shell:
>> $XDG_CURRENT_DESKTOP is not set (i will check on arch linux later today)
>
> This is surprising to me.  But I guess that variable should be set by
> something like "gdm"?  Is that what you used?
>
>>> If you like, perhaps you could send the output of the `env' command to
>>> me privately.  Just edit out anything sensitive before sending it.
>>
>> I will do that later today aswell.
> [...]
>>>> I can check KDE later, but I don't expect wgb or swaybg to work there.
>>
>> I'll include that later today (i'm on a train back home at the moment)
>
> Excellent, thank you!

On KDE/plasma Wayland everything i tested worked with wallpaper-set.
If wbg or swaybg is installed, they are used by wallpaper-set, which is
not optimal, if they are not installed kde's internal way of
setting the wallpaper is used. That way there is no process attached to
emacs, quiting emacs doesn't remove the wallpaper (as it does with wbg
or swaybg), and there is no need to kill old wallpaper processes.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-18 11:16                   ` Felix
@ 2022-09-19  9:40                     ` Stefan Kangas
  0 siblings, 0 replies; 35+ messages in thread
From: Stefan Kangas @ 2022-09-19  9:40 UTC (permalink / raw)
  To: Felix; +Cc: 57781, Sean Whitton

Felix <felix.dick@web.de> writes:

>> This is surprising to me.  But I guess that variable should be set by
>> something like "gdm"?  Is that what you used?
>
> You are right! I'm kind of used to start things from tty.
> Starting gnome with gdm:
> $XDG_CURRENT_DESKTOP=GNOME
> $DESKTOP_SESSION=gnome
> Though it's not certain that everybody who uses gnome also uses gdm,
> most of the time it will be the case i guess.

Yes, I think we will have to assume some kind of default configurations
here, and leave the more esoteric configurations to the tinkerers
themselves to figure out.  :-)





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-18 22:19                   ` Felix
@ 2022-09-19  9:40                     ` Stefan Kangas
  2022-09-19 17:19                       ` Felix
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-09-19  9:40 UTC (permalink / raw)
  To: Felix; +Cc: 57781, Sean Whitton

Felix <felix.dick@web.de> writes:

> On KDE/plasma Wayland everything i tested worked with wallpaper-set.
> If wbg or swaybg is installed, they are used by wallpaper-set, which is
> not optimal, if they are not installed kde's internal way of
> setting the wallpaper is used. That way there is no process attached to
> emacs, quiting emacs doesn't remove the wallpaper (as it does with wbg
> or swaybg), and there is no need to kill old wallpaper processes.

Thanks.  Based on your findings, I changed the priority so that the
desktop environment specific commands will be tried first.  I think that
should make more sense in most cases.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-19  9:40                     ` Stefan Kangas
@ 2022-09-19 17:19                       ` Felix
  2022-09-19 19:16                         ` Stefan Kangas
  0 siblings, 1 reply; 35+ messages in thread
From: Felix @ 2022-09-19 17:19 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 57781, Sean Whitton


Stefan Kangas <stefankangas@gmail.com> writes:

> Felix <felix.dick@web.de> writes:
>
>> On KDE/plasma Wayland everything i tested worked with wallpaper-set.
>> If wbg or swaybg is installed, they are used by wallpaper-set, which is
>> not optimal, if they are not installed kde's internal way of
>> setting the wallpaper is used. That way there is no process attached to
>> emacs, quiting emacs doesn't remove the wallpaper (as it does with wbg
>> or swaybg), and there is no need to kill old wallpaper processes.
>
> Thanks.  Based on your findings, I changed the priority so that the
> desktop environment specific commands will be tried first.  I think that
> should make more sense in most cases.

In my private config i prepend the wallpaper-command with "setsid",
that way the process isn't attached to emacs and the wallpaper set by
wbg or swaybg will stay after closing emacs.
This is an Linux specific thing of course.
I'm not shure how it works for gnome and plasma, but i would think it
makes no difference.
Maybe that's to hacky for including it, but i thought i'll mention it anyways.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-19 17:19                       ` Felix
@ 2022-09-19 19:16                         ` Stefan Kangas
  2022-09-19 19:26                           ` Felix
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-09-19 19:16 UTC (permalink / raw)
  To: Felix; +Cc: 57781, Sean Whitton

Felix <felix.dick@web.de> writes:

> In my private config i prepend the wallpaper-command with "setsid",
> that way the process isn't attached to emacs and the wallpaper set by
> wbg or swaybg will stay after closing emacs.
> This is an Linux specific thing of course.

The command handling is already only relevant for Unix-like systems:
MS-Windows and Haiku use native APIs.  I'm not yet sure how to best
handle the above in wallpaper.el, but I'm looking into it.

I guess we could use "setsid", but in that case we might as well use
"nohup" as that command is mandated to be there by POSIX.  (AFAIU, on
FreeBSD you'd need to install the "util-linux" package to get setsid.)

> I'm not shure how it works for gnome and plasma, but i would think it
> makes no difference.

From your testing, it seems like it works without it, right?





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-19 19:16                         ` Stefan Kangas
@ 2022-09-19 19:26                           ` Felix
  2022-09-19 20:07                             ` Stefan Kangas
  0 siblings, 1 reply; 35+ messages in thread
From: Felix @ 2022-09-19 19:26 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 57781, Sean Whitton


Stefan Kangas <stefankangas@gmail.com> writes:

> Felix <felix.dick@web.de> writes:
>
>> In my private config i prepend the wallpaper-command with "setsid",
>> that way the process isn't attached to emacs and the wallpaper set by
>> wbg or swaybg will stay after closing emacs.
>> This is an Linux specific thing of course.
>
> The command handling is already only relevant for Unix-like systems:
> MS-Windows and Haiku use native APIs.  I'm not yet sure how to best
> handle the above in wallpaper.el, but I'm looking into it.
>
> I guess we could use "setsid", but in that case we might as well use
> "nohup" as that command is mandated to be there by POSIX.  (AFAIU, on
> FreeBSD you'd need to install the "util-linux" package to get setsid.)
>
>> I'm not shure how it works for gnome and plasma, but i would think it
>> makes no difference.
>
> From your testing, it seems like it works without it, right?

I don't really know what i'm doing, but
i found that it works if i replace the start-process call with:

(apply #'call-process
                wallpaper-command
                nil 0 nil
                (mapcar (lambda (arg) (format-spec arg fmt-spec))
                wallpaper-command-args))





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-19 19:26                           ` Felix
@ 2022-09-19 20:07                             ` Stefan Kangas
  2022-09-19 21:04                               ` Felix
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-09-19 20:07 UTC (permalink / raw)
  To: Felix; +Cc: 57781, Sean Whitton

Felix <felix.dick@web.de> writes:

> I don't really know what i'm doing, but
> i found that it works if i replace the start-process call with:

I'm not sure I follow.  Could you explain what wasn't working before
this change, and what started working with it?  Are we talking about
setting the wallpaper in KDE Plasma and Gnome, or something else?

> (apply #'call-process
>                 wallpaper-command
>                 nil 0 nil
>                 (mapcar (lambda (arg) (format-spec arg fmt-spec))
>                 wallpaper-command-args))

Thanks.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-19 20:07                             ` Stefan Kangas
@ 2022-09-19 21:04                               ` Felix
  0 siblings, 0 replies; 35+ messages in thread
From: Felix @ 2022-09-19 21:04 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 57781, Sean Whitton


Stefan Kangas <stefankangas@gmail.com> writes:

> Felix <felix.dick@web.de> writes:
>
>> I don't really know what i'm doing, but
>> i found that it works if i replace the start-process call with:
>
> I'm not sure I follow.  Could you explain what wasn't working before
> this change, and what started working with it?  Are we talking about
> setting the wallpaper in KDE Plasma and Gnome, or something else?
>
>> (apply #'call-process
>>                 wallpaper-command
>>                 nil 0 nil
>>                 (mapcar (lambda (arg) (format-spec arg fmt-spec))
>>                 wallpaper-command-args))
>
> Thanks.

That way the process is not attached to emacs.





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-09-14 22:51       ` Felix
  2022-09-14 23:22         ` Stefan Kangas
@ 2022-10-04  5:58         ` Stefan Kangas
       [not found]           ` <87v8owv8lc.fsf@web.de>
  1 sibling, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-10-04  5:58 UTC (permalink / raw)
  To: Felix; +Cc: 57781, Sean Whitton

[-- Attachment #1: Type: text/plain, Size: 529 bytes --]

Felix <felix.dick@web.de> writes:

> I'm switching back and forth from Xorg to wayland and I'm
> tinkering with different desktops/WMs anyways.
> I would be happy to help!
> I will try wallpaper.el with gnome tomorrow.
> If there are any things you want me
> to test, just let me know.

I believe the attached patch will fix setting the wallpaper using
swaybg/wbg.  It will prompt to kill any existing swaybg/wbg processes,
and start a new process that should survive exiting Emacs.

I would appreciate any help with testing it.

[-- Attachment #2: 0001-Fix-setting-the-wallpaper-with-swaybg-and-wbg.patch --]
[-- Type: text/x-diff, Size: 12251 bytes --]

From 26c0f54dd23ed1f76f7807ef6d59cc9a026b24ee Mon Sep 17 00:00:00 2001
From: Stefan Kangas <stefankangas@gmail.com>
Date: Tue, 4 Oct 2022 02:45:53 +0200
Subject: [PATCH] Fix setting the wallpaper with "swaybg" and "wbg"

* lisp/image/wallpaper.el (wallpaper-setter): Add 'init-action'
and 'detach' fields to structure.
(wallpaper--init-action-kill): New helper function.
(wallpaper--default-setters): Use above new fields for "swaybg" and
"wbg", to start/restart the corresponding processes as needed.
(wallpaper-default-set-function): Call 'init-action' function if
there is one.  If 'detach', use 'call-process' instead of
'start-process'.

* test/lisp/image/wallpaper-tests.el (wallpaper--find-setter)
(wallpaper--find-setter/call-predicate)
(wallpaper--find-setter/set-current-setter)
(wallpaper-set/runs-command, wallpaper-set/runs-command/detach)
(wallpaper-set/calls-init-action)
(wallpaper-set/calls-wallpaper-set-function): New tests.
---
 lisp/image/wallpaper.el            | 100 ++++++++++++++++++++---------
 test/lisp/image/wallpaper-tests.el |  95 +++++++++++++++++++++++++++
 2 files changed, 166 insertions(+), 29 deletions(-)

diff --git a/lisp/image/wallpaper.el b/lisp/image/wallpaper.el
index e23b65d616..2912576561 100644
--- a/lisp/image/wallpaper.el
+++ b/lisp/image/wallpaper.el
@@ -26,7 +26,8 @@
 ;; desktop background.
 ;;
 ;; On GNU/Linux and other Unix-like systems, it uses an external
-;; command to set the desktop background.
+;; command to set the desktop background.  This should work seamlessly
+;; on both X and Wayland.
 ;;
 ;; Finding an external command to use is obviously a bit tricky to get
 ;; right, as there is no lack of platforms, window managers, desktop
@@ -94,9 +95,11 @@ wallpaper--use-default-set-function-p
                   (args (if (or (listp args-raw) (symbolp args-raw))
                             args-raw
                           (string-split args-raw)))
-                  (predicate (plist-get rest-plist :predicate))))
+                  (predicate (plist-get rest-plist :predicate))
+                  (init-action (plist-get rest-plist :init-action))
+                  (detach (plist-get rest-plist :detach))))
                (:copier wallpaper-setter-copy))
-  "Structure containing a command to set the wallpaper.
+  "Structure containing a method to set the wallpaper.
 
 NAME is a description of the setter (e.g. the name of the Desktop
 Environment).
@@ -106,15 +109,41 @@ wallpaper--use-default-set-function-p
 ARGS is the default list of command line arguments for COMMAND.
 
 PREDICATE is a function that will be called without any arguments
-and returns non-nil if this setter should be used."
+and returns non-nil if this setter should be used.
+
+INIT-ACTION is a function that will be called without any
+arguments before trying to set the wallpaper.
+
+DETACH, if non-nil, means that the wallpaper process should
+continue running even after exiting Emacs."
   name
   command
   args
-  (predicate #'always))
+  (predicate #'always)
+  init-action
+  detach)
 
 ;;;###autoload
 (put 'wallpaper-setter-create 'lisp-indent-function 1)
 
+(defun wallpaper--init-action-kill (process-name)
+  "Return kill function for `init-action' of a `wallpaper-setter' structure.
+The returned function kills any process named PROCESS-NAME owned
+by the current effective user id."
+  (lambda ()
+    (when-let ((procs
+                (seq-filter (lambda (p) (let-alist p
+                                     (and (= .euid (user-uid))
+                                          (equal .comm process-name))))
+                            (mapcar (lambda (pid)
+                                      (cons (cons 'pid pid)
+                                            (process-attributes pid)))
+                                    (list-system-processes)))))
+      (dolist (proc procs)
+        (let-alist proc
+          (when (y-or-n-p (format "Kill \"%s\" process with PID %d?" .comm .pid))
+            (signal-process .pid 'TERM)))))))
+
 (defmacro wallpaper--default-methods-create (&rest items)
   "Helper macro for defining `wallpaper--default-setters'."
   (cons 'list
@@ -198,12 +227,16 @@ wallpaper--default-setters
     "swaybg" "-o * -i %f -m fill"
     :predicate (lambda ()
                  (and (getenv "WAYLAND_DISPLAY")
-                      (getenv "SWAYSOCK"))))
+                      (getenv "SWAYSOCK")))
+    :init-action (wallpaper--init-action-kill "swaybg")
+    :detach t)
 
    ("wbg"
     "wbg" "%f"
     :predicate (lambda ()
-                 (getenv "WAYLAND_DISPLAY")))
+                 (getenv "WAYLAND_DISPLAY"))
+    :init-action (wallpaper--init-action-kill "wbg")
+    :detach t)
 
    ;; X general.
    ("GraphicsMagick"
@@ -257,7 +290,8 @@ wallpaper--current-setter
 
 (defun wallpaper--find-setter ()
   (when (wallpaper--use-default-set-function-p)
-    (or wallpaper--current-setter
+    (or (and (wallpaper-setter-p wallpaper--current-setter)
+             wallpaper--current-setter)
         (setq wallpaper--current-setter
               (catch 'found
                 (dolist (setter wallpaper--default-setters)
@@ -482,28 +516,36 @@ wallpaper-default-set-function
          (real-args (mapcar (lambda (arg) (wallpaper--format-arg arg file))
                             args))
          (bufname (format " *wallpaper-%s*" (random)))
-         (process
-          (and wallpaper-command
-               (apply #'start-process "set-wallpaper" bufname
-                      wallpaper-command real-args))))
-    (unless wallpaper-command
-      (error "Couldn't find a suitable command for setting the wallpaper"))
+         (setter (and (wallpaper-setter-p wallpaper--current-setter)
+                      (equal (wallpaper-setter-command wallpaper--current-setter)
+                             wallpaper-command)
+                      wallpaper--current-setter))
+         (init-action (and setter (wallpaper-setter-init-action setter)))
+         (detach (and setter (wallpaper-setter-detach setter)))
+         process)
+    (when init-action
+      (funcall init-action))
     (wallpaper-debug "Using command: \"%s %s\""
-            wallpaper-command (string-join real-args " "))
-    (setf (process-sentinel process)
-          (lambda (process status)
-            (unwind-protect
-                (if (and (eq (process-status process) 'exit)
-                         (zerop (process-exit-status process)))
-                    (message "Desktop wallpaper changed to %s"
-                             (abbreviate-file-name file))
-                  (message "command \"%s %s\": %S"
-                           (string-join (process-command process) " ")
-                           (string-replace "\n" "" status)
-                           (with-current-buffer (process-buffer process)
-                             (string-clean-whitespace (buffer-string)))))
-              (ignore-errors
-                (kill-buffer (process-buffer process))))))
+                     wallpaper-command (string-join real-args " "))
+    (if detach
+        (apply #'call-process wallpaper-command nil 0 nil real-args)
+      (setq process
+            (apply #'start-process "set-wallpaper" bufname
+                   wallpaper-command real-args))
+      (setf (process-sentinel process)
+            (lambda (process status)
+              (unwind-protect
+                  (if (and (eq (process-status process) 'exit)
+                           (zerop (process-exit-status process)))
+                      (message "Desktop wallpaper changed to %s"
+                               (abbreviate-file-name file))
+                    (message "command \"%s %s\": %S"
+                             (string-join (process-command process) " ")
+                             (string-replace "\n" "" status)
+                             (with-current-buffer (process-buffer process)
+                               (string-clean-whitespace (buffer-string)))))
+                (ignore-errors
+                  (kill-buffer (process-buffer process)))))))
     process))
 
 ;;;###autoload
diff --git a/test/lisp/image/wallpaper-tests.el b/test/lisp/image/wallpaper-tests.el
index 52011fe797..cb6818f8c1 100644
--- a/test/lisp/image/wallpaper-tests.el
+++ b/test/lisp/image/wallpaper-tests.el
@@ -23,6 +23,101 @@
 (require 'ert-x)
 (require 'wallpaper)
 
+(ert-deftest wallpaper--find-setter ()
+  (skip-unless (executable-find "touch"))
+  (let (wallpaper--current-setter
+        (wallpaper--default-setters
+         (wallpaper--default-methods-create
+          ("touch" "touch" "/tmp/touched"))))
+    (should (wallpaper--find-setter))))
+
+(ert-deftest wallpaper--find-setter/call-predicate ()
+  (skip-unless (executable-find "touch"))
+  (let* ( wallpaper--current-setter called
+          (wallpaper--default-setters
+           (wallpaper--default-methods-create
+            ("touch" "touch" "/tmp/touched"
+             :predicate (lambda () (setq called t))))))
+    (should-not called)
+    (wallpaper--find-setter)
+    (should called)))
+
+(ert-deftest wallpaper--find-setter/set-current-setter ()
+  (skip-unless (executable-find "touch"))
+  (let (wallpaper--current-setter
+        (wallpaper--default-setters
+         (wallpaper--default-methods-create
+          ("touch" "touch" "/tmp/touched"))))
+    (wallpaper--find-setter)
+    (should wallpaper--current-setter)))
+
+(ert-deftest wallpaper-set/runs-command ()
+  (skip-unless (executable-find "touch"))
+  (ert-with-temp-file fil-jpg
+    :suffix ".jpg"
+    (ert-with-temp-file fil
+      (let* ( wallpaper--current-setter
+              (wallpaper--default-setters
+               (wallpaper--default-methods-create
+                ("touch" "touch" fil)))
+              (wallpaper-command (wallpaper--find-command))
+              (wallpaper-command-args (wallpaper--find-command-args)))
+        (delete-file fil)
+        (let ((process (wallpaper-set fil-jpg)))
+          (while (process-live-p process)
+            (sit-for 0.001))
+          ;; Touch has recreated the file:
+          (should (file-exists-p fil)))))))
+
+(ert-deftest wallpaper-set/runs-command/detach ()
+  (skip-unless (executable-find "touch"))
+  (ert-with-temp-file fil-jpg
+    :suffix ".jpg"
+    (ert-with-temp-file fil
+      (let* ( wallpaper--current-setter
+              (wallpaper--default-setters
+               (wallpaper--default-methods-create
+                ("touch" "touch" fil
+                 :detach t)))
+              (wallpaper-command (wallpaper--find-command))
+              (wallpaper-command-args (wallpaper--find-command-args)))
+        (delete-file fil)
+        (wallpaper-set fil-jpg)
+        (while (not (file-exists-p fil))
+          (sit-for 0.001))
+        ;; Touch has recreated the file:
+        (should (file-exists-p fil))))))
+
+(ert-deftest wallpaper-set/calls-init-action ()
+  (skip-unless (executable-find "touch"))
+  (ert-with-temp-file fil-jpg
+    :suffix ".jpg"
+    (ert-with-temp-file fil
+      (let* ( wallpaper--current-setter called
+              (wallpaper--default-setters
+               (wallpaper--default-methods-create
+                ("touch" "touch" fil
+                 :init-action (lambda () (setq called t)))))
+              (wallpaper-command (wallpaper--find-command))
+              (wallpaper-command-args (wallpaper--find-command-args)))
+        (should (functionp (wallpaper-setter-init-action wallpaper--current-setter)))
+        (wallpaper-set fil-jpg)
+        (should called)))))
+
+(ert-deftest wallpaper-set/calls-wallpaper-set-function ()
+  (skip-unless (executable-find "touch"))
+  (ert-with-temp-file fil-jpg
+    :suffix ".jpg"
+    (let* ( wallpaper--current-setter called
+            (wallpaper--default-setters
+             (wallpaper--default-methods-create
+              ("touch" "touch" "foo")))
+            (wallpaper-set-function
+             (lambda (file) (setq called file))))
+      (wallpaper--find-setter)
+      (wallpaper-set fil-jpg)
+      (should (equal called fil-jpg)))))
+
 (ert-deftest wallpaper--find-command/return-string ()
   (should (or (not (wallpaper--find-command))
               (stringp (wallpaper--find-command)))))
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
       [not found]           ` <87v8owv8lc.fsf@web.de>
@ 2022-10-07  9:08             ` Stefan Kangas
  2022-10-07 19:55               ` Felix
  0 siblings, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-10-07  9:08 UTC (permalink / raw)
  To: Felix; +Cc: 57781, Sean Whitton

[Please use "Reply to all" so that the discussion
 is recorded in the bug tracker.]

Felix <felix.dick@web.de> writes:

>> [2. text/x-diff; 0001-Fix-setting-the-wallpaper-with-swaybg-and-wbg.patch]...
>
> It doesn't work on my side.
> Here is the debug log
>
> Debugger entered--Lisp error: (wrong-type-argument numberp nil)
>   number-to-string(nil)
>   (and (fboundp 'x-window-property) (display-graphic-p) (number-to-string (or (x-window-property "_NET_CURRENT_DESKTOP" nil "CARDINAL" 0 nil t) (x-window-property "WIN_WORKSPACE" nil "CARDINAL" 0 nil t))))
>   (or (and (fboundp 'x-window-property) (display-graphic-p) (number-to-string (or (x-window-property "_NET_CURRENT_DESKTOP" nil "CARDINAL" 0 nil t) (x-window-property "WIN_WORKSPACE" nil "CARDINAL" 0 nil t)))) "0")
>   (cons 87 (or (and (fboundp 'x-window-property) (display-graphic-p) (number-to-string (or (x-window-property "_NET_CURRENT_DESKTOP" nil "CARDINAL" 0 nil t) (x-window-property "WIN_WORKSPACE" nil "CARDINAL" 0 nil t)))) "0"))
>   (list (cons 102 (expand-file-name file)) (cons 70 (mapconcat #'url-hexify-string (file-name-split file) "/")) (cons 104 #'(lambda nil (wallpaper--get-height-or-width "height" #'display-pixel-height wallpaper-default-height))) (cons 119 #'(lambda nil (wallpaper--get-height-or-width "width" #'display-pixel-width wallpaper-default-width))) (cons 83 (let ((display (frame-parameter (selected-frame) 'display))) (if (and display (string-match ":[0-9]+\\.\\([0-9]+\\)\\'" display)) (match-string 1 display) "0"))) (cons 77 #'wallpaper--x-monitor-name) (cons 87 (or (and (fboundp 'x-window-property) (display-graphic-p) (number-to-string (or (x-window-property "_NET_CURRENT_DESKTOP" nil "CARDINAL" 0 nil t) (x-window-property "WIN_WORKSPACE" nil "CARDINAL" 0 nil t)))) "0")))
>   (format-spec format (list (cons 102 (expand-file-name file)) (cons 70 (mapconcat #'url-hexify-string (file-name-split file) "/")) (cons 104 #'(lambda nil (wallpaper--get-height-or-width "height" #'display-pixel-height wallpaper-default-height))) (cons 119 #'(lambda nil (wallpaper--get-height-or-width "width" #'display-pixel-width wallpaper-default-width))) (cons 83 (let ((display (frame-parameter (selected-frame) 'display))) (if (and display (string-match ":[0-9]+\\.\\([0-9]+\\)\\'" display)) (match-string 1 display) "0"))) (cons 77 #'wallpaper--x-monitor-name) (cons 87 (or (and (fboundp 'x-window-property) (display-graphic-p) (number-to-string (or (x-window-property "_NET_CURRENT_DESKTOP" nil "CARDINAL" 0 nil t) (x-window-property "WIN_WORKSPACE" nil "CARDINAL" 0 nil t)))) "0"))))
>   wallpaper--format-arg("%f" "~/wallpapers/bloom.jpg")
>   (closure ((args "%f") (file . "~/wallpapers/bloom.jpg") cl-struct-wallpaper-setter-tags t) (arg) (wallpaper--format-arg arg file))("%f")
>   mapcar((closure ((args "%f") (file . "~/wallpapers/bloom.jpg") cl-struct-wallpaper-setter-tags t) (arg) (wallpaper--format-arg arg file)) ("%f"))
>   (let* ((args (if (functionp wallpaper-command-args) (funcall wallpaper-command-args) wallpaper-command-args)) (real-args (mapcar #'(lambda (arg) (wallpaper--format-arg arg file)) args)) (bufname (format " *wallpaper-%s*" (random))) (setter (and (progn (and (memq (type-of wallpaper--current-setter) cl-struct-wallpaper-setter-tags) t)) (equal (progn (or (progn ...) (signal ... ...)) (aref wallpaper--current-setter 2)) wallpaper-command) wallpaper--current-setter)) (init-action (and setter (progn (or (progn (and ... t)) (signal 'wrong-type-argument (list ... setter))) (aref setter 5)))) (detach (and setter (progn (or (progn (and ... t)) (signal 'wrong-type-argument (list ... setter))) (aref setter 6)))) process) (if init-action (progn (funcall init-action))) (wallpaper-debug "Using command: \"%s %s\"" wallpaper-command (string-join real-args " ")) (if detach (apply #'call-process wallpaper-command nil 0 nil real-args) (setq process (apply #'start-process "set-wallpaper" bufname wallpaper-command real-args)) (let* ((v process)) (set-process-sentinel v #'(lambda (process status) (unwind-protect (if ... ... ...) (condition-case nil ... ...)))))) process)
>   wallpaper-default-set-function("~/wallpapers/bloom.jpg")
>   funcall(wallpaper-default-set-function "~/wallpapers/bloom.jpg")
>   wallpaper-set("~/wallpapers/bloom.jpg")
>   (progn (wallpaper-set "~/wallpapers/bloom.jpg"))

Thanks.  This error was unrelated to the patch, but should now be fixed
on the master branch (commit 55bd6a5cd4).  Could you please pull latest
master, re-apply the patch, and then try again?





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-10-07  9:08             ` Stefan Kangas
@ 2022-10-07 19:55               ` Felix
  2022-10-07 20:16                 ` Stefan Kangas
  0 siblings, 1 reply; 35+ messages in thread
From: Felix @ 2022-10-07 19:55 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 57781, Sean Whitton


Stefan Kangas <stefankangas@gmail.com> writes:

> [Please use "Reply to all" so that the discussion
>  is recorded in the bug tracker.]
>
> Felix <felix.dick@web.de> writes:
>
>>> [2. text/x-diff; 0001-Fix-setting-the-wallpaper-with-swaybg-and-wbg.patch]...
>>
>> It doesn't work on my side.
>> Here is the debug log
>>
>> Debugger entered--Lisp error: (wrong-type-argument numberp nil)
>>   number-to-string(nil)
>>   (and (fboundp 'x-window-property) (display-graphic-p) (number-to-string (or (x-window-property "_NET_CURRENT_DESKTOP" nil "CARDINAL" 0 nil t) (x-window-property "WIN_WORKSPACE" nil "CARDINAL" 0 nil t))))
>>   (or (and (fboundp 'x-window-property) (display-graphic-p) (number-to-string (or (x-window-property "_NET_CURRENT_DESKTOP" nil "CARDINAL" 0 nil t) (x-window-property "WIN_WORKSPACE" nil "CARDINAL" 0 nil t)))) "0")
>>   (cons 87 (or (and (fboundp 'x-window-property) (display-graphic-p) (number-to-string (or (x-window-property "_NET_CURRENT_DESKTOP" nil "CARDINAL" 0 nil t) (x-window-property "WIN_WORKSPACE" nil "CARDINAL" 0 nil t)))) "0"))
>>   (list (cons 102 (expand-file-name file)) (cons 70 (mapconcat #'url-hexify-string (file-name-split file) "/")) (cons 104 #'(lambda nil (wallpaper--get-height-or-width "height" #'display-pixel-height wallpaper-default-height))) (cons 119 #'(lambda nil (wallpaper--get-height-or-width "width" #'display-pixel-width wallpaper-default-width))) (cons 83 (let ((display (frame-parameter (selected-frame) 'display))) (if (and display (string-match ":[0-9]+\\.\\([0-9]+\\)\\'" display)) (match-string 1 display) "0"))) (cons 77 #'wallpaper--x-monitor-name) (cons 87 (or (and (fboundp 'x-window-property) (display-graphic-p) (number-to-string (or (x-window-property "_NET_CURRENT_DESKTOP" nil "CARDINAL" 0 nil t) (x-window-property "WIN_WORKSPACE" nil "CARDINAL" 0 nil t)))) "0")))
>>   (format-spec format (list (cons 102 (expand-file-name file)) (cons 70 (mapconcat #'url-hexify-string (file-name-split file) "/")) (cons 104 #'(lambda nil (wallpaper--get-height-or-width "height" #'display-pixel-height wallpaper-default-height))) (cons 119 #'(lambda nil (wallpaper--get-height-or-width "width" #'display-pixel-width wallpaper-default-width))) (cons 83 (let ((display (frame-parameter (selected-frame) 'display))) (if (and display (string-match ":[0-9]+\\.\\([0-9]+\\)\\'" display)) (match-string 1 display) "0"))) (cons 77 #'wallpaper--x-monitor-name) (cons 87 (or (and (fboundp 'x-window-property) (display-graphic-p) (number-to-string (or (x-window-property "_NET_CURRENT_DESKTOP" nil "CARDINAL" 0 nil t) (x-window-property "WIN_WORKSPACE" nil "CARDINAL" 0 nil t)))) "0"))))
>>   wallpaper--format-arg("%f" "~/wallpapers/bloom.jpg")
>>   (closure ((args "%f") (file . "~/wallpapers/bloom.jpg") cl-struct-wallpaper-setter-tags t) (arg) (wallpaper--format-arg arg file))("%f")
>>   mapcar((closure ((args "%f") (file . "~/wallpapers/bloom.jpg") cl-struct-wallpaper-setter-tags t) (arg) (wallpaper--format-arg arg file)) ("%f"))
>>   (let* ((args (if (functionp wallpaper-command-args) (funcall wallpaper-command-args) wallpaper-command-args)) (real-args (mapcar #'(lambda (arg) (wallpaper--format-arg arg file)) args)) (bufname (format " *wallpaper-%s*" (random))) (setter (and (progn (and (memq (type-of wallpaper--current-setter) cl-struct-wallpaper-setter-tags) t)) (equal (progn (or (progn ...) (signal ... ...)) (aref wallpaper--current-setter 2)) wallpaper-command) wallpaper--current-setter)) (init-action (and setter (progn (or (progn (and ... t)) (signal 'wrong-type-argument (list ... setter))) (aref setter 5)))) (detach (and setter (progn (or (progn (and ... t)) (signal 'wrong-type-argument (list ... setter))) (aref setter 6)))) process) (if init-action (progn (funcall init-action))) (wallpaper-debug "Using command: \"%s %s\"" wallpaper-command (string-join real-args " ")) (if detach (apply #'call-process wallpaper-command nil 0 nil real-args) (setq process (apply #'start-process "set-wallpaper" bufname wallpaper-command real-args)) (let* ((v process)) (set-process-sentinel v #'(lambda (process status) (unwind-protect (if ... ... ...) (condition-case nil ... ...)))))) process)
>>   wallpaper-default-set-function("~/wallpapers/bloom.jpg")
>>   funcall(wallpaper-default-set-function "~/wallpapers/bloom.jpg")
>>   wallpaper-set("~/wallpapers/bloom.jpg")
>>   (progn (wallpaper-set "~/wallpapers/bloom.jpg"))
>
> Thanks.  This error was unrelated to the patch, but should now be fixed
> on the master branch (commit 55bd6a5cd4).  Could you please pull latest
> master, re-apply the patch, and then try again?

Now it works!
Nice one!





^ permalink raw reply	[flat|nested] 35+ messages in thread

* bug#57781: missing wallpaper command
  2022-10-07 19:55               ` Felix
@ 2022-10-07 20:16                 ` Stefan Kangas
  0 siblings, 0 replies; 35+ messages in thread
From: Stefan Kangas @ 2022-10-07 20:16 UTC (permalink / raw)
  To: Felix; +Cc: 57781, Sean Whitton

close 57781 29.1
thanks

Felix <felix.dick@web.de> writes:

> Now it works!
> Nice one!

Great!  Thanks for testing, I've pushed this to master (commit
5e83c0117e).  I'm consequently closing this bug report.

If you find any more issues, please open a new bug report.





^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2022-10-07 20:16 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-13 20:20 bug#57781: missing wallpaper command Felix
2022-09-14  5:41 ` Stefan Kangas
2022-09-14 17:00   ` Sean Whitton
2022-09-14 22:51     ` Stefan Kangas
2022-09-14 22:51       ` Felix
2022-09-14 23:22         ` Stefan Kangas
2022-09-15  9:47           ` Felix
2022-09-16 21:09             ` Stefan Kangas
2022-09-17 12:00               ` Felix
2022-09-17 17:48                 ` Stefan Kangas
2022-09-18 11:16                   ` Felix
2022-09-19  9:40                     ` Stefan Kangas
2022-09-18 22:19                   ` Felix
2022-09-19  9:40                     ` Stefan Kangas
2022-09-19 17:19                       ` Felix
2022-09-19 19:16                         ` Stefan Kangas
2022-09-19 19:26                           ` Felix
2022-09-19 20:07                             ` Stefan Kangas
2022-09-19 21:04                               ` Felix
2022-09-15 10:37           ` Felix
2022-09-16 21:09             ` Stefan Kangas
2022-09-16 15:50           ` Thierry Volpiatto
2022-09-16 20:52             ` Stefan Kangas
2022-09-17  6:14               ` Thierry Volpiatto
2022-09-17 18:34                 ` Stefan Kangas
2022-09-18  3:33                   ` Thierry Volpiatto
2022-10-04  5:58         ` Stefan Kangas
     [not found]           ` <87v8owv8lc.fsf@web.de>
2022-10-07  9:08             ` Stefan Kangas
2022-10-07 19:55               ` Felix
2022-10-07 20:16                 ` Stefan Kangas
2022-09-14 23:25       ` Sean Whitton
2022-09-14 13:50 ` bug#57781: wbg " Felix
2022-09-14 16:27   ` Stefan Kangas
2022-09-14 20:01     ` Felix
2022-09-14 23:06       ` Stefan Kangas

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).