Skip to content

MashFr/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ› οΈ Dotfiles β€” Mathieu

Complete configuration for my web/mobile dev environment on macOS (Apple Silicon).

OS - macOS Shell - Zsh Terminal - Ghostty Package Manager - Homebrew

This repository contains my "dotfiles"β€”the hidden configuration files that dictate how my system and development tools behave. By keeping these files in a Git repository, I can easily version control my settings, share them, and quickly restore my entire environment on a new machine.


πŸ“‚ Repository Contents

File Destination Description
.zshrc ~/.zshrc Zsh configuration & aliases
Brewfile ~/Brewfile Homebrew dependencies list
config.ghostty ~/Library/.../config.ghostty Ghostty terminal settings
README.md - This file

πŸš€ Quick Setup (New Machine)

To install everything on a fresh macOS installation, execute the following commands in your terminal:

# 1. Xcode CLI tools
xcode-select --install

# 2. Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 3. Clone the repo
git clone https://github.com/YOUR_USERNAME/dotfiles.git ~/dotfiles

# 4. Install everything from the Brewfile
brew bundle install --file=~/dotfiles/Brewfile

# 5. Create symlinks
ln -s ~/dotfiles/.zshrc ~/.zshrc
ln -s ~/dotfiles/.Brewfile ~/.Brewfile
ln -s ~/dotfiles/config.ghostty '/Users/mathieu/Library/Application Support/com.mitchellh.ghostty/config.ghostty'

# 6. Install pi-coding-agent
npm install -g @mariozechner/pi-coding-agent

# 7. Reload the shell
source ~/.zshrc

Note: Symlinks ensure that the repository and the disk files are always automatically up to date β€” no need to copy files manually.

πŸ€– Code Agent Setup: I use pi-coding-agent as my main coding agent. First, duplicate the .secrets-sample file to .secrets. This file simply configures the environment variables needed by Pi, so adapt it according to your provider. Next, modify ~/.pi/agent/auth.json so Pi can use it. For example, with OpenRouter:

{
  "openrouter": { "type": "api_key", "key": "OPENROUTER_API_KEY" }
}

πŸ“₯ Manual Installations (Outside Homebrew)

  • Ghostty - Fast, native GPU terminal for macOS (Zig + Swift)

πŸ’» Full Stack Overview

πŸ§‘β€πŸ’» Terminal & Shell
Tool Role
Ghostty Fast, native GPU terminal for macOS
Starship Ultra-fast prompt written in Rust
zsh-autosuggestions Gray suggestions based on history
zsh-syntax-highlighting Syntax highlighting for commands
zoxide Intelligent replacement for cd
fzf Interactive fuzzy finder
eza Replacement for ls with icons
bat Replacement for cat with syntax highlighting
🌐 Node.js
Tool Role
fnm Node version manager (Rust)
pnpm Fast, disk space efficient package manager
just Command runner (Make alternative)
🐍 Python
Tool Role
uv All-in-one: Python versions + venvs + packages
🐳 Containers
Tool Role
Colima Lightweight Linux VM for Docker (Docker Desktop alternative)
docker Container CLI
docker-compose Local orchestration
πŸ“ Editors
Tool Role
Antigravity VS Code fork by Google + AI
Zed Ultra-fast Rust editor
πŸ› οΈ Dev Tools
Tool Role
Bruno Open-source API client (Postman alternative)
TablePlus Database GUI
DBeaver Community Universal database tool / GUI
Responsively Multi-screen testing
opencode Command-line AI
Claude Code Anthropic code agent
pi-coding-agent Main AI code agent
⚑ System Productivity
Tool Role
Rectangle Window management
AltTab βŒ₯Tab Windows-style
Maccy Clipboard history
Superwhisper Offline voice dictation (privacy-first)
Bitwarden Open-source password manager
AppCleaner Clean uninstallation of apps

⌨️ Essential Commands Cheat Sheet

🍺 Homebrew
brew install <package>            # install a CLI tool
brew install --cask <app>         # install a GUI app
brew uninstall <package>          # uninstall
brew upgrade --greedy             # update everything (CLI + GUI)
brew search <name>                # search for a package
brew list                         # see everything installed
brew bundle dump --global --force # update the .Brewfile
brew bundle install               # restore from the Brewfile
brew bundle check                 # check for differences
πŸ“¦ Node.js (fnm & pnpm)

fnm β€” Node version manager

fnm install --lts               # install the latest LTS
fnm install 22                  # install a specific version
fnm use 22                      # switch version
fnm list                        # installed versions
fnm default 22                  # set default version

pnpm

pnpm install                    # install dependencies
pnpm add <package>              # add a package
pnpm add -D <package>           # add as a dev dependency
pnpm remove <package>           # remove a package
pnpm update                     # update packages
pnpm run <script>               # run a script from package.json
pnpm dlx <tool>                 # run a tool without installing it
🐍 Python (uv)
uv python install 3.13          # install a Python version
uv python list                  # available versions
uv init my-project              # create a new project
uv add <package>                # add a dependency
uv add --dev <package>          # add as a dev dependency
uv remove <package>             # remove a dependency
uv run script.py                # run a script (auto venv)
uv sync                         # sync venv with uv.lock
uvx <tool>                      # run a tool without installing it
uvx ruff check .                # lint
uvx ruff format .               # format
πŸš€ Docker & Colima
colima start                    # start the Linux VM
colima stop                     # stop
colima status                   # check status
colima delete                   # delete the VM (starts from scratch)

docker ps                       # running containers
docker ps -a                    # all containers
docker images                   # available images
docker build -t my-app .        # build an image
docker run -p 3000:3000 my-app  # run a container
docker logs <container>         # view logs
docker exec -it <container> sh  # enter a container
docker stop <container>         # stop a container
docker rm <container>           # remove a container
docker rmi <image>              # remove an image
docker system prune             # clean up everything unused

docker compose up -d            # run in background
docker compose down             # stop
docker compose logs -f          # tail logs live
docker compose ps               # service status
🌲 Git
git init                        # initialize a repo
git clone <url>                 # clone a repo
git status                      # repo status
git add .                       # stage all changes
git add <file>                  # stage a specific file
git commit -m "message"         # commit
git push                        # push to remote
git push -u origin main         # first push
git pull                        # fetch and merge changes
git fetch                       # fetch without merging
git log --oneline               # compact history
git diff                        # view unstaged changes
git stash                       # stash changes
git stash pop                   # restore stashed changes

git branch <name>               # create a branch
git checkout <branch>           # switch branch
git checkout -b <branch>        # create and switch branch
git merge <branch>              # merge a branch
git rebase <branch>             # rebase
git branch -d <branch>          # delete a branch
🧭 Navigation & Search (zoxide, fzf)

zoxide β€” smart navigation

z <keyword>                     # go to a frequent directory
zi                              # interactive selector by most visited directories
z -                             # previous directory
zoxide query -l                 # see all memorized directories

fzf β€” interactive selector

Ctrl+R                          # search in history
Ctrl+T                          # file selector (inserts into command)
Alt+C                           # directory selector (interactive cd)
**<Tab>                         # fzf completion (e.g. cursor **<Tab>)
✨ Terminal Utilities (eza, bat)

eza β€” modern ls

eza                             # simple list with icons (eza config in .zshrc)
eza --long                      # detailed list
eza --long --all                # with hidden files
eza --tree --level=2            # tree view 2 levels deep
eza --tree --level=3 --git      # tree with git status

bat β€” modern cat

bat <file>                      # display with syntax highlighting
bat <file> --plain              # without line numbers
bat *.json                      # multiple files

πŸ‘» Ghostty Shortcuts

Keybinding Action
Ctrl + Shift + ↑ Scroll up to previous prompt
Ctrl + Shift + ↓ Scroll down to next prompt
Cmd + T New tab
Cmd + D Horizontal split
Cmd + Shift + D Vertical split
Cmd + W Close tab

Built with ❀️ for rapid onboarding

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors