{"id":17224828,"url":"https://github.com/pseudomuto/dotfiles","last_synced_at":"2026-03-07T03:02:28.467Z","repository":{"id":11208456,"uuid":"13594156","full_name":"pseudomuto/dotfiles","owner":"pseudomuto","description":"You know...dotfiles and such","archived":false,"fork":false,"pushed_at":"2025-08-25T13:20:59.000Z","size":719,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-25T15:33:10.571Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pseudomuto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-10-15T15:36:08.000Z","updated_at":"2025-08-25T13:21:03.000Z","dependencies_parsed_at":"2024-10-15T04:12:09.691Z","dependency_job_id":"3204f963-3e08-4c76-a41f-8cac9440a83e","html_url":"https://github.com/pseudomuto/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pseudomuto/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pseudomuto%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pseudomuto%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pseudomuto%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pseudomuto%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pseudomuto","download_url":"https://codeload.github.com/pseudomuto/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pseudomuto%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30206339,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"online","status_checked_at":"2026-03-07T02:00:06.765Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T04:12:04.989Z","updated_at":"2026-03-07T03:02:28.453Z","avatar_url":"https://github.com/pseudomuto.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# My Dotfiles\n\nPersonal cross-platform dotfiles managed with Nix flakes and Home Manager. Supports macOS (Darwin) ARM64 and Linux (ARM64/x86_64).\n\nThis has evolved over the years to a little more than just dotfiles. If you're of the opinion these should be dirt\nsimple, well...\n\n![](https://cloud.githubusercontent.com/assets/64263/19022286/f792b660-88a2-11e6-8133-c9e11555f05a.jpg)\n\n## Quick Start\n\n### Installation\n\n- Clone this repo in _~/dotfiles_\n- Copy the EJSON private key to _~/.config/ejson/6f1d653196b2a9639631ddeb19d80f995873c18a0011666d8ee98e3d21ad1d0c_.\n\n```bash\n./apply\n```\n\nThis will:\n\n1. Install/update Nix with flakes enabled\n2. Apply Home Manager configuration for your platform\n3. Set up all enabled modules and their configurations\n\n### Testing (Linux ARM64 in Docker)\n\n```bash\ntask test\n```\n\n### Uninstalling\n\n```bash\n./scripts/uninstall\n```\n\n**⚠️ Warning**: This completely removes Nix, Home Manager, and all managed configurations.\n\n## How It Works\n\n- **Nix Flakes**: Declarative, reproducible configuration management\n- **Home Manager**: User-level package and configuration management\n- **Modular Design**: Platform-specific module selection\n- **Custom Namespace**: All modules use `dotfiles.*` to avoid conflicts\n\n### Platform Detection\n\nThe flake automatically detects your platform and applies the appropriate configuration:\n\n- **macOS ARM64**: Full feature set with GUI applications\n- **Linux ARM64/x86_64**: Server-focused configuration\n\n## Available Modules\n\n| Module     | Description                                            | Darwin | Linux |\n| ---------- | ------------------------------------------------------ | ------ | ----- |\n| `shell`    | Zsh/Bash with completions, aliases, and custom scripts | ✅     | ✅    |\n| `git`      | Git configuration with delta, aliases, and signing     | ✅     | ✅    |\n| `nvim`     | Neovim with LazyVim and LSPs managed via Nix           | ✅     | ✅    |\n| `tmux`     | Terminal multiplexer with vim-style bindings           | ✅     | ✅    |\n| `ripgrep`  | Fast text search with custom file types                | ✅     | ✅    |\n| `gcloud`   | Google Cloud SDK with configurable components          | ✅     | ✅    |\n| `kube-ps1` | Kubernetes prompt for shell                            | ✅     | ✅    |\n| `dev`      | Development tools (Go, Rust, Node.js, Python)          | ✅     | ✅    |\n| `rejson`   | JSON/eJSON manipulation tool                           | ✅     | ✅    |\n| `keybase`  | Keybase and GPG with platform-specific pinentry        | ✅     | ✅    |\n\n### Module Configuration\n\nModules are configured in `systems/darwin.nix` or `systems/linux.nix`:\n\n```nix\n# Enable modules for this platform\nenabledModules = [\n  \"shell\" \"git\" \"nvim\" \"tmux\" \"ripgrep\"\n  \"dev\" \"gcloud\" \"kube-ps1\" \"rejson\" \"keybase\"\n];\n\n# Configure individual modules\ndotfiles.git = {\n  userName = \"Your Name\";\n  userEmail = \"you@example.com\";\n};\n\ndotfiles.nvim.lazyVim = {\n  colorscheme = \"catppuccin\";\n};\n```\n\n## Development Tasks\n\nUses [Task](https://taskfile.dev) for development workflow:\n\n```bash\n# Format all code\ntask fmt\n\n# Run all linting checks\ntask lint\n\n# Auto-fix issues\ntask fix\n\n# Find dead code\ntask dead\n\n# Development workflow (format + check)\ntask dev\n\n# Clean up\ntask clean\n```\n\n## Project Structure\n\n```\n.\n├── apply                    # Installation script\n├── taskfile.yaml          # Development tasks\n├── flake.nix              # Main flake configuration\n├── modules/               # Custom Home Manager modules\n│   ├── shell/            # Shell configuration with custom scripts\n│   ├── git/              # Git configuration\n│   ├── nvim/             # Neovim with LazyVim\n│   ├── tmux/             # Terminal multiplexer\n│   ├── ripgrep/          # Text search configuration\n│   ├── gcloud/           # Google Cloud SDK\n│   ├── kube-ps1/         # Kubernetes shell prompt\n│   ├── dev/              # Development tools\n│   ├── rejson/           # JSON/eJSON tools\n│   └── keybase/          # Keybase and GPG\n├── systems/              # Platform-specific configurations\n│   ├── darwin.nix        # macOS configuration\n│   └── linux.nix         # Linux configuration\n└── scripts/              # Utility scripts\n    └── uninstall         # Complete removal script\n```\n\n## Key Features\n\n### Shell Environment\n\n- Modern shell tools (eza, bat, fzf, fd)\n- Custom scripts auto-installed as executables\n- Kubernetes completion and prompt\n- Directory-based environment with direnv\n\n### Development Setup\n\n- Language servers and formatters managed via Nix\n- No global tool installation required\n- Consistent environment across platforms\n- Pre-configured development tools\n\n### Secret Management\n\n- eJSON integration for encrypted secrets\n- Automatic decryption and environment setup\n- Keybase integration for key management\n\n### Cross-Platform Support\n\n- Automatic platform detection\n- Platform-specific optimizations\n- Consistent experience across macOS and Linux\n\n## Customization\n\nFork this repository and:\n\n1. Update personal information in `systems/` files\n2. Modify module configurations as needed\n3. Add/remove modules from `enabledModules` lists\n4. Customize shell scripts in `modules/shell/scripts/`\n\nThe modular design makes it easy to adapt to your specific needs while maintaining the benefits of Nix's reproducible configuration management.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpseudomuto%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpseudomuto%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpseudomuto%2Fdotfiles/lists"}