From 530fc7cdc1e9c19b38f85dd30383cbf66564e588 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Mon, 6 Apr 2026 00:53:32 +0300 Subject: [PATCH] docs: revise project README; fix typos Signed-off-by: NotAShelf Change-Id: Iff352e53048e8860aa2ba6d2a44b5c9a6a6a6964 --- README.md | 84 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 69 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index cc389b0..cd825ef 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,86 @@ # Lychee [Image crate]: https://crates.io/crates/image +[Iced]: https://iced.rs -Simple, opinionated and Wayland-native image viewer using the [Image crate] . -Built in response to `imv`'s high memory usage on my system, and does not -implement an IPC as I consider it _YAGNI_[^1] - -Still a work in progress, I would like to reach partial feature parity with -`imv`. +Simple, opinionated image viewer using [Iced] and the [Image crate]. Built to +replace `imv` on my system, particularly in response to its high memory usage +and lack of UI polish. Unlike imv, Lychee does not implement an IPC as I consider +it _YAGNI_[^1] but it improves a more powerful UI and a stronger focus on user +experience. ## Usage +Using lychee is easy. Give it something to display. That's it. + ```bash -lychee path/to/image.png # or another extension. +# View a single image. Wow, much png. +$ lychee path/to/image.png + +# View all images in directory +$ lychee path/to/directory/ + +# View specific images +$ lychee image1.png image2.png ``` -You may use the `--same-size` flag to create a window that is the _same size as -the image that is opening_. Success of this flag depends on your desktop -environment. +This can be an image, multiple images, or a path containing images. + +## Keybindings + +### Navigation + +| Key | Action | +| ----------------- | ----------------- | +| `→` or `l` or `n` | Next image | +| `←` or `h` or `p` | Previous image | +| `g` | Go to first image | +| `G` | Go to last image | + +### Zoom + +| Key | Action | +| ----------------- | ----------------- | +| `↑` or `i` or `+` | Zoom in | +| `↓` or `o` or `-` | Zoom out | +| `0` | Fit to window | +| `1` | Actual size (1:1) | +| `r` | Reset zoom | + +### Slideshow + +| Key | Action | +| ------- | ------------------------------ | +| `Space` | Toggle slideshow | +| `t` | Increase slideshow delay by 1s | +| `T` | Decrease slideshow delay by 1s | + +### Window + +| Key | Action | +| ------------ | ----------------- | +| `f` | Toggle fullscreen | +| `q` or `Esc` | Quit | + +### Mouse + +- **Scroll**: Zoom in/out +- **Click + Drag**: Pan image +- **Window close button**: Quit ## Supported Image Formats -All formats supported by the Image crate will be supported by Lychee. For edge -cases, please open an issue. For the time being, this should include: AVIF, BMP, -DDS, Farbfeld, GIF, HDR, ICO, JPEG, EXR, PNG, PNM, QOI, TGA, TIFF and WebP. +Lychee supports a wide array of formats. Primarily, those supported by the +[Image crate] will be supported verbatim in Lychee. At the time of writing, +includes: AVIF, BMP, DDS, Farbfeld, GIF, HDR, ICO, JPEG, EXR, PNG, PNM, QOI, +TGA, TIFF and WebP. + +More formats may be supported in the future on demand. ## License -Lychee is available under the [Mozilla Public License Version 2.0](./LICENSE) +This project is made available under Mozilla Public License (MPL) version 2.0. +See [LICENSE](LICENSE) for more details on the exact conditions. An online copy +is provided [here](https://www.mozilla.org/en-US/MPL/2.0/). -[^1]. ["You Aren't Gonna Need It"](https://martinfowler.com/bliki/Yagni.html) +[^1]: ["You Aren't Gonna Need It"](https://martinfowler.com/bliki/Yagni.html)