1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

219 Commits

Author SHA1 Message Date
Estevan Castilho
c3a13b2593 home: services: niri: Use existing session dbus.
Spawning niri with `dbus-run-session` as is done here causes the compositor
and children applications to run within it's own D-Bus session bus rather than
relying on the already existing one.  This causes Guix home services that rely
on a session bus to misbehave within a niri session, as the bus the services
are talking to is not the same as the one niri & applications see.  Guix home
already provides a `home-dbus-service-type` for ensuring a D-Bus session bus
exists, so it makes sense to just rely on that.

* gnu/home/services/niri.scm (home-niri-service-type): Add
HOME-DBUS-SERVICE-TYPE extension.
(home-niri-shepherd-service)[requirement]: Add DBUS requirement.
[start]: Drop the 'dbus-run-session' call in favour of extending
HOME-DBUS-SERVICE-TYPE.

Change-Id: I1d402064128fe94aaaa2868e174752ef640dd31e
Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
2026-04-03 18:03:13 +03:00
Ludovic Courtès
e3a708ed79 home: services: pulseaudio-rtp-sink: Use a fixed sample rate.
* gnu/home/services/sound.scm (pulseaudio-rtp-sink-shepherd-services): Add
‘rate’ parameter for ‘module-rtp-send’.

Change-Id: Ic734ea241ee85147f949196dd3f7d58a81525388
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7464
2026-03-29 22:32:42 +02:00
Ian Eure
7cd78468a2 gnu: Add home-jellyfin-mpv-shim-service-type.
* gnu/home/services/media.scm (home-jellyfin-mpv-shim-service-type): New variable.
* doc/guix.texi (Jellyfin Services): New section.
* doc/guix.texi (Kodi Services): Add subheading.

Change-Id: I037ab0602214fdaa1b032be51ff98ecf6b7ee16c
2026-03-29 09:01:03 -07:00
Yarl Baudig
e931cab87f gnu: home: services: Add home-git-annex-assistant-service-type
* gnu/home/services/git-annex-assistant.scm: New file.
* gnu/local/mk (GNU_SYSTEM_MODULES): Register it.
* doc/guix.texi (Miscellaneous Services): Document it.

Change-Id: I9ca75210dfe7f6d2d81b9eb8919d6eb34c7bb002
Signed-off-by: Ian Eure <ian@retrospec.tv>
2026-03-21 19:01:26 -07:00
Giacomo Leidi
1a73454e55 gnu: home: dotfiles: Fix inclusion of directories having .git in their name.
* gnu/home/services/dotfiles.scm (%home-dotfiles-excluded): Replace
.git/.* with /.git/.* .
* doc/guix.texi: Document it.

Fixes https://codeberg.org/guix/guix/issues/6808

Change-Id: Ib6c824bb4bf5a5b3d6939807667c7961ce0cf6d2
2026-03-07 23:31:14 +01:00
Giacomo Leidi
5b2fcc51bc home: services: Fix location of home-gc-root-service-type.
The home-gc-root-service-type has gnu/services.scm as location but,
being in gnu/home/services.scm, it should have
gnu/home/services.scm. The tests/home-services.scm test has been broken
since f7b8fbb504 .
This commit fixes that, by instantiating a new
service-type record instead of directly using the one built by
system->home-service.

This was initially reported by Yelninei at
https://codeberg.org/guix/guix/issues/6946#issuecomment-11318779 .

* gnu/home/services/scm (home-gc-root-service-type): Instantiate a new
service-type record, instead of directly using the one built by
system->home-service.

Fixes: https://codeberg.org/guix/guix/issues/6960
Change-Id: I4389e6bbd2b2e4b0657768228651e8b1c01fee3a
2026-03-07 16:44:51 +01:00
Giacomo Leidi
4533da834d gnu: home: dotfiles: Files not excluded when they should.
* gnu/home/services/dotfiles.scm (%home-dotfiles-excluded): Match
content of .git directories.
(directory-contents): Match whole file-name instead of basename.
* doc/guix.texi: Document it.

Fixes <https://issues.guix.gnu.org/71217>

Authored-by: Nicolas Odermatt-Lemay <nodermattlemay@gmail.com>
Change-Id: I2929fe3318e1f9f0b552c891207524dea25389ed
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2026-02-22 19:51:46 +01:00
Giacomo Leidi
f7b8fbb504 home: services: Add home-gc-root-service-type.
* gnu/home/services.scm (home-gc-root-service-type): New variable.

Merges: https://codeberg.org/guix/guix/pulls/4236
Change-Id: I648068fc005a993b9527ed13ae87470c5ce9b693
2026-02-21 00:34:33 +01:00
jgart
1337ab25ad home: services: sway: Refactor flatmap to append-map.
* gnu/home/services/sway.scm (flatmap): Refactor flatmap to append-map.

Change-Id: I1a8e46ac7f2de163bc33f4bf61f267d35893cfc2
Signed-off-by: jgart <jgart@dismail.de>
2026-02-15 14:12:30 -05:00
Luis Guilherme Coelho
0add7609d3 home: services: pipewire: Install pipewire and wireplumber.
* gnu/home/services/sound.scm (home-pipewire-profile-service): New procedure.
(home-pipewire-service-type): Extend home-profile-service-type.

Closes: guix/guix#6404
Change-Id: I6f9a0f61bb09080479264c31471e0461437d3913
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2026-02-14 12:53:09 +08:00
jgart
a1c141e342 home: services: Format let block in helper function.
* gnu/home/services/sway.scm (services): Format let block in helper function.

Change-Id: I9ce14f33cb52ab97e0af129aad12d65bfdd70495
2026-02-10 20:04:19 -05:00
Sergey Trofimov
ecc4bf19e0 home: dotfiles: Fix compilation warning.
* gnu/home/services/dotfiles.scm: For list-of-strings field type
use define-maybe/no-serialization, remove duplicated predicate.

Change-Id: I31620b22b53ef3100852ab96dd4a0e69280e6902
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #5338
2026-02-06 20:49:03 +01:00
Sergey Trofimov
321e05d0f6 home: xdg: Fix compilation warning.
* gnu/home/services/xdg.scm (home-xdg-base-directories-configuration):
Specify field serializer explicitly.

Change-Id: I1b178952e3eb95d3faea38f7cf7a782bc73c0ea5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-02-06 20:49:03 +01:00
Hilton Chain
6da26b6b90 home: symlink-manager: Handle dangling symlinks.
This is a follow-up to commit 4b9b223bff.

* gnu/home/services/symlink-manager.scm (update-symlinks-script): Handle
dangling symlinks.

Fixes: #1752
Change-Id: Iedd11f84f816e3043d7bf50db240bf5ec1f3e512
Signed-off-by: Hilton Chain <hako@ultrarare.space>
Merges: #6169
2026-02-06 19:14:46 +08:00
Oleg Pykhalov
f86f25377a home: services: ssh: Add support for known_hosts2 file.
This commit adds a new 'known-hosts2' field to the OpenSSH home service
configuration, enabling a hybrid approach to SSH host key management.

* gnu/home/services/ssh.scm (<home-openssh-configuration>)[known-hosts2]: New field.
(openssh-configuration-files): Generate ~/.ssh/known_hosts2 when specified.
* doc/guix.texi (Secure Shell): Document new 'known-hosts2' field.

Change-Id: I1d314706eaf6af9547833020abe857f4d8c44b86
2026-02-02 15:43:22 +03:00
Sergey Trofimov
a651926f55 services: configuration: Generalize 'list-of-packages?'
* gnu/services/configuration.scm (list-of-packages?): Allow as well
tuples of a package and its output.
* gnu/home/services/sway.scm (list-of-packages): Remove duplicate.

Change-Id: I42622a29ac808c76928e9056dee9330d5e1b3f39
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #5470
2026-01-09 15:22:44 +01:00
Giacomo Leidi
c425bac93d Update Giacomo's email address.
The change was automated via:

git grep -l goodoldpaul@autistici.org |
    xargs sed -i 's/goodoldpaul@autistici.org/therewasa@fishinthecalculator.me/g'

* .mailmap: New entry.

Change-Id: I1629388334695d221647afe6a14faf61af5fe0d6
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-12-03 14:38:09 +09:00
Lilah Tascheter
f0d971ee1b gnu: home: Add himitsu-secret-service service.
* gnu/home/services/secrets.scm
  (home-himitsu-secret-service-configuration): New configuration.
  (himitsu-secret-service-shepherd-service): New procedure.
  (home-himitsu-secret-service-type): New service.

Change-Id: Ifb05edce06dbe6a24282701c94007a95dcda1313
Signed-off-by: jgart <jgart@dismail.de>
2025-12-02 12:49:38 -06:00
Lilah Tascheter
26cb836c4e gnu: home: Add himitsu-ssh service.
* gnu/home/services/secrets.scm
  (remember-option?,list-of-remember-options?): New types.
  (himitsu-serialize-list-of-remember-options): New serializer.
  (home-himitsu-ssh-configuration): New configuration.
  (himitsu-ssh-shepherd-service,himitsu-ssh-himitsu.ini,
   himitsu-ssh-environment-variables): New procedures.
  (home-himitsu-ssh-service-type): New service.

Change-Id: I051a97aec2396dd899078c594c9d0b989a0aa6f1
Signed-off-by: jgart <jgart@dismail.de>
2025-12-02 12:49:38 -06:00
Lilah Tascheter
b545538abe gnu: home: Add himitsu service.
* gnu/home/services/secrets.scm: New file...
* gnu/local.mk (GNU_SYSTEM_MODULES): ...and add it.

Change-Id: I6bd1a3843fd9e93d11e4a8f3fa2a510f5891a2d7
Signed-off-by: jgart <jgart@dismail.de>
2025-12-02 12:49:38 -06:00
Giacomo Leidi
17fdce75ec gnu: Add home-gcr-ssh-agent-service-type.
GNOME Keyring used to be able to act as a wrapper over ssh-agent.
It would display a GUI password entry dialog, including a checkbox to remember
the password, which, if selected, would allow fully passwordless use of that key.

The SSH functionality is disabled by default in gnome-keyring-daemon
builds since version 1.46
(commit 25c5a1982467802fa12c6852b03c57924553ba73).
It has been moved
(https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67)
into gcr-ssh-agent, which is part of the gcr package.

* gnu/home/services/gnome.scm: New file.
(gcr-ssh-agent-log-file,gcr-ssh-agent-shepherd-services): New public
procedures.
(gcr-ssh-agent-configuration): New configuration record.
(home-gcr-ssh-agent-service-type): New service type.
* gnu/local.mk: Add it.
* doc/guix.texi: Document it.

Change-Id: Idd3e40f544d40bb4c6682255f877cb79f0c70850
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
Reviewed-by: Dariqq <dariqq@posteo.net>
Reviewed-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Modified-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-12-01 17:20:55 +09:00
dan
65c77e90aa gnu: Add home-darkman-service-type.
* gnu/home/services/desktop.scm (home-darkman-configuration)
(home-darkman-service-type): New variables.
(serialize-number, serialize-boolean,
serialize-home-darkman-configuration)
(home-darkman-configuration-files, home-darkman-profile-service)
(home-darkman-shepherd-service): New procedures.
* doc/guix.texi (Desktop Home Services): Document it.

Change-Id: I23acb2cae9745e1a76c19c5552bf487539d6a807
Reviewed-by: Sergey Trofimov <sarg@sarg.org.ru>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-11-22 15:38:13 +00:00
Oleg Pykhalov
8ab49a4f58 home: services: niri: Add XWayland satellite support.
The niri compositor requires xwayland-satellite for proper X11 application
support under Wayland.  This package provides the necessary bridge for running
X11 applications in a Wayland-native environment.

* gnu/home/services/niri.scm (home-niri-service-type): Add xwayland-satellite
to the package list, ensuring X11 applications work correctly in niri
sessions.

Change-Id: I8b16fe2bed7563425408adfa9083ce322575dac0
2025-11-10 12:34:45 +03:00
Ludovic Courtès
3f900442b4 home: services: bash: Support setting shell variables.
* gnu/home/services.scm (shell-variable-definitions): New procedure.
* gnu/home/services/shells.scm (serialize-shell-variables): New procedure.
(home-bash-configuration)[variables]: New field.
(add-bash-configuration): Honor it.
(home-bash-extension)[variables]: New field.
(home-bash-extensions): Handle ‘variables’.
* doc/guix.texi (Shells Home Services): Update.  Change ‘PS1’ example to use
‘variables’, not ‘environment-variables’.
* doc/he-config-bare-bones.scm: Use ‘variables’ instead of ‘bash-profile’.

Change-Id: I29083d6313d10b1eb9d91eccacfb33efefe60d58
2025-10-23 19:35:07 +02:00
Oleg Pykhalov
18ea7bc470 home: services: Add niri.
This introduces a new home service for Niri, a scrollable tiling Wayland
compositor that combines traditional tiling window management with smooth
scrolling between workspaces.

The service provides:
- home-niri-service-type for installing and configuring Niri
- Shepherd service that starts Niri in a DBus session
- Proper Wayland environment variables (XDG_CURRENT_DESKTOP,
XDG_SESSION_DESKTOP, etc.)
- Integration with xdg-desktop-portal and related components

The service starts Niri with appropriate environment variables for
Wayland compatibility and includes necessary dependencies like
xdg-desktop-portal-gnome and xdg-desktop-portal-gtk for proper
desktop integration.

* gnu/home/services/niri.scm: New file containing the service implementation.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register the new module.
* doc/guix.texi (Niri window manager): Add comprehensive documentation.

Change-Id: I9ef081226b4aaa31706d1fbc0d8b7aa1a202cd6e
2025-10-10 12:11:12 +03:00
Alissa Istleyeva
8a69897b7e home: services: Fix binding options in sway-service-type.
* gnu/home/services/sway.scm (keybinding-options?): Add to-code option.
(codebinding-options?): Remove to-code option.

Change-Id: I0a43ccb7d997bb1ba2ec334721a9a7bdd5e5ce91
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-26 21:46:19 +02:00
Richard Sent
a68bcfd2f5 home: services: sway: Export configuration file accessors.
* gnu/home/services/sway.scm: Export field accessors for sway-* configuration
records.

Change-Id: I0f116508bdd710dec810dcbb69cf3c7b91daead4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-23 15:01:33 +02:00
Maxim Cournoyer
10482f731e Reapply "Update Maxim's email address."
This reverts commit a7db92d9b3, this time with
the more careful command, to avoid a world rebuild:

grep -rl --exclude-dir=build --exclude-dir=patches --exclude=ld-wrapper.in \
  --exclude=sitecustomize.py --exclude=guix-emacs.el maxim.cournoyer@gmail.com |
  xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'

Change-Id: I0871f5cf9ace79e34e78e24154d0da6ea95a3a91
2025-09-18 13:44:12 +09:00
Maxim Cournoyer
a7db92d9b3 Revert "Update Maxim's email address."
This reverts commit d0d87a744d. Oops! This
caused a world rebuild.

Change-Id: I25fff644b2b61d0ee93d69b457b04c72b5b74d15
2025-09-18 12:07:31 +09:00
Maxim Cournoyer
d0d87a744d Update Maxim's email address.
The change was automated via:

  git grep -l maxim.cournoyer@gmail.com |
    xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'

* .mailmap: New entry.

Change-Id: Iaa88b1e51c94159c49138fb43910badb990eb169
2025-09-18 08:05:19 +09:00
Arnaud Daby-Seesaram
aec2a05e35 home: services: home-sway-service-type: Enable extensions.
* gnu/home/services/sway.scm (%empty-sway-configuration): New value.
  (sway-combine): New procedure.
  (sway-compose): New procedure.
  (sway-extend): New procedure.
  (home-sway-service-type) [compose/extend]: New fields.
* doc/guix.texi (Sway window manager): Document this.

Change-Id: I548a18a6a273380be90c9b5b365f65a93cc02416
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-14 18:13:07 +02:00
Arnaud Daby-Seesaram
0b0f8702ea home: services: Support options for bindings in sway-service-type.
* gnu/home/services/sway.scm (make-alist-predicate): Add an optional argument.
  (bindings?): Remove procedure.
  (keybinding-options?): New procedures.
  (codebinding-options?): New procedures.
  (gesture-options?): New procedures.
  (mouse-bindings?): Allow to pass options to mouse-bindings.
  (sway-configuration) [keybindings]: Allow to pass options to key-bindings.
  [gestures]: Allow to pass options to gesture-bindings.
  (sway-mode) [keybindings]: Allow to pass options to key-bindings.
  (serialize-binding): Support options.
  (serialize-mouse-binding): Support options.
  (serialize-keybinding): Support options.
  (serialize-gesture): Support options.
  (serialize-variable): Inline previous definition.
* doc/guix.texi (Sway window manager): Document this.

Change-Id: Icf210aca4a9b44adc0baead7430637f6fcda17e5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-14 18:13:07 +02:00
Giacomo Leidi
57386498b6 home: Add home-oci-service-type.
* gnu/home/service/containers.scm: New file;
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (OCI backed services): Document it.

Change-Id: I8ce5b301e8032d0a7b2a9ca46752738cdee1f030
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-08-25 13:04:36 +09:00
Tomas Volf
8ecf0d07f5 home-mpv-configuration: Fix mpv/list-of-file.
* gnu/home/services/mpv.scm (serialize-mpv/list-of-file): Use : as delimiter.

Reported-by: Sergey Trofimov <sarg@sarg.org.ru>
Change-Id: I7e55b306104c235d165ab138397b767f1af5c124
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-09 22:05:14 +02:00
Tomas Volf
0543ccf62c home-mpv-configuration: Support file-like for file fields.
* gnu/home/services/mpv.scm (serialize-mpv/file, mpv/file?): New procedures.
(ao-null-latency, audio-file-paths, audio-files, bluray-device, cdda-device)
(chapters-file, cookies-file, cover-art-files, demuxer-cache-dir, dump-stats)
(dvbin-file, dvd-device, external-files, glsl-shaders, gpu-shader-cache-dir)
(icc-cache-dir, icc-profile, image-lut, include, input-conf, input-ipc-server)
(log-file, lut, ordered-chapters-files, osd-fonts-dir, screenshot-directory)
(scripts, stream-dump, sub-ass-styles, sub-file-paths, sub-files)
(sub-fonts-dir, target-lut, tls-ca-file, tls-cert-file, tls-key-file):
(vo-image-outdir, watch-history-path, watch-later-directory): Change type.
* doc/guix.texi (mpv Media Player): Document it.

Reported-by: Sergey Trofimov <sarg@sarg.org.ru>
Change-Id: I7e55b306104c235d165ab138397b767f1af5c124
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-27 19:22:39 +09:00
Tomas Volf
0e23ff2995 home-mpv-configuration: Update for mpv 0.40.0.
* gnu/home/services/mpv.scm (audio-backward-batch, clipboard-backends)
(clipboard-monitor?, demuxer-mkv-crop-compat?, hwdec-software-fallback)
(input-ime?, load-commands?, load-console?, load-positioning?)
(osd-bar-marker-min-size, osd-bar-marker-scale, osd-bar-marker-style)
(osd-selected-color, osd-selected-outline-color, playlist-exts)
(save-watch-history?, sub-ass-prune-delay, sub-ass-scale-with-window?)
(sub-hinting, sub-line-spacing, sub-scale-signs?, sub-shaper, video-recenter?)
(watch-history-path, wayland-internal-vsync): New options.
(cache-pause-wait, video-aspect-override): Change range.
(dvbin-timeout, media-controls, target-colorspace-hint): Change type.
(video-aspect-method): Add enumeration member.
(drm-connector, drm-device, drm-draw-plane, drm-draw-surface-size)
(drm-drmprime-video-plane, drm-format, drm-mode, drm-vrr-enabled)
(load-osd-console?, sub-ass-hinting, sub-ass-line-spacing)
(sub-ass-scale-with-window?, sub-ass-shaper)
(vd-lavc-software-fallback): Removed options.
* doc/guix.texi: Update the list of fields.

Change-Id: I7e55b306104c235d165ab138397b767f1af5c124
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-27 19:22:39 +09:00
Maxim Cournoyer
c743d646ee system: Factorize bashrc default configuration.
This factorizes out the remaining bashrc bits from /etc/skel/.bashrc to a the
template used for both /etc/bashrc on Guix System and ~/.bashrc for
home-bash-service-type.

Rationale: The use of /etc/skel introduce state: the file is only copied
originally when the user account is created, and never (automatically)
refreshed again.

* gnu/system.scm (operating-system-etc-service):
<profile>: Guard against souring /etc/bashrc in non-interactive, SSH case.
<bashrc>: Use %default-bashrc, having migrated the remaining definitions to...
* gnu/system/shadow.scm (%default-bashrc): ... here.  Factorize aliases to...
* gnu/services.scm (%default-bash-aliases): ... here.
(%default-bashrc-d-aliases): New variable.
(%default-etc-bashrc-d-files): Include it in the default configuration.
* gnu/services/base.scm (%base-services): Register etc-bashrc-d-service-type.
* gnu/home/services/shells.scm (add-bash-configuration): Do not set PS1, now
part of %default-bashrc.
(home-bash-configuration) [guix-defaults?]: Update doc.
[aliases]: Set %default-bash-aliases as the default value.  Update doc.
* doc/guix.texi (Shells Home Services): Update documentation.
(Service Reference): Update example.

Change-Id: I340c614983a78fd20a9c4a9705e7fc542ae9b513
2025-05-26 13:43:03 +09:00
Sergey Trofimov
11bc17c409 home: services: Build "files" union allowing dangling symlinks.
* gnu/home/services.scm (files->files-directory): Build file union
without checking for existence of included items.

* tests/guix-home.sh: Verify symlinking files out of store works.

Change-Id: I94054003f4a6be944252ce7a397cf56f0b979554
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-21 08:05:27 +09:00
Sughosha
b1d2483ebe home: services: Add readymedia.
* gnu/home/services/upnp.scm: New file.
* gnu/local.mk: Register it.
* gnu/services/upnp.scm: Export readymedia-activation and
readymedia-shepherd-service.
(<readymedia-configuration>)[home-service?]: New field.
[cache-directory]: Adjust value depending on 'for-home?'.
[log-directory]: Ditto.
(readymedia-shepherd-service): Adjust 'requirement' and 'start' according to
'home-service?'.
(readymedia-activation): Adjust creating 'media-directories' with permissions
according to 'home-service?'.
* gnu/tests/upnp.scm (%readymedia-configuration-test): Configure port with
%readymedia-default-port.
* doc/guix.texi (Miscellaneous Home Services): Document Readymedia Service.
(Miscellaneous Services): Add cross-reference.

Change-Id: I5c48595d84a815d98e03c7f68a716f048903720c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-18 22:55:54 +02:00
Giacomo Leidi
1220d1a84e home: Add home-restic-backup service.
* gnu/services/backup.scm: Drop mcron obsolete export.
(restic-backup-job-program): Generalize to restic-program.
(lower-restic-backup-job): New procedure implementing a standard way to
lower restic-backup-job records into lists.
(restic-program): Implement general way to run restic commands, for
example to initialize repositories.
(restic-backup-configuration): Reimplement
with (guix records).
(restic-backup-job-{logfile,command,requirement,modules}): Add new
procedures and add support for Guix Home environments.
(restic-backup-job->shepherd-service): Add support for Guix Home
environments.
(restic-backup-service-activation): Drop procedure as now the Shepherd
takes care of creating timers log file directories.
(restic-backup-service-type): Drop profile and activation services extensions.
* gnu/home/services/backup.scm: New file.
* gnu/local.mk: Add this.
* doc/guix.texi: Document this.

Change-Id: Ied1c0a5756b715fba176a0e42ea154246089e6be
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-18 22:55:53 +02:00
Dariqq
92869fcc75 gnu: home: Use ‘shepherd-for-home’ as the default shepherd.
Fixes <https://issues.guix.gnu.org/73903>.

* gnu/home/services/shepherd.scm (home-shepherd-configuration): Change default
value of shepherd field to shepherd-for-home.

Change-Id: I3773403bb1fcdcbe2acb1bbcbfaa009f4d31ace4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-14 18:11:07 +02:00
Tomas Volf
364694773e gnu: home: services: Add home-mpv-service-type.
This commit adds a new service type to generate configuration file for the mpv
media player.

Originally I attempted to use Guix Records (via define-configuration) for
this, but ran into the bug #74748, so I had to switch to procedures instead.
The usage is (hopefully) sufficiently described in the documentation.  When
the bug is resolved, I will update it to use define-configuration instead.

The full list of supported options is documented, however I decided to *not*
document types and purpose for each individual fields.  While I had mostly
working prototype to extract the documentation from mpv, once I realized it
would be few 10k of lines added, I decided it is not worth it.  It would bloat
the .texi file (by more than 50%), be hard to maintain and, in my opinion,
would not provide enough value to justify that.  The current version seems
like sane middle ground.

* gnu/home/services/mpv.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register it.
* doc/guix.texi (mpv Media Player): Document it.

Change-Id: I2deb44799a28047cb5d67da97dc6007a9df873af
2025-05-13 10:55:49 +09:00
Romain GARBAGE
c88f98bb3c home: services: msmtp: Accept g-expressions for ‘password-eval’.
This allows users to specify:

  (password-eval #~(string-append
                    #$(file-append libsecret "/bin/secret-tool")
		    "…"))

* gnu/home/services/mail.scm (string-or-gexp?): New variable.
(maybe-string-or-gexp): New record type
(msmtp-configuration-serialize-string-or-gexp): New variable.
(msmtp-configuration) [password-eval]: Change type.

Change-Id: Id3016956250c447b301b40f29a6509d57058be49
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-08 17:23:27 +02:00
Luis Guilherme Coelho
ca795a79c8 home: services: Re-export ‘simple-service‘.
* gnu/home/services.scm: Re-export ‘simple-service‘.

Change-Id: Id680af7050fa23d112e4172d96c15470c3dbeaf9
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-08 17:15:47 +02:00
Ludovic Courtès
a35fa2d2cb services: shepherd: Add ‘shepherd-timer’.
* gnu/services/shepherd.scm (shepherd-timer): New procedure.
* gnu/home/services/shepherd.scm: Re-export it.

Suggested-by: Luis Guilherme Coelho <lgcoelho@disroot.org>
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I5f702d4119eee47381a7a1ac650b8ad3fc5e6cdd
2025-03-23 19:30:57 +01:00
Ludovic Courtès
aed019b646 services: shepherd: Factorize ‘trigger’ action.
* gnu/services/shepherd.scm (shepherd-trigger-action): New variable.
* gnu/services/admin.scm (log-cleanup-shepherd-services)
(unattended-upgrade-shepherd-services): Use it.
* gnu/services/backup.scm (restic-backup-job->shepherd-service): Use it.
* gnu/home/services/shepherd.scm: Re-export ‘shepherd-trigger-action’.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I834b5b9b61c78f012ee9306df6cf4fd8a93dd6d2
2025-03-23 19:29:14 +01:00
gemmaro
db023ab59a home: xdg-mime-applications: Update Freedesktop specification links.
* gnu/home/services/xdg.scm: Fix broken links for "Shared MIME-info Database"
and "Association between MIME types and applications".

Change-Id: Ib25fd740dbdfc7e17951d10bfc2e4a83901911da
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2025-03-22 18:00:17 +08:00
Janneke Nieuwenhuizen
18f956467a home: Add home-snuik-service.
* gnu/home/services/messaging.scm (home-snuik-service-type): New variable.
* doc/guix.texi (Messaging Home Services): Document it.

Change-Id: I1e278e7d8ed04efcb1a2ce9e12e69cb6a31a9fa4
2025-03-20 09:32:05 +01:00
Ludovic Courtès
90aa90eb05 home: services: unclutter: Add a ‘stop’ method.
* gnu/home/services/desktop.scm (home-unclutter-shepherd-service):
Remove ‘one-shot?’ field and set ‘stop’.

Change-Id: I82b915d4260a62e628b419a497c50ecf2cbc356c
2025-02-21 15:27:12 +01:00
Liam Hupfer
4b8952ea9e home: services: setup-environment: Set GUIX_LOCPATH.
Locales installed via Guix Home should be exposed to Guix packages by
default.

* gnu/home/services.scm (environment-variables->setup-environment-script):
Set GUIX_LOCPATH.

Change-Id: Ic61f0832312479ba36f471d92a12e7b4e296389f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-02-21 15:27:11 +01:00