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.scm
Guile 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.