Note
This repository houses cross-platform dotfiles managed with chezmoi 🏠.
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply FSLEF- Customized Environment: Tailored for both personal and professional use, optimized for development and Docker workflows.
- Automated Package Management: Enjoy hassle-free installations and updates.
- Streamlined Application Configuration: Simplifies setup to deliver a consistent experience.
- Universal Terminal Aliases: Ensures a uniform command experience across all platforms and shells.
Click to expand for detailed instructions
The repository includes configuration for multiple shells to ensure a consistent experience across platforms.
- Bash 🐧 :
~/.bashrc - Z shell 🐧 :
~/.zshrcenhanced with Oh-My-Zsh - [WIP] PowerShell 5.1+ 🐧⊞ :
~/.config/powershell/enhanced with Oh-My-Posh, [WIP] Terminal Icons
All packages are installed with Homebrew and [WIP] Chocolatey ⊞
Package list can be fould here : Packages.toml
This repository uses the Bitwarden CLI (bw) to manage secrets in your dotfiles templates. The CLI is automatically installed during initial setup, but you'll need to authenticate.
-
Login to Bitwarden:
bw login your-email@example.com
This will prompt you for your master password and generate a session token.
-
Generate and Export Session Token:
export BW_SESSION="$(bw unlock --raw)"
This command unlocks your vault and exports the session token, which allows ChezMoi templates to access your secrets without additional prompts.
-
Verification:
chezmoi apply --dry-run
This will show you what changes will be made without actually applying them. If your Bitwarden connection is working, you'll see rendered secrets from your vault.
- Automatic Session: The
.zshrctemplate includes logic to automatically setBW_SESSIONif you have an authenticated Bitwarden session. - Manual Setup: If you prefer manual control, you can set
BW_SESSIONin your shell profile or use a secure environment variable storage solution. - Session Security: Treat
BW_SESSIONlike a password. Consider storing it in your system keychain rather than in plain text in shell configs.
Secrets in templates are accessed via ChezMoi's Bitwarden template functions. Examples:
{{ (bitwarden "item" "ITEM_ID").login.username }}- Get login username{{ (bitwardenFields "item" "ITEM_ID").fieldName.value }}- Get custom field{{ (bitwardenAttachment "filename" "ITEM_ID") }}- Get file attachment (e.g., SSH keys)
See .github/agents/ChezMoi.agent.md for detailed template examples.
Inspired by: twpayne / natelandau / renemarc