docs: reorganize documentation

- Simplify README
- Add docs/features.md (formats, roadmap)
- Add docs/usage.md (shortcuts)
- Keep docs/development.md (build instructions)
This commit is contained in:
wfx 2026-01-15 06:20:00 +01:00
parent e71a97a2cb
commit 4afc049f60
4 changed files with 80 additions and 74 deletions

View file

@ -4,55 +4,6 @@ An image viewer application for the COSMIC™ desktop
![Screenshot](docs/images/screenshot.png)
## Keyboard Shortcuts
### Navigation
| Key | Action | Status |
|:------|:------------------|:--------|
| `←` | Previous document | working |
| `→` | Next document | working |
### Transformations
| Key | Action | Status |
|:------------|:-----------------------------|:--------|
| `H` | Flip horizontal | working |
| `V` | Flip vertical | working |
| `R` | Rotate clockwise (90°) | working |
| `Shift + R` | Rotate counter-clockwise (90°) | working |
### Zoom
| Key | Action | Status |
|:----------|:---------------------------|:--------|
| `+` / `=` | Zoom in | partial |
| `-` | Zoom out | partial |
| `1` | Reset zoom (100% / actual) | working |
| `F` | Fit image to window | working |
> **Note:** Zoom is recognized but visual feedback is limited without scrollable viewport.
### Pan
| Key | Action | Status |
|:-----------|:-----------------------|:--------------------|
| `Ctrl + ←` | Pan left | not yet implemented |
| `Ctrl + →` | Pan right | not yet implemented |
| `Ctrl + ↑` | Pan up | not yet implemented |
| `Ctrl + ↓` | Pan down | not yet implemented |
| `0` | Reset pan (center) | not yet implemented |
> **Note:** Panning requires a scrollable viewport or custom canvas widget.
### Modes
| Key | Action | Status |
|:----|:------------------|:--------------------|
| `C` | Toggle crop mode | not yet implemented |
| `S` | Toggle scale mode | not yet implemented |
## Installation
@ -66,31 +17,12 @@ A [justfile](./justfile) is included by default for the [casey/just][just] comma
- `just check` runs clippy on the project to check for linter warnings
- `just check-json` can be used by IDEs that support LSP
## Translators
## Documentation
[Fluent][fluent] is used for localization of the software. Fluent's translation files are found in the [i18n directory](./i18n). New translations may copy the [English (en) localization](./i18n/en) of the project, rename `en` to the desired [ISO 639-1 language code][iso-codes], and then translations can be provided for each [message identifier][fluent-guide]. If no translation is necessary, the message may be omitted.
- [Keyboard Shortcuts](docs/usage.md)
- [Features](docs/features.md)
- [Development Guide](docs/development.md)
## Packaging
## License
If packaging for a Linux distribution, vendor dependencies locally with the `vendor` rule, and build with the vendored sources using the `build-vendored` rule. When installing files, use the `rootdir` and `prefix` variables to change installation paths.
```sh
just vendor
just build-vendored
just rootdir=debian/noctua prefix=/usr install
```
It is recommended to build a source tarball with the vendored dependencies, which can typically be done by running `just vendor` on the host system before it enters the build environment.
## Developers
Developers should install [rustup][rustup] and configure their editor to use [rust-analyzer][rust-analyzer]. To improve compilation times, disable LTO in the release profile, install the [mold][mold] linker, and configure [sccache][sccache] for use with Rust. The [mold][mold] linker will only improve link times if LTO is disabled.
[fluent]: https://projectfluent.org/
[fluent-guide]: https://projectfluent.org/fluent/guide/hello.html
[iso-codes]: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
[just]: https://github.com/casey/just
[rustup]: https://rustup.rs/
[rust-analyzer]: https://rust-analyzer.github.io/
[mold]: https://github.com/rui314/mold
[sccache]: https://github.com/mozilla/sccache
GPL-3.0-or-later

View file

@ -0,0 +1,28 @@
## Translators
[Fluent][fluent] is used for localization of the software. Fluent's translation files are found in the [i18n directory](./i18n). New translations may copy the [English (en) localization](./i18n/en) of the project, rename `en` to the desired [ISO 639-1 language code][iso-codes], and then translations can be provided for each [message identifier][fluent-guide]. If no translation is necessary, the message may be omitted.
## Packaging
If packaging for a Linux distribution, vendor dependencies locally with the `vendor` rule, and build with the vendored sources using the `build-vendored` rule. When installing files, use the `rootdir` and `prefix` variables to change installation paths.
```sh
just vendor
just build-vendored
just rootdir=debian/noctua prefix=/usr install
```
It is recommended to build a source tarball with the vendored dependencies, which can typically be done by running `just vendor` on the host system before it enters the build environment.
## Developers
Developers should install [rustup][rustup] and configure their editor to use [rust-analyzer][rust-analyzer]. To improve compilation times, disable LTO in the release profile, install the [mold][mold] linker, and configure [sccache][sccache] for use with Rust. The [mold][mold] linker will only improve link times if LTO is disabled.
[fluent]: https://projectfluent.org/
[fluent-guide]: https://projectfluent.org/fluent/guide/hello.html
[iso-codes]: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
[just]: https://github.com/casey/just
[rustup]: https://rustup.rs/
[rust-analyzer]: https://rust-analyzer.github.io/
[mold]: https://github.com/rui314/mold
[sccache]: https://github.com/mozilla/sccache

0
docs/images/feature.md Normal file
View file

46
docs/images/usage.md Normal file
View file

@ -0,0 +1,46 @@
# Usage
## Keyboard Shortcuts
### Navigation
| Key | Action | Status |
|:------|:------------------|:--------|
| `←` | Previous document | working |
| `→` | Next document | working |
### Transformations
| Key | Action | Status |
|:------------|:-------------------------------|:--------|
| `H` | Flip horizontal | working |
| `V` | Flip vertical | working |
| `R` | Rotate clockwise (90°) | working |
| `Shift + R` | Rotate counter-clockwise (90°) | working |
### Zoom
| Key | Action | Status |
|:----------|:---------------------------|:--------|
| `+` / `=` | Zoom in | partial |
| `-` | Zoom out | partial |
| `1` | Reset zoom (100% / actual) | working |
| `F` | Fit image to window | working |
### Pan
| Key | Action | Status |
|:-----------|:-------------------|:--------------------|
| `Ctrl + ←` | Pan left | not yet implemented |
| `Ctrl + →` | Pan right | not yet implemented |
| `Ctrl + ↑` | Pan up | not yet implemented |
| `Ctrl + ↓` | Pan down | not yet implemented |
| `0` | Reset pan (center) | not yet implemented |
### Modes
| Key | Action | Status |
|:----|:-----------------------|:--------------------|
| `C` | Toggle crop mode | not yet implemented |
| `S` | Toggle scale mode | not yet implemented |
| `A` | Toggle anotation mode | not yet implemented |