Subject: bug#52808: Guix home should not assume that all targets are dot files

From: Ludovic Courtès <[email-masked]>
Date: Sat, 05 Mar 2022 23:44:27 +0100

Hi Andrew,

The patches reached my mailbox around the time I went on vacation and
then fell through the cracks.  Sorry about that!

Andrew Tropin <[email-masked]> skribis:

> After that patch series is merged we can give a time for users to
> migrate their self-made home services to xdg-configuration-files and
> after for example 2 weeks, remove special handling of dots for
> home-files.

Sounds like a plan!

> From 0cd37bbc724f9c793898c2655bdd1c335045c5f0 Mon Sep 17 00:00:00 2001
> From: Andrew Tropin <[email-masked]>
> Date: Fri, 11 Feb 2022 10:55:01 +0300
> Subject: [PATCH 1/5] 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).

[...]

> -                (description "Configuration files for programs that
> -will be put in @file{~/.guix-home/files}.")))
> +                (description (format #f "Files that will be put in
> +@file{~~/.guix-home/~a}, and further processed during activation."
> +                                     home-files-directory))))

This hunk would prevent i18n so I suggest dropping it (you can mention
‘home-files-directory’ in a margin comment for good measure).

Otherwise LGTM.

> From 23f7095d60b18b52de0d1aa314c4012cdf55a046 Mon Sep 17 00:00:00 2001
> From: Andrew Tropin <[email-masked]>
> Date: Fri, 11 Feb 2022 11:03:02 +0300
> Subject: [PATCH 2/5] home: Add home-xdg-configuration-files service.
>
> * gnu/home/services.scm (home-xdg-configuration-files): New variable.

[...]

> +(define xdg-configuration-files-subdir "config")
>
> +(define (xdg-configuration-files files)
> +  (map (lambda (lst)
> +         (cons (string-append xdg-configuration-files-subdir
> +                              "/" (car lst)) (cdr lst)))
> +         files))

I’d just call it “.config” (instead of “config”).  That way, there
wouldn’t be any special treatment.  WDYT?

Also: s/subdir/directory/, and please use ‘match’ instead of car/cdr
(info "(guix) Coding Style").

> +                (description (format #f "Files that will be put in
> +@file{~~/.guix-home/~a/~a}, and further processed during activation."
> +                                     home-files-directory
> +                                     xdg-configuration-files))))

Same as above: drop ‘format’ and write ~/.guix-home/files/.config.

> From 11f23a48d480a91d6bfba0ff55c1a9831585a4ee Mon Sep 17 00:00:00 2001
> From: Andrew Tropin <[email-masked]>
> Date: Fri, 11 Feb 2022 15:03:44 +0300
> Subject: [PATCH 3/5] home: shells: Migrate zsh to xdg-configuration-files.
>
> * gnu/home/services.scm (home-zsh-service-type): Additionally extend
> home-xdg-configuration-files-service-type.

[...]

> From ef4c3bbcc0c8c1a251f4ad6c494f8ed30adf45f2 Mon Sep 17 00:00:00 2001
> From: Andrew Tropin <[email-masked]>
> Date: Fri, 11 Feb 2022 15:34:46 +0300
> Subject: [PATCH 4/5] 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.

Neat!

> From 089683bbd301f6e085f00fbd53713f335abac40e Mon Sep 17 00:00:00 2001
> From: Andrew Tropin <[email-masked]>
> Date: Fri, 11 Feb 2022 16:14:23 +0300
> Subject: [PATCH 5/5] home: symlink-manager: Respect XDG_CONFIG_HOME during
>  activation.
>
> * gnu/home/services/symlink-manager.scm (update-symlinks-script): Respect
> XDG_CONFIG_HOME during activation.

I propose to postpone this one after
<https://issues.guix.gnu.org/54180>, and I even offer to rebase it
myself if you want.  :-)

Could you send updated patches?

Thanks in advance, and apologies again for the delay!

Ludo’.