This is my collection of dotfiles. As with any open source software never blindly running anything that has not been properly understood and/or vetted. These settings should be considered unstable as I'm constantly tinkering with them. Rather than installing, I recommend forking and modifying it for your own use or using as a resource for your own configurations.
$ curl -s https://raw.githubusercontent.com/jawang35/dotfiles/master/bootstrap.sh | bash
bootstrap.sh script will:
- Clone the repository as a Git bare repository into ~/.dotfiles.
- Check out configuration files into the
$HOME
directory. - Install submodule dependencies.
- Install Homebrew packages and applications.
- Load .bash_profile.
Configuration files are managed using a Git bare repository (inspired by https://www.atlassian.com/git/tutorials/dotfiles). config
is an alias for git --git-dir=${HOME}/.dotfiles.git --work-tree=${HOME}
and is used to manage the repository.
To update to latest:
$ config-update-all
- Bash - Default shell. All files found in .config/bash are loaded in both login and non-login shells. Local configs added to .local/bash will also be loaded. .config/inputrc improves Bash completion behavior and sets vi editing mode.
- Git - Version control. Configurations defined in .config/git. Dependencies managed as submodules.
- Hammerspoon - Key bindings for managing macOS applications/windows. See Hammerspoon.
- Homebrew - macOS package manager. bundler manages packages .config/Brewfile. Local package dependencies managed by
.local/Brewfile
if it exists. - Karabiner-Elements - Custom key mappings for macOS. Configurations defined in .config/karabiner.
- kitty - Full-featured GPU-optimized terminal emulator with a readable configuration file.
- lf - Terminal based file manager. Configurations in .config/lf.
- psql - Postgres CLI tool. Configurations at .psqlrc.
- tmux - Manages multiple terminal sessions, windows, and panes. Configured in .tmux.conf.
- Vim/Neovim - Configurations setup primarily for Neovim at .config/nvim. Compatibility with Vim is preserved by symlinking .vim and .config/nvim/vimrc, and by ignoring Neovim specific plugins.
I use the @sonph's onehalfdark theme with Source Code Pro Nerd Font Mono. My Bash prompt and tmux status bar have been inspired by the same theme. 24-bit and 256-color terminal emulators are supported.
Lua scripts for Hammerspoon configuration. .hammerspoon/init.lua is the entrypoint that loads all the other modules.
hyper
key is defined as ctrl+option+cmd
and is bound to capslock
using Karabiner-Elements. hyper+r
reloads the Hammerspoon config.
The following application shortcuts are used:
Key | Application |
---|---|
hyper+` |
Kitty |
hyper+1 |
Google Chrome |
hyper+a
opens the application mode. escape
closes the mode. With the mode open, the following keys launch or switch to the corresponding and close the mode:
Key | Application |
---|---|
hyper+m |
Messages |
hyper+o |
Microsoft Outlook |
hyper+p |
1Password |
hyper+s |
Slack |
The following window shortcuts are used:
Key | Action |
---|---|
hyper+f |
Full Screen |
hyper+c |
Center |
hyper+h |
Left Half |
hyper+j |
Bottom Half |
hyper+k |
Top Half |
hyper+l |
Right Half |
hyper+shift+h |
Left Screen |
hyper+shift+j |
Lower Screen |
hyper+shift+k |
Upper Screen |
hyper+shift+l |
Right Screen |
Copyright (c) 2016 Jason Wang licensed under the MIT License.