At some point I figured out that I spent so much time configuring everything at home, but I couldn't do the same for the other multiple computers I used at work (work machine + remoting to client's computers) and that started to grate on me.
I just gave up on customising and started using everything pretty much on the default settings. Haven't regretted it at all.
The only "custom" bits I have is a homeshick[0] setup and a Brewfile that install some basic shell tools for me on a new computer.
The last time I dug into this, `homeshick` was had more features and fit my needs better than `stow`.
Alternatively, check out YADM[3], "Yet Another Dotfile Manager", which I'm probably switching to once I get some time.
[1] https://github.com/technicalpickles/homesick
[2] https://github.com/andsens/homeshick
[3] https://yadm.io/
Docker for Obsidian and Alfred syncing - the three target limit on the free tier is just barely enough for 2 of my own computers and my work laptop.
I've also got a Brewfile for installing the basic tooling on macOS
I also have a "how to set up a new computer/server" document on Notion that I use so I don't forget any steps.
Then I tried switching to zsh with oh-my-zsh and all that. 42 million tunable bits and I still didn't get it to my liking.
Then I found Fish and 95% of the stuff was good enough out of the box. The only things I've really added was Starship[0] as a prompt - again good enough with pretty much zero configuration and fzf[1] for history search.
Now I use it everywhere, synced via Homeshick[2]
I still use bash to write shell scripts that aren't long enough to be converted to Python though.
[0] https://starship.rs [1] https://github.com/jethrokuan/fzf [2] https://github.com/andsens/homeshick
Maintained for 8 years now, 1.7k stars, only needs git >=1.5, bash >=3, and no root access to install.
It's well tested, stable, and super hackable to fit your needs.
No need to install and configure oh-my-$shell or other huge monstrosities. Most of my stuff comes from a simple homeshick[1] sync with a few files in it.
I prefer homeshick[0], a Bash port of homesick[1] (which is Ruby).
[0] https://github.com/andsens/homeshick [1] https://github.com/technicalpickles/homesick
- use the same source file with different results for different machines (eg. .gitconfig for home and office machines)
- option to store secrets in a credentials database and extract them from there (because you wouldn't want to store them in a git repo - even if it's a private one)
I'll definitively give it a try!
(EDIT: formatting)
Somebody care to tell me what I'm missing?
It needs to be sourced in .{bash,z}shrc and has features like tracking files from multiple repos (so called "castles"), auto-linking, auto-update every X days.
We also use it in our dev team to share some config (and ~/bin) files, works fine.