Cross-platform dotfiles managed with [chezmoi] - featuring modular tool loading, project templates, development automation, and standardized script architecture.
# One-liner install (30 seconds)
curl -fsSL https://raw.githubusercontent.com/hydepwns/dotfiles/main/scripts/setup/quick-setup.sh | bash
# NixOS-specific quick fix for common issues
bash scripts/setup/nixos-quick-fix.sh
# MacOS/Darwin with brew
brew install chezmoi && chezmoi init --apply https://github.com/hydepwns/dotfiles.git
# Verify your setup (after installation)
bash scripts/utils/verify-setup.sh
# NixOS quick fix for common issues
bash scripts/setup/nixos-quick-fix.shNixOS: Doesn't allow dynamically linked executables from generic Linux, docs/nixos-installation.md has even more install options.
| Category | Command | Description |
|---|---|---|
| Core | make install |
Install dotfiles |
| Sync | make update |
Update from remote |
| Health | utils/health-check.sh |
System health check (working) |
| Health | make doctor |
Advanced health check (may segfault) |
| Sync | make sync |
Sync local changes |
| Verify | utils/test-functionality.sh |
Verify complete setup (28 tests) |
| Test | make test |
Run test suite (may segfault) |
The setup process will prompt for:
| Setting | Purpose | Example |
|---|---|---|
| Git config | user@example.com |
|
| Username | Git config | Your Name |
| Tool Preferences | Nix, Oh My Zsh, asdf | y/n for each tool |
| Machine Type | Personal (SSH keys) or Work | personal or work |
# Set GitHub token for SSH key fetching
export GITHUB_TOKEN="your_personal_access_token"
# Apply configuration with SSH keys
chezmoi apply
# Or use the setup script
./scripts/setup/setup-github-token.sh
# Install additional tools
make install-optional
# Performance monitoring
make performance-monitor ACTION=measure
# Setup Cursor IDE
./scripts/setup/setup-cursor-simple.sh
# Edit specific configuration files
chezmoi edit ~/.zshrc ~/.gitconfig ~/.tmux.conf ~/.config/nvim/init.lua ~/.config/nvim/lua/plugins.lua
# Verify configuration integrity
chezmoi verify
chezmoi apply --source-path ~/.local/share/chezmoi| Category | Tools | Languages | Version Managers |
|---|---|---|---|
| Core | |||
| Web3 | - |
See docs/nvim-plugins.md for a full categorized list and descriptions.
| Category | Count | Key Plugins |
|---|---|---|
| UI & Theme | 4 | twilight.nvim, mini.hipatterns, synthwave84.nvim, mona.nvim |
| Comments & Completion | 6 | nvim-cmp, LuaSnip, Comment.nvim, todo-comments.nvim, ts-context-commentstring, friendly-snippets |
| File Management & Git | 4 | mini.files, nvim-tree.lua, gitsigns.nvim, mini.diff |
| LSP & Diagnostics | 4 | nvim-lspconfig, mason.nvim, trouble.nvim, conform.nvim |
| Editing & Movement | 8 | mini.pairs, mini.surround, mini.ai, mini.move, mini.operators, mini.align, mini.trailspace, hlargs.nvim |
| Status & Testing | 6 | mini.statusline, lualine.nvim, mini.tabline, neotest, neotest-*, mini.sessions |
| Fuzzy Finder & Keybindings | 5 | telescope.nvim, mini.visits, which-key.nvim, flash.nvim, mini.extra |
| Note-taking & Utilities | 6 | orgmode, neorg, mini.nvim, noice.nvim, nvim-notify, dressing.nvim |
| Treesitter & Animation | 3 | nvim-treesitter, mini.animate, SmoothCursor.nvim |
| Development | 4 | neoconf.nvim, neodev.nvim, mini.indentscope, mini.cursorword |
| Total | 56 |
See docs/templates.md for detailed template information and usage examples.
# Quick examples
make generate-template web3 my-project --web3-type both --with-tests --with-ci
make generate-template nextjs my-app --with-tests --with-ci --with-docs
make generate-template rust my-cli --with-docs --with-ci
# List all templates
make generate-templateShell startup is up to 95% faster with lazy loading and modular architecture. See docs/performance.md for detailed benchmarks.
| Feature | Improvement | Impact |
|---|---|---|
| Lazy Loading | 0.9s saved per shell | 95% faster startup |
| Modular Architecture | On-demand loading | Reduced memory usage |
| Standardized Scripts | Unified initialization | Faster development |
| Template System | 8 project types | Faster project setup |
| Real-time Monitoring | Live performance tracking | Continuous optimization |
| Enhanced Analytics | Detailed metrics & reports | Data-driven improvements |
| Command | Description |
|---|---|
make perf |
Run performance test |
make perf-report |
Generate performance report |
make perf-history |
Show performance history |
make perf-realtime |
Start real-time monitoring |
make perf-stop |
Stop real-time monitoring |
make lazy-load-config |
Generate lazy loading config |
make lazy-load-stats |
Show lazy loading stats |
make lazy-load-clean |
Clean lazy loading data |
| Optimization | Mechanism | Affects | Command/Config |
|---|---|---|---|
| Lazy Loading | Aliases/functions | Tool load time, startup | make lazy-load-config |
| Modular Sourcing | Conditional load | Shell startup, memory | .zshrc, .zshenv |
| Real-time Monitor | Background script | Live resource usage | make perf-realtime |
| PATH Pruning | Deduplication | Command lookup speed | core/paths.zsh |
| Performance Test | Benchmark script | Startup, tool load | make perf |
| Analytics/Reports | Data aggregation | Optimization feedback | make perf-report |
Q: How do I customize the configuration?
A: Edit files directly with chezmoi edit ~/.zshrc or modify templates in the source.
Q: Can I use this on Windows? A: Currently optimized for macOS (use brew to install chezmoi) and Linux. Windows support is experimental (because I refuse to use it). Use devenv for windows.