dotfiles

Managing dotfiles

Table of Contents

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

  • [2021-05-04] doesn't support mc

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

CREATED: [2018-04-02]

/repos/configuration
cgit command

  • cons: not dropbox friendly because of symlinks
    maybe sync via syncthing?
    • 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

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

CREATED: [2018-05-12]

ln -s "$(realpath $BASH_SOURCE)" "$CDIR"

Tooling dotfiles

jq for patching JSON dotfilesjson

https://jqplay.org/ is also quite convenient

DONE [2018-06-20] 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] [2019-06-01] 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] [2020-07-12] Manage your dotfiles with Git - openSUSE News dotfilesgit

[B] [2020-05-26] Dotfiles - Joe Yates' Blog dotfilesgit

very similal to how I manage it – the git based approach is super simple, portable and predictable

Jump to search, settings & sitemap