This repository contains my personal dotfiles and system configuration for both macOS and Linux. The config is split by operating system:
- macOS:
aerospacewindow manager,zsh,kitty,tmux,yazi,vim - Linux/i3:
i3,zsh,kitty,tmux,vim - Shared shell and terminal tools:
fzf,fd,ripgrep,zoxide,Oh My Zsh,Powerlevel10k
aerospace/– macOS tiling window manager configi3/– Linux window manager configkitty/– terminal configtmux/– tmux configzsh/– zsh config and shell setupvim/– vim setup notesyazi/– terminal file manager config
Main desktop/window management
- Aerospace
- Homebrew
- Kitty
- tmux
- zsh + Oh My Zsh + Powerlevel10k
- Yazi
- Vim
Packages installed via Homebrew
yaziffmpeg-fullsevenzipjqpopplerfdripgrepfzfzoxideresvgimagemagick-fullfont-symbols-only-nerd-font
Main desktop/window management
- i3
- dunst notification daemon
- nm-applet network status
- dmenu launcher
- i3status bar
- Kitty
- tmux
- zsh + Oh My Zsh + Powerlevel10k
- Vim
Packages used in the Linux config
i3albertdexxss-locknm-appletpamixerdunstplayerctli3statusdmenukittytmuxzshfdripgrepfzfzoxide
- Oh My Zsh
- Powerlevel10k theme
- zsh-autosuggestions
- zsh-syntax-highlighting
- zsh-vi-mode
- fzf-zsh-plugin
zdirectory jumpingfdfor fast file searchingrgfor recursive searchfzffor fuzzy selectionzoxidefor smarter directory navigation
Use this on a macOS machine.
# clone the repo
mkdir -p ~/src && cd ~/src
git clone https://github.com/<your-user>/dotfiles.git
cd dotfiles
# install Homebrew if needed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$($(brew --prefix)/bin/brew shellenv)"' >> ~/.zprofile
source ~/.zprofile
# install core packages
brew update
brew install \
kitty \
tmux \
yazi \
ffmpeg-full \
sevenzip \
jq \
poppler \
fd \
ripgrep \
fzf \
zoxide \
resvg \
imagemagick-full \
font-symbols-only-nerd-font
# install aerospace
brew install --cask nikitabobko/tap/aerospace
# install Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# install Powerlevel10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# install zsh plugins
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/jeffreytse/zsh-vi-mode ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-vi-mode
git clone https://github.com/unixorn/fzf-zsh-plugin.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fzf-zsh-pluginChange powerlevel10k theme with
p10k configureif necessary
# copy shell config
cp ~/src/dotfiles/zsh/zshrc ~/.zshrc
# copy Powerlevel10k config
cp ~/src/dotfiles/powerlevel10k/.p10k.zsh ~/.p10k.zsh
# copy terminal config
mkdir -p ~/.config/kitty
cp ~/src/dotfiles/kitty/kitty.conf ~/.config/kitty/kitty.conf
# copy tmux config
touch ~/.tmux.conf
cp ~/src/dotfiles/tmux/tmux.conf ~/.tmux.conf
# copy Aerospace config
mkdir -p ~/.config/aerospace
cp ~/src/dotfiles/aerospace/aerospace.toml ~/.config/aerospace/aerospace.toml
# copy yazi config
mkdir -p ~/.config/yazi
cp ~/src/dotfiles/yazi/theme.toml ~/.config/yazi/theme.toml
# install vim runtime if you want the full vim setup
git clone https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_basic_vimrc.shThis is aimed at an Ubuntu Linux setup
# update system
sudo apt update && sudo apt upgrade -y
# install desktop and terminal packages
sudo apt install -y \
i3 \
albert \
dex \
xss-lock \
network-manager-gnome \
pulsemixer \
dunst \
playerctl \
i3status \
dmenu \
kitty \
tmux \
zsh \
fd-find \
ripgrep \
fzf \
zoxide \
git \
vim \
curl \
unzip
# install Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -- --unattended
# install Powerlevel10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
# install zsh plugins
git clone https://github.com/zsh-users/zsh-autosuggestions "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting"
git clone https://github.com/jeffreytse/zsh-vi-mode "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-vi-mode"
git clone https://github.com/unixorn/fzf-zsh-plugin.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fzf-zsh-plugin"
# set zsh as default shell
chsh -s "$(which zsh)"Change powerlevel10k theme with
p10k configureif necessary
# clone repo first
mkdir -p ~/src && cd ~/src
git clone https://github.com/<your-user>/dotfiles.git
cd dotfiles
# copy i3 config
mkdir -p ~/.config/i3
cp ~/src/dotfiles/i3/config ~/.config/i3/config
# copy shell config
cp ~/src/dotfiles/zsh/zshrc ~/.zshrc
# copy Powerlevel10k config
cp ~/src/dotfiles/powerlevel10k/.p10k.zsh ~/.p10k.zsh
# copy terminal config
mkdir -p ~/.config/kitty
cp ~/src/dotfiles/kitty/kitty.conf ~/.config/kitty/kitty.conf
# copy tmux config
cp ~/src/dotfiles/tmux/tmux.conf ~/.tmux.conf
# optional vim config
mkdir -p ~/.vim_runtime
# use the full vim runtime install if desiredThen reload your i3 session or log out and back in:
# reload i3 config
i3-msg reload