Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Patrik's Dotfiles

macOS system configuration using Nix Darwin and Home Manager.

Fresh Mac Setup

1. Clone this repo

git clone https://github.com/patrikduksin/dotfiles.git ~/dotfiles
cd ~/dotfiles

2. Run the install script

This will install Homebrew, Nix, and apply the nix-darwin configuration:

./install.sh

3. Subsequent updates

darwin-rebuild switch --flake ~/dotfiles

What's Included

Homebrew Packages

CLI Tools: bat, eza, fd, fzf, ripgrep, zoxide, jq, yazi, direnv, mise, colima, docker, docker-buildx, docker-compose, fish, starship, ffmpeg, imagemagick, cmake, cocoapods, fastlane, watchman, mas

Apps:

  • Essential: 1Password, Aerospace, Raycast, Ghostty, Cursor, Helium
  • Communication: Slack, Telegram, WhatsApp, Zoom, Discord, Teams, Loom
  • Development: Figma, Insomnia, ngrok, mitmproxy, Xcodes, OpenMTP
  • Utilities: AlDente, HiddenBar, OBS, Macs Fan Control, Contexts, IINA
  • Apps: Spotify, Notion, Notion Calendar, ChatGPT

Mac App Store: Infuse

Configuration Files

  • Fish shell config
  • Zsh shell config (interactive + non-interactive)
  • Starship prompt (Nerd Font symbols)
  • Git config (1Password SSH signing)
  • mise version manager, including Bun, Node, pnpm, Codex, Claude Code, Prettier, eas-cli, agent-browser, Rust, and uv
  • Docker CLI with Colima runtime for running containers without Docker Desktop
  • Aerospace window manager
  • Herdr agent multiplexer with hybrid prefix and direct pane-navigation shortcuts

Herdr

Herdr keeps the default Ctrl-b prefix and adds direct Ctrl-Option-h/j/k/l shortcuts for pane navigation. Frequently used tab, split, and zoom actions also have Ctrl-Option shortcuts while retaining their prefix bindings.

Run Ctrl-b ? inside Herdr to see the active keymap. Use Ctrl-b Shift-g to create a Git worktree for an independent agent task, and Ctrl-b q to detach while agents continue running.

Docker CLI

This setup installs Docker CLI tools and Colima. Start the local container runtime from the terminal:

docker-start

Then run containers normally:

docker run --rm hello-world
docker compose version

Stop the runtime when you do not need it:

docker-stop

Shell Defaults

  • Login shell: zsh
  • Ghostty shell: fish (/opt/homebrew/bin/fish)
  • Claude Code shell override: zsh

macOS Settings

  • Dock: autohide, no recent apps
  • Finder: show all extensions, path bar, list view
  • Keyboard: fast key repeat
  • Trackpad: tap to click, three finger drag
  • Dark mode enabled
  • Touch ID for sudo

Manual Steps

1. Revoke exposed GitHub token

The old fish config had an exposed token. Revoke it at: https://github.com/settings/tokens

2. Install Cursor extensions

Open Cursor and install:

biomejs.biome
dbaeumer.vscode-eslint
dooez.alt-catppuccin-vsc
esbenp.prettier-vscode
expo.vscode-expo-theme
expo.vscode-expo-tools
redhat.vscode-yaml
rvest.vs-code-prettier-eslint
vscodevim.vim
yoavbls.pretty-ts-errors

3. Sign in to apps

  • 1Password
  • Raycast
  • Slack, Telegram, WhatsApp, Discord, Teams
  • Spotify
  • Notion
  • Figma

4. Configure 1Password SSH agent

Enable SSH agent in 1Password settings for git signing to work.

Directory Structure

~/dotfiles/
├── flake.nix                 # Entry point
├── flake.lock
├── darwin/
│   └── default.nix           # nix-darwin: brew, system settings
├── home/
│   └── default.nix           # home-manager: dotfiles, programs
└── config/
    ├── fish/config.fish
    ├── zsh/.zshenv
    ├── zsh/.zshrc
    ├── starship.toml
    ├── herdr/config.toml
    ├── claude/settings.json
    ├── mise/config.toml
    └── aerospace/aerospace.toml

Updating

# Update flake inputs
cd ~/dotfiles
nix flake update

# Apply changes
darwin-rebuild switch --flake .

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages