Subject: Re: bug#48220: [PATCH] gnu: xfce4-session: Add xset to propagated-inputs.

From: Brendan Tildesley <[email-masked]>
Date: Thu, 6 May 2021 04:38:58 +0200 (CEST)

> On 05/05/2021 3:23 PM Ludovic Courtès <[email-masked]> wrote:
> 
>  
> Hi Brendan,
> 
> Brendan Tildesley <[email-masked]> skribis:
> 
> > * gnu/packages/xfce.scm (xfce4-session):[propagated-inputs]: Add xset so
> > that xflock4 can turn off the monitor.
> 
> Can’t we instead patch ‘scripts/xflock4’ so that it refers to ‘xset’ by
> its absolute file name?
> 

I can. It felt weird just patching one command and not others though.

> However, my understanding is that the xset code is already a fallback:

> 
> --8<---------------cut here---------------start------------->8---
> # else run another access locking utility, if installed
> for lock_cmd in \
>   "xlock -mode blank" \
>   "slock"
>   do
>     set -- $lock_cmd
>     if command -v -- $1 >/dev/null 2>&1; then
>         $lock_cmd >/dev/null 2>&1 &
> 	# turn off display backlight:
> 	xset dpms force off
>         exit
>     fi
> done
> --8<---------------cut here---------------end--------------->8---
> 
> Probably we should ensure the first ‘for’ loop works as expected.
> Perhaps we need to replace ‘xfce4-screensaver-command’ by its absolute
> file name there.
> 

Currently xfce4-screensaver is not installed in the xfce package at all by default,
so it isn't used. I could add it, but for me it was glitchy/flickering and I would keep 
clearing the password as I was entering it so I couldn't log back in. It even does it
in a VM. I do have a recent amd graphics card with proprietary linux though, my computer
can't boot otherwise :(.

If you run guix environment --ad-hoc xfce4-screensaver
then
 xfce4-screensaver &; xfce4-screensaver-command --lock
does it work for you?

I'm not sure what is best, should we be maximal and include xfce4-screensaver in the xfce
package, or be minimal and make people have to install it manually?
> WDYT?
> Thanks,
> Ludo’.

From e1e968f21374b2c125d1fc1348a531f16fac6b4d Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <[email-masked]>
Date: Tue, 27 Apr 2021 15:34:50 +1000
Subject: [PATCH] gnu: xfce4-session: Add xset to propagated-inputs.

* gnu/packages/xfce.scm (xfce4-session):[propagated-inputs]: Add xset so
that xflock4 can turn off the monitor.
---
 gnu/packages/xfce.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index 9655d8ccf7..f1e40a94b8 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -718,6 +718,8 @@ your system in categories, so you can quickly find and launch them.")
        ("libsm" ,libsm)
        ("libwnck" ,libwnck)
        ("libxfce4ui" ,libxfce4ui)))
+    (propagated-inputs
+     `(("xset" ,xset)))
     (home-page "https://www.xfce.org/")
     (synopsis "Xfce session manager")
     (description
-- 
2.31.1

From ed66cf50a3b9294effc8bbae04b0f2564bd55c10 Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <[email-masked]>
Date: Thu, 6 May 2021 12:34:55 +1000
Subject: [PATCH] gnu: xfce4-session: Allow xflock4 to use xset.

* gnu/packages/xfce.scm (xfce4-session):
[inputs]: Add xset.
[arguments]: Add a phase to use exact store path to xset in xflock4.
---
 gnu/packages/xfce.scm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index 8aa2770ee8..164631cf4d 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -707,7 +707,13 @@ your system in categories, so you can quickly find and launch them.")
        (list (string-append "--with-xsession-prefix=" %output))
        ;; Disable icon cache update.
        #:make-flags
-       '("gtk_update_icon_cache=true")))
+       '("gtk_update_icon_cache=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-xflock
+           (lambda _
+             (substitute* "scripts/xflock4"
+               (("xset") (which "xset"))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)))
@@ -717,7 +723,8 @@ your system in categories, so you can quickly find and launch them.")
        ("polkit" ,polkit)
        ("libsm" ,libsm)
        ("libwnck" ,libwnck)
-       ("libxfce4ui" ,libxfce4ui)))
+       ("libxfce4ui" ,libxfce4ui)
+       ("xset" ,xset)))
     (home-page "https://www.xfce.org/")
     (synopsis "Xfce session manager")
     (description
-- 
2.31.1