Skip to content

trufae/parla

Repository files navigation

Parla logo

Parla

A Delta Chat client for GNOME — chat over email, decentralized and encrypted.

CI Flatpak License GTK4 + libadwaita Vala


Lightweight Vala + GTK4 + libadwaita desktop client that talks to deltachat-rpc-server over JSON-RPC. Follows GNOME HIG, works on desktop and mobile form factors.

Features

Messaging

  • Rich compose bar — multi-line text, file attachments via picker or drag-and-drop, paste images or files straight from the clipboard.
  • Reply, edit, delete, forward — full message actions via right-click; delete-for-self or delete-for-everyone on your own messages.
  • Emoji reactions — quick-pick 👍 ❤️ 😂 😮 😢 👎 shown as badges on the message.
  • Pinned messages — pin any message in a chat; a pinned-messages bar at the top of the conversation lets you jump back to them.
  • Reply previews — quoted sender and text preview (capped at 3 lines) above the compose entry and inside bubbles.
  • Inline image previews with a full-screen viewer (click to open, right-click to save, Escape to close).
  • Optional Markdown renderingbold, italic, strikethrough, inline code, fenced code blocks, headings, and auto-linkified URLs.
  • In-chat search (Ctrl+F, Command+F on macOS) with real-time filtering and highlight.
  • Save attachments to disk from the message context menu.

Chats

  • Adaptive split-view sidebar + conversation, collapsing to a single pane on narrow windows with a back button.
  • Chat list with avatars, unread dots and badges, last-message preview, smart timestamps (time / weekday / date), pinned indicator and muted styling.
  • Pin, mute, delete chats from the sidebar context menu; view chat info (members, avatar, type) in a dedicated dialog.
  • Contact requests surfaced with their own badge.
  • Sidebar search to filter chats by name.
  • Quick switcher fuzzy chat search, Enter to open the top match.
  • New 1:1 chat via contact picker, and new group with name, avatar and member selection.

Accounts & profile

  • Private Parla account store by default; Delta Chat Desktop compatibility mode reuses Desktop accounts.
  • Auto-discovery of standalone deltachat-rpc-server from the Parla bundle, distro packages, $PATH, ~/.local/bin, and ~/.cargo/bin.
  • Multi-account switching from the settings dialog.
  • My Profile dialog to edit display name, status and avatar.
  • End-to-end encryption via Autocrypt, handled by the Delta Chat core.

Settings

  • Double-click action on a message: Reply / React ❤️ / React 👍 / Open profile / None.
  • Toggle Markdown rendering.
  • Toggle Shift+Enter vs Enter to send.
  • Toggle desktop notifications for incoming messages when the window is unfocused.
  • Choose the JSON-RPC server source: Parla/system, custom binary, or Delta Chat Desktop compatibility mode.

Keyboard shortcuts

Action Other platforms macOS
New chat Ctrl+N Command+N
New group Ctrl+G Command+G
New channel Ctrl+Shift+G Command+Shift+G
Quick chat switcher Ctrl+K Command+K
Account menu Ctrl+Shift+A Command+Shift+A
Next conversation Ctrl+Tab Command+Tab
Previous conversation Ctrl+Shift+Tab Command+Shift+Tab
Search in conversation Ctrl+F Command+F
Focus compose entry Esc Esc
Refresh Ctrl+R Command+R
Cycle sidebar mode Ctrl+S Command+S
Settings Ctrl+, Command+,
Close window Ctrl+W Command+W
Quit Ctrl+Q Command+Q
Close dialog / viewer / search Esc Esc

Build

# Install dependencies (Ubuntu)
sudo apt install valac meson libgtk-4-dev libadwaita-1-dev libjson-glib-dev

# Install the RPC backend for source builds
pip install deltachat-rpc-server
# Or: cargo install --git https://github.com/chatmail/core/ deltachat-rpc-server

# Build & run
make ; make run
Other distros

Fedora: sudo dnf install vala meson gtk4-devel libadwaita-devel json-glib-devel

Arch: sudo pacman -S vala meson gtk4 libadwaita json-glib

Flatpak: flatpak install io.github.trufae.Parla.flatpak

macOS
brew install meson ninja vala pkgconf gtk4 libadwaita json-glib librsvg glib-networking adwaita-icon-theme create-dmg

# Install the RPC backend for source builds and Finder-launched app bundles.
pip install deltachat-rpc-server
# Or: cargo install --git https://github.com/chatmail/core/ deltachat-rpc-server

make            # builds builddir-macos/parla natively
make run        # runs the native binary
make macos-app  # creates dist/macos/Parla.app
make macos-dmg  # creates dist/macos/Parla-<version>-<arch>.dmg

make macos-app bundles Homebrew GTK/libadwaita libraries and copies deltachat-rpc-server into Parla.app when it is available in PATH. Set PARLA_BUNDLE_RPC_SERVER=/absolute/path/to/deltachat-rpc-server to force a specific backend binary.

See docs/rpc-server.md for how Parla finds the JSON-RPC server and how to package it for Flatpak or distro packages.

Contributing

Early-stage project — contributions welcome! Open areas: Flatpak packaging, theming, richer notifications, accessibility polish, and more message types.

License

GPLv3 — see LICENSE.

Built on Delta Chat, GNOME and libadwaita.