Bastien Rivière
2c408520f5
home: shells: Migrate fish to xdg-configuration-files.
...
* gnu/home/services/shells.scm (home-fish-service-type): Use new
xdg-configuration-files-service-type service.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-29 18:07:16 +02:00
Maya
f2eb0d3922
home: services: fish: Fix incorrect ".config" file name.
...
This is a followup to 5832d9fb60
.
* gnu/home/services/shells.scm (fish-files-service): Change "config/"
to ".config/".
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-29 00:33:45 +02:00
Ludovic Courtès
dd2ab92d9d
home: shepherd: Redirect input port to /dev/null.
...
Suggested by Aleksandr Vityazev <avityazev@posteo.org>.
* gnu/home/services/shepherd.scm (home-shepherd-configuration-file):
Redirect input port to /dev/null.
2022-04-21 00:02:21 +02:00
Ludovic Courtès
bc867b2ab0
home: shepherd: "shepherd.conf" returns one value.
...
Fixes <https://issues.guix.gnu.org/54779 >.
Reported by Aleksandr Vityazev <avityazev@posteo.org>
and Nicolas Graves <ngraves@ngraves.fr>.
* gnu/home/services/shepherd.scm (home-shepherd-configuration-file):
Return one value.
2022-04-21 00:00:14 +02:00
Andrew Tropin
8805c7eab1
home: shepherd: Prevent launching the second instance.
...
Fixes <https://issues.guix.gnu.org/54545 >.
* gnu/home/services/shepherd.scm (launch-shepherd-gexp): Launch shepherd
if and only if its socket file does not already exist.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-12 23:30:09 +02:00
Andrew Tropin
435e1cef00
home: symlink-manager: Handle non-existing directory during cleanup.
...
* gnu/home/services/symlink-manager.scm (update-symlinks-script): Handle
non-existing directory during cleanup.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-11 00:25:33 +02:00
Andrew Tropin
ac8e987ce2
home: shells: Rename zsh related functions.
...
* gnu/home/services/shells.scm (home-zsh-service-type): Make zsh related
private functions more consistently named.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-11 00:25:32 +02:00
Andrew Tropin
d6b9a3faa8
home: symlink-manager: Use no-follow version of file-exists?.
...
* gnu/home/services/symlink-manager.scm (update-symlinks-script): Use
no-follow version of file-exists?.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-10 00:17:40 +02:00
Andrew Tropin
20645d8467
home: Add home-xdg-data-files-service-type.
...
* gnu/home/services.scm (home-xdg-data-files-service-type): New variable.
* gnu/home/services/symlink-manager.scm (update-symlinks-script): Add a proper
handling for XDG_DATA_HOME value.
* gnu/home/services/xdg.scm (home-xdg-mime-applications-service-type): Use
home-xdg-data-files service.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-08 20:13:48 +02:00
Andrew Tropin
5832d9fb60
home: symlink-manager: Remove appending of leading dot.
...
* gnu/home/services.scm (xdg-configuration-files-directory): Add leading dot.
* gnu/home/services.scm (xdg-configuration-files-service-type): Change name.
* gnu/home/services/shells.scm (add-shell-profile-file,
zsh-get-configuration-files, add-zsh-dot-configuration,
add-zsh-xdg-configuration, add-bash-configuration): Add leading dots.
* gnu/home/services/symlink-manager.scm (update-symlinks-script): Remove
leading dot.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-08 20:13:45 +02:00
Ludovic Courtès
22ab901466
home: shepherd: Default to version 0.9.
...
* gnu/home/services/shepherd.scm (<home-shepherd-configuration>)[shepherd]:
Default to SHEPHERD-0.9.
(home-shepherd-configuration-file): Use 'start-in-the-background' when
it is defined.
2022-04-07 00:08:56 +02:00
Brian Kubisiak
032f2e261c
home: services: zsh: Fix zshenv creation.
...
Fixes a regression introduced by
4935501fd9
that would skip generating
the user's ~/.config/zsh/.zshenv unless both of zshenv and
environment-variables are set in the configuration.
* gnu/home/services/shells.scm (zsh-get-configuration-files):
Generate ~/.config/zsh/.zshenv when only one of zshenv or
environment-variables is specified.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-03 12:42:18 +02:00
Andrew Tropin
92c2397070
home: symlink-manager: Respect XDG_CONFIG_HOME during activation.
...
* gnu/home/services/symlink-manager.scm (update-symlinks-script): Respect
XDG_CONFIG_HOME during activation.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-20 19:02:41 +01:00
Andrew Tropin
3c149de461
home: Migrate fountutils and xdg modules to xdg-configuration-files.
...
* gnu/home/services/fontutils.scm (home-fontconfig-service-type): Migrate to
xdg-configuration-files.
* gnu/home/services/xdg.scm (home-xdg-user-directories-service-type,
home-xdg-mime-applications-service-type): Migrate to xdg-configuration-files.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-20 19:02:41 +01:00
Andrew Tropin
4935501fd9
home: shells: Migrate zsh to xdg-configuration-files.
...
* gnu/home/services.scm (home-zsh-service-type): Additionally extend
home-xdg-configuration-files-service-type.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-20 19:02:41 +01:00
Andrew Tropin
d3ef61ab17
home: Explicitly connect home-file and symlink-manager services.
...
* gnu/home/services.scm (home-files-directory): New variable.
* gnu/home/symlink-manager.scm (update-symlinks-script): Use
home-files-directory variable from (gnu home services).
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-20 19:02:41 +01:00
Andrew Tropin
d05954047f
home: symlink-manager: Add missing 'done' word in message.
...
* gnu/home/services/symlink-manager.scm (update-symlinks-script): Add missing
'done' word in message, keep code width below 80 column.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-20 19:02:41 +01:00
Andrew Tropin
9e86e58d6f
home: symlink-manager: Use existing home-directory symbol.
...
* gnu/home/services/symlink-manager.scm (update-symlinks-script): Use
existing home-directory symbol instead of additional getenv call.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-20 19:02:40 +01:00
angryrectangle
3a91c92547
home: services: Fix bash aliases without guix-defaults.
...
* gnu/home/services/shells.scm: Fix bash aliases not being added if
guix-defaults? was #f. Also fix inaccuracy in documentation about placement
of defaults.
* doc/guix.texi (Shells Home Services): Adjust accordingly.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-18 16:03:34 +01:00
Ludovic Courtès
e607c377bb
home: services: Export record type accessors.
...
* gnu/home/services/shepherd.scm: Export <home-shepherd-configuration>
accessors. Re-export <shepherd-service> accessors.
2022-03-18 16:03:33 +01:00
Ludovic Courtès
2a55f99aff
home: symlink-manager: Rename "path" to "file" where appropriate.
...
* gnu/home/services/symlink-manager.scm (update-symlinks-script):
[home-path]: Rename to...
[home-directory]: ... this. Adjust users.
[backup-dir]: Rename to...
[backup-directory]: ... this. Adjust user.
[get-target-path]: Rename to...
[target-file]: ... this. Adjust users.
[get-backup-path]: Remove.
[backup-file]: Inline it.
[cleanup-symlinks](get-source-path): Rename to...
(source-file): ... this. Adjust users.
Rename 'he-path' to 'home' and 'new-he-path' to 'pivot'.
2022-03-10 11:43:15 +01:00
Ludovic Courtès
1fb6ef0473
home: symlink-manager: 'create-symlinks' uses 'file-system-fold'.
...
This removes the need for two intermediate representations of the file
tree.
* gnu/home/services/symlink-manager.scm (update-symlinks-script)
[simplify-file-tree, file-tree-traverse]: Remove.
[create-symlinks]: Rewrite in terms of 'file-system-fold'.
2022-03-10 11:43:14 +01:00
Ludovic Courtès
5fa188e92e
home: symlink-manager: 'cleanup-symlinks' uses 'file-system-fold'.
...
* gnu/home/services/symlink-manager.scm (update-symlinks-script)[cleanup-symlinks]:
Take a home generation and iterate over its config files directly with
'file-system-fold'. Adjuster caller accordingly. Remove 'old-tree'.
2022-03-10 11:43:14 +01:00
Ludovic Courtès
a3a76a8384
home: symlink-manager: Avoid extra 'lstat' call.
...
* gnu/home/services/symlink-manager.scm (update-symlinks-script)[symlink-to-store?]:
Avoid extra 'lstat' call.
2022-03-10 11:43:14 +01:00
Ludovic Courtès
a81bb1e4bb
home: symlink-manager: Remove 'empty-directory?' and avoid TOCTTOU race.
...
This removes three 'stat' syscalls.
* gnu/home/services/symlink-manager.scm (update-symlinks-script)[empty-directory?]:
Remove.
[cleanup-symlinks]: Replace use of 'file-exists?', 'file-is-directory?',
and 'empty-directory?' by a single 'rmdir' call.
2022-03-10 11:43:14 +01:00
Ludovic Courtès
e1b38046a6
home: symlink-manager: Use 'file-is-directory?'.
...
* gnu/home/services/symlink-manager.scm (update-symlinks-script)[directory?]:
Remove.
Change callers to use 'file-is-directory?' instead.
2022-03-10 11:43:13 +01:00
Ludovic Courtès
cf803b71c7
home: symlink-manager: Use 'for-each' when used for effects.
...
* gnu/home/services/symlink-manager.scm (update-symlinks-script)[cleanup-symlinks]
[create-symlinks]: Use 'for-each' instead of 'map'.
2022-03-10 11:43:13 +01:00
Ludovic Courtès
7a8856f540
home: symlink-manager: Move helper procedures as top-level defines.
...
* gnu/home/services/symlink-manager.scm (update-symlinks-script): Remove
'config-home', which is unused. Move 'home-path', 'backup-dir',
'get-target-path', 'get-backup-path', 'directory?', 'empty-directory?',
'symlink-to-store?', and 'backup-file' to the top level. Move
'create-symlinks' and 'cleanup-symlinks' to the top level as well, and
add parameters. Adjust callers.
2022-03-10 11:43:13 +01:00
Ludovic Courtès
66bf60a4cd
home: symlink-manager: Clarify module imports.
...
* gnu/home/services/symlink-manager.scm (update-symlinks-script): Wrap
body in 'with-imported-modules'. Move (guix build utils) import to the
top. Move #$%initialize-gettext after definitions.
2022-03-10 11:43:13 +01:00
Andrew Tropin
60c45fd9fd
home: xdg: Fix xdg-desktop-entry config field serialization.
...
[[PGP Signed Part:No public key for 2208D20958C1DEB0 created at 2022-03-01T06:09:14+0100 using RSA]]
* gnu/home/services/xdg.scm (serialize-xdg-desktop-entry): Use append instead
of identity to allow multiple alist values.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-03-01 12:33:07 +01:00
Ludovic Courtès
39e8025d3b
home: Add redshift service.
...
* gnu/home/services/desktop.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (Desktop Home Services): New node.
2022-02-07 00:05:59 +01:00
Xinglu Chen
cde3376b35
home: services: Make strings in Gexps translateble.
...
* gnu/home/services.scm (%initialize-gettext): New variable.
(compute-on-first-login-script): Use it.
(compute-on-change-gexp): Likewise.
* gnu/home/services/symlink-manager.scm (update-symlinks-script): Likewise.
* po/guix/POTFILES.in: Add gnu/home-services.scm and
gnu/home/services/symlink-manager.scm.
Suggested-by: Ludovic Courtès <ludo@gnu.org>
Link: <https://yhetil.org/guix-bugs/87sfvy8k1u.fsf@gnu.org >
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-01-03 19:32:07 +01:00
Tobias Geerinckx-Rice
a4cbd31c5c
home: services: bash: Only source /etc/bashrc if it exists.
...
* gnu/home/services/shells.scm (home-bash-configuration):
Check whether /etc/bashrc exists before trying to ‘source’ it.
Reported by guixy on #guix.
2021-11-24 19:46:39 +01:00
Ludovic Courtès
c322d97832
home: services: bash: Emit 'extra-content' first again.
...
Fixes a regression introduced in
4b96998292
that would less to a
'tests/guix-home.sh' failure.
* gnu/home/services/shells.scm (add-bash-configuration)[file-if-not-empty]:
Move EXTRA-CONTENT first.
2021-11-16 14:38:01 +01:00
Vagrant Cascadian
57bf76d832
gnu: home: services: Fix typo.
...
* gnu/home/services/xdg.scm (home-xdg-base-directories-service-type): Fix
spelling of "convenient".
2021-11-14 17:37:54 -08:00
Vagrant Cascadian
e149853845
gnu: home: services: Fix typo.
...
* gnu/home/services/utils.scm: Fix spelling of "anything".
2021-11-14 17:35:30 -08:00
Vagrant Cascadian
6edfcf3e90
gnu: home: services: Fix typo.
...
* gnu/home/services/shells.scm (home-shell-profile-configuration): Fix
spelling of "available".
2021-11-14 17:33:35 -08:00
Xinglu Chen
2f665d4309
doc: Improve documentation of the Bash home service
...
* doc/guix.texi (Shells Home Services): Document ‘home-bash-extension’
configuration record.
* gnu/home/services/shells.scm (generate-home-bash-documentation): Extract
docstrings from ‘home-bash-extension’.
(home-bash-configuration): Expound on docstrings.
(home-bash-extension): Likewise.
Fixes: <https://issues.guix.gnu.org/50991 >
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-07 23:10:41 +01:00
Xinglu Chen
4b96998292
home: services: bash: Add ‘aliases’ field.
...
* doc/guix.texi (Shells Home Services): Document it.
* gnu/home/services/shells.scm (bash-serialize-aliases): New procedure.
(home-bash-configuration, home-bash-extension): Add ‘aliases’ field.
(home-bash-extensions): Adjust accordingly.
* guix/scripts/home/import.scm (generate-bash-configuration+modules): Populate
the ‘alias’ field.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-07 23:10:41 +01:00
Oleg Pykhalov
ff20d3928d
home: services: shells: Fix documentation about file-like objects.
...
* gnu/home/services/shells.scm:
(home-shell-profile-configuration, home-shell-profile-service-type,
home-zsh-configuration, home-zsh-extension, home-bash-configuration,
home-bash-extension, home-fish-configuration, home-fish-extension):
Replace 'strings or gexps' with 'file-like objects' in the documentation.
* doc/guix.texi (Shells Home Services): Same.
2021-10-16 16:48:44 +03:00
Oleg Pykhalov
fee0bced7f
home: services: configuration: Support file-like objects.
...
* gnu/home/services/configuration.scm (interpose): Operate only with file-like
objects.
(string-or-gexp?): Delete procedure.
(serialize-string-or-gexp): Rename to 'serialize-file-like'.
(text-config?): Call 'file-like' intead of 'string-or-gexp?'.
* guix/scripts/home/import.scm:
(generate-bash-module+configuration): Don't call slurp-file-gexp.
* gnu/home/services/configuration.scm: Move content ...
* gnu/services/configuration.scm: here.
* gnu/home/services/shells.scm: Delete (gnu home services configuration).
* gnu/home/services/xdg.scm: Same.
* gnu/local.mk: Same.
* tests/guix-home.sh:
Test home-bash-service-type and extension with home-bash-extension.
2021-10-09 19:24:19 +03:00
Oleg Pykhalov
0e8d2df0f1
Move (gnu home-services) to (gnu home services).
...
* gnu/home-services.scm (%guix-home-root-directory): Replace
gnu/home-services.scm with "gnu/home/services.scm".
Rename to gnu/home/services.scm.
* gnu/local.mk
(GNU_SYSTEM_MODULES): Rename gnu/home-services.scm to gnu/home/services.scm.
* doc/he-config-bare-bones.scm:
Replace (gnu home-services) with (gnu home services).
* gnu/home.scm: Same.
* gnu/home/services/fontutils.scm: Same.
* gnu/home/services/mcron.scm: Same.
* gnu/home/services/shells.scm: Same.
* gnu/home/services/shepherd.scm: Same.
* gnu/home/services/symlink-manager.scm: Same.
* gnu/home/services/xdg.scm: Same.
* guix/scripts/home.scm: Same.
* guix/self.scm: Same.
2021-10-09 19:24:18 +03:00
Oleg Pykhalov
ba8ddb3480
gnu: Move (gnu home-services) to (gnu home services).
...
* gnu/home-services/configuration.scm: Move the content ...
* gnu/home/services/configuration.scm: ... here.
* doc/guix.texi:
Replace (gnu home-services mcron) with (gnu home services mcron).
Replace (gnu home-services) with (gnu home services).
* gnu/home.scm:
Replace (gnu home-services fontutils) with (gnu services fontutils).
Replace (gnu home-services shells) with (gnu home services shells).
Replace (gnu home-services symlink-manager) with
(gnu home services symlink-manager).
Replace (gnu home-services xdg) with (gnu home services xdg).
* gnu/home-services/fontutils.scm: Rename to gnu/services/fontutils.scm.
* gnu/home-services/mcron.scm: Move to gnu/home/services/mcron.scm.
Replace (gnu home-services shepherd) with (gnu home services shepherd).
* gnu/home-services.scm (%service-type-path):
Search home services in "gnu/services".
* gnu/home-services/shells.scm: Replace (gnu home-services configuration) with
(gnu home services configuration).
Rename to gnu/home/services/shells.scm.
Replace (gnu home-services utils) with (gnu home services utils).
* gnu/home-services/shepherd.scm: Move to gnu/home/services/shepherd.scm.
* gnu/home-services/symlink-manager.scm:
Rename to gnu/home/services/symlink-manager.scm.
* gnu/home-services/utils.scm: Rename to gnu/home/services/utils.scm.
* gnu/home-services/xdg.scm: Rename to gnu/home/services/xdg.scm.
* guix/scripts/home/import.scm:
Replace (gnu home-services bash) with (gnu home services bash).
* gnu/home-services.scm: Update documentation string.
* doc/he-config-bare-bones.scm:
Apply new (gnu home-services ...) modules location.
* gnu/local.mk (GNU_SYSTEM_MODULES): Same.
2021-10-08 15:36:18 +03:00