A collection of config files I use on a daily basis on multiple hosts. My OS of choice is Arch Linux, and my dotfiles are managed by Make and Stow.
Companion repos for these dotfiles:
- srcery-colors/srcery-vim: vim colorscheme
- srcery-colors/srcery-terminal: terminal colorschemes
- roosta/scripts: collection of various shell scripts
Warning: As with most dotfiles, cherry-picking configs might be a better choice than attempting to run the full install steps. There are dragons in there.
First of this repo needs to be cloned, and assuming you are running Arch Linux
calling make install
should in theory setup a fresh system, but I haven't
tested this rule in a while so it probably needs some attention.
git clone https://github.com/roosta/etc && cd etc && make install
git needs to be installed prior to the setup.
I list the basics here, there are a bunch of rules and they are in constant flux, for details on each see the Makefile.
prerequisites: links update i3 rofi post-install
Main rule run on a daily basis. Re-links, updates repos, generate configs. This
is my goto and my daily routine is pulling any updates, then calling make
with no arguments.
prerequisites: update-zsh-plugins update-libs update-spacemacs update-tmux update-vim post-install
Runs through the update routine. I keep a bunch of 'lib' repos that isn't part
of a package manager updated on my system. Located in ~/lib
by default and
the source for these libs are lib_repositories.txt
which is just a flat file with the repository URL.
I made a helper script for this process that either clones a repo or pulls if it is already present See the git_update.sh script for details.
prerequisites link-conf link-misc link-local post-install
Links all the config files using Stow. If
you are unfamiliar with stow, have a look at the
manual, but the concept is fairly
straightforward. All config is kept in ./conf
, and each program gets it's own
folder. Contents in this folder mirror where you want the config placed with
your home(~) as the root.
So for example, my .vimrc
I want linked to my home root ~/.vimrc
, so its
placed in the vim
folder with no additional folder structure inside. Another
example would be my termite config which should be linked to:
~/.config/termite/config
so I mirror that folder structure in
conf/qermite/.config/termite/config
where conf/termite
would correspond to
home root.
prerequisites: user-fs install-pacaur install-packages install-aur-packages save-originals init-spacemacs set-shell clone-source i3 rofi init-tmux links post-install
This is the fragile install rule, that sets up a fresh system. It basically runs through the lot, and additionally installs packages, and clones various repos.
prerequisites: min-install save-originals user-fs update-libs set-shell update-zsh-plugins min-links init-vim init-tmux
Setup a minimal system. I use this if I spin up a VM or something and just want some basic conf present like vimrc, tmux and etc.
There are a bunch of config files here, and some are not worth mentioning in detail, but here are some of my favorites: