meta data for this page
Table of Contents
Signal
This page outlines the current state of, and options for using Signal on Mobian. Each of these options is currently under heavy development.
Globally relevant issues:
- Only the desktop client supports video and audio calls.
- All currently functional signal clients are third-party. This means they are not supported/secured by the Signal Messenger company. However, both Signald and Signal-cli heavily use official libraries.
Official Clients
Desktop
The current status of the desktop client can be found in this github issue. Successful compilation and daily usage has been achieved.
Instructions for building a fresh Signal-Desktop .deb can be found at https://gitlab.com/undef1/signal-desktop-builder/-/packages or https://github.com/0mniteck/Signal-Desktop-Builder. This process is now automated, but experience with Docker is useful. Also a prebuilt .deb is available.
Android
The Android client is quite usable in Anbox (Version 20210106 with PostmarketOS Android image) once Anbox has been started.
Currently known issues:
- Anbox does not receive upper case characters and a large number of symbols from Squeekboard. Workaround is to install a keyboard in Anbox.
- Functions requiring hardware access do not work. Calls seem to work, but no audio is sent due to Anbox not passing the microphone to Android.
- Sending files from the host device requires inserting them into android using adb.
- Screen is slightly blurry due to XWayland rendering issues.
Packaging:
- Anbox is available in the Debian repositories.
- Anbox images can be built using this image builder or extracted from the PostmarketOS package.
- The signal APK can be found at the official signal website.
Axolotl
With the exception of Signal Desktop, Axolotl is currently the most stable and feature rich client. However, this is a complete re-implementation of the signal protocol in Go/JavaScript. For this reason, it is likely to be the least well tested client. This client is better documented at the Axolotl Wiki Page
Flare
Flare is a new unofficial Gtk client that is work in progress but already has basic features. It can be installed via Flatpak. It is based on libsignal-service-rs like Sailfish's Whisperfish.
Signald
Signald provides a system service for interacting with a Signal account. It can either be used manually over a Unix socket (nc -U /var/run/signald/signald.sock
) or through another service such as libpurple-signald
.
Currently known issues:
- Manual usage is quite poor.
- Service occasionally crashes without warning the user. This requires manual restart which may not be evident unless the user attempts to send a message.
Packaging: Partial packaging exists in the signald repository.
Signal-cli
Signal-cli provides a well featured Signal commandline client with a relatively easy to use interface. It can either be used directly, through a TUI such as siggo
or through purple-signal
.
Current known issues:
- As with Signald, the latest version of Signal-cli depends on the
libsignal-client
andlibzkgroup
rust libraries that need to be compiled for ARM 64 architecture. Pre-compiled binaries can be downloaded here. (Note, this is not required with version 0.6.12 as used bypurple-signal
) - Signal-cli is slow to start. This can cause delays sending messages when used manually, but is quite fast when used by a library.
Packaging:
Currently no package exists for signal-cli
. However, (with the exception of libzkgroup from above) being a pure-Java application, cross-compilation for arm64 is relatively easy.
libpurple-signald
This is the most fully featured libpurple Signal Client, though development stopped in mid-2020 in favour of purple-signal
.
Currently known issues:
- Fails silently when
signald
crashes. - Message delivery may require a restart of
signald
.
Requires: Signald
installed and running.
Packaging: A partially working package exists at this Gitlab repositiory.
purple-signal
This library is currently under heavy development. It is the most stable libpurple signal library, but has few working features.
Currently known issues:
- Preliminary support for receiving attachments exists. Sending attachments is not available.
- Adding an account can fail silently. To manually add an account after such a failure:
- Register an account using
signal-cli
- Copy the content of
~/.local/share/signal-cli/data/<phone number>
to another file. - Replace all quotes with
"
. - Remove any newlines in the file.
- Insert the content of the file into the
signaldata
setting in the file.purple/accounts.xml
.- Keep a backup of this file. Updates of
purple-signal
and changing the libpurple client tend to break it.
- Restart your libpurple client.
Requires: signal-cli
(currently version 0.6.12) installed in /opt/signal-cli
Packaging status: No existing package. Compiling from source on the pinephone is relatively easy (instructions) with the following dependencies:
- cmake
- openjdk-11-jre-headless
- default-jdk
- make
- gcc
- libpurple-dev
Purple Clients
Chatty
Chatty has a list of allowed libpurple plugins. This list contains neither of the above libpurple clients. Manually adding the following lines to the accounts will cause them to show in chatty, but new messages cannot be sent and errors may cause Phosh to crash.
<settings ui='chatty-ui'> <setting name='auto-login' type='bool'>0</setting> </settings>
Current issues:
- Sending messages does not work, regardless of library used.
- Received messages do not show in the chat list, but must be answered from their notification.
- Only works with
libpurple-signald
at this time.
Pidgin
Pidgin works with both of the above libpurple plugins and it's main interfaces fit on mobile screens.
Current issues:
- Chat history is saved, but accessible in the separate chat log, rather than the message interface.
- Not notifications are provided by default. Instead, a message window pops up.
See also
An overview of the available third-party software for Signal