Personal config files tracked with a bare git repo. Setup approach from: https://www.atlassian.com/git/tutorials/dotfiles
- zsh —
.zshrc,.zprofile - tmux —
.tmux.conf,.tmux/plugins/(tpm, tmux-sensible, tmux-powerline) - neovim —
.config/nvim/ - karabiner —
.config/karabiner/karabiner.json - starship —
.config/starship.toml - kitty —
.config/kitty/kitty.conf - tmux-powerline —
.config/tmux-powerline/ - rectangle —
RectangleConfig.json
- Ungoogled Chromium
- Install the Chromium Web Store extension to enable installing extensions from the Chrome Web Store
- Bitwarden — password manager
- Vimium — vim-like navigation
- Slack
- Karabiner-Elements
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Generate a new SSH key and add it to your GitHub account:
ssh-keygen -t ed25519 -C "your_email@example.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519Copy the public key and add it at https://github.com/settings/keys:
pbcopy < ~/.ssh/id_ed25519.pubsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"git clone --bare git@github.com:danielnmai/dotfiles.git ~/.cfgalias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'Add this to your .zshrc so it persists.
config checkoutIf there are conflicts with existing files, back them up first:
mkdir -p ~/.config-backup && \
config checkout 2>&1 | grep "\s\+\." | awk '{print $1}' | xargs -I{} mv {} ~/.config-backup/{}
config checkoutconfig config --local status.showUntrackedFiles noDebian/Ubuntu:
sudo apt install git zsh tmux neovim curl build-essential
chsh -s $(which zsh)macOS (Homebrew):
brew install zsh tmux neovim curlgit is included with Xcode Command Line Tools (
xcode-select --install).
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/jeffreytse/zsh-vi-mode ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-vi-modecurl -sS https://starship.rs/install.sh | shDebian/Ubuntu:
sudo apt install fzfmacOS:
brew install fzfcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bashCreate ~/.secrets (not tracked) with any tokens or keys:
touch ~/.secrets
chmod 600 ~/.secretsAdd secrets as exports, e.g.:
export NPM_TOKEN_GITHUB="..."First, install tpm (Tmux Plugin Manager):
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpmThen start tmux and reload the config:
tmux
tmux source ~/.tmux.confThen press prefix + I (Ctrl-b, then Shift+I) to install plugins.
LazyVim requires some external tools:
Debian/Ubuntu:
sudo apt install ripgrep fd-findNote: on Debian/Ubuntu the binary is
fdfindinstead offd. Create a symlink if needed:ln -s $(which fdfind) ~/.local/bin/fd
macOS:
brew install ripgrep fdThen open nvim — LazyVim will automatically install its plugins on first launch.
Install Rectangle, then use Preferences → Import to load ~/RectangleConfig.json.