bootstrap an environment in one go1 with:
ansible-playbook up.ymluse --tags or --skip-tags to only execute a subset of tasks. for example:
ansible-playbook --tags stow up.yml
ansible-playbook --skip-tags brew up.ymlor, use stow directly: stow <package>, assuming you've put this repository in
your home directory, ~/dotfiles. if that's not the case, specify home as the
target with -t ~, for example, stow -t ~ nvim.
thanks to frdmn for ansible inspiration.
TODO
- Replace
fzfwithfzf-lua
tmux-only binds are prefixed with my leader key, C-g. note that the others
won't work outside of the shell - they're only valid in vicmd or viins mode.
i've made some custom binds:
C-g C-w: select a pane from the text contentsC-g C-u: select and open a URL from the current paneC-g C-v: select a variable from the current pane and put at cursorC-g C-b: select and open a URL from safari historyC-u: select and open a URL from safari history
default zsh integrations are set up too:
C-r: pick from command history and put at cursorC-t: pick file and put at cursorM-c: cd to a folder
stow nvima distant relative of kickstart with many mutations.
some external tools needed. in general :checkhealth helps identify any missing
programs. most of these can be installed via the brew task in the playbook.
based on a split-heavy post-IDE workflow. perma-zen mode & fuzzy finders. i'm very particular about my tools. i need a level of consistency, so that's what i've tried to set up here. expect consistent ui and ux where ever possible.
stow alacrittyback to alacritty! it's a smaller binary and i don't use the fancy features of ghostty or kitty.
stow tmuxi have a slightly modified key mapping set up to emulate something between
zellij and vim:
C-g - leader
C-g [h|j|k|l] - to left/below/above/right pane
C-g s - split pane
C-g v - vsplit pane
stow gitsets up some reasonable config defaults.
i use zsh because it is default. i use completions via compsys. it works!
my .zshrc is controlled via ansible by inserting a managed block. this
allows for per-workstation additions with minimal headache.
Footnotes
-
assuming you are on mac with at least
brewand optionallyjavaandgoinstalled. ↩