dotfiles/README.md

2.5 KiB

Salt's Dotfiles

GNU Stow Edition

Installation

Clone the repository and stow in configs that you want, like so:

cd
git clone git@git.desu.ltd:salt/dotfiles --recurse-submodules .dotfiles
cd .dotfiles
stow base # Or whatever config set you want

I would highly recommend using this repository only as a reference and building your own dotfile solution from scratch.

However, I would also highly recommend using this stow-based approach instead of putting a bare repo in your home directory. Been there, done that. It sucks, especially if you're the type to diverge configs between machines or just want a subset installed.

Overview

This stash contains a number of packages for numerous situations. Note that contrib is NOT a package:

package description
base The base package contains shell and core utility configuration. Other packages do not depend on it; it merely contains basic configuration that I find necessary in every case.
desktop-common Common configuration shared across all possible rices. This contains things such as keybindings for applications, Quake configs, Redshift, etc. Configuration files with themes are avoided where possible.
desktop-gruvbox My current rice and its accompanying configs. A nice and simple one with Rofi, bspwm, Dunst, Compton, and Polybar.
theme-qt-gruvbox-dark A dark mode theme for general use
theme-qt-gruvbox-light A light mode for my work user
theme-gruvbox A Gruvbox Materia GTK theme and an accompanying Papirus icon theme.
git My personal git configuration. Separated from base because sometimes I don't want cockmail on all my commits.
mac MacOS-specific configs. Very sparse; I hardly ever have to use one.
ssh SSH configuration for my desktop machines.

Included within are also a handful of management scripts.

script description
bootleg-stow USE AT YOUR OWN RISK. Tries its best to emulate Stow in an environment where it's not available. Should at the very least allow you to install and update these dotfiles without too much headache.
mkdirs.sh Creates a directory skeleton to ensure that stateful dirs don't wind up in the repo. Keeps the working copy clean.
submodule-checkout-masters-and-update.sh For every submodule in the repo, checks out its master branch (instead of the exact commit specified in the base repo) and then pulls from upstream. Effectively, this updates any submodules in the repo, such as Vim plugins, themes, etc.