Subject: Re: [PATCH] home: services: Add 'home-sway-service-type'.

From: "pelzflorian (Florian Pelz)" <[email-masked]>
Date: Wed, 02 Oct 2024 16:08:41 +0200

Hi Arnaud.  I still have not tested nor reviewed all features, but
some comments:

Arnaud Daby-Seesaram writes:
> +(define %sway-default-variables
> +  `((mod   . "Mod4")
> +    (left  . "h")
> +    (down  . "j")
> +    (up    . "k")
> +    (right . "l")
> +    (term  . ,(file-append foot "/bin/foot"))
> +    (menu  . ,#~(string-append
> +                 #$dmenu "/bin/dmenu_path | \\\n    "
> +                 #$wmenu "/bin/wmenu | \\\n    "
> +                 #$findutils "/bin/xargs \\\n    "
> +                 #$sway "/bin/swaymsg exec --"))))

After I added new packages to home-environment’s packages field,
dmenu_path does not list newly installed packages for me, because it
is a shell script which needs a program called stest in PATH.

Now the wmenu_path I talked about earlier appears to be an invention
by the OpenBSD people that does not need stest [1].

Perhaps for more hackability, we could deviate from upstream and put in
a call to guile with a Scheme script in a computed-file that opens a
pipe to/from wmenu and does the same as dmenu_path without cache only on
~/.guix-home/profile/bin.

Or change the dmenu_path program with `substitute' to use the absolute
file-name of stest.

> +Here is an example of a service and its configuration that you could add
> +to the @code{services} field of your @code{home-environment}:
> +
> +@lisp
> +(service home-sway-service-type
> +         (sway-configuration
> +          (gestures
> +           '((swipe:3:down . "move to scratchpad")
> +             (swipe:3:up   . "scratchpad show")))
> +          (outputs
> +           (list (sway-output
> +                  (identifier '*)
> +                  (bg (file-append sway
> +                     "\
> +/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png")))))))
> +@end lisp

There is no bg anymore.

> +      (add-line-if "position" position
> +                   #:serializer
> +                   (lambda (p)
> +                     (string-append (number->string (point-x p))
> +                                    " "
> +                                    (number->string (point-x p)))))

Should be point-y.

Regards,
Florian

[1] https://github.com/openbsd/ports/blob/master/wayland/wmenu/files/wmenu_path