A collection of dotfiles I use on macOS and various Linux distros.
None of this would be possible without stow
. It creates symlinks to the home directory to make managing what gets used much easier. Install with your system package manager:
Arch
sudo pacman -S stow
macOS
brew install stow
Then, simply clone this repo, cd
into it, and run:
stow .
Specific folders must be enabled by stow
'ing them. For example:
stow ghostty
Installs only with Homebrew:
brew install jandedobbeleer/oh-my-posh/oh-my-posh
oh-my-posh
can also be used to install nerd fonts. For example:
oh-my-posh font install JetBrainsMono
My current terminal emulator is ghostty
. It requires the JetBrainsMono Nerd Font to work properly with my config.
zsh
plugins are installed automatically via zinit
.
These are used by zinit
and other tools:
gcc
git
make
unzip
zsh
Install instructions:
Arch
Update and install with one command:
sudo pacman -Syu gcc git make unzip zsh
macOS
Everything should come pre-installed on macOS. If not, use Homebrew to install whatever's missing:
brew install gcc git make unzip zsh
Ubuntu
First, update your system:
sudo apt update && sudo apt upgrade -y --fix-missing
Then install the packages:
sudo apt install build-essential git unzip zsh
Don't forget to change your shell to
zsh
if necessary. Do not run the command as root! You want to change your user shell:chsh -s /usr/bin/zsh
Skip the words:
Arch
sudo pacman -S bat eza fd fzf lazygit ripgrep zoxide
Homebrew
brew install bat eza fd fzf lazygit ripgrep zoxide
bat
cat
replacement with syntax highlighting, paging, and more.
eza
- An improved
ls
command.
- An improved
fd
- A faster file finder.
fzf
- A fuzzy file finder.
lazygit
- My favorite terminal-based git client. Also runs in neovim!
ripgrep
grep
replacement that is faster and easier to use.
zoxide
cd
replacement with fuzzy directory finding.
These packages install tools that are used in this repository, but are not required for it to work.
flutter
- Flutter toolkit.
fnm
- Fast Node Manager. A fast, cross-platform Node version manager that works quite well with environments.
go
- Golang toolkit.
jenv
- Manages the Java environment, making switching versions easy. Note: does not install Java, only manages installed versions.
neovim
- My favorite text editor. Follow the instructions in the linked repository, there are a few extra dependencies not found here.
pyenv
- A python version manager with support for virtual environments. I love how simple it is.