2022-04-29 19:52:14 +05:30
2022-09-18 20:25:59 +05:30
2023-02-24 17:30:37 +05:30

Lotus Chat desktop

The desktop app for Lotus Chat, Lotus Guild's Matrix client (a fork of Cinny), built with Tauri. The web client lives in the cinny/ submodule (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, then:

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
S
Description
Lotus Chat desktop app (Tauri wrapper for cinny)
Readme AGPL-3.0
8.9 MiB
Languages
Rust 85.9%
JavaScript 11.7%
C 1%
Shell 0.7%
NSIS 0.7%