Skip to content

christofferbergj/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

336 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

Public dotfiles for my macOS setup, managed with yadm.

Overview

Operating system macOS

Terminal Ghostty, WezTerm, and Warp

Shell fish

Editor Neovim, Zed, and JetBrains IDEs

Window manager AeroSpace

Launcher Raycast

Theme Gruvbox Medium Dark

Screenshots

WebStorm in TypeScript file

WebStorm editor in TypeScript file

Neovim in TypeScript file

Neovim editor in TypeScript file

Fresh macOS setup

1. Install Command Line Tools

xcode-select --install

Homebrew requires Apple's Command Line Tools or Xcode.

2. Install Homebrew

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

After installation, follow the shell setup lines printed by Homebrew. On Apple Silicon that is usually:

eval "$(/opt/homebrew/bin/brew shellenv)"

On Intel Macs the Homebrew prefix is usually /usr/local.

3. Install yadm and clone dotfiles

brew install yadm
yadm clone git@github.com:christofferbergj/dotfiles.git

Use the HTTPS URL instead if SSH keys are not configured yet:

yadm clone https://github.com/christofferbergj/dotfiles.git

4. Install apps and CLI tools

brew bundle --file="$HOME/Brewfile"

Check whether the machine matches the Brewfile with:

brew bundle check --file="$HOME/Brewfile"

5. Configure fish as the login shell

The Brewfile installs fish. Confirm the path first:

command -v fish

Then add fish to the list of allowed login shells and switch to it:

command -v fish | sudo tee -a /etc/shells
chsh -s "$(command -v fish)"

Restart the terminal afterwards. fish automatically loads ~/.config/fish/config.fish and files in ~/.config/fish/conf.d/.

6. Configure GitHub SSH

gh auth login
gh ssh-key add ~/.ssh/id_ed25519.pub

Create an SSH key first if one does not exist yet.

Fonts

Fonts are installed from the Brewfile. To install one manually:

brew install --cask font-jetbrains-mono

Local secrets

Secrets do not belong in this public repository. Tracked config should only reference environment variable names, never raw credentials.

Machine-local values are loaded from ignored files such as:

  • ~/.config/local/env.fish

That file is sourced by ~/.config/fish/conf.d/local-env.fish, which also publishes selected variables through launchctl on macOS so GUI-launched apps can read them.

Current examples:

  • UIDOTSH_MCP_AUTHORIZATION is stored in ~/.config/local/env.fish and referenced from Codex with env_http_headers.
  • CONTEXT7_API_KEY follows the same pattern for the Context7 MCP server: the key lives in ~/.config/local/env.fish, while ~/.codex/config.toml only contains env_http_headers = { CONTEXT7_API_KEY = "CONTEXT7_API_KEY" }.

When adding a new local secret:

  1. Add the value to ~/.config/local/env.fish.
  2. If a GUI app needs it, add the variable name to launchctl_vars in ~/.config/fish/conf.d/local-env.fish.
  3. Reference the variable name from tracked config instead of committing the value.
  4. Restart the app that needs the new environment variable.

Raycast extensions

Currently installed extensions detected from the local Raycast setup:

  • Apple Reminders
  • Coffee
  • Color Picker
  • GitHub
  • Kill Process
  • Port Manager
  • Ray.so
  • Sips
  • Speedtest

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors