The umpteenth attempt to better organize my dotfiles. This time the goal is to have everything in one place, and let GNU Stow do the heavy lifting.
Important: Stow must be patched to make the --dotfiles
parameter work with directories
like .config
; the patch by AitoraTuin is available in AUR.
In the top directory of this repository is a `GNUmakefile` to ease (re)applying
and removing of the stowed configurations. The configuration for `stow` itself
is excluded from the `all` targets, and a dependency for all other stow targets.
This way `stowinfo` (see below) will automatically be excluded from stow
operations of the other packages, avoiding conflicts (and a spurious `stowinfo`
file in the root directory). To make zsh
aware of the dynamic targets, the
completion system must call make
for the targets
completion; add
zstyle ':completion::complete:make:*:targets' call-command true
to your
zsh
-configuration.
To check for the tools needed to be present for stow-all
, use make check-all
.
If it is successful, make stow-all
can be called.
make stow-PACKAGE
e.g.
make stow-doom
make restow-PACKAGE
e.g.
make restow-rofi
make unstow-PACKAGE
e.g.
make unstow-msmtp
I use doomemacs to setup emacs.
To install the configuration from scratch, execute
make doom-bootstrap
in the dotfiles root directory.
After changes to the doom setup here in dotfiles, issue
make doom-sync
in the dotfiles root directory. After that M-x doom/reload
could be enough to
take over the changes into the running emacs, but a restart is sometimes
required.
To use the makefile, indite
has to be installed, a small tool written in hare,
that allows easy manipulation of ini-style configuration files.
To setup a machine as a work machine, execute
make setup_work_machine
in the dotfiles root directory.
To setup a machine as a private, home machine, execute
make setup_home_machine
in the dotfiles root directory.
The theme nordic-rofi
is by undiabler; the sources are from github.
Project URLs, description and possibly more in the future can be present in a configs stowinfo
file, e.g. herbstluftwm
description:Excellent tiling window manager url:https://herbstluftwm.org/
Therefore the `stowinfo`` file must be ignored to avoid conflicts. The make file ensures that stows global exclusion configuration is in place before other targets are considered.