This repository contains:
- My configuration files (aka “dot-files”) for various programs. But not all: several “big” (usually programmable) configs (for guix, emacs, stumpwm, etc.) live in their own repositories (they may be found in https://gitlab.com/alezost-config group).
- A tool (
config.scmGuile script) to deal with my configs.
So to deploy my config files, appropriate symlinks are being created
(for example, ~/.bashrc is becoming a symlink to bash/bashrc from
this repo). For this purpose (and for other useful actions, like
listing available configs or removing old configuration files), I use
config.scm script from this repo. It relies on my guile modules.
config.scm deploys (symlinks) itself to ~/bin/config and as ~/bin
directory is in my PATH, I can refer to it as config. Although it
provides “-h”/”–help” option, here are some examples anyway:
- Clone all repositories with my configs to appropriate places and make
the required symlinks:
config --fetch --deploy - Display a list of names of all available configurations:
config -l - Show verbose descriptions (git repositories, directories where they
will cloned and symlinks that will be created during deploying) of
“emacs” and “shepherd” configurations:
config --show emacs shepherd
After installing a new operating system, my first wish is to have all my
configs deployed! So I just clone this repo and run bootstrap shell
script which does the job for me (it downloads my guile modules and
executes config.scm using them). There is also help shell script to
remind me the details of bootstrapping process on a fresh system.