Dotfiles
My personal collection of configuration files (dotfiles) for a consistent and productive development environment on Debian-based Linux systems.
This setup is managed using stow for symlinking and includes configurations for Zsh, Tmux, Neovim, and more.
Prerequisites
Before you begin, ensure you have the following installed:
git: For cloning the repository.curl: Used by the installation script to fetch dependencies.- A Debian-based Linux distribution (e.g., Ubuntu, Debian) is assumed for the installation script (
apt).
Installation
The installation is automated via a single script.
-
Clone the repository:
git clone --recursive https://git.simonis.lol/csimonis/dotfiles.git ~/.dotfilesNote: Using
--recursiveis important as it will clone all the necessary git submodules for plugins (like for zsh and tmux). -
Run the installation script:
cd ~/.dotfiles ./scripts/install
The install script will:
- Update system packages.
- Install essential command-line tools like
zsh,stow,tmux,eza,bat, andbtop. - Install Oh My Zsh.
- Initialize the git submodules.
- Create a local
.zshenvfile for environment variables. - Set up the git configuration.
- Use
stowto create symlinks for all the configurations in your home directory.
What's Included?
This repository configures the following tools:
- Shell: Zsh, configured via
.zshrc, with Oh My Zsh.- Prompt: Powerlevel10k theme.
- Plugins:
zsh-autosuggestions,zsh-syntax-highlighting.
- Terminal Multiplexer: Tmux, with plugins managed by TPM.
- Editor: Neovim with a LazyVim based setup. Plugins are managed via
lazy.nvim. - Git: Global git configuration and ignores.
- Other Tools: Configuration for
atuin,btop,neofetch, and more.
Structure
stow: The configurations are structured to be symlinked by GNU Stow. Thestow .command in thesetupscript handles the symlinking of all packages in the root of this repository.- Submodules: Git submodules are used to manage third-party plugins for tools like Zsh and Tmux to keep them self-contained and version-controlled.
scripts/: Contains scripts for installation, setup, and post-merge git hooks.
Post-Installation
- Tmux Plugins: Start
tmuxand pressprefix + I(that's a capital I) to fetch the plugins defined in.tmux.conf. - Neovim Plugins: The first time you open
nvim, Lazy.nvim will automatically install all the configured plugins.
License
This project is licensed under the MIT License.
Description
Languages
Lua
77%
Shell
23%