David F GliddenandClaude Opus 5 24080328c1 [FIX] pre-commit: the refusal message stops recommending a mechanism this system retired
The message told people to use Git LFS. Wrong twice: LFS cannot satisfy this check
(it measures the working-tree file), and LFS was tried in this system and retired.

Message drafted by the jurist, with two corrections to my draft that I would have
shipped as written:

  (a) My version asserted "git.skemantix.com serves no LFS endpoint" — a
      PRESENT-TENSE substrate claim, inside a script global to 37 repos, that the
      hook cannot verify, that is repo-dependent across those remotes, and that
      nothing checks. PENDING-144's open class exactly. Now stated historically:
      a dated fact about what was tried does not go stale.

  (b) My version led the remedy with `git config --local core.hooksPath .githooks`.
      That does not exempt large files — it stops the global hook running in that
      repo AT ALL, taking every other check with it. Advertising it as the routine
      response to a routine refusal is REVIEWED-105's failure mode returning:
      someone runs the config line without copying the hook and now has an
      unguarded repo that looks governed. The remedy now leads with copying
      400c054's hook and adding the exemption there; the config line is last.

Controls re-run after the change: whitespace-named 6MB REFUSED (and printing the
new message), plain 6MB REFUSED, small file COMMITTED.

Disposition of PENDING-163's option (ii), recorded here because the ground matters
more than the verdict: 0677e8a gives two reasons for retiring LFS with different
lifespans. The endpoint reason is contingent — a repo pointing elsewhere changes
it. The merits reason ("git delta-compresses text natively") is not, and it is
now measured rather than quoted: eight commits of an append-only 4MB JSONL cost
6MB in plain git and 18MB under LFS, because LFS stores a whole opaque blob per
version and cannot delta. THREE TIMES WORSE, on precisely the corpus that started
this. (ii) therefore REJECTED on the merits, not deferred on the endpoint.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NvZAKSf9aqratbqHbU9LK5
2026-08-26 18:19:01 +02:00
2025-07-27 13:40:44 +02:00

🖖 David's Dotfiles - "Engage!"

"Make it so!" - A complete macOS setup system inspired by Star Trek's efficiency and elegance.

From zero to fully configured macOS in minutes. This dotfiles repository provides a comprehensive, automated setup for developers, writers, and knowledge workers.

🚀 Quick Start

One command to rule them all:

# From GitHub
git clone https://github.com/davidglidden/dotfiles.git ~/dotfiles && ~/dotfiles/engage

# From Gitea (alternative mirror)
git clone git@git.davidglidden.eu:davidglidden/dotfiles.git ~/dotfiles && ~/dotfiles/engage

That's it! The engage script will guide you through a complete system setup.

✨ What This System Provides

📦 Software Management

  • 120+ CLI tools via Homebrew (development, media, security)
  • 40+ Applications via casks (productivity, creativity, utilities)
  • 20+ Mac App Store apps via mas (native macOS apps)

🔧 Configuration Management

  • Shell setup: Zsh with Antidote, Powerlevel10k, history sync
  • Development tools: Git hooks, SSH templates, NPM config
  • Application configs: LaunchBar, Hazel, Bartender, Karabiner
  • Obsidian vault: Complete knowledge management system

🖥️ macOS System Configuration

  • System preferences: Dock, Finder, keyboard, security
  • Security hardening: Firewall, privacy, authentication
  • Keyboard shortcuts: Mission Control, app shortcuts
  • Developer settings: Safari dev tools, Terminal enhancements

🛡️ Backup & Security Strategy

  • Encrypted backups for sensitive files (SSH keys, credentials)
  • History management with daily snapshots and retention
  • Git hooks for security and code quality
  • Application data backup and restore scripts

📁 Repository Structure

dotfiles/
├── engage                     # 🖖 Master installation script
├── Brewfile                   # Package management (brew/cask/mas)
├── README.md                  # This file
├── .gitconfig                 # Git configuration
├── .npmrc                     # NPM defaults
├── .zshrc                     # Shell configuration
├── .vimrc                     # Vim configuration
├── bin/                       # Custom scripts
│   ├── backup-dotfiles        # Quick dotfiles backup
│   └── check-app-configs      # Configuration status checker
├── git/                       # Git configuration
│   └── hooks/                 # Global git hooks
├── macos/                     # macOS system configuration
│   ├── setup-macos.sh         # Master macOS setup
│   ├── defaults.sh            # System preferences
│   ├── security.sh            # Security hardening
│   └── keyboard-shortcuts.sh  # Custom shortcuts
├── macos-apps/                # macOS app configurations
│   └── backup-app-configs.sh  # App settings backup
├── obsidian/                  # Obsidian knowledge vault
│   ├── setup-obsidian.sh      # Vault configuration
│   └── community-plugins.json # Essential plugins
├── scripts/                   # Installation scripts
│   └── symlinks.sh            # Dotfile linking
├── shell/                     # Shell enhancements
│   └── history-sync.zsh       # History management
└── ssh/                       # SSH configuration
    ├── config.example         # SSH config template
    └── README.md              # SSH setup guide

🎯 Core Philosophy

This system balances automation with choice:

  • Smart defaults that work out of the box
  • Interactive modes for customization
  • Modular design - use what you need
  • Security first - encrypted backups, secure defaults
  • Documentation - clear guides and examples

Inspired by the best dotfiles repositories but designed for real-world complexity.

📱 Essential Applications Included

Development

  • iTerm2 + Kitty - Terminal emulators
  • BBEdit - Text editor with deep macOS integration
  • GitHub Desktop - Git GUI
  • Docker - Containerization

Productivity

  • Obsidian - Knowledge management powerhouse
  • 1Password - Password management
  • LaunchBar - Application launcher
  • Hazel - Automated file organization
  • Drafts - Quick capture and text processing

Utilities

  • Karabiner-Elements - Keyboard customization
  • Bartender - Menu bar organization
  • Keka - Archive utility
  • Oversight - Privacy monitoring
  • Signal - Secure messaging

Creative & Media

  • VLC - Media player
  • HandBrake - Video transcoding
  • Transmit - File transfer
  • Calibre - E-book management

🛠️ Advanced Usage

Manual Installation Steps

If you prefer granular control:

# 1. Install packages only
brew bundle install --file=~/dotfiles/Brewfile

# 2. Set up dotfiles
~/dotfiles/scripts/symlinks.sh

# 3. Configure macOS
~/dotfiles/macos/setup-macos.sh

# 4. Set up applications
~/dotfiles/macos-apps/backup-app-configs.sh

Customization

Modify the Brewfile to add/remove applications:

# Add new CLI tool
brew "your-tool"

# Add new application
cask "your-app"

# Add Mac App Store app
mas "App Name", id: 123456789

Customize macOS defaults in macos/defaults.sh:

# Change dock position
defaults write com.apple.dock orientation -string "left"

# Adjust key repeat speed
defaults write NSGlobalDomain KeyRepeat -int 1

Backup Strategy

Before making changes:

# Backup current dotfiles
~/dotfiles/bin/backup-dotfiles

# Backup macOS settings  
~/dotfiles/macos/backup-defaults.sh

# Backup sensitive files (encrypted)
~/dotfiles/backup-scripts/backup-sensitive.sh

🔐 Security Features

  • SSH keys encrypted with GPG
  • Firewall enabled with stealth mode
  • Privacy settings optimized
  • Git hooks prevent secrets in commits
  • Secure defaults for Safari and system
  • Application permissions documented

🧠 Obsidian Knowledge System

Includes a sophisticated personal knowledge management setup:

  • 13 essential plugins for advanced functionality
  • Template system with Templater integration
  • Daily/weekly/monthly review cycles
  • Christopher Alexander pattern language philosophy
  • Multilingual support (EN/ES/FR/CA)

🤝 Contributing

This is a personal dotfiles repository, but ideas and improvements are welcome:

  1. Fork the repository
  2. Create a feature branch
  3. Test thoroughly on a fresh macOS installation
  4. Submit a pull request with clear description

📜 License

MIT License - Use, modify, and share freely.

🙏 Acknowledgments

Inspired by:


Live long and prosper! 🖖

Made with ❤️ for the macOS community

S
Description
🖖 Complete macOS dotfiles system - 'Engage!'
Readme
14 MiB
Languages
Python 73%
Shell 25.1%
JavaScript 1.2%
Ruby 0.7%