These dotfiles configure a number of applications such as the Fish shell, Kitty, Ghostty, tmux and other utilities. The main shell used throughout the configuration is fish with the starship prompt.
Below are quick start instructions for setting up a brand new machine. The steps are separated for macOS and Linux but they share similar requirements.
If you prefer an automated approach, run the provided install.sh script with
either mac or linux as an argument to install all dependencies and link the
configs automatically:
./install.sh mac # or "linux"-
Install Xcode command line tools
xcode-select --install
-
Install Homebrew – the package manager used by these configs.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.profile eval "$(/opt/homebrew/bin/brew shellenv)"
-
Install required packages
brew install git fish starship tmux neovim stow ripgrep brew install --cask kitty ghostty brew install --cask font-meslo-lg-nerd-font font-caskaydia-cove-nerd-font
-
Set fish as the default shell
sudo sh -c 'echo /opt/homebrew/bin/fish >> /etc/shells' chsh -s /opt/homebrew/bin/fish -
Clone these dotfiles
git clone https://github.com/your-user/dotfiles.git ~/dotfiles cd ~/dotfiles
-
Link the configurations using stow
stow --target=$HOME/.config fish kitty nvim tmuxRun
stowfor any other application directories you want to link.
-
Update the system and install basic tools
sudo apt update && sudo apt upgrade -y sudo apt install -y git curl fish starship tmux neovim stow ripgrep -
Install terminal emulators (optional)
sudo apt install -y kitty
Ghostty may be installed from its release page if desired.
-
Install Nerd Fonts
mkdir -p ~/.local/share/fonts cd ~/.local/share/fonts curl -L -o Meslo.zip https://github.com/ryanoasis/nerd-fonts/releases/latest/download/Meslo.zip curl -L -o CaskaydiaCove.zip https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CaskaydiaCove.zip unzip Meslo.zip && unzip CaskaydiaCove.zip fc-cache -fv
-
Set fish as the default shell
echo $(which fish) | sudo tee -a /etc/shells chsh -s $(which fish)
-
Clone these dotfiles
git clone https://github.com/your-user/dotfiles.git ~/dotfiles cd ~/dotfiles
-
Use stow to create symlinks
stow --target=$HOME/.config fish kitty nvim tmuxAdd or remove directories from the command as needed for your setup.
Once everything is installed you can launch a new terminal and fish along with starship will be active. Applications like Kitty or Ghostty will automatically pick up the configuration from ~/.config once the files are linked.