Skip to content

ca971/dotfiles

Repository files navigation

🔧 Dotfiles

Cross-Platform · Cross-Shell · SSOT Architecture · Security-Hardened · Power-User Grade

A meticulously engineered, production-ready dotfiles framework built on Single Source of Truth principles for maximum consistency, security, and maintainability across all platforms and shells.


Shell Platform License Tools Terminals

Startup Themes Security SSOT Maintained


FeaturesInstallArchitectureCLIToolsSecurityWiki


📑 Table of Contents

Click to expand

💎 The Enterprise Edge

Dotfiles Enterprise isn't just another dotfile collection — it's a structured ecosystem built on enterprise-grade engineering principles: SSOT, modularity, security, and cross-platform reproducibility.

Whether you're a solo developer, a DevOps engineer managing infrastructure, or a power user who lives in the terminal — Dotfiles Enterprise scales with your needs.

┌──────────────────────────────────────────────────────────────────┐
│                   Dotfiles Enterprise Stack                      │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│  ┌──────────┐   ┌──────────┐  ┌──────────┐  ┌─────────────────┐  │
│  │  Shells  │   │  Tools   │  │  Config  │  │    Security     │  │
│  │ ZSH·Bash │   │   60+    │  │  SSOT    │  │  SSH·GPG·Keys   │  │
│  │Fish·Nu   │   │ per-file │  │  TOML    │  │  Signing·Audit  │  │
│  └────┬─────┘   └────┬─────┘  └────┬─────┘  └──────┬──────────┘  │
│       │              │             │               │             │
│  ┌────▼──────────────▼─────────────▼───────────────▼──────────┐  │
│  │           shared/ — POSIX env · PATH · tools-init          │  │
│  └────────────────────────────┬───────────────────────────────┘  │
│                               │                                  │
│  ┌────────────────────────────▼───────────────────────────────┐  │
│  │        SSOT Layer (aliases.toml · colors · icons)          │  │
│  │      generators → .zsh · .bash · .fish · .nu               │  │
│  └────────────────────────────┬───────────────────────────────┘  │
│                               │                                  │
│  ┌────────────────────────────▼───────────────────────────────┐  │
│  │      Platform Layer (macOS · Linux · WSL · Arch · Deb)     │  │
│  └────────────────────────────┬───────────────────────────────┘  │
│                               │                                  │
│  ┌────────────────────────────▼───────────────────────────────┐  │
│  │   Terminal Layer (Ghostty · WezTerm · Kitty · Alacritty)   │  │
│  └────────────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────────┘

✨ Core Philosophy

Principle Description
🎯 SSOT Define once in TOML, generate for all shells — zero duplication
🔒 Secure SSH hardening, GPG integration, secrets management, key rotation
🌍 Cross-Platform macOS, Linux, WSL — auto-detected, auto-configured
🐚 Cross-Shell ZSH, Bash, Fish, Nushell — shared config, native syntax
Blazing Fast Lazy loading, turbo mode, background compilation — < 500ms
🧩 Modular One tool = one file. Config separated from code
🔧 Zero Manual Everything auto-configures on first launch. No mkdir needed
📋 Documented JSDoc-style comments, complete README, help for every command

🚀 Key Features

🎯 SSOT Architecture

  • TOML → 4 shells: aliases, colors, icons, highlights
  • Generators transpile TOML to ZSH, Bash, Fish, Nushell
  • Change once → regenerate → all shells updated
  • config/tools.d/ for per-tool customization
  • ssot/aliases.toml for generic shell aliases

🐚 Multi-Shell Support

  • ZSH — Full-featured with Zinit plugins, completions
  • Bash — Lightweight, sources shared env + SSOT aliases
  • Fish — Native abbreviations, FZF integration
  • Nushell — Structured data, custom commands
  • Shared env vars via shells/shared/env.sh

🔐 Security First

  • SSH config modulaire (config.d/) with hardened defaults
  • Dynamic key management — discover all id_* automatically
  • macOS Keychain integration — silent passphrase
  • GPG integration — agent, signing, key management
  • Git commit signing (SSH keys, GitHub compatible)
  • Encrypted key backup (age/GPG)
  • ssh-audit security health check

🛠️ 60+ Tool Integrations

  • Each tool: tools/TOOL.zsh (code) + config/tools.d/TOOL.zsh (config)
  • Auto-setup: clone repos, create symlinks, generate configs
  • Conditional loading: tool not installed = nothing loaded
  • FZF integration everywhere — interactive selection
  • dot CLI — unified management interface

🎨 Starship Prompt — 3 Themes

  • Powerline — Full-featured, workstation default
  • Minimal — Clean, for SSH/Docker/remote
  • Nerd — Maximum info, VPS/Proxmox/K8s
  • Auto-selected based on context (SSH, container, VPS)
  • Runtime switching: dot theme minimal

📦 Auto-Clone Configs

  • nvim-enterprise~/.config/nvim
  • wezterm-enterprise~/.config/wezterm
  • ghostty-config~/.config/ghostty
  • git-templatesdotfiles/config/git/git-templates
  • Background updates on every shell startup

🌍 Cross-Platform Support

Automatic detection via lib/platform-detect.zsh — zero manual configuration.

Platform Status Package Manager Module
🍎 macOS Homebrew platform/darwin.zsh
🐧 Ubuntu / Debian apt platform/debian.zsh
🎩 Fedora / RHEL dnf platform/fedora.zsh
🏔️ Arch / Manjaro pacman / paru / yay platform/arch.zsh
🪟 WSL / WSL2 apt / dnf / pacman platform/wsl.zsh
❄️ NixOS nix core/01-platform.zsh

🐚 Cross-Shell Support

| Shell | Config | Aliases | Tool Inits | Prompt | | :---------- | :---------------- | :------------- | :--------------------- | :------- | -------- | | ZSH | shells/zsh/ | SSOT + tools.d | tools/*.zsh | Starship | | Bash | shells/bash/ | SSOT generated | shared/tools-init.sh | Starship | | Fish | shells/fish/ | SSOT generated | Native | source | Starship | | Nushell | shells/nushell/ | Custom def | Pre-generated .nu | Starship |


Dependency Version Required
Git ≥ 2.40
ZSH ≥ 5.8
Nerd Font v3+
Homebrew (macOS) latest ⚠️
📋 Install all tools
brew install \
  eza fzf bat fd ripgrep zoxide starship delta atuin mise direnv \
  neovim git gh just tldr navi fastfetch btop dust duf topgrade \
  thefuck yazi carapace lazygit lazydocker most \
  jq yq gum age sd ouch glow xh hyperfine tokei procs \
  tmux zellij k9s dive curlie bandwhich difftastic broot viddy lnav \
  act trivy sops gnupg pinentry-mac git-lfs nushell

# Essential
brew install eza fzf bat fd ripgrep zoxide starship delta atuin mise direnv neovim git

# DevOps
brew install docker podman kubectl helm k9s lazygit lazydocker dive act trivy sops ansible

# Utilities
brew install gh just tldr navi fastfetch btop dust duf topgrade thefuck yazi carapace most

# Data & HTTP
brew install jq yq gum xh curlie

# Security
brew install age gnupg pinentry-mac git-lfs

# Performance & Analysis
brew install hyperfine tokei procs bandwhich difftastic

# File & System
brew install sd ouch glow broot viddy lnav

# Multiplexers
brew install tmux zellij

# Shells
brew install bash fish nushell

# Terminals
brew install --cask ghostty wezterm kitty alacritty

🔧 Installation

One-Line Install

git clone https://github.com/ca971/dotfiles.git ~/dotfiles && sh ~/dotfiles/bootstrap.sh

Manual

# Clone
git clone https://github.com/ca971/dotfiles.git ~/dotfiles

# Bootstrap (detects shells, creates symlinks, generates SSOT)
sh ~/dotfiles/bootstrap.sh

# Or step by step
cd ~/dotfiles
just link              # Create symlinks
just generate-all      # Generate SSOT files
exec zsh               # Restart shell

Post-Install

dot doctor             # Health check
dot tools              # Tool availability
dot shells             # Shell status
dot ssh audit          # SSH security audit
dot benchmark 5        # Startup benchmark

~/dotfiles/
├── bin/                            # CLI tools
│   ├── dot                         # Unified CLI dispatcher
│   └── dot.d/                      # CLI modules
│       ├── _core.sh                # SSOT colors, icons, helpers
│       ├── help.sh                 # dot help
│       ├── info.sh                 # dot info
│       ├── status.sh               # dot status
│       ├── theme.sh                # dot theme
│       ├── ssh.sh                  # dot ssh
│       ├── ...                     # One module per command group
│
├── shells/                         # Shell-specific configurations
│   ├── shared/                     # Shared across all shells
│   │   ├── env.sh                  # POSIX env vars (SSOT)
│   │   ├── path.sh                 # PATH construction (SSOT)
│   │   └── tools-init.sh           # Tool init dispatcher
│   ├── zsh/                        # ZSH-specific
│   │   ├── .zshenv                 # Entry point (symlink ~/.zshenv)
│   │   ├── .zshrc                  # Main orchestrator
│   │   ├── core/                   # Options, history, completion, keys
│   │   ├── plugins/                # Zinit plugin management
│   │   └── terminal/               # Terminal adaptations (Ghostty, etc.)
│   ├── bash/.bashrc                # Bash config
│   ├── fish/config.fish            # Fish config
│   └── nushell/{env,config}.nu     # Nushell config
│
├── ssot/                           # Single Source of Truth (TOML)
│   ├── aliases.toml                # Generic aliases → 4 shell formats
│   ├── colors.toml                 # Color palette (Catppuccin)
│   ├── icons.toml                  # Nerd Font icons
│   ├── highlights.toml             # Syntax highlighting rules
│   ├── settings.toml               # Feature flags & parameters
│   ├── tools.toml                  # Tool registry
│   └── generators/                 # TOML → shell transpilers
│
├── generated/                      # Auto-generated (gitignored)
│   ├── aliases.{zsh,bash,fish,nu}  # Aliases per shell
│   ├── colors.zsh                  # Color variables
│   ├── icons.zsh                   # Icon constants
│   └── highlights.zsh              # Highlighting rules
│
├── config/                         # Tool configurations (versioned)
│   ├── git/                        # .gitconfig, .gitignore_global, etc.
│   ├── ssh/                        # SSH config.d/ templates
│   ├── gpg/                        # gpg.conf, gpg-agent.conf
│   ├── topgrade/                   # topgrade.toml
│   ├── bat/                        # bat config
│   ├── ripgrep/                    # ripgrep config
│   ├── fd/                         # fd ignore patterns
│   └── tools.d/                    # Per-tool aliases & options
│       ├── eza.zsh                 # Eza aliases
│       ├── git.zsh                 # Git aliases
│       ├── docker.zsh              # Docker aliases
│       ├── kubernetes.zsh          # K8s aliases
│       └── ...                     # 30+ tool configs
│
├── tools/                          # Tool integrations (code)
│   ├── git.zsh                     # Git auto-setup, functions
│   ├── ssh.zsh                     # SSH auto-setup, key management
│   ├── docker.zsh                  # Docker/Podman runtime detection
│   ├── neovim.zsh                  # Auto-clone nvim-enterprise
│   └── ...                         # 50+ tool integrations
│
├── functions/                      # Custom shell functions
│   ├── _helpers.zsh                # Clipboard, strings, dates
│   ├── archive.zsh                 # Extract/compress (20+ formats)
│   ├── git-helpers.zsh             # Git workflows
│   ├── network.zsh                 # IP, DNS, HTTP utilities
│   └── ...                         # 10 function modules
│
├── platform/                       # Platform-specific
│   ├── darwin.zsh                  # macOS (Homebrew, Finder, etc.)
│   ├── linux.zsh                   # Linux (systemd, clipboard)
│   ├── wsl.zsh                     # WSL interop
│   ├── arch.zsh                    # Arch (pacman/paru/yay)
│   ├── debian.zsh                  # Debian/Ubuntu (apt)
│   └── fedora.zsh                  # Fedora (dnf)
│
├── themes/                         # Prompt & color themes
│   ├── starship-powerline.toml     # Workstation prompt
│   ├── starship-minimal.toml       # SSH/Docker prompt
│   ├── starship-nerd.toml          # VPS/K8s prompt
│   ├── starship-selector.sh        # Auto-select (POSIX)
│   ├── starship-selector.zsh       # ZSH wrapper
│   └── fzf-theme.zsh              # FZF color themes (7 presets)
│
├── lib/                            # Internal libraries
│   ├── logging.zsh                 # Structured logging
│   ├── platform-detect.zsh         # OS/terminal detection
│   ├── tool-check.zsh              # Tool availability
│   ├── lazy-load.zsh               # Deferred loading
│   └── toml-parser.zsh             # TOML parser
│
├── local/                          # Private (gitignored)
│   ├── local.zsh                   # Machine-specific overrides
│   ├── secrets.zsh                 # API keys, tokens
│   ├── gitconfig.local             # Git identity
│   └── ssh_config_*.conf           # Private SSH hosts
│
├── scripts/                        # Maintenance scripts
│   ├── install.sh                  # Installer
│   ├── doctor.sh                   # Health check
│   ├── benchmark.zsh               # Startup profiler
│   └── update.sh                   # Self-updater
│
├── tests/                          # Test suites
├── bootstrap.sh                    # Universal bootstrap (POSIX sh)
├── Justfile                        # Task runner
├── README.md                       # This file
└── LICENSE                         # MIT

🎯 SSOT Architecture

Define configuration once in TOML, generate for all shells:

TOML Source Generated Outputs Purpose
aliases.toml aliases.{zsh,bash,fish,nu} Generic aliases (no tool dependency)
colors.toml colors.zsh Catppuccin palette + LS_COLORS
icons.toml icons.zsh 100+ Nerd Font icons
highlights.toml highlights.zsh Syntax highlighting rules

Tool-specific aliases live in config/tools.d/TOOL.zsh — loaded only if the tool is installed.

# Regenerate all SSOT outputs
dot generate

# Regenerate specific target
dot generate aliases

🔧 dot CLI

Unified management interface — works in every shell.

dot                          # Help
dot info                     # System & dotfiles overview
dot status                   # Quick dashboard
dot doctor                   # Health check
dot shells                   # Shell status
dot tools                    # Tool availability report

dot theme [name]             # Switch Starship theme (interactive FZF)
dot theme list               # List themes
dot theme preview            # Preview all themes

dot generate [target]        # Generate SSOT files
dot link                     # Create symlinks
dot edit [file]              # Open in editor

dot ssh info                 # SSH config overview
dot ssh keys                 # List all SSH keys
dot ssh test [host]          # Test connectivity
dot ssh audit                # Security audit
dot ssh generate             # Generate new key
dot ssh backup               # Encrypted backup

dot git-sign info            # Signing configuration
dot git-sign ssh             # Configure SSH signing

dot secret list              # Manage secrets
dot backup                   # Snapshot dotfiles
dot benchmark [n]            # Startup benchmark
dot color                    # Color palette test
dot path                     # PATH audit
dot alias [search]           # Browse aliases
dot diff                     # Uncommitted changes

dot terminal                 # Terminal management
dot terminal info            # Current terminal info (auto-detected)
dot terminal info ghostty    # Specific terminal info
dot terminal update          # Update all terminal configs
dot terminal edit            # Edit current terminal config
dot terminal list            # Supported terminals

dot editor                   # Editor management
dot editor info              # Neovim info
dot editor info all          # All editors info
dot editor update            # Update editor config
dot editor health            # Neovim health check
dot editor reinstall         # Reinstall from repo
dot editor list              # Supported editors

dot nix                      # Nix management
dot nix info                 # Installation info
dot nix dev                  # Enter dev shell
dot nix install              # Install packages from flake
dot nix search <pkg>         # Search nixpkgs
dot nix clean                # Garbage collect

🎨 Starship Themes

Three context-aware themes, auto-selected based on environment:

Theme Context Style
Powerline Workstation, desktop Rounded segments, full info
Minimal SSH, Docker, remote Clean two-line, low bandwidth
Nerd VPS, Proxmox, K8s Maximum info density
dot theme                    # Interactive FZF selector
dot theme minimal            # Direct switch
dot theme preview            # Preview all

Auto-detection priority:

  1. STARSHIP_THEME env var (manual override)
  2. Proxmox / Kubernetes / VPS → Nerd
  3. SSH / Docker / Container → Minimal
  4. Local workstation → Powerline

🛠️ Integrated Tools

Each tool: tools/TOOL.zsh (code) + config/tools.d/TOOL.zsh (config). Loaded only if installed. Zero wasted aliases.

Essential

Tool Purpose Config
eza Modern ls config/tools.d/eza.zsh
fzf Fuzzy finder config/tools.d/fzf.zsh
bat Syntax cat config/tools.d/bat.zsh
fd Modern find config/tools.d/fd.zsh
ripgrep Ultra-fast grep config/tools.d/ripgrep.zsh
zoxide Smart cd config/tools.d/zoxide.zsh
starship Prompt (3 themes) themes/starship-*.toml
delta Git diff config/tools.d/delta.zsh
atuin Shell history config/tools.d/atuin.zsh
mise Runtime manager config/tools.d/mise.zsh
jq JSON processor config/tools.d/jq.zsh
yq YAML/TOML processor config/tools.d/yq.zsh

Editors & Terminals

Tool Purpose Auto-Clone
Neovim Editor nvim-enterprise~/.config/nvim
Ghostty Terminal ghostty-config~/.config/ghostty
WezTerm Terminal wezterm-enterprise~/.config/wezterm
Kitty Terminal kitty~/.config/kitty
Alacritty Terminal alacritty~/.config/alacritty
iTerm2 Terminal Shell integration + features

DevOps

Tool Purpose Config
docker / podman Containers config/tools.d/docker.zsh
kubectl Kubernetes config/tools.d/kubernetes.zsh
helm K8s packages config/tools.d/helm.zsh
k9s K8s TUI config/tools.d/k9s.zsh
terraform / tofu IaC config/tools.d/terraform.zsh
ansible Config management config/tools.d/ansible.zsh
lazygit Git TUI config/tools.d/lazygit.zsh
lazydocker Docker TUI config/tools.d/lazygit.zsh
dive Docker layers config/tools.d/dive.zsh
act GitHub Actions local config/tools.d/act.zsh
trivy Security scanner config/tools.d/trivy.zsh
sops Secrets in Git config/tools.d/sops.zsh

Utilities

Tool Purpose Config
btop System monitor config/tools.d/btop.zsh
dust / duf Disk usage config/tools.d/dust.zsh
yazi File manager config/tools.d/yazi.zsh
navi Cheatsheets config/tools.d/navi.zsh
gum TUI scripting config/tools.d/gum.zsh
age Encryption config/tools.d/age.zsh
hyperfine Benchmarks config/tools.d/hyperfine.zsh
tokei Code stats config/tools.d/tokei.zsh
procs Modern ps config/tools.d/procs.zsh
topgrade Universal updater config/topgrade/topgrade.toml
glow Markdown renderer config/tools.d/glow.zsh
xh HTTP client config/tools.d/xh.zsh
sd Modern sed config/tools.d/sd.zsh
ouch Compression config/tools.d/ouch.zsh
difftastic Structural diff config/tools.d/difftastic.zsh
broot Tree explorer config/tools.d/broot.zsh
viddy Modern watch config/tools.d/viddy.zsh
lnav Log navigator config/tools.d/lnav.zsh
curlie curl + httpie config/tools.d/curlie.zsh
bandwhich Bandwidth monitor config/tools.d/bandwhich.zsh
tmux Multiplexer config/tools.d/tmux.zsh
zellij Modern multiplexer config/tools.d/zellij.zsh
gh GitHub CLI config/tools.d/gh.zsh
tldr Man pages simplified config/tools.d/tldr.zsh
thefuck Command correction config/tools.d/thefuck.zsh
fastfetch System info config/tools.d/fastfetch.zsh
just Task runner config/tools.d/just.zsh
chezmoi Dotfile manager config/tools.d/chezmoi.zsh
direnv Dir environments config/tools.d/direnv.zsh
carapace Multi-shell completions config/tools.d/carapace.zsh

Package Management

Tool Purpose
Nix Declarative package manager — config/nix/flake.nix
Homebrew macOS package manager
mise Runtime version manager

🔐 Security

SSH

Feature Status
Modular config (config.d/)
Dynamic key discovery (id_*)
Hardened algorithms (ed25519, chacha20)
macOS Keychain integration
Agent forwarding disabled
Connection multiplexing
Encrypted key backup (age/GPG)
Key age monitoring + rotation
Security audit (ssh-audit)
Auto-permissions (600/700)

GPG

Feature Status
Auto-symlink configs
Agent auto-start
Pinentry auto-detect
Key management functions
Security audit (gpg-audit)

Git

Feature Status
SSH commit signing
Allowed signers management
Credential helpers (platform-aware)
Secrets pre-commit scanner
History secrets filtering

🔑 SSH Management

ssh-keys                    # List all keys with fingerprints
ssh-key-generate            # Generate new key (ed25519, KDF 200)
ssh-key-copy                # Copy public key to clipboard
ssh-key-delete              # Delete key pair (FZF)

ssh-config-info             # Config overview
ssh-config-edit work        # Edit work servers
ssh-config-add personal     # Add host interactively
ssh-config-test             # Test all connections

ssh-audit                   # Full security audit
ssh-backup                  # Encrypted backup (age/GPG)
ssh-restore                 # Restore from backup
ssh-key-age                 # Key age report

Specific for macOS

# Add keygens to Apple Keychain instead of agent
/usr/bin/ssh-add --apple-use-keychain ~/.ssh/id_github_ed25519

# For all keys
for key in ~/.ssh/id_*(N); do
  [[ -f "$key" && "$key" != *.pub ]] && /usr/bin/ssh-add --apple-use-keychain "$key"
done

📝 Git Integration

# Workflow
gconv                       # Conventional commit (interactive FZF)
gbranch                     # Create named branch (type/ticket-desc)
gflow                       # PR workflow menu
gpr                         # Create pull request
greview                     # Review PRs (FZF)

# Analysis
ginfo                       # Repository info
grepo                       # Repository health
gstandup                    # Yesterday's work
gchangelog                  # Auto-changelog from commits
gstats                      # File change statistics

# Release
grelease                    # Tag + push + GitHub release

# Signing
git-signing-ssh             # Configure SSH signing
git-signing-info            # Show signing config
git-verify                  # Verify commit signature

# Templates
git-templates-install       # Install git-templates hooks
git-templates-info          # Show hook status

❄️ Nix — Declarative Environment

Reproducible cross-platform environment via Nix Flakes. Same 60+ tools on macOS and Linux with a single command.

# Enter dev shell (temporary, all tools available)
cd ~/dotfiles/config/nix
nix develop

# Install permanently to your profile
nix profile install .

# Update all inputs
nix flake update

# Via dot CLI
dot nix info              # Nix installation info
dot nix dev               # Enter dev shell
dot nix install           # Install all packages
dot nix update            # Update flake inputs
dot nix rebuild           # Update + reinstall
dot nix search ripgrep    # Search packages
dot nix list              # Installed packages
dot nix clean             # Garbage collect
dot nix shell python      # Language-specific dev shell
dot nix audit             # Security audit

Flake Structure

config/nix
├── flake.lock                  # Locked dependencies for reproducibility
├── flake.nix                   # Main flake entry point
├── home                        # Home Manager configuration
│   ├── darwin.nix              # macOS-specific home settings
│   ├── default.nix             # Shared home configuration entry point
│   ├── git.nix                 # Git configuration
│   ├── programs.nix            # User-level programs configuration
│   └── shell.nix               # Shell configuration (zsh, aliases, etc.)
├── hosts                       # Host-specific system configurations
│   ├── linux-dev               # Linux development machine
│   │   └── default.nix         # Linux host configuration
│   └── mbp                     # MacBook Pro
│       └── default.nix         # macOS host configuration
├── lib                         # Helper functions and utilities
│   └── mkSystem.nix            # System builder abstraction
├── overlays                    # Nixpkgs overlays
│   └── default.nix             # Custom package overlays
├── packages                    # Package sets by platform / category
│   ├── common.nix              # Cross-platform packages
│   ├── darwin.nix              # macOS-only packages
│   ├── devtools.nix            # Development tooling packages
│   └── linux.nix               # Linux-only packages
├── README.md                   # Project documentation
├── shells                      # Nix development shells
│   ├── default.nix             # Default / shared shell configuration
│   ├── devops.nix              # DevOps shell (Terraform, k8s, etc.)
│   ├── go.nix                  # Go development shell
│   ├── node.nix                # Node.js development shell
│   ├── python.nix              # Python development shell
│   └── rust.nix                # Rust development shell
└── templates                   # Flake templates for new projects
    ├── go                      # Go project template
    │   └── flake.nix           # Go flake template
    ├── node                    # Node.js project template
    │   └── flake.nix           # Node flake template
    ├── python                  # Python project template
    │   └── flake.nix           # Python flake template
    └── rust                    # Rust project template
        └── flake.nix           # Rust flake template

New Machine Setup

# 1. Install Nix
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh

# 2. Clone dotfiles
git clone git@github.com:ca971/dotfiles.git ~/dotfiles

# 3. Install everything
cd ~/dotfiles/config/nix && nix profile install .

# 4. Bootstrap dotfiles
sh ~/dotfiles/bootstrap.sh

Nix usage

# Dev shell
cd ~/dotfiles/config/nix
nix flake update                        # Regenerate
nix flake show .                        # Test
nix develop                             # Default shell
nix develop .#devShells.aarch64-darwin  # Explicit system

# Specific dev environment
nix-dev python
ll
gs
exit

nix-dev go
ll
exit

nix-dev devops
k
exit

nix-dev rust
ll
gs
exit

# Install environment
nix profile install .                   # All packages
nix profile list                        # List installed
nix profile upgrade '.*'                # Update all
nix-install-env                         # Install complete environment

# Search
nix search nixpkgs ripgrep              # Search packages

# Garbage collect
nix-collect-garbage -d                  # Remove old generations

🖥️ Terminal & Editor Management

All terminal and editor configs are auto-cloned from GitHub repos on first launch and auto-updated in background on subsequent launches.

Terminal Management

dot terminal                  # Help
dot terminal info             # Auto-detect current terminal
dot terminal info ghostty     # Specific terminal info
dot terminal update           # Update ALL terminal configs
dot terminal update kitty     # Update specific terminal
dot terminal edit             # Edit current terminal config
dot terminal reinstall kitty  # Reinstall from repo
dot terminal list             # Supported terminals
Terminal Config Repo Auto-Clone
Ghostty ca971/ghostty-config
WezTerm ca971/wezterm-enterprise
Kitty ca971/kitty
Alacritty ca971/alacritty
iTerm2 Shell integration + features N/A

Editor Management

dot editor                    # Help
dot editor info               # Neovim info
dot editor info all           # All editors
dot editor update             # Update nvim-enterprise
dot editor health             # Neovim checkhealth
dot editor reinstall neovim   # Reinstall from repo
dot editor list               # Supported editors
Editor Config Repo Auto-Clone
Neovim ca971/nvim-enterprise
Helix Local config
Vim Local config

⚡ Performance

Target: < 500ms startup (with fastfetch).

dot benchmark 10            # 10-iteration benchmark
dot profile                 # ZSH zprof output
Optimization Technique
Turbo mode Zinit wait"N" async loading
Lazy loading Tool shims, deferred init
Compilation .zwc bytecode (background)
Conditional (( $+commands[tool] )) — no fork
Caching Completions cached 24h
Background SSH perms, git-templates in &!

🧪 Testing

just test                   # Run all test suites
dot doctor                  # Health check (60+ checks)

# Individual suites
zsh tests/test-aliases.zsh
zsh tests/test-functions.zsh
zsh tests/test-platform.zsh

🤝 Contributing

git checkout -b feat/amazing-feature
gconv                       # Interactive conventional commit
git push origin feat/amazing-feature
gpr                         # Create PR
Contribution How
Add a tool Create tools/TOOL.zsh + config/tools.d/TOOL.zsh
Add an alias Edit config/tools.d/TOOL.zsh (tool) or ssot/aliases.toml (generic)
Add a platform Create platform/DISTRO.zsh
Fix an issue Fork → branch → commit → PR

📄 License

MIT — free for personal, educational, and commercial use.


Crafted with ❤️ by ca971 — for power users who live in the terminal.

⬆ Back to Top

Stars Issues Forks

About

⚡ Enterprise-grade dotfiles — Cross-Platform (macOS/Linux/WSL) · Cross-Shell (ZSH/Bash/Fish/Nushell) · SSOT TOML Architecture · 60+ Tools · Starship Themes · SSH/GPG Security · Unified CLI

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors