My personal .dotfiles
Every developer should have this - a personal .dotfiles repository. A collection of configuration files and scripts that automates setting up a development environment on a new machine.
My dotfiles support both macOS and Linux (Debian/Ubuntu, Fedora, Arch) with automated installation scripts. I used to have a private one in the past but it was a mess. I decided to start from scratch and build a new one with proper organization and documentation.
What’s Inside
Shell & Terminal
- ZSH: Shell configuration with Oh My ZSH and Starship prompt
- Kitty: GPU-based terminal emulator (macOS)
- Starship: Cross-shell prompt configuration with custom theming
- Yazi: Modern terminal file manager
- lazygit: Terminal UI for git (integrated with Helix via Ctrl-G)
Development Tools
- Helix: Modern text editor with LSP support for TypeScript, Rust, Swift, Python, Astro, and more
- NVM: Node.js version management with auto-switching
- git-delta: Syntax-highlighted, side-by-side diffs
- OpenCode: Open source AI coding agent with Catppuccin theme
Modern CLI Replacements
- eza → replaces
ls(with git status & icons) - bat → replaces
cat(with syntax highlighting) - fd → replaces
find(faster) - ripgrep → replaces
grep(faster) - zoxide → replaces
cd(with frecency) - fzf → Fuzzy finder for everything
Development Utilities
- jq: JSON processor
- hyperfine: Benchmarking tool
- tokei: Code statistics
- watchexec: File watcher for running commands
- xcbeautify: Xcode build output formatter (macOS)
Language Support
Helix is configured with LSP support for:
- TypeScript/JavaScript: typescript-language-server, eslint, tailwindcss, prettier
- Rust: rust-analyzer, clippy
- Swift: sourcekit-lsp, swiftformat
- Python: pylsp, ruff, jedi, pyright
- Astro: astro-ls
- HTML/CSS: vscode-langservers-extracted
- TOML: taplo
- YAML: yaml-language-server
- Bash: bash-language-server
- Markdown: marksman
Installation
Clone the repository and run the automated installer:
git clone https://github.com/jeroenvanwissen/.dotfiles.git
cd .dotfiles
# macOS
./install_macos.sh
# Linux (Debian/Ubuntu, Fedora, Arch)
./install_linux.sh
All tools can be kept up to date with a single command:
update-tools