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>
* gnu/home/services/messaging.scm (home-snuik-service-type): New variable.
* doc/guix.texi (Messaging Home Services): Document it.
Change-Id: I1e278e7d8ed04efcb1a2ce9e12e69cb6a31a9fa4
* gnu/home/services/desktop.scm (home-unclutter-shepherd-service):
Remove ‘one-shot?’ field and set ‘stop’.
Change-Id: I82b915d4260a62e628b419a497c50ecf2cbc356c
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>
While they aren’t exported, these temporary variables show up in the
resulting shell, cluttering tab completion and declare -p.
* gnu/home/services.scm (environment-variables->setup-environment-script):
Unset shell variables.
* gnu/home/services/shells.scm (add-shell-profile-file): Likewise.
Change-Id: Ibb634849d9f38c1a9a44c0d493e92231364de958
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
setup-environment already defines this variable. Use it since it’s more
concise.
* gnu/home/services.scm (environment-variables->setup-environment-script):
Use GUIX_PROFILE.
Change-Id: Ib75d8df6294976f4e95cfa7d607dc0ba21ddd258
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/services/syncthing.scm: (syncthing-config-file, syncthing-folder,
syncthing-device, syncthing-folder-device): New records.
(syncthing-service-type): Add special-files-service-type extension for
the config file.
(syncthing-files-service): Add service to create config file.
* gnu/home/services/syncthing.scm: (home-syncthing-service-type):
Extend home-files-services-type and re-exported more things from
gnu/services/syncthing.scm.
* doc/guix.texi: (syncthing-service-type): Document changes.
Change-Id: I87eeba1ee1fdada8f29c2ee881fbc6bc4113dde9
Signed-off-by: Leo Famulari <leo@famulari.name>
* gnu/home/services/admin.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (Shepherd Home Service): Document it.
Change-Id: I37ac171147c236b05d6d3b226e9072ab7524dfe9
* gnu/home/services/symlink-manager.scm (update-symlinks): Use
copy-file and delete-file instead of rename-file to avoid an error
when the target and backup are not in the same filesystem.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/home/services/desktop.scm: Add DISPLAY to the list of environment
variables passed to 'home-unclutter-service-type'. Change
'make-forkexec-construstor' to 'fork+exec-command' as the former did not seem to
pick up the newly defined environment variable. Add 'x11-display' as a
requirement. These changes are consistent to how things are done in
'home-redshift-service-type'.
Change-Id: Ie8b88b30353e76139d354da27aef791036eaa5a0
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/home/services/sway.scm: New file.
(home-sway-service-type): New variable.
(sway-configuration->file): New procedure.
(sway-configuration): New configuration record.
(sway-bar): New configuration record.
(sway-output): New configuration record.
(sway-input): New configuration record.
(point): New configuration record.
(sway-color): New configuration record.
(sway-border-color): New configuration record.
(sway-mode): New configuration record.
(flatmap): New procedure.
* gnu/local.mk: Add gnu/home/services/sway.scm.
* doc/guix.texi (Sway window manager): New node to document the above
changes.
Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
Change-Id: I880261570c5afdb795f2ce18bac2b9a5c898677f
* gnu/home/services.scm: Add end-of-text newline to warning printed by
on-first-login script when XDG_RUNTIME_DIR does not exist.
Change-Id: I3bfe2c415f6941fa9a2231ab2a0be53db965053f
Signed-off-by: Hilton Chain <hako@ultrarare.space>
This is a followup to 1964531ce5.
* gnu/home/services/shepherd.scm (home-shepherd-configuration-file):
Use ‘perform-service-action’ rather than ‘action’.
Change-Id: I669750c319083836416c3e093c112ebfeba32e64
This patch adds a Guix Home service, which allows for configuring/deploying an
operating-system declaration with an associated home-environment.
* gnu/services/guix.scm: Add guix-home-service and guix-home-shepherd-service
* gnu/home/services/shepherd.scm: Don't attempt to launch user shepherd when
the system shepherd runs guix-home-<user>
* doc/guix.texi: Add documentation for guix-home-service
* gnu/tests/guix.scm: Add a test to verify guix-home-service-type is able to
activate a home environment
Change-Id: Ifbcc0878d934aa4abe34bb2123b5081fb432aa8e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Fixes <https://issues.guix.gnu.org/68848>.
The current implementation of the home-dotfiles-service-type contradicts
the Guix manual. This patch properly implements both the plain and Stow
dotfiles directory layouts.
It does so by refactoring home-dotfiles-configuration adding a new
packages field to support GNU Stow's users workflow and introducing
a new layout field to switch between the two directory layouts.
* gnu/home/services/dotfiles (home-dotfiles-configuration): Migrate to
(gnu services configuration);
[packages]: new field;
[layout]: new field;
(strip-stow-dotfile): new variable;
(strip-plain-dotfile): new variable;
(home-dotfiles-configuration->files): use the new fields;
[directory-contents]: allow for
selecting a subset of application dotfile directories;
* doc/guix.texi: document the new layouts.
Change-Id: I2e96037608353e360828290f055ec5271cfdfd48
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/home/services/shells.scm (zsh-file-zprofile): Use the zprofile
defined in (gnu system shadow) as a base.
Change-Id: Iaf4c4f66d1ccbc0bd0166136b3d082229bdec201
This adds a set of home Shepherd services which will start the required
services for a functional PipeWire setup.
* gnu/home/services/sound.scm (home-pipewire-shepherd-service,
home-wireplumber-shepherd-service, home-pipewire-shepherd-services,
home-pipewire-asoundrc, home-pipewire-xdg-configuration,
home-pipewire-pulseaudio-shepherd-service): New procedures.
(home-pipewire-service-type): New service type.
(home-pipewire-configuration): New struct.
(home-pipewire-disable-pulseaudio-auto-start): New variable.
* doc/guix.texi (Sound Home Services): Document it.
Change-Id: I99e0ae860de91d459c3c554ec5503bf35f785a2a
Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
Fixes <https://issues.guix.gnu.org/66659>.
Fixes a regression introduced in 6b0a321969. The
first attempt in e098ba2f49 to fix this issue didn't work.
* gnu/home/services.scm (compute-on-first-login-script): Add
‘begin *unspecified*’ around #$@gexps.
Change-Id: I14339ad684ffe93e692e507b57dcd221d96210ef
Signed-off-by: Clément Lassieur <clement@lassieur.org>
Fixes <https://issues.guix.gnu.org/66659>.
Fixes a regression introduced in
6b0a321969.
* gnu/home/services.scm (compute-on-first-login-script): Add ‘begin’
around #$@gexps.
Reported-by: Nils Landt <nils@landt.email>
* 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>
* 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>
* gnu/home/services/desktop.scm (redshift-shepherd-service): Use the redshift
package specified by config.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>