3 ms·
Everyone hand-rolls their own dotfile management system, but YADM already does everything you need: https://yadm.io/ https://yadm.io/
by jasonpeacock 3y ago
Everyone hand-rolls their own dotfile management system, but YADM already does everything you need:
https://yadm.io/ https://yadm.io/
- saghm 3y agoI've never doubted that there are existing solutions for dot files that do everything I need, but I've yet to find one that doesn't take more work for me to swap to than continuing to just clone a git repo an symlink maybe half a dozen things the once or twice a year that I happen to set up a new machine.
- blemasle 3y agoYou might want to have a look in stow. https://www.gnu.org/software/stow/ https://www.gnu.org/software/stow/ I just stumble across dotstow which adds a git layer on top of it https://github.com/clayrisser/dotstow https://github.com/clayrisser/dotstow
- uneekname 3y agostow has worked really nicely for managing my dotfiles. Here are two blog posts that helped me get my workflow down: https://alexpearce.me/2016/02/managing-dotfiles-with-stow/ https://alexpearce.me/2016/02/managing-dotfiles-with-stow/ https://bastian.rieck.me/blog/2019/dotfiles_stow/ https://bastian.rieck.me/blog/2019/dotfiles_stow/
- saghm 3y agoI've looked at it before. Looking at the system I'm writing this comment on, my dotfiles from my repo are ~/.config/alacritty/alacritty.toml, ~/.config/nushell/{config.nu,env.nu}, ~/.tmux.conf, and ~/.gitconfig. I'm not sure if I just use far fewer dotfiles than average, and I know this is a matter of personal taste, but it's just not obvious to me why I'd want to add a tool to symlink five things once. Moreover, most of the jobs I've had give me a Macbook to work on rather than Linux, so that also would require me to either manually install `stow` or move getting homebrew set up to _before _setting_ up my dotfiles, which seems a bit backwards to me given that my my shell config is where I store any configuration for stuff like that. I'm starting to wonder if I just have a very vanilla dotfile workflow compared to what some other people use. This would surprise me a bit, given how I tend to go overboard in custom configuration for most things, but it definitely feels like my experience isn't enough for me to understand why specialized tooling for dotfiles is needed.
- jasonpeacock 3y agoI have a work mac, work linux, and home mac. I want the same terminal-based development environment on all of them, but each requires just a little bit of customization. For example, the .gitconfig for work is different from home (e.g. my username/email). Ditto for my .ssh/config and my shell aliases. I also use Nix to manage all my tools, and the home-manager configuration is slightly different between mac & linux due to platform support. I've gone through a few iterations of home-built solutions, including extending homeshick[1], before discovering YADM which implemented everything I had done but better. [1] https://github.com/andsens/homeshick https://github.com/andsens/homeshick
- jasonpeacock 3y ago> the once or twice a year that I happen to set up a new machine This was me for a long time - but then I started using ephemeral (EC2) hosts for remote development, and while I wasn't setting up a new machine frequently, knowing that I could do it with <5min of effort (and 15min of building Nix packages) eliminated a lot of anxiety.
- manx 3y agoYou can just use git directly, no symlinking required. The home folder doesn't become a git repo itself, the dotfiles are just a checkout from a bare repo: https://www.atlassian.com/git/tutorials/dotfiles https://www.atlassian.com/git/tutorials/dotfiles