A comprehensive, aesthetic, and automated development environment tailored for C++, Python, and general software engineering. Features a unified Tokyo Night color scheme across Neovim, Tmux, Kitty, and Fish.
Get up and running in minutes:
git clone https://github.com/DPontes/dotfiles.git $HOME/dotfiles
cd $HOME/dotfiles
./tools/setup.shImportant
The setup.sh script will symlink configurations, install essential CLI tools (fzf, bat, ripgrep, lazygit), and configure your shell environment. It is designed for Ubuntu/Debian-based systems but includes macOS support via tools/setup-macos.sh.
- Unified Aesthetics: Consistent Tokyo Night theme across all tools.
- Powerhouse Editor: Pre-configured Neovim with LSP, Treesitter, Debugging (DAP), and Copilot integration.
- Robust Multiplexer: Tmux with a custom status bar showing weather, battery, and system connectivity.
- Intelligent Shell: Dual-shell support (Bash/Fish) with Git integration, Vi-mode, and smart aliases.
- Automated Tooling: Custom scripts for Bluetooth management, system updates, and DAP-based debugging.
dotfiles/
├── nvim/ # 🛠️ Neovim (IDE-like experience with lazy.nvim)
├── tmux/ # 🪟 Tmux (.tmux.conf with status bar enhancements)
├── fish/ # 🐟 Fish Shell (modern shell experience)
├── kitty/ # 🐈 Kitty Terminal (GPU-accelerated terminal)
├── lazygit/ # 🌿 Lazygit (TUI for Git with Gerrit support)
├── tools/ # 🔧 Utility Scripts (Automation & system tools)
└── extra-bash # 🐚 Shell initialization & environment setup
Managed by lazy.nvim. Key plugins include:
- LSP:
mason.nvim&nvim-lspconfigfor C++, Python, Lua, and more. - DAP: Debugging support with
codelldband a custom CLIdap-debug.sh. - AI: GitHub Copilot and CopilotChat integration.
- UI:
lualine.nvim,neo-tree, andtelescope.nvim.
- Bash: Enhanced with
extra-bash, featuring a Git-aware prompt and Vi-mode. - Fish: Fully configured with aliases, Vi-mode, and custom functions in
fish/. - Aliases: Common shortcuts for Git, navigation, and system maintenance in
.bash_aliases.
- Prefix:
Ctrl-s(ergonomic replacement forCtrl-b). - Status Bar: Real-time updates for weather (Open-Meteo), VPN status, and Bluetooth.
- Navigation: Vi-style pane switching (
h,j,k,l).
To override default settings without polluting the main repository:
- Weather City: Set
export TMUX_CITY="YourCity"in your.bashrcor.zshrc. - Local Settings: The
setup.shscript sources$HOME/.bash_localif it exists. Use this for machine-specific environment variables.
| Script | Purpose |
|---|---|
bt-connect.sh |
CLI-based Bluetooth device management with connection spinner. |
weather.sh |
Fetches weather data with a 5-minute cache to respect API limits. |
dap-debug.sh |
CLI wrapper for GDB/DAP, enabling agent-based C++ debugging. |
update-*.sh |
Automated update scripts for Neovim, Lazygit, Kitty, and Tmux. |
Contributions are welcome! Please feel free to submit a Pull Request or open an issue for any bugs or feature requests.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.