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, tables, 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 in Parla's XDG data directory.
  • 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 auto-discovery or a custom binary.

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+Page Down Command+Page Down
Previous conversation Ctrl+Page Up Command+Page Up
Search in conversation Ctrl+F Command+F
Open chat info Ctrl+I Command+I
Focus compose entry Esc Esc
Refresh Ctrl+R Command+R
Toggle sidebar Ctrl+S Command+S
Compact sidebar Ctrl+Shift+S Command+Shift+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 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

AppImage: make appimage

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.
pip install deltachat-rpc-server
# Or: cargo install --git https://github.com/chatmail/core/ deltachat-rpc-server

make run   # builds and runs dist/macos/Parla.app
make app   # creates dist/macos/Parla.app
make dmg   # creates dist/macos/Parla-<version>-<arch>.dmg

make app bundles Homebrew GTK/libadwaita libraries. The RPC backend is not bundled by default; set PARLA_BUNDLE_RPC_SERVER=/absolute/path/to/deltachat-rpc-server only for a local bundle that should include 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.

About

Native Gnome DeltaChat client

Topics

Resources

License

Stars

42 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors