help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to declare symlinks in the configuration?


From: Felix Lechner
Subject: Re: How to declare symlinks in the configuration?
Date: Tue, 16 May 2023 06:56:29 -0700

Hi Marek,

On Tue, May 16, 2023 at 4:15 AM Marek Paśnikowski
<marekpasnikowski@protonmail.com> wrote:
>
> How can I declare symbolic links in the system configuration?
> In this specific case, I wish to be able to declare the following link:
> ~/.config/guix/channels.scm -> ~/src/izumi/channels.scm

Guix can appear scary at first, and it's easy to overthink a problem.

It probably does not help that many Guix aficionados are
mathematicians or otherwise talented at abstract thinking. (Sorry,
folks—I'm in recovery.) It's also possible that I misunderstood your
question.

A symbolic link is a symbolic link. You can create it with

  $ ln -s ~/src/izumi/channels.scm ~/.config/guix/channels.scm

I do not see the value of such a link, though. I would instead create
the channel list via the Guix Home service, like this. [1][2]

> I am aware that system configuration is not the optimal place for
> files in the user's home directory.

Actually, I keep my system configurations there as well (and publish
them in Git). [3] I use 'guix deploy' for all my equipment from a
single machine.

> I wish, however, to be able to define arbitrary files in the future,

I believe Guix Home can do that for you. I currently only use the
capability for Bash [4] (which I hardly use anymore). I look forward
to improving my Guix Home setup and perhaps even learning from what
you find out.

The author of Guix Home, Andrew Tropin, even tied it into configuring
Emacs via something called 'rde'. There too, I am behind the times.

> I think the Manual chapter about G-expressions does include the answer,

Somehow, I doubt it. G-Expressions are an abstraction for the Guix
build system. It is necessary because the build environment is
different from the one in which you run Guix. I think you need
G-Expressions only when you package software.

> but the instructions are written on an abstraction level
> not accessible to my current understanding.

I believe you are experiencing a "fight or flight" response. At its
core, Guix is a simple and trusted friend. It just gets complicated
(and a bit symbolic) along the way.

Happy hacking!

Kind regards
Felix

[1] 
https://codeberg.org/lechner/home-config/src/branch/history/service/channels.scm
[2] 
https://codeberg.org/lechner/home-config/src/commit/243e6c1c59a23ee9560c5dfdcbf6631eb93fad19/desk.scm#L168
[3] https://codeberg.org/lechner/system-config
[4] https://codeberg.org/lechner/home-config/src/branch/history/service/bash.scm



reply via email to

[Prev in Thread] Current Thread [Next in Thread]