unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: "pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de>
To: Arnaud Daby-Seesaram <ds-ac@nanein.fr>
Cc: "Hilton Chain" <hako@ultrarare.space>,
	"Ludovic Courtès" <ludo@gnu.org>,
	72714@debbugs.gnu.org
Subject: [bug#72714] [PATCH] home: services: Add 'home-sway-service-type'.
Date: Fri, 04 Oct 2024 22:17:20 +0200	[thread overview]
Message-ID: <87jzenr5bj.fsf@pelzflorian.de> (raw)
In-Reply-To: <877caoewmh.fsf@nanein.fr> (Arnaud Daby-Seesaram's message of "Thu, 03 Oct 2024 22:53:42 +0200")

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

Hello Arnaud.  I like a lot your sway-menu.scm.  For testing, I’ve
changed

(define sway-menu
  (computed-file
   "sway-menu.scm"

to

(define sway-menu
  (scheme-file
   "sway-menu.scm"

to use it like this:

(sway-configuration
 (variables
  `((menu  . ,#~(string-append
                 "guile " #$sway-menu))

Sorry for having proposed compiled-file previously.  At first I had
thought a compiled sway-menu.go would be appropriate, created in a
computed-file, which invokes `guild compile` on the .scm code, but
apparently this is not useful.  I do not know enough here and
gnu/services/shepherd.scm does it in the scm->go procedure.

Anyway, some feedback:

> (define (directory->files dir)
>   (define (executable-file? f)
>     ;; Cf. `(@@ (guix build utils) executable-file?)' for an
>     ;; explanation of `(zero? ...)'.

This is a comment anyway, but one @ in (@ (guix build utils)
executable-file?) would be enough, since the executable-file?
predicate is exported.


>     (and=> (stat f)
>            (lambda (s)

To reduce clutter in the wmenu suggestions more, I’d prefer

(and=> (and (not (eq? (string-ref f 0) #\.))
            (stat f))
       (lambda (s)


>              (not (or (zero? (logand (stat:mode s) #o100))
>                       (eq? (stat:type s) 'directory))))))
>   (with-directory-excursion dir
>     (scandir "." executable-file?)))
> 
> (let ((path (string-append (getenv "HOME")
>                            "/.guix-home/profile/bin"))
>       (wmenu #$(file-append wmenu "/bin/wmenu"))
>       (swaymsg #$(file-append sway "/bin/swaymsg")))
>   (receive (from to pid)
>       ((@@ (ice-9 popen) open-process) OPEN_BOTH wmenu)

Better use @ instead of @@.


>     (for-each
>      (lambda (c) (format to "~a~%" c))
>      (directory->files path))
>     (close to)
>     (let ((choice (read-line from)))
>       (close from)
>       (waitpid pid)
>       (execl swaymsg swaymsg "exec"
>              (string-append path "/" choice))))))))

Even though I like to get suggestions only for
~/.guix-home/profile/bin, if you do not prepend path,

(execl swaymsg swaymsg "exec"
       choice)))))))

then it will remain possible to write shell commands in wmenu such as

guix shell weston -- weston-flower

to run apps without installing them.

Thank you greatly, this will definitely become my menu and in my
opinion it is the best default.

Since you told me about wmenu-run, I also locally updated wmenu [1]
and tested the menu config

(menu  .  ,#~(string-append
             #$wmenu "/bin/wmenu-run"))

which would also work, but in my opinion the suggestions are better
when tied to .guix-home/profile.  The wmenu-run does not use exec but
a protocol called XDG_ACTIVATION_TOKEN.  But I do not see an advantage
to it.  It behaves like always.

I’d welcome if you, Arnaud, sent a patch calling your sway-menu script.

Also I’d be happy if more careful commiters would push it; I prefer to
restrict my commits to translation updates.

Also one more thing, in the commit message, you meant to write
flatmap instead of flatten.

Regards,
Florian

[1]

[-- Attachment #2: wm --]
[-- Type: text/plain, Size: 964 bytes --]

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 38cb8cc717..9615054841 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -1865,16 +1865,16 @@ (define-public wl-mirror
 (define-public wmenu
   (package
     (name "wmenu")
-    (version "0.1.7")
+    (version "0.1.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://git.sr.ht/~adnano/wmenu")
-                    (commit version)))
+                    (commit "12b8f83be447379eded03c6109fe944945cd48aa")))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0wjn68r5cx4zvw7sby6sk2ip5h4fn0jbgb1nasm9nsgjpv63pnpm"))))
+                "06fgvss3grihm3a1g6pj99rvjq2y2p496gkr2ahcnia7vn0wpc6y"))))
     (build-system meson-build-system)
     (native-inputs (append (if (%current-target-system)
                                ;; for wayland-scanner

  reply	other threads:[~2024-10-04 20:18 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-19 15:30 [bug#72714] [PATCH] home: services: Add 'home-sway-service-type' Arnaud Daby-Seesaram via Guix-patches via
2024-08-24 15:32 ` [bug#72714] [PATCH v2] " Arnaud Daby-Seesaram via Guix-patches via
2024-08-26 10:38 ` [bug#72714] [PATCH v3] " Arnaud Daby-Seesaram via Guix-patches via
2024-09-03  7:27 ` [bug#72714] [PATCH v4] " Arnaud Daby-Seesaram via Guix-patches via
2024-09-14 13:28   ` pelzflorian (Florian Pelz)
2024-09-14 14:06     ` pelzflorian (Florian Pelz)
2024-09-17  6:52     ` Arnaud Daby-Seesaram via Guix-patches via
2024-09-20 16:45       ` pelzflorian (Florian Pelz)
2024-09-22 13:43         ` Arnaud Daby-Seesaram via Guix-patches via
2024-09-25  6:58           ` pelzflorian (Florian Pelz)
2024-09-25  7:52             ` Arnaud Daby-Seesaram via Guix-patches via
2024-09-25 11:42             ` pelzflorian (Florian Pelz)
2024-09-18  8:15 ` [bug#72714] [PATCH v5] " Arnaud Daby-Seesaram via Guix-patches via
2024-09-18 18:56   ` Arnaud Daby-Seesaram via Guix-patches via
2024-09-22  8:14   ` Hilton Chain via Guix-patches via
2024-09-25  8:00 ` [bug#72714] [PATCH v6] " Arnaud Daby-Seesaram via Guix-patches via
2024-09-30 20:07   ` Ludovic Courtès
2024-10-01 22:12     ` [bug#72714] [PATCH] " Arnaud Daby-Seesaram via Guix-patches via
2024-10-02 14:08       ` pelzflorian (Florian Pelz)
2024-10-02 20:49         ` Arnaud Daby-Seesaram via Guix-patches via
2024-10-03 12:41           ` pelzflorian (Florian Pelz)
2024-10-03 20:53             ` Arnaud Daby-Seesaram via Guix-patches via
2024-10-04 20:17               ` pelzflorian (Florian Pelz) [this message]
2024-10-01 22:30     ` [bug#72714] [PATCH v7] " Arnaud Daby-Seesaram via Guix-patches via

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87jzenr5bj.fsf@pelzflorian.de \
    --to=pelzflorian@pelzflorian.de \
    --cc=72714@debbugs.gnu.org \
    --cc=ds-ac@nanein.fr \
    --cc=hako@ultrarare.space \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.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).