# Inflorescence
A cross-platform native GUI for [Pijul](https://pijul.org) aiming for a pleasant UX, heavily inspired by [Magit](https://magit.vc), built using [iced](https://iced.rs).
The core principles are:
- Quick and easy to navigate and to execute common actions
- Everything can be done with keyboard only (though mouse is also supported)
- Show a menu of possible commands to aid exploration
- Be responsive (use async)
- Logic separated from UI implemention to allow reuse to build e.g. TUI, Emacs or other integrations
Feature highlights:
- Watches over the active files (respecting `.ignore` filter) to always show up-to-date state
- Shows diffs in context (currenly only supported in changed files, recorded changes diffs don't yet have it)
- Can compare local against a remote repository
- Interactive recording change selection
- You can keep editing files with some to-record selection (these are the toggles next to changed files and hunks)
- Allows to toggle individual files and hunks
- Note that the state of toggles is currently not persisted (selects all on app restart)
- Project finder with support for Git repo import
- Automatically searches sub directories for Pijul and Git repositories
- Previously managed projects are persisted (ordered by last closed timestamp)
- Can render images tracked in Pijul (currently only able to show the latest version)
- You can inspect logs and diffs of other channels without switching to them
This project is developed and tested on Linux, but it *should* work elsewhere too. Issue reports are welcome!
## Config
Known projects are stored in `~/.config/inflorescence/projects.toml`.
Key bindings are not yet configurable (though you can change them in the source in `inflorescence_model/src/action.rs`).
## Install
```shell
cargo install --path inflorescence
```
## Add a desktop shortcut
### Linux
```shell
# Copy the .desktop file
cp contrib/holonyte-inflorescence.desktop ~/.local/share/applications/
# Copy the app icon
cp assets/icon.png ~/.local/share/icons/inflorescence.png
```