this post was submitted on 28 Sep 2023
419 points (100.0% liked)

Linux

1259 readers
67 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] sickday@kbin.social 14 points 1 year ago (1 children)

Nix and Home Manager have been my go-to for managing dotfiles and symlinks in my home dir

[–] onlinepersona@programming.dev 6 points 1 year ago (1 children)

If a program just uses $HOME or someone starts writing a new application, how is that supposed to help?

[–] sickday@kbin.social 3 points 1 year ago (1 children)

You can manage symlinks pretty easy with home-manager. I'd personally setup symlinks for these app configuration directories if I don't want them storing files directly on the disk I use for $HOME. It's also done in a delcarative way that can persist across multiple computers.

[–] onlinepersona@programming.dev 3 points 1 year ago (2 children)

I'm not sure I understand. So you create a symlink from $HOME/.program.ini to something in the nix store? If so, how does that solve the problem of clutter in $HOME ?

[–] Byter@lemmy.one 1 points 1 year ago

You're right, it doesn't. That does give me an idea though.

You could use overlayfs with an opaque upper directory to hide the files littering your $HOME and still access them by bind-mounting them into the appropriate xdg dirs.

Way more effort than it's worth, of course.

[–] sickday@kbin.social 1 points 1 year ago

If so, how does that solve the problem of clutter in $HOME ?

If it wasn't clear from my message, the problem(s) these tools are solving for me would be 1. not having to keep track of my dotfiles and their directories, and 2. not storing configuration files directly on the disk I use for the $HOME dir. I'm not claiming these tools would solve clutter in the $HOME dir. Further, I think it should be alright for me to share tools for managing configuration files in your home directory in a discussion that directly relates to that subject.

So you create a symlink from $HOME/.program.ini to something in the nix store?

Normally it's the other way around. When you use nix and home-manager, you're technically generating files that will live in the nix-store and nix/home-manager will take care of symlinking those files to locations in your $HOME dir.

In this scenario though, I would use the https://nix-community.github.io/home-manager/options.html#opt-home.file option from home-manager to create a symlinks to a location that's outside of my $HOME dir so those files don't have to live on my home disk.

My particular use-case is that I want persistent configuration files that are shared throughout a handful of devices on my network. To this end, I use some home-manager symlinks that lead to a network folder where all these various directories and configuration files actually live. I edit those configurations in a single place and their changes propagate across the network to all the devices that would use them.