My configuration for shells, editors, and other script-able miscellany.
DO NOT TRACK THIS REPOSITORY. This repository is a constant work in progress. The code and configuration contained herein, while in a “working” state for my personal and professional use, comes with absolutely no support guarantees and will most likely introduce breaking changes without prior notice.
That being said, unless otherwise noted, the content of this repository is distributed under the terms of the GNU General Public License Version 3 or later. Feel free to exercise any of the 4 essential freedoms on this repository. Contributions are welcome. Please feel free to open issues, or submit fixes.
This repository is intended to work on hosts running flavors of Debian GNU/Linux or MacOS operating systems.
The install script performs the following steps:
- ensures the the dotfiles are present in the user’s home directory.
- ensures that host’s package manager is up to date
- ensures that the host system has the prerequisite software
installed -
git
,stow
, etc. If a dependency is missing, the install script attempts to resolve the missing dependency through the system’s package manager. - places configuration via GNU Stow.
$ git clone git@github.com:indiebrain/.files.git ~/.files
$ ~/.files/install
On-disk configuration is contained exclusively with the dotfiles
project directory (usually ~/.files
) in a layout which can easily be
managed by GNU Stow. GNU Stow symlinks the configuration into place
outside the dotfiles project to minimize the project’s impact on the
host file system.
This dotfiles repository is self-contained, all configuration lives
inside the root - files should NOT be placed outside of the dotfiles
home directory (usually ~/.files
) t on the host file system.
The use of GNU Stow affords the ability to “Soft
Uninstall” the configuration provided herein by removing the symbolic
links to the configuration content - IE the configuration can
be moved out of the way of the host while the source still lives on
disk. The uninstall
script will do just this.
To completely remove these dotfiles:
- run the
uninstall
script - remove the dotfiles home directory (usually
~/.files
) from the local file sytem - viarm -rf
The configuration will generate a number of optional GNU Stow
packages - for example: ==, gnome-terminal
, iterm2
. These are not
“stowed” in the install script as they may not be required on the
host. It is up to the user to determine if they should be placed.
Placing an optional package can be done with the GNU Stow program from
within the dofiles home directory:
$ stow PACKAGE
This package contains a number of utility shell scripts. When stowed via
stow scripts
, is linked into the $HOME/bin
directory. This directory is
automatically included on the user’s path so all scripts should be
immediately discover-able by Bash.