Every line of config is simple—just what’s needed, nothing more. These dotfiles are minimal and essential, avoiding heavy plugins or bloated frameworks across all tools. It’s not about adding more, it’s about needing less.
This config repo is designed for Arch Linux, macOS and Windows.
| 🧠 Toolset | 🔧 Config / Plugins / Tools |
|---|---|
| 📝 Neovim | - Plugin Manager: Lazy.nvim - Colorscheme: Base16 - LSP: Built-in LSP - LSP Manager: Mason - Formatter: conform.nvim - Statusline: Lualine - Fuzzy Finder: Telescope - Syntax Highlighting: Treesitter |
| 🐚 ZSH | - Prompt: Pure - fzf |
| 🖥 Terminal | - bat – better cat - eza – better ls - tldr – simplified man pages - zoxide – smarter cd |
Example command:
fzf --preview 'bat --style=numbers --color=always {}'Important
Compatible with Arch Linux, macOS and Windows
This command will install software and apply all the configurations in ~/.local/share/chezmoi.
Linux / macOS
sh -c "$(curl -fsLS get.chezmoi.io)" -- -b "$HOME/.local/bin" init --apply BorjaIPWindows (PowerShell)
iex "&{$(irm get.chezmoi.io/ps1)} init --apply BorjaIP"All configuration follows the XDG Base Directory Specification, keeping $HOME clean.
| Directory | Path | Purpose |
|---|---|---|
XDG_CONFIG_HOME |
~/.config |
Configuration files |
XDG_DATA_HOME |
~/.local/share |
Persistent data |
XDG_STATE_HOME |
~/.local/state |
Shell history, logs |
XDG_CACHE_HOME |
~/.cache |
Non-essential cached data |
~/.local/bin is in PATH and is the standard location for user-installed binaries.
Environment variables are declared in .zshenv and organised by purpose:
| Zsh file | When it runs | What goes here |
|---|---|---|
.zshenv |
Always (every shell) | XDG vars, tool env vars (KUBECONFIG, GOPATH…) |
.zprofile |
Login shells only | PATH, Homebrew setup |
.zshrc |
Interactive shells | Aliases, plugins, prompt, HISTFILE |
On Apple Silicon, Homebrew installs everything under /opt/homebrew. Key paths:
| Path | Content |
|---|---|
/opt/homebrew/bin |
CLI binaries (git, nvim, fzf…) |
/opt/homebrew/lib |
Libraries |
/opt/homebrew/Cellar |
Versioned formula installations |
/opt/homebrew/Caskroom |
GUI apps installed via brew install --cask |
/opt/homebrew/share |
Shared data (zsh plugins, man pages…) |
~/.local/bin |
User binaries — custom scripts and non-Homebrew tools |
On Intel Macs, the prefix is
/usr/localinstead of/opt/homebrew.
Packages are managed via a Brewfile at ~/.config/brew/Brewfile. To update it after installing something new:
bupdate # alias for: brew bundle dump --no-vscode -fI use chezmoi for managing my dotfiles. Follow these instructions for add or changing any configuration.
I followed the instructions from XDG_Base_Directory for clean my dotfiles and manage config directories.
# edit source file
chezmoi edit .config/zsh/.zshrc
# apply changes to your original file
chezmoi -v apply
# see diferences between tracker and local
chezmoi diff
# update new files
chezmoi git -- add .
chezmoi git -- commit -m "Update zsh config"
chezmoi git -- push- Base16 theme Chris Kempson
- Script color Wincent
- Tmux and other configuration Nicknisi


