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.

  1. Clone the repository:

    git clone --recursive https://git.simonis.lol/csimonis/dotfiles.git ~/.dotfiles
    

    Note: Using --recursive is important as it will clone all the necessary git submodules for plugins (like for zsh and tmux).

  2. 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, and btop.
  • Install Oh My Zsh.
  • Initialize the git submodules.
  • Create a local .zshenv file for environment variables.
  • Set up the git configuration.
  • Use stow to 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. The stow . command in the setup script 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 tmux and press prefix + 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
No description provided
Readme 226 KiB
Languages
Lua 77%
Shell 23%