A cross-platform dotfiles template that provides a default and sane configuration for a modern development environment. Managed with chezmoi, these dotfiles deliver a consistent, opinionated setup focused on productivity and modern tooling.
This repository is designed to give you a batteries-included development environment that:
- Uses WezTerm as the terminal emulator for its GPU acceleration and modern features
- Uses Fish Shell for intelligent autosuggestions and superior user experience
- Leverages modern Rust-based Unix tools (eza, bat, fd, rg) for better performance and UX
- Provides consistent configuration across macOS and Linux platforms
Modern terminal setup with Fish shell, Starship prompt, and Rust-based tools
-
Install Homebrew by running:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Install GitHub CLI using Homebrew:
brew install gh
-
Authenticate with GitHub:
gh auth login
These steps are essential as the dotfiles rely heavily on Homebrew for package management on macOS.
sh -c "$(curl -fsLS get.chezmoi.io)" -- -b $HOME/.local/bin init --apply artefactory/artefiles
curl -fsLS get.chezmoi.io | sh -s -- -b ~/.local/bin init --apply artefactory/artefiles # Fish shell requires this pipe syntax
These dotfiles can automatically bootstrap your GitHub Codespace environment. To use them:
- Add this repository as your dotfiles in your GitHub Codespaces settings
- Create a new codespace - it will automatically apply these dotfiles
Learn more about Codespaces dotfiles in the official documentation.
- π Fish Shell - A smart command-line shell that suggests commands as you type and has better tab completion than traditional shells
- β‘ Starship - A customizable terminal prompt that shows useful information like git status, programming language versions, and execution time
- π Neovim - A powerful text editor for coding with syntax highlighting, plugins, and modern features
- π Modern CLI Tools - Faster, more user-friendly replacements for traditional Unix commands:
bat
- Enhanced version ofcat
with syntax highlighting and line numberseza
- Betterls
with colors, git status, and tree viewfd
- Faster, easier-to-use alternative tofind
for searching filesfzf
- Fuzzy finder for quickly searching through files and command historyripgrep
- Lightning-fast text search across files
- π Catppuccin - A beautiful, consistent color theme applied across all tools for a cohesive look
- π Python Environment Management - Tools to manage Python projects and dependencies:
- π Git Configuration - Pre-configured version control settings with modern defaults and helpful aliases
- π€ GitHub Copilot CLI - AI-powered command suggestions and explanations
- π Jupyter Notebook Support - Enhanced tools for working with data science notebooks
- π Container Development - Colima for running Docker containers on macOS without Docker Desktop
- β° Shell History - Atuin syncs your command history across machines with powerful search
- π Smart Navigation - Zoxide learns your most-used directories for instant navigation
~/.gitconfig
- Git configuration with modern defaults (Git Documentation)
~/.wezterm.lua
- WezTerm terminal configuration (WezTerm Documentation)
Fish Shell Configuration (Fish Shell Documentation)
~/.config/fish/config.fish
- Main Fish shell configuration~/.config/fish/aliases.fish
- Shell aliases and functions~/.config/fish/fish_plugins
- Fish plugin list~/.config/fish/functions/fish_title.fish
- Terminal title function~/.config/fish/functions/smart_bat.fish
- Enhanced bat function (VSCode-aware)~/.config/fish/functions/launch.fish
- Application launcher~/.config/fish/functions/watch-file.fish
- File watching function~/.config/fish/functions/dotfiles_doctor.fish
- Health check function
~/.config/starship.toml
- Shell prompt configuration (Starship Documentation)
~/.config/bat/config
- Syntax highlighter configuration (Bat Documentation)~/.config/direnv/direnvrc
- Environment management (Direnv Documentation)~/.config/atuin/config.toml
- Shell history sync (Atuin Documentation)~/.config/nvim/init.lua
- Neovim editor configuration (Neovim Documentation)
~/.config/aerospace/aerospace.toml
- AeroSpace window manager (AeroSpace Documentation) (macOS only)
- A GitHub account (for git and GitHub-related features)
- GitHub CLI authentication will be handled automatically during installation
- For non-interactive environments, set
GH_TOKEN
environment variable before installation
- SSH keys added to your GitHub account (instructions)
- Homebrew package manager (see macOS Prerequisites above)
- GitHub CLI installed via Homebrew
- Note: Many tools in these dotfiles depend on Homebrew-installed packages on macOS
Task | Command |
---|---|
Update dotfiles | chezmoi update |
Edit config | chezmoi edit ~/.config/file |
Health check | dotfiles_doctor |
New Python project | mkdir project && cd project && echo 'layout uv' > .envrc && direnv allow |
~/.config/
βββ fish/ # Shell configuration
β βββ config.fish # Main shell configuration
β βββ aliases.fish # Shell aliases and functions
β βββ functions/ # Custom fish functions
βββ nvim/ # Editor configuration
βββ direnv/ # Environment management
βββ bat/ # Syntax highlighting
βββ starship.toml # Prompt configuration
~/.ssh/config # SSH configuration
~/.wezterm.lua # Terminal configuration
~/.gitconfig # Git configuration
macOS:
chsh -s $(brew --prefix)/bin/fish
Linux:
chsh -s $(which fish)
Note: You may need to log out and back in for the shell change to take effect.
atuin register # New account
atuin login # Existing account
gcloud init # Set up Google Cloud SDK
- Run
dotfiles_doctor
to check your installation - See
chezmoi help
for dotfiles management - Check the CHEATSHEET.md for more commands
- Reset a file:
chezmoi apply --force ~/.path/to/file
- CHEATSHEET.md - Common commands and shortcuts
- CHANGELOG.md - Version history and updates
MIT