Managing dotfiles
Table of Contents
- awesome-dotfiles https://github.com/webpro/awesome-dotfiles dotfiles
- What I tried dotfiles
- CNCL gnu stow? dotfiles
- CNCL fresh to build gh config? https://github.com/freshshell/fresh dotfiles
- CNCL homesick? https://github.com/technicalpickles/homesick dotfiles
- mackup? https://github.com/lra/mackup dotfiles
- CNCL vcsh http://blog.tfnico.com/2014/03/managing-dot-files-with-vcsh-and-myrepos.html dotfiles
- dotbot? dotfiles
- dotdrop https://github.com/deadc0de6/dotdrop dotfiles
- CNCL dotgit https://github.com/kobus-v-schoor/dotgit dotfiles
- https://github.com/evanpurkhiser/dots has post installation script dotfiles
- DONE using git repository with symlinks + external ~ working directory dotfilesgit
- TODO something about files which can't be kept in git dotfilesgit
- Tooling dotfiles
- DONE configs which are not symlinking – have a script which checks them against reference every few hours and complains if config doesn't match the reference? dotfiles
- related dotfilesinfra
- [D] motivation for core.worktree dotfilesgitsetup
- [C] Manage your dotfiles with Git - openSUSE News dotfilesgit
- [B] Dotfiles - Joe Yates' Blog dotfilesgit
¶awesome-dotfiles https://github.com/webpro/awesome-dotfiles dotfiles
TODO check occasionally?
¶What I tried dotfiles
¶CNCL gnu stow? dotfiles
apparently a parallel hierarchy with symlinks?
would be nice to specify, which directories should be created and which should just be symlinked. Otherwise stuff might end up in symlinked folders
- very clumsy to use, hard to replace existing entries, no apparent way of deleting them (unlike git)
¶CNCL fresh to build gh config? https://github.com/freshshell/fresh dotfiles
you can write a configuration, and it will symlinka all automatically
apparently can source from gh repos, so you could just 'follow' someones' dotfiles (not very portable though)
¶CNCL homesick? https://github.com/technicalpickles/homesick dotfiles
looks like a parallel hierarchy of dotfiles mimicing /home? could be convenient to manage with symlinks…
wonder if .homesick directory is configurable
ok, so if i create home dir and add relative symlinks to it, it sort of works fine.
add a script to check symlink integrity?
still unclear what should i do with patch files. maybe have a manual dir with symlinks as well?
homesick track? although it's a bit weird if configuration comes from different files, but i guess it's quite rare
ugh.. homedirsubdir is a bit weird.. could make it support relative symlinks within repo
ugh.. homesick seems to rewrite relative symlinks to absolute… wtf???
¶mackup? https://github.com/lra/mackup dotfiles
apparently just backs up and symlinks configs for some applications
hmm, so it supports doublecmd. wonder how they handle their configs..
nope, just copies. nothing interesting
¶CNCL vcsh http://blog.tfnico.com/2014/03/managing-dot-files-with-vcsh-and-myrepos.html dotfiles
weird stuff, messes with git and uses mr tool to manipulate on multiple repos at the same time
take another look at it?
mm – ok, so apparently it's just like single repo view but routing to different subrepos
e.g. vcsh init vim; vcsh vim commit .vimrc
¶dotbot? dotfiles
yaml configs.. ugh
¶dotdrop https://github.com/deadc0de6/dotdrop dotfiles
allows templating thanks to jinja2
erm.. it copies, not symlinks apparently
¶CNCL dotgit https://github.com/kobus-v-schoor/dotgit dotfiles
hmm encryption!
aims to keep all in single repository
too comlicated.
¶https://github.com/evanpurkhiser/dots has post installation script dotfiles
was updated 2 years ago
¶DONE using git repository with symlinks + external ~ working directory dotfilesgit
/repos/configuration
cgit command
- cons: not dropbox friendly because of symlinks
maybe sync via syncthing?
- TODO how to make todos here?
- TODO how to make todos here?
- keep only symlinks to files unless it absolutely makes sense to symlink directory
why: if it's a directory locally and a symlink in the repo (e.g. with autostart dir), it won't merge easily - symlink into from various repos
- public dotfiles
- private dotfiles
- machine specific dotfiles
- files which aren't under git (configs-nogit)
config-nogit: use tree command to store contents
maybe git lfs would be better for that?? - scripts
- histories: bash, python, etc.
- etc
- public dotfiles
¶bootstrapping dotfilesgit
- alias cgit='git –git-dir=/repos/configuration/.git –work-tree=/home/karlicos'
- cgit ireset – to restore working dir state
- run check.sh from ~ and restore all the missing symlinks
resolve filtype configs (file vs symlinks)
¶workflow dotfilesgit
cgit status to see if anything has changed
cgit add / cgit commit / cgit push
¶TODO try git lfs? dotfilesgit
¶TODO something about files which can't be kept in git dotfilesgit
¶for configs which are patched via script, symlink what patches it dotfilesgitsetup
ln -s "$(realpath $BASH_SOURCE)" "$CDIR"
¶DONE configs which are not symlinking – have a script which checks them against reference every few hours and complains if config doesn't match the reference? dotfiles
I guess it would belong to configuration repository
¶related dotfilesinfra
¶[D] motivation for core.worktree dotfilesgitsetup
can't use bare repository since they don't have index
we don't want to use working directory since it's just confusing
solution is git config core.worktree $HOME
¶[C] Manage your dotfiles with Git - openSUSE News dotfilesgit
¶[B] Dotfiles - Joe Yates' Blog dotfilesgit
very similal to how I manage it – the git based approach is super simple, portable and predictable