summaryrefslogtreecommitdiff
path: root/gnu/home
AgeCommit message (Collapse)Author
2023-10-21home: services: Fix regression in generated ‘on-first-login’ script.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/66659>. Fixes a regression introduced in 6b0a32196982a0a2f4dbb59d35e55833a5545ac6. * gnu/home/services.scm (compute-on-first-login-script): Add ‘begin’ around #$@gexps. Reported-by: Nils Landt <nils@landt.email>
2023-10-20home: services: Fix race condition when detecting first login.Carlo Zancanaro
* gnu/home/services.scm (compute-on-first-login-script): Use open-fdes to atomically check whether a file exists and create it if not. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-09-17gnu: home: zsh: Load environment when running via sshSaku Laesvuori
* gnu/home/services/shells.scm (zsh-file-zshenv): Add snippet to source /etc/profile when running via ssh. (zsh-get-configuration-files): Always add .zshenv as it is never empty. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-09-14home: services: redshift: Use redshift package specified in configurationKjartan Oli Agustsson
* gnu/home/services/desktop.scm (redshift-shepherd-service): Use the redshift package specified by config. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-09-04home: Add parcimonie service.Efraim Flashner
* gnu/home/services/gnupg.scm (home-parcimonie-service-type, home-parcimonie-configuration): New variables. * doc/guix.texi (GNU Privacy Guard): Document it.
2023-08-29home: services: dicod, syncthing: Import (gnu home services shepherd).Ludovic Courtès
Fixes <https://issues.guix.gnu.org/65510>. Without this import, 'shepherd-service-type' is not mapped, leading to an error about missing 'system' target. * gnu/home/services/dict.scm, gnu/home/services/syncthing.scm: Add #:use-module clause. Reported-by: Morgan Smith <Morgan.J.Smith@outlook.com>
2023-08-20home: services: ssh: Fix compilation warning with 'serialize-match-criteria'.Nicolas Graves
* gnu/home/services/ssh.scm (serialize-match-criteria): New procedure. (serialize-openssh-host): Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-08-20home: services: Add Syncthing.Ludovic Courtès
* gnu/home/services/syncthing.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/services/syncthing.scm (<syncthing-configuration>)[home-service?]: New field. Adjust 'provision' and 'requirement' depending on 'home-service?', and likewise for #:user and #:group. Use 'filter' + 'negate' instead of 'remove'. * doc/guix.texi (Networking Services): Add note and cross-reference to "Networking Home Services". (Networking Home Services): New node.
2023-08-20home: services: Add dicod.Ludovic Courtès
* gnu/home/services/dict.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/services/dict.scm (<dicod-configuration>)[home-service?]: New field. (dicod-shepherd-service): Do not map /dev/log when 'home-service?' is true. Remove 'user-processes' requirement when 'home-service?' is true. (dicod-shepherd-service): Set #:user and #:group to #f when 'home-service?' is true. * doc/guix.texi (Miscellaneous Home Services): New node. (Miscellaneous Services): Add cross-reference.
2023-08-20home: services: mcron: Define as a mapping of the system service.Ludovic Courtès
* gnu/services/mcron.scm (list-of-gexps?): Remove. (<mcron-configuration>): Rewrite using 'define-record-type*'. [home-service?]: New field. [log-file]: Make thunked and changed default value. (mcron-shepherd-services): Honor 'home-service?' and remove use of 'maybe-value-set?'. (mcron-service-type): Inherit 'home-service?' from CONFIG. (generate-doc): Remove. * gnu/home/services/mcron.scm (list-of-gexp?) (<home-mcron-configuration>, job-files, shepherd-schedule-action) (home-mcron-shepherd-services, home-mcron-profile) (home-mcron-extend, generate-doc): Remove. (home-mcron-configuration): Turn into a macro. (home-mcron-service-type): Define in terms of 'system->home-service-type'. <top level>: Add service type mapping.
2023-08-20home: services: Support mapping of System services to Home services.Ludovic Courtès
* gnu/home/services.scm (service-type-mapping) (system->home-service-type): New procedures. (define-service-type-mapping, define-service-type-mappings): New macros. (%system/home-service-type-mapping): New variable. <top level>: Use 'define-service-type-mappings'. * gnu/home/services/shepherd.scm <top level>: Likewise.
2023-07-11home: services: bash: Properly quote shell aliases.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/63048>. Reported by Ekaitz Zarraga <ekaitz@elenq.tech>. * gnu/home/services.scm (with-shell-quotation-bindings): New procedure. (environment-variable-shell-definitions): Use it instead of inline copy. * gnu/home/services/shells.scm (bash-serialize-aliases): Use it. Add clause for 'literal-string?'. * tests/guix-home.sh: Add 'aliases' to 'home-bash-extension' and test it.
2023-07-05home: Add inputrc service.Efraim Flashner
* gnu/home/services/shells.scm (home-inputrc-service-type, home-inputrc-configuration): New variables. (serialize-inputrc-key-bindings, serialize-inputrc-variables, serialize-inputrc-conditional-constructs, serialize-inputrc-extra-content): New procedures. * doc/guix.texi (Shells Home Services): Document it.
2023-06-15home: services: xdg-base-directories: Deprecate XDG_LOG_HOME.Bruno Victal
XDG_LOG_HOME is non-standard and log files should go to XDG_STATE_HOME according to the XDG Base Directory Specification. Fixes <https://issues.guix.gnu.org/61809>. * gnu/home/services/desktop.scm (home-dbus-shepherd-services): Log to XDG_STATE_HOME. * gnu/home/services/desktop.scm (home-unclutter-shepherd-services): Log to XDG_STATE_HOME. * gnu/home/services/mcron.scm (home-mcron-shepherd-services): Ditto. * gnu/home/services/pm.scm (home-batsignal-shepherd-services): Ditto. * gnu/home/services/shepherd.scm (launch-shepherd-gexp): Ditto. * gnu/home/services/xdg.scm (home-xdg-base-directories-configuration)[log-home]: Deprecate and unset default value. (home-xdg-base-directories-environment-variables-service) (ensure-xdg-base-dirs-on-activation): Handle field deprecation. (home-xdg-base-directories-service-type): Update description. Co-authored-by: Andrew Tropin <andrew@trop.in> Signed-off-by: Andrew Tropin <andrew@trop.in>
2023-06-14home: services: ssh: Allow unset boolean options in ssh-config.Efraim Flashner
From man 5 ssh_config: Unless noted otherwise, for each parameter, the first obtained value will be used. We want to allow falling through to the first explicitly chosen user defined value. * gnu/home/services.ssh.scm (define-maybe boolean): New configuration. (openssh-host)[forward-x11?, forward-x11-trusted?, forward-agent?, compression?]: Replace default value with maybe-boolean. * doc/guix.texi (Secure Shell): Update documentation to match the changes in the code.
2023-06-09home: services: ssh: Export home-ssh-agent variables.Nicolas Graves
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-06-09home: services: ssh: Export configuration predicates.Nicolas Graves
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-06-09home: services: ssh: Add 'match-criteria' option.Nicolas Graves
* gnu/home/services/ssh.scm (serialize-address-family): Raise '&formatted-message' instead of '&error'. (ssh-match-keywords): New variable. (match-criteria?): New procedure. (match-criteria): New maybe type. (openssh-host)[name]: Turn into 'maybe-string'. [match-criteria]: New field. (serialize-openssh-host): Adjust accordingly. * doc/guix.texi (Secure Shell): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-06-09home: services: ssh: Add 'add-keys-to-agent' field.Nicolas Graves
* gnu/home/services/ssh.scm (<home-openssh-configuration>)[add-keys-to-agent]: New field. (serialize-add-keys-to-agent): New procedure. (openssh-configuration->string): Use it. * doc/guix.texi (Secure Shell): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-05-30home: services: Add msmtp service.Tanguy Le Carrour
* gnu/home/services/mail.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Mail Home Services): New node. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-05-24home: services: ssh: Do not empty ~/.ssh/authorized_keys by default.Janneke Nieuwenhuizen
The default was an empty list which would remove any ~/.ssh/authorized_keys file and replace it with a symlink to an empty file. On some systems, notably Ubuntu 22.10, the guix home generated ~/.ssh/authorized_keys file does not allow login. * doc/guix.texi (Secure Shell): Update, describe default #false value. * gnu/home/services/ssh.scm (<home-openssh-configuration>) [authorized-keys]: Change default to #f. (openssh-configuration-files): Cater for default #f value: Do not register "authorized_keys".
2023-05-13services: shepherd: Default to 0.10.Ludovic Courtès
* gnu/services/shepherd.scm (<shepherd-configuration>)[shepherd]: Default to SHEPHERD-0.10. * gnu/home/services/shepherd.scm (<home-shepherd-configuration>)[shepherd]: Likewise.
2023-05-11gnu: home: services: fontutils: Add support for SXML fragments.Andrew Patterson
* gnu/home/services/fontutils.scm (add-fontconfig-config-file): Add support for adding arbitrary SXML configuration into fonts.conf; * doc/guix.texi (Fonts Services): Update the documentation. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-21home: services: openssh: Add configuration option for jump proxiesSaku Laesvuori
Add a new 'proxy' field to openssh-host to allow ProxyCommand or ProxyJump, but not both, to be configured. Configuring both would cause the serialization order to determine which one is used. Deprecate the 'proxy-command' field because the 'proxy' field replaces it. * gnu/home/services/ssh.scm (proxy-jump->string, proxy-command-or-jump-list?, serialize-proxy-command-or-jump-list, sanitize-proxy-command): New procedure. (proxy-jump, proxy-command): New record type. (openssh-host)[proxy-command]: Mark field as deprecated because OpenSSH can't have ProxyCommand and ProxyJump configured at the same time. * doc/guix.texi (Secure Shell): Update to match the changes to the service. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-08home: Add gpg-agent service.Ludovic Courtès
* gnu/home/services/gnupg.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (GNU Privacy Guard): New node. (Secure Shell): Link to it.
2023-04-07home: xdg-base-directories: Set correct value for XDG_STATE_HOME.Bruno Victal
XDG Base Directory Specification 0.8 officially introduces the XDG_STATE_HOME environment variable. Fixes <https://issues.guix.gnu.org/issue/61809>. * gnu/home/services/xdg.scm (home-xdg-base-directories-configuration)[state-home]: Set default value according to spec. Update field documentation. (home-xdg-base-directories-service-type): Update service description. Signed-off-by: Andrew Tropin <andrew@trop.in>
2023-04-02services: replace bare serializers with (serializer ...)Bruno Victal
* gnu/home/services/shells.scm (home-zsh-configuration)[environment-variables]: Use (serializer ...). (home-bash-configuration)[aliases, environment-variables]: Likewise. (home-fish-configuration)[abbreviations, aliases] [environment-variables]: Likewise. * gnu/services/audio.scm (mpd-configuration)[music-dir, playlist-dir] [endpoints, address, inputs, archive-plugins, input-cache-size] [decoders, filters, playlist-plugins]: Likewise. * gnu/services/linux.scm (fstrim-configuration)[extra-arguments]: Likewise. * gnu/services/security.scm (fail2ban-jail-configuration)[backend] [log-encoding, extra-content]: Likewise. * tests/services/configuration.scm: Update tests. ("serialize-configuration [deprecated]"): New test. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-03-26home: services: Export home-xmodmap-service-type and configuration.Jan (janneke) Nieuwenhuizen
This is a follow-up to commit 511ae8325db0dfc7803d7b98d7e4d8f76774e8c5 home: services: Add home-xmodmap-service-type. * gnu/home/services/desktop.scm (home-xmodmap-service-type, home-xmodmap-configuration): Export.
2023-03-17home: services: Add home-xmodmap-service-type.conses
* gnu/home/services/desktop.scm (home-xmodmap-service-type) (home-xmodmap-configuration): New variables; (serialize-xmodmap-configuration) (xmodmap-shepherd-service): New procedures; * doc/guix.texi (Desktop Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-17home: services: ssh-agent: Handle setting of SSH_AUTH_SOCK.Jan (janneke) Nieuwenhuizen
* gnu/home/services/ssh.scm (home-ssh-agent-environment-variables): New procedure. (home-ssh-agent-service-type): Use it as ahome-environment-service type extension. * doc/guix.texi (Secure Shell): Remove advice about, and examples of setting SSH_AUTH_SOCK.
2023-03-16home: services: kodi, znc, ssh-agent: Use 'match-record'.Ludovic Courtès
* gnu/home/services/media.scm (home-kodi-services): Use 'match-record' instead of 'match'. * gnu/home/services/messaging.scm (home-znc-services): Likewise. * gnu/home/services/ssh.scm (home-ssh-agent-services): Likewise.
2023-03-16home: services: znc: Remove host-side use of (shepherd support).Ludovic Courtès
This is a followup to 193f547ca35eb49ef57bd9a25b67cb3965f10b03, which inadvertently pulled in (shepherd support) on the host side. * gnu/home/services/messaging.scm (home-znc-services): Change 'command' and 'log-file' to gexps. Add 'modules' field to 'shepherd-service'.
2023-03-16home: services: kodi: Remove host-side use of (shepherd support).Ludovic Courtès
This is a followup to 70056b1b2beebbc9f8ea2c34eacc57f379368ab3, which inadvertently pulled in (shepherd support) on the host side. * gnu/home/services/media.scm (home-kodi-services): Change 'command' and 'logfile' to gexps. Add 'modules' field to 'shepherd-service'.
2023-03-16home: services: ssh-agent: Remove host-side use of (shepherd support).Ludovic Courtès
This is a followup to 2c2f382e757d5eef39e8460a20ac75a1b1f8b22e, which inadvertently pulled in (shepherd support) on the host side. * gnu/home/services/ssh.scm (<home-ssh-agent-configuration>)[socket-directory]: Change value to a gexp. (home-ssh-agent-services): Change 'socket-file' and 'command' to a gexp. Add 'modules' field to 'shepherd-service'. * doc/guix.texi (Secure Shell): Adjust accordingly.
2023-03-16gnu: home: services: Add home-kodi-service-type.Jan (janneke) Nieuwenhuizen
* gnu/home/services/media.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * po/guix/POTFILES.in: Likewise. * doc/guix.texi (Media Home Services): Document it in new subsection.
2023-03-16gnu: home: services: Add home-znc-service-type.Jan (janneke) Nieuwenhuizen
* gnu/home/services/messaging.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * po/guix/POTFILES.in: Likewise. * doc/guix.texi (Messaging Home Services): Document it in new subsection.
2023-03-16gnu: home: services: Add home-ssh-agent-service-type.Jan (janneke) Nieuwenhuizen
* gnu/home/services/ssh.scm: (<home-ssh-agent-configuration>): New type. (home-ssh-agent-services): New procedure. (home-ssh-agent-service-type): New variable. * doc/guix.texi (Secure Shell): Document it.
2023-03-16home: services: Add home-unclutter-service-type.conses
* 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. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-05home: services: Add 'pulseaudio-rtp-sink' and 'pulseaudio-rtp-source'.Ludovic Courtès
* gnu/home/services/sound.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Sound Home Services): New section.
2023-01-31home: services: fontutils: Add service value.Giacomo Leidi
* gnu/home/services/fontutils.scm (add-fontconfig-config-file): Add support for multiple paths; (home-fontconfig-service-type): Honor it; * doc/guix.texi (Fonts Services): Document it. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-01-09home: environment-variables: Fix escaping.Andrew Tropin
* gnu/home/services.scm (environment-variable-shell-definitions): Fix escaping. * tests/guix-home.sh: Add STRING_WITH_ESCAPES environment variable and test its value. Reported-by: elevnkb
2023-01-09home: environment-variables: Return support for file-likes and gexps.Andrew Tropin
* gnu/home/services.scm (environment-variable-shell-definitions): Add support for file-likes and gexps. * tests/guix-home.sh: Add SHELL environment variable and test its value. Add BUILDHOSTTIME environment variable.
2023-01-05home: shells: Do not escape backslashes in single-quoted strings.Ludovic Courtès
This is a followup to 73684dc90e013f2f0cca1097b0c944bb9aa88709. * gnu/home/services.scm (environment-variable-shell-definitions) [shell-single-quote]: Remove #\\ from the escape list.
2023-01-05system: Define default 'PS1' in /etc/bashrc rather than ~/.bashrc.Ludovic Courtès
Users can override 'PS1' in ~/.bashrc if they wish. Previously, on Guix Home, the "default" 'PS1' would be set in ~/.bashrc when 'home-bash-configuration-guix-defaults?' is true, preventing users from overriding it via the 'environment-variables' field of 'home-bash-extension'. * gnu/system/shadow.scm (%default-bashrc): Remove 'PS1' setting. * gnu/system.scm (operating-system-etc-service): Define PS1 in /etc/bashrc. * gnu/home/services/shells.scm (add-bash-configuration): When 'home-bash-configuration-guix-defaults?' is true, add a default 'PS1' to ~/.bash_profile.
2023-01-05system, home: Factorize default '.bashrc'.Ludovic Courtès
* gnu/system/shadow.scm (%default-bashrc): New variable. Source /etc/bashrc only if it exists. (default-skeletons): Use it. * gnu/home/services/shells.scm (guix-bashrc): Remove. (add-bash-configuration): Refer to '%default-bashrc' instead.
2023-01-05home: services: environment-variables: Add support for literal strings.Ludovic Courtès
* gnu/home/services.scm (<literal-string>): New record type. (environment-variable-shell-definitions): Split 'shell-quote' into 'quote-string' and 'shell-double-quote'. Add 'shell-single-quote'. Add clause for 'literal-string' records. * tests/guix-home.sh: Test it. * doc/guix.texi (Essential Home Services): Document it.
2023-01-03guix: Fix typos.jman
* gnu/home/services.scm (home-files-service-type): Fix typo. (home-xdg-configuration-files-service-type): Likewise. (home-xdg-data-files-service-type): Likewise. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-12-23home: xdg: Add with-imported-modules to xdg activation script.Andrew Tropin
Without it activation doesn't work when called in clean environment. * gnu/home/services/xdg.scm (ensure-xdg-base-dirs-on-activation): Add with-imported-modules to xdg activation script.
2022-12-19home: xdg: Make it possible to extend user-directories service.Andrew Tropin
* gnu/home/services/xdg.scm (home-xdg-user-directories-service-type): Make it possible to override user-directories configuration by extending.
2022-12-02home: services: Use 'match-record' instead of 'match'.Ludovic Courtès
* gnu/home/services/mcron.scm (home-mcron-shepherd-services): Use 'match-record' instead of 'match'. * gnu/home/services/shells.scm (home-bash-extensions): Likewise. * gnu/home/services/xdg.scm (serialize-xdg-desktop-entry): Likewise.