How to do dotfiles without accidental leaks?

The process of storing all my dotfiles in a git repository has been a slow one. It isn’t always obvious which files are safe to publicly disclose/what risk is involved in any particular file. It doesn’t help that there doesn’t really seem to be any documentation of what the various KDE config options are. For example, in kwinrc:

[Desktops]
Id_1=LOOKS_LIKE_A_HASH_OR_SOMETHING
Name_1[$d]
Number=1
Rows=1

I don’t know where LOOKS_LIKE_A_HASH_OR_SOMETHING comes from. What are the consequences of changing it? What programs can typically access this value? Is it unique enough to identify me by?

I could probably figure it out by reading code for a while. Or I could try asking on the KDE forums. But this is a single example of my larger issue. People have been doing dotfiles for ages, surely there’s something I’m missing, right? Do you guys know of some resource I should be using that would generally clarify these things? Even the Arch Wiki seems sparse on details about this.

I’d crack open documentation and see how it’s set. I’d wager it’s a UUID used to differentiate different monitors, could be the MAC, a hash of the MAC, or just a randomly generated one.

I’d say it’s a waste of time to go through files you’re not interested in just to avoid uploading something private. For that kind of stuff I just use regular backup tools that encrypt everything. I also do not think it is good practices to publish things we do not understand.

For dotfiles I actually care about and want properly published or version controlled, I use chezmoi. So in my case everything is in encrypted backup and some parts I change a lot and understand well are in chezmoi repo.

  • Id_1 — A unique ID KDE gives to the desktop. It looks random and is created automatically.
  • Name_1 — The name of the desktop.
  • Number=1 — You have 1 virtual desktop.
  • Rows=1 — The desktop layout uses 1 row.

It’s just a random ID KDE generates for the virtual desktop. It doesn’t contain your username or anything personal, so I wouldn’t bother removing it from a public dotfiles repo.

In general, the question is about things lacking in documentation (or at least, I can’t find the relevant documentation). Going back to the example of kwinrc, I’ve looked through:

And from all of that, the closest any of them got to being useful was the KWin/KConfigXT page on the KDE Community Wiki, which happens to mention which file in the source code is responsible for the configuration of Virtual Desktops… or loading the configuration? The defaults? I’m not super sure. Anyway, the link is dead, but I was able to find it on the GitLab myself[1].

All that just to end up reading code anyway. It doesn’t really scale. Maybe I’m just missing some documentation somewhere, but I’d say I gave it a pretty fair try.

The issue is that everything else in this file is something I am interested in. If there are files only containing things I don’t understand or care about, I can just ignore them.

My concern is more to do with it being a unique identifier for my system and that I don’t know what programs can trivially access it. I don’t know if I can change it or how I would (where all is it used? what breaks if I just zero it out?).

In any case, that was one example. The larger problem and point of this question was to find out if there was some resource I didn’t know about that covered most dotfiles and could keep me from making mistakes without needing to tiptoe around specific values I don’t understand. But I suppose not. Oh well!


  1. in case this turns up in the desperate search of someone in the future, here’s the new link, permalinked to the current commit as of writing ↩︎