🖖 Features: - Master 'engage' script for one-command setup - 120+ CLI tools via Homebrew - 40+ Applications (casks + MAS apps) - Complete macOS system configuration - Security hardening and privacy settings - Obsidian knowledge vault setup - Comprehensive backup strategies - Automated symlink management Live long and prosper\! 🚀 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
218 lines
6.8 KiB
Markdown
218 lines
6.8 KiB
Markdown
# 🖖 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:**
|
|
|
|
```bash
|
|
git clone https://github.com/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:
|
|
|
|
```bash
|
|
# 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:
|
|
```ruby
|
|
# 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`:
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
# 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:
|
|
- [Mathias Bynens' dotfiles](https://github.com/mathiasbynens/dotfiles)
|
|
- [ptb/mac-setup](https://github.com/ptb/mac-setup)
|
|
- [Homebrew Bundle](https://github.com/Homebrew/homebrew-bundle)
|
|
- The Star Trek universe for the best command ever: **"Engage!"**
|
|
|
|
---
|
|
|
|
**Live long and prosper!** 🖖
|
|
|
|
*Made with ❤️ for the macOS community* |