Signal is a free, open-source messaging app that provides end-to-end encrypted communication for text, voice, and video. If you’re using Linux and want to install Signal Desktop for secure messaging, this guide will walk you through the installation process for different Linux distributions.
System Requirements
Before we begin, make sure you have:
- Linux Distribution: 64-bit Debian-based (Ubuntu, Mint, Pop!_OS, etc.) or other supported distributions
- Architecture: x86_64 (64-bit) – Signal Desktop doesn’t support 32-bit systems
- Desktop Environment: Any modern desktop environment (GNOME, KDE, XFCE, etc.)
- Internet connection: To download packages and verify with Signal servers
- Sudo privileges: Administrative access for installing packages
Method 1: Install on Debian-Based Distributions (Recommended)
This method works for Ubuntu, Linux Mint, Pop!_OS, elementary OS, and other Debian-based distributions.
Step 1: Add Signal’s Official GPG Key
Download and install Signal’s official signing key:
wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null
What this does:
- Downloads Signal’s public GPG key
- Converts it to the proper format
- Installs it to the system keyring for package verification
Step 2: Add Signal Repository
Add Signal’s official repository to your system:
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' | sudo tee /etc/apt/sources.list.d/signal-xenial.list
This command creates a repository configuration file that tells your package manager where to find Signal updates.
Step 3: Install Signal Desktop
Update your package database and install Signal:
sudo apt update && sudo apt install signal-desktop
Step 4: Launch Signal
Signal should now be available in your applications menu. You can also launch it from the terminal:
signal-desktop
Method 2: Install via Flatpak (Universal)
Flatpak works across all Linux distributions and provides sandboxed application installation.
Step 1: Install Flatpak (if not already installed)
For Ubuntu/Debian:
sudo apt install flatpak
For Fedora:
sudo dnf install flatpak
For Arch Linux:
sudo pacman -S flatpak
Step 2: Add Flathub Repository
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Step 3: Install Signal via Flatpak
flatpak install flathub org.signal.Signal
Step 4: Launch Signal
flatpak run org.signal.Signal
Or find it in your applications menu.
Method 3: Install on Fedora
Step 1: Add Signal Repository
Create a repository file for Signal:
sudo tee /etc/yum.repos.d/signal.repo << 'EOF'
[signal]
name=Signal baseurl=https://updates.signal.org/desktop/yum/ enabled=1 gpgcheck=1 gpgkey=https://updates.signal.org/desktop/apt/keys.asc EOF
Step 2: Install Signal
sudo dnf install signal-desktop
Method 4: Install on Arch Linux
Using AUR Helper (yay)
yay -S signal-desktop
Manual AUR Installation
git clone https://aur.archlinux.org/signal-desktop.git
cd signal-desktop
makepkg -si
Method 5: Install via Snap (Alternative)
Note: While Snap is available, the official repository method is recommended for better system integration.
sudo snap install signal-desktop
Step 5: Set Up Signal Desktop
When you first launch Signal:
- Link with your phone: Signal Desktop requires linking with the Signal app on your mobile device
- Open Signal on your phone and go to Settings > Linked devices
- Scan the QR code displayed on your desktop
- Choose a device name for your desktop installation
- Start messaging – your conversations will sync between devices
Verification and Security
Verify Installation Integrity
Check that Signal was installed correctly:
signal-desktop --version
Verify GPG Key Fingerprint
For added security, verify Signal’s GPG key fingerprint:
gpg --show-keys /usr/share/keyrings/signal-desktop-keyring.gpg
The fingerprint should match Signal’s official key. You can verify this on Signal’s website.
Important Notes
64-bit Only: Signal Desktop only supports 64-bit Linux systems. It will not work on 32-bit installations.
Mobile Dependency: Signal Desktop cannot function independently – it must be linked to Signal on your mobile device.
Auto-Updates: When installed via the official repository, Signal will automatically update through your system’s package manager.
Data Storage: Signal stores encrypted messages locally in ~/.config/Signal/
directory.
Troubleshooting
Common issues and solutions:
- Signal won’t start:
- Check if you have a 64-bit system:
uname -m
(should show x86_64) - Try launching from terminal to see error messages:
signal-desktop
- Check if you have a 64-bit system:
- GPG key verification fails:
- Re-download the GPG key following Step 1
- Check your internet connection
- Verify the key fingerprint
- Repository not found errors:
- Ensure you’ve added the repository correctly
- Run
sudo apt update
to refresh package lists - Check that the repository file exists:
ls /etc/apt/sources.list.d/signal*
- Can’t link with phone:
- Ensure both devices are on the same network
- Check that Signal is up to date on your phone
- Try restarting both Signal apps
- Messages not syncing:
- Check internet connection on both devices
- Restart Signal on both devices
- Re-link the devices if necessary
Advanced Configuration
Custom Installation Directory (Flatpak)
If using Flatpak, you can install to a custom location:
flatpak install --user flathub org.signal.Signal
Running Signal with Custom Parameters
Launch Signal with additional options:
signal-desktop --disable-gpu # Disable GPU acceleration if having display issues
signal-desktop --use-tray-icon # Enable system tray icon
Backup and Restore
Backup Signal data:
tar -czf signal-backup.tar.gz ~/.config/Signal/
Restore Signal data:
tar -xzf signal-backup.tar.gz -C ~/
Security Best Practices
Keep Signal Updated: Always install updates promptly for security patches.
Verify Downloads: Only download Signal from official sources (Signal’s repository, Flathub, or official GitHub releases).
Enable Screen Lock: Configure your desktop environment to lock automatically when idle.
Regular Backups: Backup your Signal data if you have important conversations.
Device Management: Regularly review linked devices in Signal settings and remove unused ones.
Uninstalling Signal
Remove Signal (Repository Installation)
sudo apt remove signal-desktop
sudo apt autoremove
Remove Repository and Keys
sudo rm /etc/apt/sources.list.d/signal-xenial.list
sudo rm /usr/share/keyrings/signal-desktop-keyring.gpg
sudo apt update
Remove Signal Data (Optional)
Warning: This will delete all your messages and settings.
rm -rf ~/.config/Signal/
Remove Flatpak Installation
flatpak uninstall org.signal.Signal
Alternative Signal Clients
While Signal Desktop is the official client, there are community alternatives:
Signal-CLI: Command-line interface for Signal
# Available in AUR for Arch Linux
yay -S signal-cli
Gurk-rs: Terminal-based Signal client (Rust) Presage: Alternative Signal client library
Note: Third-party clients may not support all Signal features and should be used with caution.
Next Steps
Now that Signal is installed on your Linux system, you can:
- Link additional devices using the QR code method
- Configure notification settings in Signal preferences
- Set up disappearing messages for enhanced privacy
- Create group chats with end-to-end encryption
- Make voice and video calls with Signal contacts
- Share files securely through Signal’s encrypted file transfer
Keeping Signal Updated
Repository installations will update automatically through your package manager:
sudo apt update && sudo apt upgrade # Ubuntu/Debian
sudo dnf update # Fedora
Flatpak installations can be updated with:
flatpak update
Privacy and Security Features
Signal Desktop provides the same security features as the mobile app:
- End-to-end encryption for all messages and calls
- Perfect forward secrecy protecting past communications
- Disappearing messages for temporary conversations
- Screen security preventing screenshots in some environments
- Sealed sender hiding metadata from Signal servers
- Open source code available for security auditing
Having trouble with your Signal installation on Linux? Leave a comment and we’ll help you troubleshoot!