An open API service indexing awesome lists of open source software.

https://github.com/tuanle03/dotfiles

A well-organized collection of my personal dotfiles for Neovim, Vim, Tmux, and Zsh โ€” designed to provide a fast, minimal, and consistent development environment across machines.
https://github.com/tuanle03/dotfiles

neovim tmux vim vim-plugin zsh

Last synced: 5 months ago
JSON representation

A well-organized collection of my personal dotfiles for Neovim, Vim, Tmux, and Zsh โ€” designed to provide a fast, minimal, and consistent development environment across machines.

Awesome Lists containing this project

README

          

# ๐Ÿ› ๏ธ Dotfiles by Tuan Le

Welcome to my personal `dotfiles` repository โ€” a carefully curated setup to boost developer productivity with an opinionated configuration of **Neovim**, **Vim**, **Tmux**, and **Zsh**.

This setup is optimized for daily use in software engineering, with support for modern plugins, key mappings, aesthetics, and system compatibility.

---

## โœจ Features

- ๐Ÿง  **Neovim** configured with modular `init.lua`, plugin bundles, and local overrides.
- ๐Ÿง™โ€โ™‚๏ธ **Vim** setup for legacy workflows, mirroring Neovim's key plugins and shortcuts.
- ๐Ÿ“ฆ **Tmux** custom configuration for split panes, session handling, and vim-like navigation.
- ๐Ÿš **Zsh** with sensible defaults, aliases, and improved usability.
- โšก Lightning-fast and minimal.

---

## ๐Ÿ“ Directory Structure

```bash
dotfiles/
โ”œโ”€โ”€ config/
โ”‚ โ””โ”€โ”€ tmuxinator/ # Tmuxinator project configuration
โ”‚ โ”œโ”€โ”€ lixicrm.yml
โ”‚ โ””โ”€โ”€ lixiadmin.yml
โ”œโ”€โ”€ nvim/ # Neovim config (Lua + Vimscript)
โ”‚ โ”œโ”€โ”€ init.lua
โ”‚ โ”œโ”€โ”€ local.vim
โ”‚ โ””โ”€โ”€ plugin/
โ”‚ โ””โ”€โ”€ bundles.lua
โ”œโ”€โ”€ vim/ # Vim config (legacy support)
โ”‚ โ”œโ”€โ”€ .vimrc
โ”‚ โ”œโ”€โ”€ .vimrc.bundles
โ”‚ โ””โ”€โ”€ .vimrc.local
โ”œโ”€โ”€ tmux/ # Tmux config and styles
โ”‚ โ”œโ”€โ”€ .tmux.conf
โ”‚ โ”œโ”€โ”€ .tmux.conf.local
โ”‚ โ”œโ”€โ”€ .tmux.conf.vim
โ”‚ โ””โ”€โ”€ .tmux.conf.backup
โ”œโ”€โ”€ .zshrc # Zsh shell config
โ””โ”€โ”€ README.md # You are here
```

## ๐Ÿš€ Installation

1. **Clone the repository**:
You can clone the repository using either SSH or HTTPS:
- **SSH** (requires SSH keys set up):
```bash
git clone git@github.com:tuanle03/dotfiles.git ~/.dotfiles
```
- **HTTPS** (no SSH keys required):
```bash
git clone https://github.com/tuanle03/dotfiles.git ~/.dotfiles
```
After cloning, navigate to the repository:
```bash
cd ~/.dotfiles
```
2. Backup your existing configuration files (optional but recommended):
```bash
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.vimrc ~/.vimrc.bak
mv ~/.tmux.conf ~/.tmux.conf.bak
mv ~/.zshrc ~/.zshrc.bak
```
3. **Create symlinks**:
You can create symbolic links to the configuration files in your home directory. This allows you to keep your dotfiles organized in one place while still using them in your shell.
```bash
mkdir -p ~/.config/nvim
ln -sf ~/dotfiles/nvim ~/.config/nvim

ln -s ~/dotfiles/vim/.vimrc ~/.vimrc
ln -s ~/dotfiles/vim/.vimrc.bundles ~/.vimrc.bundles
ln -s ~/dotfiles/vim/.vimrc.local ~/.vimrc.local

ln -s ~/dotfiles/tmux/.tmux.conf ~/.tmux.conf
ln -s ~/dotfiles/tmux/.tmux.conf.local ~/.tmux.conf.local
ln -s ~/dotfiles/tmux/.tmux.conf.vim ~/.tmux.conf.vim
ln -s ~/dotfiles/tmux/.tmux.conf.backup ~/.tmux.conf.backup

ln -s ~/dotfiles/.zshrc ~/.zshrc
```
4. **Install Neovim plugins**:
Open Neovim and run:
```vim
:PackerSync
```
This will install all the plugins defined in your `init.lua`.
5. **Restart your shell**:
Close and reopen your terminal or run:
```bash
exec zsh
```
6. **Reload Tmux configuration**:
Start a new Tmux session or reload your Tmux configuration:
```bash
tmux source-file ~/.tmux.conf
```

## โš™๏ธ Requirements
- **Neovim**: Version 0.8 or higher
- **Tmux**: Version 3.0 or higher
- **Zsh**: Version 5.0 or higher
- **Git**: For cloning the repository
- Plugins managed by **Packer.nvim** for Neovim
- Font: [Nerd Fonts](https://www.nerdfonts.com/) for icons and glyphs

## ๐Ÿ› ๏ธ Customization
You can customize the configuration by editing the respective files in the `nvim`, `vim`, `tmux`, and `.zshrc` directories. For example:
- **Neovim**: Modify `nvim/init.lua` for core settings, `nvim/plugin/bundles.lua` for plugins, and `nvim/local.vim` for local overrides.
- **Vim**: Edit `.vimrc`, `.vimrc.bundles`, and `.vimrc.local` for Vim-specific settings.
- **Tmux**: Adjust `.tmux.conf`, `.tmux.conf.local`, and `.tmux.conf.vim` for Tmux settings.
- **Zsh**: Modify `.zshrc` for shell settings, aliases, and functions.

## ๐Ÿงช Optional: Automatic Setup Script
If you prefer an automated setup, you can use the provided `setup.sh` script. This script will create symlinks for all configuration files and install Neovim plugins.
```bash
chmod +x install.sh
./install.sh
```

## ๐Ÿ–ผ๏ธ Screenshots
![Screenshot 2025-06-23 at 14 44 42](https://github.com/user-attachments/assets/10192705-99e1-41f0-a94f-db22a882cfe1)

## ๐Ÿงผ Uninstall
To uninstall the dotfiles, you can remove the symlinks created in your home directory:
```bash
rm ~/.config/nvim
rm ~/.vimrc
rm ~/.vimrc.bundles
rm ~/.vimrc.local
rm ~/.tmux.conf
rm ~/.tmux.conf.local
rm ~/.tmux.conf.vim
rm ~/.tmux.conf.backup
rm ~/.zshrc
```

## ๐Ÿง  Philosophy
This dotfiles setup is designed with the following principles in mind:
- **Simplicity**: Keep configurations minimal and easy to understand.
- **Modularity**: Use Lua for Neovim to allow for easy plugin management and configuration.
- **Consistency**: Ensure a consistent experience across Neovim, Vim, Tmux, and Zsh.
- **Performance**: Optimize for speed and responsiveness, avoiding unnecessary bloat.

## ๐Ÿ“œ License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## ๐Ÿค Contributing
Contributions are welcome! If you have suggestions or improvements, feel free to open an issue or submit a pull request.

## ๐Ÿ“ซ Contact
For any questions or feedback, you can reach me at [Tuan Le](https://fb.com/tuanle03) or [Email](mailto:letuanvl03@gmail.com).

## ๐Ÿ™ Acknowledgements
Thanks to the open-source community for providing the tools and plugins that make this setup possible. Special thanks to the maintainers of Neovim, Tmux, and Zsh for their incredible work.