A selection of dotfiles (and some OS settings) that I use across *nix machines.
For setup: ./install.sh
For some context on folder structure, see Context.
On those dots that are not OS agnostic, see: !Agnostic.
For debating my (schizophrenic) self, see FAQ.
Strictly speaking, the OS settings are only for OSX, and will not be invoked if executing the installer on a Linux machine...
In the context of this project, a dotfile can be one of three:
-
A regular dotfile. A well known example of such a file is a
.gitconfig. A general trait of these is that they (in general) need to be located in$HOMEif other programs are supposed to consume them.
Regular dotfiles are in this project stored indots/and will be copied to$HOMEby the installer. -
A regular dotfile with dedicated location. An example is the ssh
configfile, that isn't stored in$HOME, but rather in some dedicated location, e.g. within~/.ssh/. Regular dotfiles with dedicated locations wil be copied to their dedicated location by the installer. -
As a prefixed
.add_*dotfile. In general these files contain aliases, environment variables and all the other good (but greasy) stuff you will normally find in a cluttered~/.bash*file.
Dotfiles belonging to this category will automatically be sourced from a proxy file (see DOTFILE variable ininstall.sh) that will be copied to$HOMEand sourced from~/.bash*after you've executed the installer.
FYI: The reason for sourcing them through a proxy file is to minimize clutter in~/.bash*:-)
The prefixed dotfiles are stored indots/adds/and will be copied to$HOMEby the installer.
Sometimes a dotfile might not be OS agnostic. Now, how could you deal with such a file?
-
Assuming that you're realizing incompatability issues after you've executed the installer: remove the source cmd for the given dotfile in your proxy file and re-source your
bash*file. -
Assuming that you know that a given dotfile will be problematic before you've executed the intaller: delete the dotfile and execute the installer.
The table below maps out dotfiles that are known to be problematic across OS'.
| File | Comment | OS |
|---|---|---|
.add_git_completion |
Currently the .add_git_completion file should not be included in the proxy file on a Linux machine |
Linux (Ubuntu LTS 18.04) |
Q: Why are you adding a prefix to add dotfiles?_
A: I like the fact that I can easily distinguish them from other files when visiting $HOME.
Q: Ok, but then, why are you not adding prefixes to e.g. .gitconfig or .Rprofile?!
A: If I added prefixes for them a lot of applications wouldn't be able to find a given dotfile unless I tweaked the application settings... It would litterally defeat the purpose of doing this dotfile thingy.
Q: Why did you choose such a silly prefix, add_*, I don't get it?!
A: Well, the files are being added to bash via the proxy dotfile. So I think it's a fair enough prefix.
https://github.com/AndersBallegaard/dotfiles
https://github.com/sorenvind/dev-env
https://dotfiles.github.io/
https://github.com/mads-hartmann/dotfilesv2
https://github.com/skovhus/setup
https://wilsonmar.github.io/dotfiles/