Files
dotfiles/README.md
2025-10-02 14:41:00 +02:00

2.9 KiB

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.