docs: README for Lotus Chat desktop, not upstream Cinny (#35) #39

Merged
jared merged 1 commits from docs/readme-lotus into main 2026-10-18 19:44:52 -04:00
+58 -28
View File
@@ -1,39 +1,69 @@
# Cinny desktop
# Lotus Chat desktop
<a href="https://github.com/cinnyapp/cinny-desktop/releases">
<img alt="GitHub release downloads" src="https://img.shields.io/github/downloads/cinnyapp/cinny-desktop/total?style=social"></a>
Cinny is a matrix client focusing primarily on simple, elegant and secure interface. The desktop app is made with Tauri.
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
Installers for macOS, Windows and Linux can be downloaded from [Github releases](https://github.com/cinnyapp/cinny-desktop/releases). Releases are signed with a [Ed25519](https://ed25519.cr.yp.to/) public-key.
Builds are published on this repo's releases page:
**https://code.lotusguild.org/LotusGuild/cinny-desktop/releases/latest**
Operating System | Download
---|---
Windows | <a href='https://github.com/cinnyapp/cinny-desktop/releases/latest/download/Cinny_desktop-x86_64.msi'>Get it on Windows</a>
macOS | <a href='https://github.com/cinnyapp/cinny-desktop/releases/latest/download/Cinny_desktop-universal.dmg'>Get it on macOS</a>
Linux | <a href='https://github.com/cinnyapp/cinny-desktop/releases/latest/download/Cinny_desktop-x86_64.AppImage'>Get it on Linux</a> · <a href='https://flathub.org/apps/details/in.cinny.Cinny'>Flatpak</a>
| 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` |
Decoded public key:
> RWRflTUQD3RHFtn25QNANCmePR9+4LSK89kAKTMEEB4OKpOFpLMgc64z
There is no macOS build at the moment.
To verify release files, you need to download [minisign](https://jedisct1.github.io/minisign/) tool and [decode](https://www.base64decode.org/) the *.sig* file before running:
> minisign -Vm ***RELEASE_FILE.msi.zip*** -P RWRflTUQD3RHFtn25QNANCmePR9+4LSK89kAKTMEEB4OKpOFpLMgc64z -x ***SINGATURE.msi.zip.sig***
### 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
Firstly, to setup Rust, NodeJS and build tools follow [Tauri documentation](https://v2.tauri.app/start/prerequisites/).
Set up Rust, Node.js and the build tools per the
[Tauri prerequisites](https://v2.tauri.app/start/prerequisites/), then:
Now, to setup development locally run the following commands:
* `git clone --recursive https://github.com/cinnyapp/cinny-desktop.git`
* `cd cinny-desktop/cinny`
* `npm ci`
* `cd ..`
* `npm ci`
To build the app locally, run:
* `npm run tauri build`
To start local dev server, run:
* `npm run tauri dev`
```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
```