Personal dotfiles managed with GNU Stow.
- GNU Stow
- Git
- Homebrew (macOS/Linux) or scoop (Windows)
- zsh (recommended as main shell)
- bash
- vim or neovim
- zoxide
- bat
- eza
- ripgrep
- rmpc
- fzf
Ubuntu/Debian:
sudo apt install stowmacOS:
brew install stowArch Linux:
sudo pacman -S stow-
Clone this repository:
git clone https://github.com/yourusername/dotfiles.git ~/dotfiles cd ~/dotfiles
-
For detailed installation instructions, especially for tools not managed by
stowor requiring additional setup, please refer to the INSTALLATION_GUIDE.md. -
Install all packages using
make:make install
Or install specific packages:
make install-zsh make install-tmux make install-vim
- bash - Bash shell configuration
- zsh - Zsh shell configuration with zinit plugin manager
- vim - Vim editor configuration
- tmux - Terminal multiplexer configuration with TPM
- i3 - i3 window manager configuration
- ranger - File manager configuration
- wezterm - WezTerm terminal emulator configuration
- lazygit - Lazygit configuration
- local_bin - Local binary scripts
- w3m - W3m web browser configuration
- nvim - Neovim configuration
- screen - GNU Screen configuration
- zoxide - A smarter
cdcommand - bat - A
catclone with syntax highlighting and Git integration - eza - A modern
lsreplacement - ripgrep - A fast line-oriented search tool
- rmpc - A terminal-based MPD client
# Install all packages
make install
# Install specific package
make install-zsh
# Uninstall all packages
make uninstall
# Uninstall specific package
make uninstall-tmux
# Reinstall all packages
make reinstall
# List available packages
make list
# Show current status
make status
# Check for conflicts
make check
# Clean broken symlinks
make clean# Install all packages
./install.sh install all
# Install specific package
./install.sh install zsh
# Uninstall specific package
./install.sh uninstall tmux
# Show status
./install.sh status
# List packages
./install.sh list# Install package
stow zsh
# Uninstall package
stow -D zsh
# Reinstall package
stow -R zsh
# Simulate (dry run)
stow -n zsh- Modern shell configuration with
zinitplugin manager. - Powerlevel10k theme for a highly customizable and fast prompt.
- Syntax highlighting and autosuggestions.
- Environment-specific configurations (Linux, macOS, WSL, Windows).
- Integrated with
zoxidefor smart directory navigation.
- Terminal multiplexer with TPM (Tmux Plugin Manager).
- Custom key bindings (prefix: Ctrl+g).
- Catppuccin theme for a consistent look.
- Session management and restoration.
- Environment-specific configurations.
- Modern editor configuration.
- Plugin management with
dein.vim(Vim) orlazy.nvim(Neovim). - Language support and syntax highlighting.
- Catppuccin theme for a consistent look, with transparency settings.
- Tiling window manager configuration.
- Custom key bindings and workspace management.
- File manager configuration.
- WezTerm terminal emulator configuration.
- Lazygit configuration.
- W3m web browser configuration.
- A smarter
cdcommand that learns your habits. - Seamlessly integrated with
fzffor interactive directory selection.
- A
catclone with syntax highlighting and Git integration. - Configured to use Catppuccin colors.
- A modern
lsreplacement with more features and better defaults. - Configured to use Catppuccin colors.
- A fast line-oriented search tool.
- Configured to use Catppuccin colors.
- A terminal-based MPD (Music Player Daemon) client.
- Configured to use Catppuccin colors.
This dotfiles repository heavily utilizes the Catppuccin theme across various tools for a consistent and aesthetically pleasing terminal experience.
- Vim/Neovim: Configured with
catppuccin_mochacolorscheme and transparency. - Powerlevel10k: Custom color definitions to match the Catppuccin palette.
- LS_COLORS: Environment variable set to apply Catppuccin colors to
lsoutput. - FZF: Themed with Catppuccin colors for interactive selection.
- Bat: Uses Catppuccin for syntax highlighting.
- Eza: Displays directory listings with Catppuccin colors.
- Ripgrep: Search results are colored with Catppuccin.
- Rmpc: The terminal MPD client uses the Catppuccin palette.
- Tmux: Configured with Catppuccin theme.
Each package follows the standard Stow directory structure:
package/
├── .config/ # XDG config files
│ └── app/
│ └── config
├── .local/ # Local files
│ └── bin/
│ └── script
└── .dotfile # Home directory dotfiles
Some packages (zsh, tmux, bash) include environment-specific configurations:
.zshrc.lin/.bashrc.lin- Linux.zshrc.mac/.bashrc.mac- macOS.zshrc.wsl/.bashrc.wsl- Windows Subsystem for Linux.zshrc.win/.bashrc.win- Windows (Git Bash/MSYS2)
The main configuration file automatically detects the environment and sources the appropriate file.
If you have existing dotfiles, Stow will warn about conflicts. You can:
- Backup existing files manually
- Use the install script which offers automatic backup
- Remove conflicting files and reinstall
Clean up broken symlinks:
make cleanCheck for conflicts before installing:
make checkTest what Stow would do without making changes:
stow -n package_name- Fork the repository
- Create a feature branch
- Make your changes
- Test the configuration
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.