difi/README.md
Javier Tia ce80530858
docs: Add AUR installation instructions for Arch Linux
The README currently lacks installation instructions for Arch Linux
users, who represent a significant portion of the Linux community.
This forces Arch users to either build manually from source or use
the generic Go install method, both of which bypass the benefits of
package management (dependency tracking, easy updates, and system
integration).

Add AUR installation instructions offering both pre-built binary and
source-based options. This aligns with the existing package manager
approach used for macOS (Homebrew) and provides Arch users with a
native installation path that integrates with their system's package
management workflow.

Signed-off-by: Javier Tia <floss@jetm.me>
2026-02-04 15:37:40 -06:00

156 lines
4.4 KiB
Markdown

<a id="readme-top"></a>
<h1 align="center"><code>difi</code></h1>
<p align="center"><em>Review and refine Git diffs before you push</em></p>
<p align="center">
<img src="https://img.shields.io/badge/Go-00ADD8?style=for-the-badge&logo=go&logoColor=white" />
<img src="https://img.shields.io/badge/Bubble_Tea-E2386F?style=for-the-badge&logo=tea&logoColor=white" />
<img src="https://img.shields.io/github/license/oug-t/difi?style=for-the-badge&color=2e3440" />
</p>
<p align="center">
<img src= "https://github.com/user-attachments/assets/2cecb580-fe35-47ae-886b-8315226d122b" alt="difi_demo" />
</p>
## Why difi?
**git diff** shows changes. **difi** helps you *review* them.
- ⚡️ **Instant** — Built in Go. Launches immediately with no daemon or indexing.
- 🎨 **Structured** — A clean file tree and focused diffs for fast mental parsing.
- 🧠 **Editor-Aware** — Jump straight to the exact line in `nvim`/`vim` to fix issues.
- ⌨️ **Keyboard-First** — Navigate everything with `h j k l`. No mouse required.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Installation
#### Homebrew (macOS & Linux)
```bash
brew tap oug-t/difi
brew install difi
```
#### Go Install
```bash
go install github.com/oug-t/difi/cmd/difi@latest
```
#### AUR (Arch Linux)
**Binary (pre-built):**
```bash
pikaur -S difi-bin
```
**Build from source:**
```bash
pikaur -S difi
```
#### Manual (Linux / Windows)
- Download the binary from Releases and add it to your `$PATH`.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Workflow
- Run difi in any Git repository.
- By default, it compares your current branch against main.
```bash
cd my-project
difi
```
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Controls
| Key | Action |
| ------------- | -------------------------------------------- |
| `Tab` | Toggle focus between File Tree and Diff View |
| `j / k` | Move cursor down / up |
| `h / l` | Focus Left (Tree) / Focus Right (Diff) |
| `e` / `Enter` | Edit file (opens editor at selected line) |
| `?` | Toggle help drawer |
| `q` | Quit |
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Neovim Integration
Get the ultimate review experience with **[difi.nvim](https://github.com/oug-t/difi.nvim)**.
- **Auto-Open:** Instantly jumps to the file and line when you press `e` in the CLI.
- **Visual Diff:** Renders diffs inline with familiar green/red highlights—just like reviewing a PR on GitHub.
- **Interactive Review:** Restore a "deleted" line by simply removing the `-` marker. Discard an added line by deleting it entirely.
- **Context Aware:** Automatically syncs with your `difi` session target.
<p align="left">
<a href="https://github.com/oug-t/difi.nvim">
<img src="https://img.shields.io/badge/Get_difi.nvim-57A143?style=for-the-badge&logo=neovim&logoColor=white" alt="Get difi.nvim" />
</a>
</p>
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Git Integration
To use `difi` as a native git command (e.g., `git difi`), add it as an alias in your global git config:
```bash
git config --global alias.difi '!difi'
```
Now you can run it directly from git:
```bash
git difi
```
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Contributing
```bash
git clone https://github.com/oug-t/difi
cd difi
go run cmd/difi/main.go
```
Contributions are especially welcome in:
- diff.nvim rendering edge cases
- UI polish and accessibility
- Windows support
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Star History
<a href="https://star-history.com/#oug-t/difi&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=oug-t/difi&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=oug-t/difi&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=oug-t/difi&type=Date" />
</picture>
</a>
</div>
<p align="right">(<a href="#readme-top">back to top</a>)</p>
---
<p align="center"> Made with ❤️ by <a href="https://github.com/oug-t">oug-t</a> </p>