The README was upstream's: its download buttons and minisign key pointed at cinnyapp releases, so following it installed upstream Cinny and verified it against the wrong key. Point downloads at this repo's releases (NSIS exe, .deb, pacman package, AppImage), publish Lotus' updater key, and list the desktop features. Fixes #35 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
70 lines
2.9 KiB
Markdown
70 lines
2.9 KiB
Markdown
# Lotus Chat desktop
|
|
|
|
The desktop app for [Lotus Chat](https://chat.lotusguild.org), Lotus Guild's
|
|
Matrix client (a fork of [Cinny](https://github.com/cinnyapp/cinny)), built
|
|
with [Tauri](https://v2.tauri.app/). The web client lives in the `cinny/`
|
|
submodule ([LotusGuild/cinny](https://code.lotusguild.org/LotusGuild/cinny)).
|
|
|
|
## Download
|
|
|
|
Builds are published on this repo's releases page:
|
|
**https://code.lotusguild.org/LotusGuild/cinny-desktop/releases/latest**
|
|
|
|
| Platform | File |
|
|
|---|---|
|
|
| Windows | `LotusChat-x86_64-setup.exe` (NSIS installer) |
|
|
| Debian / Ubuntu | `LotusChat-x86_64.deb`, install with `sudo apt install ./LotusChat-x86_64.deb` |
|
|
| Arch | `LotusChat-x86_64.pkg.tar.zst`: download it, then `sudo pacman -U LotusChat-x86_64.pkg.tar.zst` |
|
|
| Other Linux | `LotusChat-x86_64.AppImage` |
|
|
|
|
There is no macOS build at the moment.
|
|
|
|
### Updates and signatures
|
|
|
|
The app updates itself from
|
|
`https://code.lotusguild.org/LotusGuild/cinny-desktop/releases/download/latest/release.json`.
|
|
Updater bundles (`.nsis.zip`, `.AppImage.tar.gz`) are signed with minisign; the
|
|
`.sig` files sit next to them. Lotus Chat's public key (the base64-decoded
|
|
`plugins.updater.pubkey` in `src-tauri/tauri.conf.json`):
|
|
|
|
> RWRZZdyii05/NUcz337A5SAbiZK+NPVDWuiL2mM5Jk1p/LfRmNfiZ/6l
|
|
|
|
To check a bundle by hand, base64-decode its `.sig` file and run
|
|
`minisign -Vm LotusChat-x86_64-setup.nsis.zip -P RWRZZdyii05/NUcz337A5SAbiZK+NPVDWuiL2mM5Jk1p/LfRmNfiZ/6l -x <decoded.sig>`.
|
|
|
|
Packages installed through apt or pacman are updated by downloading the new
|
|
package from the releases page; the in-app updater says so instead of
|
|
replacing files it doesn't own.
|
|
|
|
## Desktop features
|
|
|
|
Beyond the web client:
|
|
|
|
- **Tray:** unread, call and update state; Do Not Disturb.
|
|
- **Launch on login**, with an optional **start minimized**.
|
|
- **Closing the window:** asks once whether to keep running in the tray or
|
|
quit. A call in progress always goes to the tray.
|
|
- **Taskbar / launcher:** unread badge, attention flash, upload progress.
|
|
- **Windows:** rich notifications with Reply and Mark as read, Focus Assist
|
|
sync, thumbnail toolbar (mute / deafen / end call), jump list, media keys (SMTC).
|
|
- **System-wide push-to-talk and deafen** keys that work while another app
|
|
(a game) has focus.
|
|
- **Keychain:** a copy of your login is kept in the OS keychain.
|
|
- **Calls:** the call page runs on its own loopback origin, with WebView
|
|
permissions scoped to it; where the WebView has no WebRTC (Linux
|
|
WebKitGTK), "Open in browser" instead of a dead end.
|
|
- **Linux:** NVIDIA / Wayland rendering workarounds.
|
|
|
|
## Local development
|
|
|
|
Set up Rust, Node.js and the build tools per the
|
|
[Tauri prerequisites](https://v2.tauri.app/start/prerequisites/), then:
|
|
|
|
```sh
|
|
git clone --recursive https://code.lotusguild.org/LotusGuild/cinny-desktop.git
|
|
cd cinny-desktop/cinny && npm ci && cd ..
|
|
npm ci
|
|
npm run tauri dev # development
|
|
npm run tauri build # release build
|
|
```
|