assets | ||
base | ||
bin | ||
browser/userstyles | ||
dev | ||
editor | ||
misc | ||
shell | ||
bootstrap.sh | ||
deploy | ||
env | ||
LICENSE | ||
README.md |
Mein dotfiles
A tidy $HOME
is a tidy mind.
These are my dotfiles, designed primarily for Arch Linux, MacOS and debian. They
are my specific breed of madness, split into 2-level topics (e.g. shell/zsh
)
that strive for minimum $HOME
presence (adhering to XDG standards where
possible).
- wm: bspwm
- shell: zsh
- font: kakwafont
- bar: polybar
Quick start
bash <(curl -s https://raw.githubusercontent.com/hlissner/dotfiles/master/bootstrap.sh)
Overview
# general
bin/ # global scripts
assets/ # wallpapers, sounds, screenshots, etc
# categories
base/ # provisions my system with the bare essentials
dev/ # relevant to software development & programming in general
editor/ # configuration for my text editors
misc/ # for various apps & tools
shell/ # shell utilities, including zsh + bash
Dotfile management
Usage: deploy [-acdlLit] [TOPIC...]
-a Target all enabled topics (ignores TOPIC args)
-c Afterwards, remove dead symlinks & empty dot-directories in $HOME.
Can be used alone.
-d Unlink and run `./_init clean` for topic(s)
-l Only relink topic(s) (implies -i)
-L List enabled topics
-i Inhibit install/update/clean init scripts
-t Do a test run; do not actually do anything
e.g.
deploy base/arch shell/{zsh,tmux}
: enables base/arch, shell/zsh & shell/tmuxdeploy -d shell/zsh
: disables shell/zsh & cleans up after itdeploy -l shell/zsh
: refresh links for shell/zsh (inhibits init script)deploy -l
: relink all enabled topicsdeploy -L
: list all enabled topics
Here's a breakdown of what the script does:
cd $topic
if [[ -L $DOTFILES_DATA/${topic//\//.}.topic ]]; then
./_init update
else
ln -sfv $DOTFILES/$topic $DOTFILES_DATA/${topic//\//.}.topic
./_init install
./_init link
fi
Relevant projects
- DOOM Emacs (pulled by
editor/emacs
) - My vim config (pulled by
editor/{neo,}vim
)