What does HackerNews think of homeshick?

git dotfiles synchronizer written in bash

Language: Shell

#8 in Bash
I had this revelation around 15 years ago. I was fiddling with custom i3wm setups and complex hotkey setups and my .emacs was longer than some short stories. I even had Windows with a custom explorer replacement that re-did the whole UI.

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.

[0] https://github.com/andsens/homeshick

I use Homeshick for this, which also allows me to have multiple repos: https://github.com/andsens/homeshick
There's also `homesick`[1], which is a Ruby dotfile manager. If you don't feel like managing a Ruby distro and want something more portable (and `homesick` looks to be a stale project anyway), you can use `homeshick`[2] which is a Bash port that's still being maintained. (I use `homeshick`)

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/

Homeshick for dotfiles: https://github.com/andsens/homeshick

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.

I tried bash first, with every bell and whistle added. I tried all the scripts and tuned my .bashrc and .bash_profile and PS1 and all the crap. It was a huge chore.

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

Just throwing my solution for dotfiles synchronization into the mix as well here, homeshick: 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.

This is the exact reason I use Fish. The only thing I _need_ to get installed on random servers is Fish itself.

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.

[1] https://github.com/andsens/homeshick

stow is nice, but it's too basic once you start managing your homedir in earnest across multiple machines and need machine-specific configurations, secrets, etc.

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

I am a (happy) user of homeshick (https://github.com/andsens/homeshick), but this project really seems to top it by providing the only feature that I've missed until now:

- 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)

This seems to be much more bloated than homeshick [1] that I fail to see the point.

Somebody care to tell me what I'm missing?

[1] https://github.com/andsens/homeshick

I use homeshick (https://github.com/andsens/homeshick), a - as I understand - rewrite of homesick (ruby) in bash.

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.

Have a look at homeshick [1] as well, it seems to have similar functionality.

[1]: https://github.com/andsens/homeshick

You might also checkout https://github.com/andsens/homeshick. Similar idea, but tailored for dotfiles.