this post was submitted on 06 Aug 2025
127 points (95.7% liked)

Linux

58191 readers
874 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
 

I was kind of surprised to see this article on HackerNews, so I thought I'd ask here; how do you handle your dotfiles and do you share them publicly?

My own dotfiles started from those provided by ArcoLinux, with a bunch of changes over the years I had them. Currently installed using Ansible, because that's more sensible than Bash for this imo.

https://git.exu.li/exu/configs

all 44 comments
sorted by: hot top controversial new old
[–] underscores@lemmy.zip 15 points 1 month ago (1 children)

I share my dotfiles, I don't see anything intimate or personal in there. I share them because other Linux enthusiasts have asked about what to use or how I config it.

It's in my GitHub but what I don't do is share my GitHub publicly, mostly cause it links me from my shit posting social media where I'm too open about things, into the work and irl landscape.

I like to keep those things separate.

[–] caseyweederman@lemmy.ca 5 points 1 month ago (1 children)

Share me your .ssh files please

[–] underscores@lemmy.zip 3 points 1 month ago (1 children)

hmm I don't consider that part of like config stuff although I get it's a dotfile

[–] caseyweederman@lemmy.ca 2 points 1 month ago

In fact send me your ./../../ please

[–] Static_Rocket@lemmy.world 10 points 1 month ago (2 children)

All public and I regularly link people to my bash functions. Started with git bare repos, moved to stow, now on chezmoi. If I need anything more complex than chezmoi for these I'll probably give up syncing them altogether.

https://github.com/StaticRocket/dotfiles

[–] harsh3466@lemmy.ml 2 points 1 month ago (1 children)

What do you like about chezmoi vs stow?

[–] Static_Rocket@lemmy.world 2 points 1 month ago* (last edited 1 month ago)

Honestly, I was running into the limits of stow. Want to unstow some configs on a bare machine? I hope you wanted that entire directory to be a symlink. Then I saw that someone had actually fixed that many years ago but the maintainer at the time was caught up in some personal crypto related projects and did not appear to be looking at the mailing list.

Chezmoi fixed that, applied a templating engine and added a data mechanism. In moving my stow configs I realized that application specific config file deployments are nice but shouldn't be necessary. Templates fill that gap, and meshing them with scripts allows you to do some cool things only when variables change.

Plus I was beginning to play around with go at the time, so it just seemed like a good idea to use something I could contribute to if I needed.

I still don't think I'm using chezmoi to it's full potential, but I am fairly proud of the script I use to determine data sources for my waybar config on all of my machines.

[–] kureta@lemmy.ml 1 points 1 month ago

Started with git bare repos, moved to stow, now on chezmoi

started exactly the same, now using YADM and loving its simplicity.

[–] BlackEco@lemmy.blackeco.com 8 points 1 month ago* (last edited 1 month ago)

What originally started as a git repo for storing backup scripts and a list of GNOME Shell extensions now contains dot files, systemd units, Pipewire and Wireplumber configs, scripts for installing new software from Brew and Flatpak, and a systemd service that pulls and apply the latest changes on session startup.

https://github.com/axeleroy/setup/

[–] itslilith@lemmy.blahaj.zone 8 points 1 month ago (1 children)

I use nixos (with Home-Manager), so I have everything in a declarative configuration. I have all of that in a public repo (well not quite all, I have my email setup in a private repo that's included in the configuration).

[–] exu@feditown.com 2 points 1 month ago (1 children)

Do you write your own modules for programs that don't have a home-manager module yet?
That was my biggest issue when I tried nixOS, that for a lot of configs I'd have needed to create my own wrapper.

[–] itslilith@lemmy.blahaj.zone 2 points 1 month ago

I've done that for one or two modules, but if that's too much, I just do the hackjob solution: have the actual dot files in the repo and include them in the config, so nixos copies then to the store read-only and links them to my home. But I've had that come up pretty rarely, tbh. I don't know if Home-Manager has become more comprehensive or if I'm just not that demanding, but I've only had a handful of modules where I needed to do significant tinkering

[–] eager_eagle@lemmy.world 8 points 1 month ago

Bare git repo + some custom aliases and functions to sync some things across machines.

But I agree it's a bit too personal and I don't share most things.

[–] markstos@lemmy.world 7 points 1 month ago (1 children)

I use YADM to manage my dotfiles. I like and recommend it.

I don’t share them, though.

I work in a security-related position. My dotfiles expose more about tools I use, how I have them configured and if those configurations are secure.

I still like sharing and if there’s some snippet I think is particularly useful, I may share directly or post it somewhere. But I don’t share them all by default.

[–] jodanlime@midwest.social 4 points 1 month ago (1 children)

Pretty much how I feel about it too. It's not like I invented anything here, I mostly copied it from others or the docs. I will share snippets with people if it helps them but I'm not publishing everything either. Might need to look into yadm at some point.

[–] markstos@lemmy.world 2 points 1 month ago

YADM is essentially git so about the only thing you need to remember is to use yadm instead of git when managing your dotfiles.

[–] lordnikon@lemmy.world 6 points 1 month ago

I use stow and a local git server to keep and clone to all my machines

[–] verdigris@lemmy.ml 5 points 1 month ago

The vast majority of dotfiles can be split into multiple documents. If you want to share but also put sensitive/personal information in some of them, just part the personal bits out into separate documents and maybe give them all an easy to filter suffix/prefix. Then just only publicly share the other files.

[–] SlartyBartFast@sh.itjust.works 4 points 1 month ago

I share my CONFIG.SYS and AUTOEXEC.BAT files

[–] Fizz@lemmy.nz 3 points 1 month ago

One of the cool things about linux is you can have a 1 of a kind desktop. I dont share my dotfiles because they look like shit and because i like knowing my desktop is uniquely scuffed.

[–] Shareni@programming.dev 2 points 1 month ago (1 children)

Currently installed using Ansible, because that's more sensible than Bash for this imo.

What do you mean? It's just a few lines to symlink everything for me.

[–] exu@feditown.com 3 points 1 month ago

I don't use symlinks, I copy the files to their place. This also means I have to manually copy updates back into my repo, but it massively reduces the risk of committing a private key or a bunch of bad changes to my repo.

My switch to Ansible from bash was mainly motivated to make the initial setup more robust. My setup script would need fixes every time I installed a new machine and be semi-unattended at best. I find it also easier to make changes and add new steps

For reference, here are the bash scripts I used before:
config script
setup script

[–] Sina@beehaw.org 1 points 1 month ago* (last edited 1 month ago)

I have embarrassing code and commented lines in mine, so not sharing. (using Awesome and qtile)

If someone has a problem my dots have the solution for, then I might copy paste edited segments.

[–] harsh3466@lemmy.ml 1 points 1 month ago* (last edited 1 month ago)

I don't share mine. I manage them with gnu stow and my private gitforge on my server (with 3-2-1 backup in place)

I don't have an objection to sharing them. I don't think it's too personal, I just don't use a public facing gitforge.

Edit to add: I have branches for my different machines in my dotfiles repo for variations

[–] Sxan@piefed.zip 1 points 1 month ago (1 children)

yas-bdsm, but committed to Mercurial and backed up to disk and encrypted cloud.

Never shared. Ever. Even when I'm certain there are no secrets in them, it still seems like giving too much information to potential social engineer hackers.

[–] Blisterexe@lemmy.zip 2 points 1 month ago (1 children)

Mercurial?

Why? Genuinely asking, I've just never seen someone use it.

[–] Sxan@piefed.zip 2 points 1 month ago* (last edited 1 month ago) (3 children)

TL;DR, Mercurial is a better VCS. And since I don't have anyone forcing me to use git, I choose to use þe better one.

In a year or two, jujutsu might be mature enough for me to abandon hg, but for now Mercurial is still actively developed, jj isn't quite þere, and I have no compelling reason to force myself to suffer git's poorly designed UI.

As an aside, you don't really see a lot of hg being mentioned, so I get it. Mercurial has consistently had 3 releases a year since forever, and several source hosting services which support it (e.g, Sourcehut). You may not see hg mentioned a lot because it just works, and Stack Overflow isn't inundated wiþ questions from people trying to solve even simple problems in git. But also, git is far more used þan hg, þanks largely to github.

[–] prex@aussie.zone 6 points 1 month ago* (last edited 1 month ago) (2 children)

Whats with the þ?
edit: I'm guessing its to throw a spanner in the works.

[–] caseyweederman@lemmy.ca 2 points 1 month ago

It's deleted now but it usually means thorn, or a missing th sound.

[–] Sxan@piefed.zip -1 points 1 month ago (1 children)

throw a spanner in the works. ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

Also, a surprising number of people get so irritated by it, þey block me. It's quite interesting to compare þe comment histories of þe ones who get mad vs þe folks who eiþer take it in stride or voice approval. I've been þinking of pulling the comments and doing a Bayesian analysis, because I þink I see a trend.

I'll have to do some reading first. Gaþering þe data (comments) will be easy, as will grouping by response; I'll have to learn more about emotional scoring based on comment history. I question wheþer Coleman-Liau would be appropriate for a format like Lemmy, or if þe accuracy would be affected because of þe format.

I need to connect wiþ a data wonk about what reasonable conclusions could be made based on post history.

[–] prex@aussie.zone 2 points 1 month ago

That was a comprehensive answer. Thanks!

[–] neclimdul@lemmy.world 2 points 1 month ago (1 children)

I've always felt like on paper hg is better than git but in practice it doesn't feel like it to me. Kinda like arguing beta is better then vhs, etc. Also kinda wanted darcs to succeed and while it seems to still be developed it's so niche as to not exist.

But the great thing is they do exist as alternatives.

[–] Sxan@piefed.zip 0 points 1 month ago

darcs was þe best!! Except it didn't scale, and got reeeally slow on even toy projects. AFAIK þat was never fixed. Noþing - not even Mercurial - has a better theory of patches.

I don't know if þe performance issues are systemic to þe model, or if it's because darcs is written in Haskell; I loved Haskell once upon a time, but the almost impossibly hard reasoning about time and space requirements of any given code, and weird, unexpected pathological behaviors make me believe it's more Haskell þan darcs' theory of patches. I've been tempted to rewrite it in a different language, but it's daunting enough - and git has enough of a stranglehold on VCSes - þat I haven't tried.

But... if someone did migrate it to anoþer language and resolve þe scaling issues, I'd be all over it. It's a truly amazing tool.

[–] alsimoneau@lemmy.ca 2 points 1 month ago (1 children)

I'm not the only one! Mercurial is so much more intuitive. And it has proper branches!

[–] Sxan@piefed.zip -1 points 1 month ago

Þere are twos of us!

[–] Ephera@lemmy.ml 1 points 1 month ago (1 children)

Yeah, I've been using scripts to set only the parts I actually want to modify, which is already a pretty good step for reducing the amount of information and knowing what you publish without having to review the dotfiles when you back up your latest configuration changes.

But even with that, there's some info I do not particularly want public.
Like, it starts with the name of my user account showing up in places. On my personal device, I just call it "main" to sidestep this whole problem, but if I want to use those scripts on my work laptop, well, the user name there is a shorthand of my real name, which I do not want to publish.

But there's also lots of things in between.
Like, I make music as a hobby, which isn't really something I care to announce to the world, but decided I don't mind the world knowing either.
On the other hand, I decided against sticking my RSS feeds into there for now, because I want to be able to add any RSS feed without having to think about whether I want that particular interest public.

[–] eta@feddit.org 1 points 1 month ago (1 children)

Do you mean the username of your home directory? Because you can also use "$HOME" in scripts to refer to it without having to give the specific file path

[–] Ephera@lemmy.ml 2 points 1 month ago

Ah yeah, that didn't make a ton of sense. To some degree, I wanted to say that it may show up in various config files, which you're right, I could template with a shell script.

But then I'm using Nix for scripting, which has a concept that everything should be defined in the repo, so you shouldn't have dependencies on external state like $HOME or $USER.

I'm still working out to what degree that's actually necessary/useful (and I do have a workaround, so I don't need to check in my username). But I'm guessing, it comes partially from the 'proper' thing being NixOS, where you define the whole OS in your configuration, so you would need to type out at some point anyways, what the user should be called, so that it can create it.

[–] LeteoAtredies@lemmy.world 1 points 1 month ago

My dot files stay with me. I've never been into sharing my dot files. Privacy and I'd rather help someone do something similar if they are interested instead of sharing a dot file.

[–] Blursty@lemmygrad.ml 1 points 1 month ago (1 children)

Can you use Ansible for free?

[–] hobbsc@lemmy.sdf.org 1 points 1 month ago (1 children)

yes, it's just a python package. there are management services for enterprise users that have associated costs, though. it used to be called ansible tower but i'm unsure what the name is now.

[–] Blursty@lemmygrad.ml 1 points 1 month ago

Ansible Automation Platform.

Thanks!

[–] monovergent@lemmy.ml 0 points 1 month ago* (last edited 1 month ago)

I got into the habit of keeping a ~24 GB VM image that I just clone to fresh systems and have yet to find the motivation to hunt down the config files I've created or modified over the years. I'd probably want to rip a couple personal in-jokes and spicy comments out, but that would still be very rare.

Not that it's a dotfile, but much of my customization revolves around the UI, so any potential public repo would include themes, from which I'd remove some more identifying wallpapers. But my desktop config is unique enough IMO that I'm mildly afraid to post screenshots of it on accounts I don't want associated with this one.