Subject: [bug#60521] [60521] Add home-dotfiles-service-type - Rebased on master

From: Feng Shu <[email-masked]>
Date: Tue, 23 Jan 2024 20:14:21 +0800

paul <[email-masked]> writes:

> Hello,
>
> the following works for me with the attached configuration.
>
> $ tree -a .
> .
> └── guix-home-project
>     ├── .dotfiles
>     │   └── rime
>     │       ├── .config
>     │       │   └── ibus
>     │       └── .emacs.d
>     └── test-config.scm
>
> 7 directories, 1 file
> $ echo hello > guix-home-project/.dotfiles/rime/.config/ibus/rime

In my machine, rime is a directory and not a file.

If this situation is hard to support, maybe we should add note to document.

> $ cd guix-home-project/.dotfiles/rime/.emacs.d/ && ln -s ../.config/ibus/rime ./
> $ ls -al 
> total 4
> drwxr-xr-x 1 paul users  8 Jan 22 17:37 ./
> drwxr-xr-x 1 paul users 30 Jan 22 17:31 ../
> lrwxrwxrwx 1 paul users 20 Jan 22 17:37 rime -> ../.config/ibus/rime
>  $ cd ../.. && guix home container --share=`pwd`/..=$HOME test-config.scm 
> WARNING: (guile-user): imported module (guix build utils) overrides core binding `delete'
> WARNING: (guile-user): imported module (guix build utils) overrides core binding `delete'
> Cleaning up symlinks from previous home at /gnu/store/hpnywydkrfygcl2qplxwgypqqwny16x5-home.
>
> Removing /home/paul/.profile... done
> Removing /home/paul/.emacs.d/rime... done
> Removed /home/paul/.emacs.d.
> Removing /home/paul/.config/fontconfig/fonts.conf... done
> Removed /home/paul/.config/fontconfig.
> Removing /home/paul/.config/ibus/rime... done
> Removed /home/paul/.config/ibus.
> Removed /home/paul/.config.
> Cleanup finished.
>
> Symlinking /home/paul/.profile -> /gnu/store/l27r8vj94ggr3na9pb1snizsmvh0zrxl-shell-profile... done
> Symlinking /home/paul/.emacs.d/rime -> /gnu/store/05v76y32j495v8dw6aaknp91k0371q34-home-dotfiles-.emacs.d-rime... done
> Symlinking /home/paul/.config/fontconfig/fonts.conf -> /gnu/store/sfj8h6zbacaz3y3gqzxqsbz3621nq4jv-fonts.conf... done
> Symlinking /home/paul/.config/ibus/rime -> /gnu/store/lfw0i01pmwzaia6f7lb9c4p84y357pbd-home-dotfiles-.config-ibus-rime... done
>  done
> Finished updating symlinks.
>
> Comparing /gnu/store/hpnywydkrfygcl2qplxwgypqqwny16x5-home/profile/share/fonts and
>           /gnu/store/hpnywydkrfygcl2qplxwgypqqwny16x5-home/profile/share/fonts... done (same)
> Evaluating on-change gexps.
>
> On-change gexps evaluation finished.
>
> warning: XDG_RUNTIME_DIR doesn't exists, on-first-login script
> won't execute anything.  You can check if xdg runtime directory exists,
> XDG_RUNTIME_DIR variable is set to appropriate value and manually execute the
> -bash-5.1$  cat .emacs.d/rimex-home/on-first-login'-bash-5.1$  cat .emacs.d/rime
> hello
> -bash-5.1$ ls -al .emacs.d/    
> total 4
> drwxr-xr-x 1 paul users   8 Jan 22 16:42 .
> drwxr-xr-x 1 paul users 234 Jan 22 16:42 ..
> lrwxrwxrwx 1 paul users  71 Jan 22 16:42 rime -> /gnu/store/05v76y32j495v8dw6aaknp91k0371q34-home-dotfiles-.emacs.d-rime
> -bash-5.1$
>
> Hope this helps,
>
> giacomo
>

--