dotfiles
bashrcd
dotfiles | bashrcd | |
---|---|---|
1 | 1 | |
7 | 0 | |
- | - | |
3.2 | 2.5 | |
6 months ago | 3 months ago | |
Shell | Shell | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dotfiles
-
Using GNU Stow to manage your dotfiles (2012)
I really like this method as opposed to using a bare Git repository. For one, it's conceptually simpler in my mind; you don't have to understand Git internals to get this working. Secondly, this lets you pick and choose which config files you want to "install" on a machine.
I feel obligated to share my Bash script, dotfiles.sh[1], that accomplishes what Stow does, but with a few tweaks that I found particularly useful:
dotfiles.sh targets the user's home directory by default (i.e. stow -t $HOME).
dotfiles.sh never symlinks directories, only files (i.e. stow --no-folding). (This was the straw that broke the camel's back and made me roll my own script in the first place.)
dotfiles.sh makes backups of local config files and can restore them if you remove your symlinked version.
My script is quite old now, and I use it so seldomly I'm not convinced there aren't bugs. YMMV.
[1]: https://github.com/kevin-hanselman/dotfiles
bashrcd
-
Using GNU Stow to manage your dotfiles (2012)
I moved to splitting my bashrc into multiple files and having my main bashrc source them from a ~/.bashrcd directory.
At heart it's a short snippet that just checks for existence and sources each file in the directory:
https://github.com/targaryen/bashrcd/blob/master/install/ins...
I added aliases to list/edit/remove entries from the .bashrcd directory and resource it. And a script I can call with a one-liner to edit bashrc on a new machine to add the sourcing and the helper aliases.
It'll load alphabetically so I can prefix entries with a number to specify load order (defaulting to 0100 so I don't need to specify this in the commands unless I explicitly changed them).
So the end result is that I can quickly edit or create a new bashrc entry by running 'ebrc entryname'. This opens ~/.bashrcd/0100--entryname in vi, and when it's saved it'll re-source so the add/change takes effect immediately.
Or 'lbrc' to list contents of the directory, or 'rbrc entryname' to remove ~/.bashrcd/0100--entryname
It's fairly simplistic but takes away most of the cognitive load of managing a complex bashrc.
What are some alternatives?
GNU Stow - GNU Stow - mirror of savannah git repository occasionally with more bleeding-edge branches
Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]
zinit - Flexible and fast Zsh plugin manager with clean fpath, reports, completion management, Turbo, annexes, services, packages.
nix - my nix modules, overlays, host configurations, and more!
dotbot - A tool that bootstraps your dotfiles ⚡️
dotfiles - Settings for various tools I use.
dot.me - me dot files
bashdot - Minimalist dotfile management framework.
vcsh - config manager based on Git