[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Missing QT platform plugin for Wayland, GRUB menu-entry, and service
From: |
Timo Wilken |
Subject: |
Re: Missing QT platform plugin for Wayland, GRUB menu-entry, and service/package definitions |
Date: |
Fri, 3 Feb 2023 09:42:58 +0100 |
Hi Genevieve,
On Sun, Jan 22, 2023 at 10:28:30PM -0600, Genevieve Mendoza wrote:
> 1) I've noticed that there are service definitions which automatically
> pull in the packages they require, with the main example being
> desktop-services. I set up some of my own home services, e.g. for
> Pipewire, and they work fine if I also have Pipewire installed
> (via my profile or home environment). If I don't, then they can't find
> the binary and fail. Is there a way to have them specify required
> packages that I missed in the docs?
How do you refer to these packages in your own home services? The
standard way, as far as I know, is to use G-expressions. Here's an
example of a shepherd service I use that runs "nm-applet":
(shepherd-service
(documentation "Applet that provides a GUI for network connections.")
(provision '(nm-applet))
(start #~(make-forkexec-constructor
(list #$(file-append network-manager-applet "/bin/nm-applet"))))
(stop #~(make-kill-destructor)))
The #$(file-append package "/bin/exe") inside the G-expression will
resolve to the full /gnu/store/...-pipewire-0.3.36/bin/pipewire path,
and it ought to stop that path from being garbage-collected as long as
the home environment generation it belongs to exists.
See "info guix -n 'Shepherd Services'" for more specific examples, and
see "info guix -n G-Expressions" for more general information on
G-expressions.
I hope that helps, and I'm sorry I don't have any experience with the
other things you mentioned.
Cheers,
Timo