These are my dotfiles 🎉 ...
_ _ __ _ _
__| | ___ | |_ / _(_) | ___ ___
/ _` |/ _ \| __| |_| | |/ _ \/ __|
| (_| | (_) | |_| _| | | __/\__ \
\__,_|\___/ \__|_| |_|_|\___||___/
- extremely fast startup! with lazy loading for expensive operations.
- limited dependencies make it very portable and easy to install.
stow
powered: symlink dotfiles and thus keep them always up-to-date.- topical organized modules by topic for easy reuse across different machines.
- xdg compliance
when possible to keep
$HOME
clean 1. - install scripts for brand new systems and specific topic areas.
- posix compliant so it works with most shells (
bash
,zsh
). - optimized for zsh with auto-completion & syntax highlighting.
- useful aliases & utilities for maximum productivity.
- homebrew compatible packages with smart fallbacks.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/andrewthauer/dotfiles/main/install.sh)"
Or ...
- Clone the repo
git clone [email protected]:andrewthauer/dotfiles.git ~/.dotfiles
- Change directories
~/.dotfiles
- Run
make
to run core setup - Install desired package via
stow <directory>
- Restart your shell ...
Each directory contains a README.md
file that describes it's purpose. Most
directories are topic packages that can be installed by running
stow <directory>
. This will create symlinks to the appropriate locations
within the $HOME
directory.
bin
- General purpose scripts which are added to the path.lib
- Core utilities used throughout. Must be sourced up front.modules
- Various package modules.scripts
- Scripts used for setup and maintenance.
NOTE: Directories starting with an __double-underscore
will be ignored by
stow.
The local
directory (git ignored) can be used to customize the dotfiles for a
particular environment. It is also a good place to store an secret information
you don't want to commit to source control.
make lint
- runsshellcheck
&shfmt
on all shell scripts.make chklink
- reports links that are not installed or potentially broken.
It is very important to make sure the shell startup is fast. To help ensure this there is built-in support for profiling the startup time.
- The
time-zsh
command can be used to profilezsh
startup time. - The
time-bash
command will display the execution time for loading abash
shell
MIT © Andrew Thauer