Opinionated garbage for my dotfiles setup. Uses yadm to manage them in your home.
Used daily by a few people at this point. Lord Zulu help them.
I've been trying to at least put the most useful pieces into gists or their own repos, on an as time allots kind of deal.
A lot of what's here is pure hackery at best, but a lot took some time too. Due to this, I don't promise that everything is exactly documented, but I do promise good things to those who read. If something sucks, tell me why! I don't mind strong opinions; especially so if they have backing data.
Yolo swag.
We've been doing a mass non-opinionation as others have started to utilize these as well. This is being done on pure best effort, and PRs are welcome for just about anything.
Linux
, but OSX
is also targetted, ie nothing should break.
PATH
order enforcement; which this works around in zshenv
.SSH
: If you're remote, prefix prompt with $HOSTNAME
.
Linux
: libtrash used if available for rm
, otherwise supports such things as [gomi], [safe-rm], etc
colorcat
is a cat
drop-in wrapper that automatically applies highlighting to the output without breaking usage.
antibody as a lightweight shim for parallel plugin loads/updates.
airline/promptline based prompts (but totally configurable to whatever you want)
A zillion other tools, mostly that I've written, some modified.
Nearly everything supports local extension via ~/.local/zsh/
; analogous to ~/.config/zsh
here,
but local to your machine. This of course includes plugins, functions, and completions.
Same idea goes for a lot of this, eg user bin (~/.local/{s,}bin
take precedence over ~/{s,bin}
), manpath's, etc.
Lots of development environment support.
Defaults aim to work for most, but all paths should be overridable to taste via env vars.
Plugins don't load if their requirements are not met.
Smart completion caching for slow-to-export completion functions.
This is for applications that have this god awful idea that I want to execute them each time I load my shell.
If the binary has updated since the cache was created however, the cache is busted.
By avoiding this, shell startup is lightning quick, but your bells and whistles still intact, even on extremely low powered embedded devices, which I use these on all the time ;)
Shame list includes pip*
and nearly every app written in golang.
Paths to browse:
bin/
bin/3p
: Mostly automagic source code compilation and installation.bin/up
: Update everything, yo..config/zsh/{zprofile,zshenv,zshrc}
: Primary entrypoints. Sets up environment and loads plugins..config/zsh/zshplugins
: States what plugins should load..config/zsh/plugins*/
: Isolated zsh plugin bundles.MacVim
, gvim
), some degradation of functionality is there, but namely it shouldn't break.vim-completion-manager
. Better than nothing. YMMV.nvim-qt
or pynvim
with simple hooks for when you need them to deviate from the cli..config/nvim/plugins.d/
Paths to browse:
.config/nvim/
: Neovim configuration, but also is used in vim8.SSH
: If you're remote; auto-spawns tmux session.Paths to browse:
.config/tmux/
: Tmux configurationcase "${OSTYPE:?}" in
linux*) sudo apt install -y yadm ;;
darwin*) brew install yadm ;;
esac
yadm clone --bootstrap '[email protected]:akatrevorjay/dotfiles.git'
sweg sweg sweg sweg