kluvin's dotfiles
=================

Blocks formatted like so:

```
# BEGIN [DEVICE]
[...]
# END [DEVICE]
```

~~are~~, *~~will~~, **should,** eventually be* parsed by [qualia](https://pypi.python.org/pypi/mir.qualia/), which enables or disables them by commenting them out depending on which device they're used on.

This directory tree is [managed](https://taihen.org/managing-dotfiles-with-gnu-stow/) by [GNU stow](https://www.gnu.org/software/stow/) which symlinks files in a directory to their respective place in the $HOME tree.

**That's it! Neat right?**

## **Definitely!**

---

These files are licensed under the MIT License. Which require you to include copy of the license and of its copyright notice provided in *LICENSE* file.

install.sh
==========

**To install, simply run `bash install.sh`**

`install.sh` symlinks the provided dotfiles in their default directories, and backups your old ones suffixed by '-old'. The link paths are appended to a file `state.db` which can be used to revert back to the original state by simply deleting the symlinks and moving back your old files. Something like this should suffice:

```
# Untested, might crash and set your computer afire.
for line in $(cat state.db)
do
    rm -rf $line
    if [ ${line}-old ]; then
        mv ${line}-old $line
    fi
done
rm -f state.db
```

The script assumes it is called from the `dotfiles` directory, or one level hierarchy above the paths to link. It also assumes the hierarchy below it look like:

```
application
       ---> file or folder to link
```

This allows for placing your configuration in both  
`$XDG_CONFIG_HOME` like  `$HOME/.config/application/config`; or  
`$HOME` like `$HOME/.applicationrc`

**Note that bash version 4 or later is required due to use of its groundbreaking hash-table feature.**
Update readme to reflect new functionality
Update readme to reflect new functionality
