{"id":19138143,"url":"https://github.com/locus313/dotfiles","last_synced_at":"2025-11-13T07:02:47.096Z","repository":{"id":249210141,"uuid":"830764778","full_name":"locus313/dotfiles","owner":"locus313","description":"My Dotfiles managed with Chezmoi","archived":false,"fork":false,"pushed_at":"2025-10-15T20:01:56.000Z","size":200,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-16T20:51:30.124Z","etag":null,"topics":["chezmoi","dotfiles","dotfiles-linux","dotfiles-macos","dotfiles-windows","linux-dotfiles","macos-dotfiles","windows-dotfiles"],"latest_commit_sha":null,"homepage":"","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/locus313.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},"funding":{"github":"locus313"}},"created_at":"2024-07-19T00:27:56.000Z","updated_at":"2025-10-15T20:02:01.000Z","dependencies_parsed_at":"2024-11-09T06:41:57.718Z","dependency_job_id":"c6477dad-5a1a-4325-8c71-8633353f43ee","html_url":"https://github.com/locus313/dotfiles","commit_stats":null,"previous_names":["locus313/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/locus313/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/locus313%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/locus313%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/locus313%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/locus313%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/locus313","download_url":"https://codeload.github.com/locus313/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/locus313%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284170493,"owners_count":26959115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-13T02:00:06.582Z","response_time":61,"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":["chezmoi","dotfiles","dotfiles-linux","dotfiles-macos","dotfiles-windows","linux-dotfiles","macos-dotfiles","windows-dotfiles"],"created_at":"2024-11-09T06:41:53.421Z","updated_at":"2025-11-13T07:02:47.090Z","avatar_url":"https://github.com/locus313.png","language":"Shell","readme":"# Cross-Platform Dotfiles Management\n\n[![GitHub stars](https://img.shields.io/github/stars/locus313/dotfiles?style=flat-square)](https://github.com/locus313/dotfiles/stargazers)\n[![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](LICENSE)\n[![Chezmoi](https://img.shields.io/badge/managed%20with-chezmoi-000000?style=flat-square\u0026logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij4KICA8cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTEyIDJMMTMuMDkgOC4yNkwyMCA5TDEzLjA5IDE1Ljc0TDEyIDIyTDEwLjkxIDE1Ljc0TDQgOUwxMC45MSA4LjI2TDEyIDJ6Ii8+Cjwvc3ZnPgo=)](https://chezmoi.io)\n\n\u003e A sophisticated cross-platform dotfiles management system using chezmoi for seamless configuration deployment across Windows, Linux, and macOS environments.\n\nThis dotfiles repository provides a comprehensive solution for managing your development environment configuration across multiple platforms and contexts. Built with [chezmoi](https://chezmoi.io), it supports templating, multi-mode operation, and password manager integration for enterprise and personal use.\n\n## Features\n\n- **Cross-Platform Support**: Works seamlessly on Windows, Linux (including WSL), and macOS\n- **Multi-Mode Operation**: Three operational modes (personal, enterprise, corporate) with different feature sets\n- **Template-Driven**: Go template system for platform-specific and mode-aware configurations\n- **Password Manager Integration**: Built-in support for Bitwarden and 1Password\n- **Modern Shell Experience**: oh-my-posh theming with PowerShell modules and tab completion\n- **Development Tools**: Pre-configured Git, SSH, and development environment setup\n- **External Tool Management**: Automated installation and updates of essential tools\n\n## Quick Start\n\nChoose your platform and run the appropriate command:\n\n### Linux / macOS\n```bash\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/locus313/dotfiles/main/install.sh)\"\n```\n\n### Windows\n```powershell\niex ((New-Object System.Net.WebClient).DownloadString(\"https://raw.githubusercontent.com/locus313/dotfiles/main/install.ps1\"))\n```\n\n\u003e **Note**: The installation script will automatically install chezmoi, git, and PowerShell (on Windows) if they're not already present.\n\n## Configuration Modes\n\nDuring initial setup, you'll be prompted to select operational modes that control which features are enabled:\n\n### Personal Mode (`pmode`)\n- Bitwarden CLI integration\n- Personal development configurations\n- Full feature set for individual use\n\n### Enterprise Mode (`oagmode`)  \n- Bitwarden CLI with custom CA bundle support\n- Enterprise-specific configurations\n- Corporate proxy and certificate handling\n\n### Corporate Mode (`ptxmode`)\n- 1Password CLI integration\n- Corporate security policies\n- Restricted feature set for managed environments\n\n## Project Structure\n\n### Core Configuration Files\n\n| File | Target | Description |\n|------|--------|-------------|\n| [dot_gitconfig.tmpl](dot_gitconfig.tmpl) | `~/.gitconfig` | Git configuration with mode-aware settings and platform-specific SSH |\n| [dot_bashrc.tmpl](dot_bashrc.tmpl) | `~/.bashrc` | Bash shell configuration with oh-my-posh integration |\n| [dot_zshrc.tmpl](dot_zshrc.tmpl) | `~/.zshrc` | Zsh shell configuration with oh-my-posh theming |\n| [dot_bash_aliases.tmpl](dot_bash_aliases.tmpl) | `~/.bash_aliases` | Bash aliases and shortcuts |\n| [dot_profile.tmpl](dot_profile.tmpl) | `~/.profile` | Shell-agnostic profile configuration |\n| [dot_zprofile.tmpl](dot_zprofile.tmpl) | `~/.zprofile` | Zsh profile configuration |\n| [dot_terraform-version.tmpl](dot_terraform-version.tmpl) | `~/.terraform-version` | Terraform version configuration for tfenv |\n\n### PowerShell Configurations\n\n| File | Target | Description |\n|------|--------|-------------|\n| [Microsoft.PowerShell_profile.ps1.tmpl](Microsoft.PowerShell_profile.ps1.tmpl) | PowerShell profile | Main PowerShell profile with UTF-8 encoding and oh-my-posh |\n| [Documents/PowerShell/Microsoft.PowerShell_profile.ps1.tmpl](Documents/PowerShell/Microsoft.PowerShell_profile.ps1.tmpl) | `~/Documents/PowerShell/` | Alternative PowerShell profile location |\n\n### PowerShell Helper Scripts\n\n| File | Description |\n|------|-------------|\n| [Scripts/Powershell/chezmoi.ps1.tmpl](Scripts/Powershell/chezmoi.ps1.tmpl) | Mode-aware chezmoi wrapper with Bitwarden session handling |\n| [Scripts/Powershell/githelpers.ps1.tmpl](Scripts/Powershell/githelpers.ps1.tmpl) | Git shortcuts and aliases (`gs`, `ga`, `gc`, `gp`) |\n| [Scripts/Powershell/linuxlike.ps1.tmpl](Scripts/Powershell/linuxlike.ps1.tmpl) | Linux-like command aliases for PowerShell |\n| [Scripts/Powershell/psreadline.ps1.tmpl](Scripts/Powershell/psreadline.ps1.tmpl) | PSReadLine configuration for enhanced editing |\n| [Scripts/Powershell/rename.ps1.tmpl](Scripts/Powershell/rename.ps1.tmpl) | File renaming utilities |\n| [Scripts/Powershell/utils.ps1.tmpl](Scripts/Powershell/utils.ps1.tmpl) | General PowerShell utility functions |\n\n### System Configuration\n\n| Directory/File | Description |\n|----------------|-------------|\n| `.chezmoiscripts/` | Platform-specific setup scripts for automated installation |\n| `.chezmoihooks/` | Password manager installation hooks |\n| `private_dot_ssh/` | SSH configuration (private, not tracked in git) |\n| `AppData/Roaming/` | Windows application data configurations |\n| `.chezmoi.toml.tmpl` | Chezmoi configuration with mode prompts |\n| `.chezmoiexternal.toml` | External tool management (oh-my-posh, direnv, aws-vault) |\n\n## Key Features\n\n### Intelligent Platform Detection\nTemplates automatically detect your platform and WSL environment:\n```go\n{{- if eq .chezmoi.os \"windows\" -}}\n  # Windows-specific configuration\n{{- end }}\n{{- if .wsl }}\n  # WSL-specific overrides  \n{{- end }}\n```\n\n### Password Manager Integration\nAutomatic installation and authentication handling based on your selected mode:\n- **Bitwarden**: For personal and enterprise modes\n- **1Password**: For corporate environments\n- Pre-hooks ensure password managers are available before configuration deployment\n\n### Modern Shell Experience\n- **oh-my-posh**: Beautiful, fast prompt with night-owl theme\n- **PowerShell modules**: posh-git, Terminal-Icons, PsReadLine auto-installation\n- **Tab completion**: Azure CLI and other tools\n- **Git helpers**: Convenient shortcuts (`gs`, `ga`, `gc`, `gp`)\n\n### External Tool Management\nAutomated download and updates (weekly refresh) of essential tools:\n- oh-my-posh (prompt theme engine)\n- direnv (environment variable management)\n- aws-vault (AWS credential management)\n- Nerd Fonts (programming fonts with icons)\n\n## Usage\n\n### Daily Workflow\nUse the `cz` wrapper function for mode-aware chezmoi operations:\n```bash\ncz edit ~/.gitconfig    # Edit template files\ncz apply               # Deploy configurations  \ncz diff                # Preview changes\n```\n\n### Adding New Configurations\n1. Add template files with `.tmpl` extension\n2. Use platform and mode conditionals as needed\n3. Test across platforms with `chezmoi diff`\n4. Apply changes with `chezmoi apply`\n\n### Managing Secrets\n- SSH keys and certificates go in `private_dot_ssh/`\n- Use password manager integration for sensitive data\n- Private files are excluded from git automatically\n\n## Platform-Specific Notes\n\n### Windows\n- Automatic PowerShell and Git installation via winget\n- WSL detection and specific configuration handling\n- Windows OpenSSH integration for git operations\n\n### Linux/WSL\n- Package manager detection and tool installation\n- Font installation for terminal theming\n- Development environment setup\n\n### macOS\n- Homebrew integration for package management\n- macOS-specific configurations and optimizations\n\n## Troubleshooting\n\n### Common Issues\n\n**New commands not found after installation**: Restart your shell session or reload your profile.\n\n**Password manager authentication failures**: Ensure your selected mode matches your password manager setup.\n\n**Template rendering errors**: Check that all required data variables are properly set in `.chezmoi.toml`.\n\n### Getting Help\nFor issues specific to this dotfiles setup, check the template files and mode configurations. For chezmoi-specific problems, consult the [official documentation](https://chezmoi.io/docs/).\n\n## Contributing\n\nContributions are welcome! When adding new features:\n- Respect the mode system - add appropriate mode checks\n- Test template changes across multiple platforms\n- Update external tool versions in `.chezmoiexternal.toml` when needed\n- Follow the existing naming conventions for template files\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","funding_links":["https://github.com/sponsors/locus313"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocus313%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flocus313%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocus313%2Fdotfiles/lists"}