GNU stow managed configurations, tooling, shell prompt

e192b67 doom: use new indite -p (predicate) cmd

a day ago

#20 New option -p|--predicate

~tomterl commented on dotfiles todo

a day ago

Table of Contents

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.


  • antidote - Plugin manager for zsh - in pure zsh.
  • bash
  • clipcat - X11 clipboard manager
  • doom - Excellent modular emacs configuration - switching from my unwieldy, unreliable beast of a config was very easy.
  • dunst
  • herbstluftwm - Excellent tiling window manager
  • isync - IMAP bidirectional sync
  • keyboard
  • local - Personal setup control settings
  • lsd - lsDeluxe - convey file information with color
  • msmtp - flexible and usable SMTP client
  • pass-git-helper
  • ripgrep
  • rofi - A window switcher, application launcher and dmenu replacement
  • senpai - terminal IRC client
  • stow - Symlink farm manager - really neat solution for dotfiles managment.
  • superd
  • thp - shell prompt client server (bash and zsh)
  • tint2
  • tmux - terminal multiplexer - a better screen?
  • xfce4-terminal - XFCE4 terminal emulator

Install configurations

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.

Check dependencies

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.

Apply a stowed configuration

    make stow-PACKAGE


    make stow-doom

Re-apply a stowed configuration

    make restow-PACKAGE


    make restow-rofi

Unstow a stowed configuration

    make unstow-PACKAGE


    make unstow-msmtp


I use doomemacs to setup emacs.

To install the configuration from scratch, execute

make doom-bootstrap

in the dotfiles root directory.

Configuration changes

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.

Local setup

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

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.