diff --git a/README.md b/README.md index ecd3af4..1318c1f 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,66 @@ -# My motherfucking dotfiles +# 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 -```bash -# Clone the Repository -git clone https://git.simonis.lol/csimonis/dotfiles.git ~/dotfiles -cd ~/dotfiles +The installation is automated via a single script. -# Installs system dependencies and does some other stuff -./install -# Creates Symlinks and installs zsh themes and plugins -./setup -``` +1. **Clone the repository:** -## Contributing + ```bash + 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).* -### If you want to contribute for whatever fucking reasion go fuck yourself \ No newline at end of file +2. **Run the installation script:** + + ```bash + 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](https://ohmyzsh.com/). +- 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](https://ohmyzsh.com/). + - **Prompt:** [Powerlevel10k](https://github.com/romkatv/powerlevel10k) theme. + - **Plugins:** `zsh-autosuggestions`, `zsh-syntax-highlighting`. +- **Terminal Multiplexer:** [Tmux](https://github.com/tmux/tmux/wiki), with plugins managed by [TPM](https://github.com/tmux-plugins/tpm). +- **Editor:** [Neovim](https://neovim.io/) with a [LazyVim](https://www.lazyvim.org/) 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](https://www.gnu.org/software/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](https://github.com/folke/lazy.nvim) will automatically install all the configured plugins. + +## License + +This project is licensed under the MIT License.