This repository contains my public dotfiles. It comes with a single installer that will take care of installing, updating and backing up your existing configurations while using stow
.
These dotfiles configure a few programs. Most of them are for convenience, and apart from the required programs which the installer will complain about, are completely optional.
- yabai - a tiling window manager (macOS only)
- skhd - a hotkey daemon (macOS only)
- eza - a modern replacement for ls
- bat - a cat clone
- neovim - a vim-fork focused on extensibility and usability
You probably want to fork this repo unless you are happy with exactly what I have here. Regardless, clone the repo somewhere. This will become the source of your dotfiles too.
The recommended font (with all of the icons etc.) is Meslo Nerd Font, and is documented here.
With the font installed and configured to be used in your terminal, clone the repo:
git clone https://github.com/leonjza/dotfiles.git
cd dotfiles
Once cloned, run the setup install script.
./install
_ _ __ _ _
| | | | / _(_) |
__| | ___ | |_| |_ _| | ___ ___
/ _` |/ _ \| __| _| | |/ _ \/ __|
| (_| | (_) | |_| | | | | __/\__ \
\__,_|\___/ \__|_| |_|_|\___||___/
by @leonjza
https://github.com/leonjza/dotfiles
checking prerequisites...
git (required) is available
stow (required) is available
curl (required) is available
zsh (optional) is available
nvim (optional) is available
Usage: ./install <subcommand>
Subcommands:
install install software specific configuration
usage echo this usage information
stow stow configurations (aka, update symlinks)
unstow remove symlinks (removing configs)
If there are any errors, i.e., a required command is missing then you'd need to install those first.
If you want to override anything, or, include something that should not live in a git repo, then add your own .zsh
files to ~/.zshrc-local.d
. Files ending with the .zsh
extention in this path will be sourced when the shell starts.
If for any reason you just cant get to like these configurations, removing them should be as easy as:
./install unstow
Configuration backups would have been made to the ~/.config/dotfile-backups/
directory.
If there are new changes that you want to pull, simply git pull this repo.
cd /path/to/dotfiles
git pull
As everything is a symlink to the repo you'd typically just need to reload your shell (i.e., open a new tab).
During operation, the installer tries to create backups where it deems it to be the right thing to do. Backups are located at ~/.config/dotfile-backups/
.
Configurations for zsh
, neovim
and tmux
!
These dotfiles contain a number of maybe surprising things! Lets take a quick look.
Command | Type | Source | Description |
---|---|---|---|
chain |
alias | view | Convenience alias to proxychains |
please |
alias | view | Run the last command again as root |
nah |
alias | view | Convenience alias to undo all of your changes in the current git branch |
ports |
alias | view | Convenience alias to view open ports on macOS |
locate |
alias | view | Convenience alias to make mdfind behave like locate on macOS |
get , post , put , delete |
alias | view | Convenience alias for httpie $method |
httpserver |
alias | view | Convenience alias to start an HTTP server on an available open port |
killjobs |
alias | view | Convenience alias to kill all jobs in the current session |
extract |
zsh plugin | view | Very convenient alias plugin that lets you extract almost any archive with extract something.tar.gz |
urlencode , urldecode |
alias | view | Encode/Decode strings using url encoding |
filetypes |
zsh function | view | List files in a directory as well as their types according to file |
json |
zsh function | view | Output a file in pretty formatted json |
updatesoftware |
zsh function | view | Update software in major package managers and OS |
gpgencrypt / gpgdecrypt |
zsh function | view | Encrypt / Decrypt files using GPG |
Apart from the commands, there are also things like:
- A clean shell prompt. Shows current path and git branch of applicable.
git
command auto completion as well as visual indicators of your current working branch and if your local branch has uncommitted changes.