Central place for ssh config settings to enabling access to external servers in the same way from macbook and my Devbox
  • JavaScript 36.6%
  • Shell 32%
  • PowerShell 31.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-25 13:19:21 +02:00
.docker Add shell and tool configs for cross-platform sync 2026-08-21 14:26:59 +02:00
claude feat: add new mac onboarding guide, bootstrap script, and missing configs 2026-09-25 09:16:20 +02:00
kitty Add ranger and kitty configs for image previews 2026-08-21 14:06:30 +02:00
pi/agent fix: limit pi to Claude models enabled on Vertex project 2026-09-25 10:47:21 +02:00
ranger feat: auto-count files in ranger dirs 2026-09-25 13:19:21 +02:00
scripts capture pi settings and sessions in log 2026-09-25 11:11:18 +02:00
ssh Add webgo SSH host entry 2026-08-18 22:48:58 +02:00
zed feat: add new mac onboarding guide, bootstrap script, and missing configs 2026-09-25 09:16:20 +02:00
.bash_profile Add shell and tool configs for cross-platform sync 2026-08-21 14:26:59 +02:00
.gitconfig capture pi settings and sessions in log 2026-09-25 11:11:18 +02:00
.gitignore feat: add new mac onboarding guide, bootstrap script, and missing configs 2026-09-25 09:16:20 +02:00
.zshrc Add shell and tool configs for cross-platform sync 2026-08-21 14:26:59 +02:00
NEW_MAC_SETUP.md fix: limit pi to Claude models enabled on Vertex project 2026-09-25 10:47:21 +02:00
package.json fix: use HTTPS clone URLs instead of SSH 2026-09-25 09:16:34 +02:00
README.md feat: add new mac onboarding guide, bootstrap script, and missing configs 2026-09-25 09:16:20 +02:00

dotfiles

Personal dotfiles for SLB Mac and mitx (CachyOS).

Contents

Module Description
ssh/ SSH config, keys, and auto-load on login
kitty/ Kitty terminal config
ranger/ Ranger file manager config
zed/ Zed editor settings
pi/ pi coding agent settings, models, and permissions
claude/ Claude Code settings
scripts/bootstrap-mac.sh Full Mac onboarding script
NEW_MAC_SETUP.md Step-by-step new Mac setup guide

Machines

Machine OS Notes
SLB Mac macOS 26 Primary workstation
SLB PC Windows 11 Windows workstation
mitx CachyOS (Arch) Devbox / desktop

Branch Strategy

This repository uses a multi-branch approach to handle OS-specific configurations:

Branch Purpose Contains
main Common configs Cross-platform dotfiles that work on macOS, Linux, and Windows
mac macOS-specific macOS-only configs (e.g., Kitty, ranger for macOS)
linux Linux-specific CachyOS/Arch configs (e.g., alternative terminal emulators)
windows Windows-specific Windows Terminal settings, PowerShell profile

Workflow:

  1. OS-specific configs go in their respective branches (mac, linux, or windows)
  2. Common, cross-platform configs go in main
  3. Periodically merge OS branches into main to resolve conflicts

Quick start

macOS / Linux:

git clone https://git.smrfldt.com/emil/ssh-config.git ~/dotfiles
cd ~/dotfiles && npm run sync

Windows 11 (elevated PowerShell — no git needed):

Copy scripts/setup-windows.ps1 to the new PC (e.g. via OneDrive), then:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
.\setup-windows.ps1            # full setup
.\setup-windows.ps1 -DryRun   # preview only

The script installs git, clones this repo to $HOME\dotfiles, then sets up everything else.

Then follow the README in each module you want to set up.

Scripts

Two npm scripts (run from the repo root) replace the manual record/sync flow:

Command Does
npm run log Re-export package list, capture non-symlinked configs (e.g. vibe/config.toml), commit all changes, and push to the current branch's upstream
npm run sync Pull the current branch (fast-forward), re-symlink every dotfile into $HOME, and install missing packages

Both are platform-aware: Linux-only modules (fish, vibe, packages) are skipped on macOS. Run npm run log after changing config on one machine, then npm run sync on the other to pick it up.