# Git Commit Prefixer (Zsh Plugin) A lightweight **Zsh plugin** to add **custom prefixes** and optional **icons** to your Git commit messages. Supports multiple prefix styles (`[fix]:` or `Fix:`) and icon themes (`classic`, `minimal`, or none). --- ## โšก Quick Start ```bash git-commit-prefixer feat "add dark mode toggle" # โœจ [feat]: add dark mode toggle ``` --- ## โœจ Features - Quickly add consistent commit prefixes. - Choose between **brackets** style or **labels** style. - Enable or disable icons. - Switch between **icon themes** (`classic` or `minimal`). - Fully configurable via `icons.conf`. --- ## ๐Ÿ“ฆ Installation ### **Oh My Zsh** 1. Clone the plugin into your Oh My Zsh custom plugins folder: ```bash git clone https://github.com/dvigo/git-commit-prefixer.git ~/.oh-my-zsh/custom/plugins/git-commit-prefixer ``` 2. Enable it in your `~/.zshrc`: ```bash plugins=(... git-commit-prefixer) ``` 3. Reload Zsh: ```bash source ~/.zshrc ``` --- ## ๐ŸŽฅ Demo **Static preview** ![Plugin demo static](assets/commit-prefixer.svg) --- ## โš™๏ธ Configuration Edit the `icons.conf` file in the plugin folder or adjust the variables inside it. | Setting | Values | Default | Description | |----------------|--------------------------------|-----------|-------------| | `USE_ICONS` | `true` / `false` | `true` | Enable or disable icons | | `PREFIX_STYLE` | `brackets` / `labels` | `brackets`| Commit prefix format | | `ICON_STYLE` | `classic` / `minimal` / `none` | `classic` | Icon theme | **Example `icons.conf`** ```bash USE_ICONS=true PREFIX_STYLE="brackets" ICON_STYLE="classic" ``` --- ## ๐Ÿ–Š๏ธ Usage Basic syntax: ```bash git-commit-prefixer "your commit message" ``` Available types: ``` feat, fix, build, chore, ci, docs, style, refactor, perf, test ``` ### Examples: ```bash git-commit-prefixer feat "add login form" # โœจ [feat]: add login form git-commit-prefixer fix "corrected typo in README" # ๐Ÿ› [fix]: corrected typo in README ``` --- ## ๐ŸŽจ Styles ### Brackets (default) ``` [fix]: [feat]: [build]: [chore]: [ci]: [docs]: [style]: [refactor]: [perf]: [test]: ``` ### Labels ``` Fix: Feature: Build: Chore: CI: Docs: Style: Refactor: Performance: Test: ``` --- ## ๐Ÿ“Œ Icon Themes ### Classic (default) ``` ๐Ÿ› โœจ ๐Ÿ—๏ธ ๐Ÿงน โš™๏ธ ๐Ÿ“ ๐ŸŽจ โ™ป๏ธ โšก โœ… ``` ### Minimal ``` โœ– โœฆ โ–ฒ โ€ข โš™ โœŽ โ–  โ†ป โž  โœ“ ``` --- ## ๐Ÿ”ง Roadmap - [ ] Add interactive selection for commit type (fzf or select menu). - [ ] Add command to switch styles/themes without editing `icons.conf`. - [ ] Support for custom user-defined commit types. --- ## ๐Ÿ“œ License GNU General Public License v3.0 โ€” See [LICENSE](LICENSE) for details. ---