vitorpy's Dotfiles#
Managed with chezmoi.
Quick Start#
Fresh Arch Linux Installation#
Step 1: Install Arch Linux
Use the provided archinstall configuration for automated installation:
# On Arch ISO
curl -O https://raw.githubusercontent.com/vitorpy/dotfiles/main/.config/arch/archinstall-config.json
archinstall --config archinstall-config.json
See ARCHINSTALL-GUIDE.md for detailed installation instructions.
Step 2: Bootstrap Your System
After Arch installation and first boot, run the bootstrap script to set up everything:
curl -sSL https://vitorpy.com/bootstrap.sh | bash
This single command will:
- Install chezmoi, bitwarden-cli, git, and jq
- Configure Bitwarden for EU server
- Clone dotfiles via HTTPS (no SSH key needed)
- Restore SSH and GPG keys from Bitwarden
- Switch to SSH remote
- Install all packages from the package list
- Enable ly display manager
After the bootstrap completes:
cargo install hyprcorners # Install hyprcorners plugin
sudo reboot # Reboot to start Hyprland
Manual Installation#
On a new machine with chezmoi already installed:
chezmoi init --apply https://tangled.sh/vitorpy.com/dotfiles
Or install chezmoi and apply in one command:
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply https://tangled.sh/vitorpy.com/dotfiles
Managed Configurations#
Core System#
- Hyprland (
~/.config/hypr/) - Wayland compositor configuration - Waybar (
~/.config/waybar/) - Status bar configuration - Hyprpaper - Wallpaper daemon
- Hypridle - Idle management
- Hyprlock - Screen locker
Shell & Terminal#
- Fish shell (
~/.config/fish/) - Shell configuration with custom functions - Starship (
~/.config/starship.toml) - Cross-shell prompt - Ghostty (
~/.config/ghostty/config) - Terminal emulator
Development#
- Neovim (
~/.config/nvim/) - Editor configuration with plugins- lazy.nvim plugin manager
- nvim-tree, toggleterm, zenburn theme
- codecompanion.nvim for AI assistance (ACP support)
- Custom
:IDEcommand for window layout
- Git (
~/.gitconfig) - Git configuration
Theming#
- GTK/Qt - Dark theme configuration (Yaru)
- Fonts (
~/.local/share/fonts/) - CaskaydiaMono Nerd Fonts collection
Arch Linux Package Management#
- Package List (
~/.config/arch/packages.txt) - Declarative package list - Install Script (
~/.config/arch/install-packages.sh) - Automated installer
Arch Linux Scripts#
Package Management#
Install all packages from the package list:
~/.config/arch/install-packages.sh
The package list supports three sources:
pacman- Official Arch repositoriesaur- Arch User Repository (via yay)flatpak- Flatpak applications
Bitwarden Backup & Restore#
Backup SSH and GPG keys to Bitwarden:
export BW_SESSION=$(bw unlock --raw)
~/.config/arch/backup-keys-to-bitwarden.sh
Backup secrets directory to Bitwarden:
export BW_SESSION=$(bw unlock --raw)
~/.config/arch/backup-secrets-to-bitwarden.sh
Restore SSH and GPG keys from Bitwarden:
export BW_SESSION=$(bw unlock --raw)
~/.config/arch/restore-keys-from-bitwarden.sh
Test restore without affecting your system:
~/.config/arch/restore-keys-from-bitwarden.sh --dry-run
Daily Usage#
Edit configurations#
chezmoi edit ~/.config/hypr/hyprland.conf
chezmoi edit ~/.config/fish/config.fish
chezmoi edit ~/.config/nvim/init.lua
See what would change#
chezmoi diff
Apply changes from the repo#
chezmoi apply
Update from remote and apply#
chezmoi update
Add new files to management#
chezmoi add ~/.config/newconfig
Push changes to Tangled#
chezmoi cd
git add .
git commit -m "Update configs"
git push
Or use the shortcut:
chezmoi re-add && cd $(chezmoi source-path) && git add . && git commit -m "Your message" && git push
Configuration#
Chezmoi is configured to use nvim as the default editor. Configuration file is at ~/.config/chezmoi/chezmoi.toml.
Security Notes#
- SSH and GPG keys are stored in Bitwarden, not in the dotfiles repo
- API keys are loaded from Bitwarden via
~/.config/fish/secrets.fish - Never commit secrets directly to the repository
- The dotfiles repository is public - keep it clean!
Structure#
private_dot_config/- Maps to~/.config/private_dot_local/- Maps to~/.local/- Files prefixed with
private_are created with restricted permissions (readable only by owner) - Files prefixed with
executable_are created with execute permissions
Migration Workflow#
From Fedora to Arch#
-
Backup (on Fedora):
export BW_SESSION=$(bw unlock --raw) ~/.config/arch/backup-keys-to-bitwarden.sh ~/.config/arch/backup-secrets-to-bitwarden.sh -
Install Arch Linux (fresh install)
-
Bootstrap (on fresh Arch):
curl -sSL https://vitorpy.com/bootstrap.sh | bash cargo install hyprcorners sudo reboot -
Done! All configs, packages, and keys restored.
Troubleshooting#
If configurations don't apply correctly:
- Check the diff:
chezmoi diff - Force re-apply:
chezmoi apply --force - Verify managed files:
chezmoi managed - Check chezmoi status:
chezmoi status
For package installation issues:
# Check package source
yay -Ss package-name # Search AUR
pacman -Ss package-name # Search official repos
License#
Personal configuration files - use at your own discretion.