GNU bug report logs -
#62107
[PATCH] home: services: Add home-unclutter-service-type.
Previous Next
Reported by: conses <contact <at> conses.eu>
Date: Fri, 10 Mar 2023 22:17:03 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 62107 in the body.
You can then email your comments to 62107 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#62107
; Package
guix-patches
.
(Fri, 10 Mar 2023 22:17:03 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
conses <contact <at> conses.eu>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Fri, 10 Mar 2023 22:17:03 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* gnu/home/services/xdisorg.scm: New file.
---
gnu/home/services/xdisorg.scm | 72 +++++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
create mode 100644 gnu/home/services/xdisorg.scm
diff --git a/gnu/home/services/xdisorg.scm b/gnu/home/services/xdisorg.scm
new file mode 100644
index 0000000000..02c538ff9f
--- /dev/null
+++ b/gnu/home/services/xdisorg.scm
@@ -0,0 +1,72 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2023 conses <contact <at> conses.eu>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu home services xdisorg)
+ #:use-module (gnu home services)
+ #:use-module (gnu home services shepherd)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu services configuration)
+ #:use-module (guix packages)
+ #:use-module (guix gexp)
+ #:export (home-unclutter-configuration
+ home-unclutter-service-type))
+
+(define-configuration/no-serialization home-unclutter-configuration
+ (unclutter
+ (package unclutter)
+ "The @code{unclutter} package to use.")
+ (seconds
+ (integer 5)
+ "The number of idle seconds to wait to remove the cursor."))
+
+(define (home-unclutter-shepherd-service config)
+ (list
+ (shepherd-service
+ (provision '(unclutter))
+ (requirement '())
+ (one-shot? #t)
+ (start #~(make-forkexec-constructor
+ (list
+ #$(file-append
+ (home-unclutter-configuration-unclutter config)
+ "/bin/unclutter")
+ "-idle"
+ (number->string
+ #$(home-unclutter-configuration-seconds config)))
+ #:log-file (string-append
+ (or (getenv "XDG_LOG_HOME")
+ (format #f "~a/.local/var/log"
+ (getenv "HOME")))
+ "/unclutter.log"))))))
+
+(define (home-unclutter-profile-service config)
+ (list (home-unclutter-configuration-unclutter config)))
+
+(define home-unclutter-service-type
+ (service-type
+ (name 'home-unclutter)
+ (extensions
+ (list
+ (service-extension
+ home-profile-service-type
+ home-unclutter-profile-service)
+ (service-extension
+ home-shepherd-service-type
+ home-unclutter-shepherd-service)))
+ (default-value (home-unclutter-configuration))
+ (description "Set up an unclutter daemon.")))
--
2.39.1
--
Best regards,
conses
Information forwarded
to
guix-patches <at> gnu.org
:
bug#62107
; Package
guix-patches
.
(Mon, 13 Mar 2023 14:04:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 62107 <at> debbugs.gnu.org (full text, mbox):
Hi,
conses <contact <at> conses.eu> skribis:
> * gnu/home/services/xdisorg.scm: New file.
Could you (1) add this file to ‘gnu/local.mk’, and (2) document it in
‘doc/guix.texi’ (again: a few introductory lines, an example, and the
reference)?
> + (description "Set up an unclutter daemon.")))
Could you expand it a bit? For example:
Run the unclutter daemon, which, on systems using the Xorg graphical
display server, automatically hides the cursors after a user-defined
timeout has expired.
TIA,
Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#62107
; Package
guix-patches
.
(Tue, 14 Mar 2023 12:36:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 62107 <at> debbugs.gnu.org (full text, mbox):
Ludovic Courtès <ludo <at> gnu.org> writes:
> Hi,
>
> conses <contact <at> conses.eu> skribis:
>
>> * gnu/home/services/xdisorg.scm: New file.
>
> Could you (1) add this file to ‘gnu/local.mk’, and (2) document it in
> ‘doc/guix.texi’ (again: a few introductory lines, an example, and the
> reference)?
>
I decided to bundle this home service in (gnu home services desktop)
instead as it makes more sense for someone to use it only when running a
graphical display server. I also documented it in the manual.
>> + (description "Set up an unclutter daemon.")))
>
> Could you expand it a bit? For example:
>
> Run the unclutter daemon, which, on systems using the Xorg graphical
> display server, automatically hides the cursors after a user-defined
> timeout has expired.
>
Amended the service description with the above.
--
Best regards,
conses
Information forwarded
to
guix-patches <at> gnu.org
:
bug#62107
; Package
guix-patches
.
(Tue, 14 Mar 2023 12:37:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 62107 <at> debbugs.gnu.org (full text, mbox):
* gnu/home/services/desktop.scm (home-unclutter-configuration)
(home-unclutter-service-type): New variables;
(home-unclutter-shepherd-service): New procedure;
* doc/guix.texi (Desktop Services): Document it.
---
doc/guix.texi | 30 ++++++++++++++++++++
gnu/home/services/desktop.scm | 53 +++++++++++++++++++++++++++++++++--
2 files changed, 81 insertions(+), 2 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index 6671ba9305..551e5078f6 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -42541,6 +42541,36 @@ Desktop Home Services
@end table
@end deftp
+@defvar home-unclutter-service-type
+This is the service type for Unclutter, a program that runs on the
+background of an X11 session and detects when the X pointer hasn't moved
+for a specified idle timeout, after which it hides the cursor so that
+you can focus on the text underneath. Its associated value must be a
+@code{home-unclutter-configuration} record, as shown below.
+
+A typical configuration, where we manually specify the idle timeout (in
+seconds), might look like this:
+
+@lisp
+(service home-unclutter-service-type
+ (home-unclutter-configuration
+ (idle-timeout 2)))
+@end lisp
+@end defvar
+
+@deftp {Data Type} home-unclutter-configuration
+The configuration record for @code{home-unclutter-service-type}.
+
+@table @asis
+@item @code{unclutter} (default: @code{unclutter}) (type: file-like)
+Unclutter package to use.
+
+@item @code{idle-timeout} (default: @code{5}) (type: integer)
+A timeout in seconds after which to hide cursor.
+@end table
+
+@end deftp
+
@node Guix Home Services
@subsection Guix Home Services
diff --git a/gnu/home/services/desktop.scm b/gnu/home/services/desktop.scm
index cb25b03b64..ab2b871539 100644
--- a/gnu/home/services/desktop.scm
+++ b/gnu/home/services/desktop.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Ludovic Courtès <ludo <at> gnu.org>
;;; Copyright © 2022 ( <paren <at> disroot.org>
+;;; Copyright © 2023 conses <contact <at> conses.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,7 +23,7 @@ (define-module (gnu home services desktop)
#:use-module (gnu home services shepherd)
#:use-module (gnu services configuration)
#:autoload (gnu packages glib) (dbus)
- #:autoload (gnu packages xdisorg) (redshift)
+ #:autoload (gnu packages xdisorg) (redshift unclutter)
#:use-module (guix records)
#:use-module (guix gexp)
#:use-module (srfi srfi-1)
@@ -32,7 +33,10 @@ (define-module (gnu home services desktop)
home-redshift-service-type
home-dbus-configuration
- home-dbus-service-type))
+ home-dbus-service-type
+
+ home-unclutter-configuration
+ home-unclutter-service-type))
;;;
@@ -226,3 +230,48 @@ (define home-dbus-service-type
(default-value (home-dbus-configuration))
(description
"Run the session-specific D-Bus inter-process message bus.")))
+
+
+;;;
+;;; Unclutter.
+;;;
+
+(define-configuration/no-serialization home-unclutter-configuration
+ (unclutter
+ (file-like unclutter)
+ "The @code{unclutter} package to use.")
+ (idle-timeout
+ (integer 5)
+ "Timeout in seconds after which to hide the cursor."))
+
+(define (home-unclutter-shepherd-service config)
+ (list
+ (shepherd-service
+ (provision '(unclutter))
+ (requirement '())
+ (one-shot? #t)
+ (start #~(make-forkexec-constructor
+ (list
+ #$(file-append
+ (home-unclutter-configuration-unclutter config)
+ "/bin/unclutter")
+ "-idle"
+ (number->string
+ #$(home-unclutter-configuration-idle-timeout config)))
+ #:log-file (string-append
+ (or (getenv "XDG_LOG_HOME")
+ (format #f "~a/.local/var/log"
+ (getenv "HOME")))
+ "/unclutter.log"))))))
+
+(define home-unclutter-service-type
+ (service-type
+ (name 'home-unclutter)
+ (extensions
+ (list
+ (service-extension home-shepherd-service-type
+ home-unclutter-shepherd-service)))
+ (default-value (home-unclutter-configuration))
+ (description "Run the @code{unclutter} daemon, which, on systems using the
+Xorg graphical display server, automatically hides the cursor after a
+user-defined timeout has expired.")))
--
2.39.1
--
Best regards,
conses
Reply sent
to
Ludovic Courtès <ludo <at> gnu.org>
:
You have taken responsibility.
(Thu, 16 Mar 2023 10:52:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
conses <contact <at> conses.eu>
:
bug acknowledged by developer.
(Thu, 16 Mar 2023 10:52:01 GMT)
Full text and
rfc822 format available.
Message #19 received at 62107-done <at> debbugs.gnu.org (full text, mbox):
Hi,
conses <contact <at> conses.eu> skribis:
> * gnu/home/services/desktop.scm (home-unclutter-configuration)
> (home-unclutter-service-type): New variables;
> (home-unclutter-shepherd-service): New procedure;
> * doc/guix.texi (Desktop Services): Document it.
Perfect. Applied, thanks!
Ludo’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Thu, 13 Apr 2023 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 2 years and 30 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.