this post was submitted on 27 Dec 2025
114 points (98.3% liked)

Linux

60973 readers
988 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 6 years ago
MODERATORS
 

Hello, i would like to know how you manage your dotfiles.

Do you use some gui or tui?

There are many ways i don't what to do.

Probably im going to do git repo with lazygit. I like tuis. I am managing files on two artix linux systems 1- pc and 2- laptop

top 50 comments
sorted by: hot top controversial new old
[–] hexagonwin@lemmy.sdf.org 48 points 2 weeks ago (1 children)

I don't... when setting up a new system I just copy what I need from any random machine I have logged into at the time. As I need different config for different systems it doesn't really make sense to have one perfect config on all either..

[–] furrowsofar@beehaw.org 10 points 2 weeks ago* (last edited 2 weeks ago)

Besides. What is there to really mange. There are only a few that one are likely to change. Every thing else is in /etc. Besides all of thia is in whole system backups and snapshots anyway.

[–] SrMono@feddit.org 45 points 2 weeks ago* (last edited 2 weeks ago) (2 children)

Gnu stow and a git repository.

stow creates bulk symlinks according to the folder structure.

[–] sxan@midwest.social 5 points 2 weeks ago

I use a convenience package on top of stow (yas-bdsm), but yeah: stow is foundational.

[–] plateee@piefed.social 4 points 2 weeks ago

This is what I use and it's been a godsend in my home lab.

[–] kibiz0r@midwest.social 32 points 2 weeks ago (2 children)

Nix, but I’d only recommend it if you share my same brand of mental illness

[–] haribar@sopuli.xyz 5 points 2 weeks ago

This is the way.

load more comments (1 replies)
[–] communism@lemmy.ml 25 points 2 weeks ago (1 children)

chezmoi does everything I need. It's really nice; would recommend.

[–] xor@lemmy.blahaj.zone 2 points 2 weeks ago

Chezmoi with auto-push is the way

[–] mko@discuss.tchncs.de 19 points 2 weeks ago (1 children)

GNU Stow, backed up to a git repo.

For those who might not see the purpose, it’s for keeping your profiles on different machines in sync, especially if you use the terminal a lot.

[–] TruePe4rl@lemmy.ml 2 points 2 weeks ago
[–] Hundun@beehaw.org 16 points 2 weeks ago (1 children)

I used to have everything in a git repo, but nowadays I use Nix with Home Manager, and I don't want to look back.

[–] g5pw@feddit.it 5 points 2 weeks ago

Same! I even manage three different configs with the same flake!

[–] spicehoarder@lemmy.zip 13 points 2 weeks ago (2 children)

How many dot files are you changing to need some sort of manager?

[–] dizzy@lemmy.ml 4 points 2 weeks ago (1 children)

For me it’s more about keeping multiple systems in sync and working as intended. E.g. I have my laptop, a home server with couple different distros and a few cloud VMs. Whenever I change a keybind in neovim or tmux or whatever, I just save the changes in a slightly different way and now every machine has those changes so I don’t need to update each machine manually.

load more comments (1 replies)
[–] thedeadwalking4242@lemmy.world 10 points 2 weeks ago (1 children)

Don't need to I use nix

This is how I handle my nix configs though

https://github.com/Givlucas/nixos

[–] dai@lemmy.world 4 points 2 weeks ago (1 children)

Ahh spotted another one! 

https://git.galing.org/kel/nixos

Mine is a mess but works for me ¯\_(ツ)_/¯ 

load more comments (1 replies)
[–] kehet@sopuli.xyz 7 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

I use yadm which is basically git repo with automated path handling and alternate files support. I heard that gnu stow is also a good choice, but I haven't tried that

[–] billwashere@lemmy.world 4 points 2 weeks ago

Ok I’m going to look into this one for sure.

[–] med@sh.itjust.works 7 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

I'm using stow, and then git for versioning. The only question I'm currently facing is whether to keep my stow packages as individual got repos (so I can switch branches for radically different configs or new setups) or treat the whole lot as a big repo, and set the others up as subtrees.

[–] zaubentrucker@sopuli.xyz 7 points 2 weeks ago

IMO you shouldn't use branches for switching between configs. It makes it hard to compose and reuse your configuration.

Just imagine you have a new config file that you now want to add to all of your machines. You'd now have to commit/cherry-pick on all of your branches. Change that file? Now you have to distribute the changes again and might even get conflicts.

Additionally, many programs allow you to change your configuration directory via environment variables (usually XDG_CONFIG_HOME , I think). So you can even keep all machine-specifig configuration files in a single repo under different prefixes for those.

[–] djsp@feddit.org 7 points 2 weeks ago

I keep most of them in a git repository that I check out at ~/.config. Some software doesn't follow the XDG Base Directory Specification out of the box but can be configured to do so; the Arch Linux wiki has an article about it. For software that cannot be configured to follow the standard I have dedicated repositories, like for OpenSSH.

I use a bare git repo. After the initial set-up its just the basic git commands but invoked with a gitdf alias. I wrote a (non-monetized) blog post here about it.

If still needing a tui you could write a simple helper script to call the commands.

[–] bbleml@lemmy.ml 6 points 2 weeks ago

I use home-manager to manage most of my dotfiles and store them in a git repository. Additionally, I just symlink the configurations I'm too lazy to write as home-manager options (yet), which in turn is a decent way to make migrating to home-manager options less upfront.

[–] jerieljan@lemmy.ml 6 points 2 weeks ago (1 children)

I use Syncthing with a folder called "Configuration Files" where I drop all my sync-able configs and dotfiles and I simply symlink them as needed.

[–] composer5145@lemmy.world 2 points 1 week ago (2 children)

So there's at least the two of us doing it this way. Syncthing is an absolutely fantastic tool.

load more comments (2 replies)
[–] thekerker@lemmy.world 5 points 2 weeks ago

I just wrote a bash script copies the relevant files or directories I want to back up from either ~ or ~/.config and places them in a local git directory which I then push to a private repo on Codeberg. Super janky and manual but I update dotfiles so seldom that it works for what I need.

[–] LiveLM@lemmy.zip 4 points 2 weeks ago* (last edited 2 weeks ago)

I use YADM which is a thin wrapper around a bare git repo but still has some creature comforts like per-machine configs and templating.
Since you still need to interact with Git, I pair it with Lazygit. Love that software, I do everything Git with it now!
Unfortunately it is a little jank due to the way Lazygit handles bare repos, thankfully there's a command that sets up the needed Git variables for it to work correctly: yadm enter lazygit

I send the repo to my own Forgejo instance. Kinda overkill but I was already self-hosting other services so I thought "Fully private Git server just for me? Why not?"

Now, this is only for managing user level files. For managing system level configs I haven't setup anything yet.
YADM has a solution for this but it seems a little jank, maybe I'll learn Ansible instead, dunno.

[–] Obin@feddit.org 4 points 2 weeks ago* (last edited 2 weeks ago)

I'm using VCSH, which allows me to split the home directory into multiple git repos without worrying about symlink consistency (like with GNU stow) or apps that have problems with symlinks.

The syntax is exactly the same as git, only that I do (for example) vcsh emacs add -p instead of git add -p.

[–] lepinkainen@lemmy.world 4 points 2 weeks ago

Chezmoi

It’s the only one that just works and has enough features for me, but not too many.

[–] tux0r@feddit.org 4 points 2 weeks ago

I keep them in a Fossil repository (with a few private log-in data stored in a SyncThing folder instead) and I just ln them where I need them.

[–] Andrzej3K@hexbear.net 3 points 2 weeks ago

I use stow and it does the job get nicely, but it's possible that there's a better option these days

[–] tvcvt@lemmy.ml 3 points 2 weeks ago (1 children)

I do a git repo for my dot files with an installer that configures it based on whether I’m using Linux, macOS, or FreeBSD; a server or desktop; and whether I’m in bash or zsh. It also includes a bunch of functions and aliases that I find useful. It’s not always pretty because I also use it as a practical place to try new shell script bits when I have time. I’m hoping to change some things around soon thanks to some ideas from Dave Eddy’s bash course at ysap.sh.

[–] eldavi@lemmy.ml 2 points 2 weeks ago (1 children)

i used to do this, but couldn't figure out how to stay on top of the changes introduced by distro's and updates to the apps; did you figure these out somehow?

[–] tvcvt@lemmy.ml 2 points 2 weeks ago (2 children)

I pretty much stick to straight bash and core utils, so it’s not much of a burden. Plus on the Linux side, I mostly stay with Debian and its derivatives, which limits some of the work.

But really I don’t consider every feature of my dot files to be a finished product. The core stuff is reliable, but if I catch a problem with anything more esoteric or if I see some functionality that looks interesting, it’s a brain teaser I get to tackle.

load more comments (2 replies)
[–] desentizised@lemmy.zip 3 points 2 weeks ago

I don't necessarily sync my dotfiles across machines, at least not in a blanket fashion. But I use Seafile to keep all sorts of directories in sync across machines. It's basically a self-hostable Dropbox.

[–] Grntrenchman@lemmy.world 2 points 2 weeks ago (1 children)

Nothing at all. If things go south on the install I'll have a clean slate. Really the only thing I have backed up are keys, everything else is nonessential.

[–] downhomechunk@midwest.social 1 points 2 weeks ago

Glad I'm not the only one.

[–] danielquinn@lemmy.ca 2 points 2 weeks ago

Don't think too hard on it. Just use git. For example, I have a repo called handy-scripts that hosts all my dotfiles. I just check that out into ${HOME}/projects/handy-scipts and then symlink everything from where it's expected to its corresponding place in the repo.

As you make modifications, remember to occasionally do a git pull --rebase && git commit -m WIP && git push so that all your devices are synced up.

[–] jeena@piefed.jeena.net 2 points 2 weeks ago

I never did until I started using hyprland.

Now I have those in a git repo: https://git.jeena.net/jeena/hypr-dotfiles

[–] helix@feddit.org 2 points 2 weeks ago

I push them to Git, secrets are masked with Mozilla SOPS.

[–] confusedpuppy@lemmy.dbzer0.com 2 points 2 weeks ago

I created a file tree that looks similar to my system's file tree, except it only contains all the files that I modified or added and only their respective directories. From there I just use rsync to sync those files/file tree to the system's /.

It's convenient to see what changes I currently have but it requires a bit of manual maintenance. I only really started doing it that way because I was learning how to use rsync and I just kept going on with it because it was working for me.

I'm only working with my laptop, android phone and two Raspberry Pi's so I can get with my little rsync based setup.

[–] Ooops@feddit.org 2 points 2 weeks ago

I do manage them via git. But I only do it so have settings (and their changes) synchonised between 2 PCs and a laptop.

With just one main device I don't even see a reason to "manage" anything... a basic backup strategy completely independent of just dotfiles aside.

[–] flyhunter@lemmy.world 1 points 2 weeks ago

Recently learned about dotbot and it is perfect for me. Had a custom script to manage stow before.

[–] AstroLightz@lemmy.world 1 points 2 weeks ago

For ZSH, I have a script that automatically installs oh-my-zsh and a bunch of zsh plugins, and changes my default shell to ZSH.

For everything else, some files will just get copied over, others left behind. I only "manage" them when I need to view/edit them.

[–] Hexarei@beehaw.org 1 points 2 weeks ago

I use Chezmoi and a git repo for keeping mine in sync with each other across several machines.

load more comments
view more: next ›