A tidy $HOME
is a tidy mind.
These are my dotfiles, designed primarily for macOS and *Debian (well... it has
only been tested on Ubuntu Server ¯\_(ツ)_/¯), heavily inspired by
hlissner/dotfiles. 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).
bash <(curl -s https://raw.githubusercontent.com/eduarbo/dotfiles/master/bootstrap.sh)
The following are the categories and topics available to install:
-
macos/
- macOS compatible utilitiesapps
- collection of macOS apps that I use on a daily basisdefaults
- bare essentials for macOShammerspoon
- a bunch of lua scripts to boost my productivityiterm
- iTerm2, is there a better macOS terminal?kitty
- well, in fact there is a better macOS terminalkarabiner
- powerful keyboard customizer
-
misc/
- Very handy apps & toolssurfingkeys
- vim-like bindings for Google Chrome & Firefoxgnupg
- encryption/signing
-
editor/
- Configuration for my text editorseditorconfig
- maintain consistent coding styles between different editorsemacs
- the best of Emacs and Vim in one placevim
- for quick file editing
-
shell/
- Shell utilitiesbash
- not my default shell but doesn't hurt to have a basic configgit
- nice aliases and zsh pluginstmux
- window manager within the terminal + nice pluginszsh
- my shell of choice, fast, powerful and with a nice prompt
-
dev/
- Relevant to software development & programming in generallua
- manage lua environments with luaenvnode
- setup nodenv, a lightweight alternative to nvmpython
- setup pyenv, a simple Python version 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 misc/kitty shell/{zsh,tmux}
: enables misc/kitty, 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
Make sure the GPG key ID is correct. You can get a list of GPG keys with
gpg --list-secret-keys --keyid-format LONG
and then set it in Git with
git config --global user.signingkey [GPG-key-ID]
.
More details in Telling Git about your GPG key.
- Wallpapers (pulled by
shell/zsh
) - DOOM Emacs (pulled by
editor/emacs
) - Pacmux Tmux theme (pulled by
shell/tmux
) - Simpl ZSH prompt (pulled by
shell/zsh
)