[Update 2025] HowTo build Signal desktop on openSUSE Tumbleweed (or Fedora etc.)

Signal Logo

This is an update to my previous blog post in 2019 and 2023.

I use, among others, the Signal App as messenger. Of course, I also want to use the advantages of running a client also on my Laptop with my current distribution openSUSE Tumbleweed. However, the Signal foundation does only provide packages for Ubuntu-based systems, so I need to build it by myself. Due to permanent updates of the app, I’ve to rebuild it once in a while…and here is how:

1. Check out a recent version

git clone https://github.com/signalapp/Signal-Desktop.git
cd Signal-Desktop
git tag   # find a recent version (beta or not, as you prefer)
git checkout <version>

2. NVM setup

Install NVM, if necessary: github.com/nvm-sh

Afterwards:

. ~/.nvm/nvm.sh
cd Signal-Desktop/  # go to the repo
nvm install $(cat .nvmrc)
nvm use $(cat .nvmrc)

3. Build the binary (in 2025)

npm install -g pnpm  # if necessary, requires nvm
pnpm install
pnpm run generate
pnpm run build  # build app connected with production server

Finally…

Start the desktop app:

./release/linux-unpacked/signal-desktop

You may want to create a symlink:

sudo ln -s /PATH/TO/Signal-Desktop/release/linux-unpacked/signal-desktop /usr/local/bin/signal-desktop

or a .desktop file:

[Desktop Entry]
Type=Application
Name=Signal
GenericName=Messenger
Comment=Private messaging from your desktop
Icon=signal-desktop
Exec=/PATH/TO/Signal-Desktop/release/linux-unpacked/signal-desktop --use-tray-icon %U
Terminal=false
StartupWMClass=signal
Categories=Network;InstantMessaging;
MimeType=x-scheme-handler/sgnl;x-scheme-handler/signalcaptcha;
StartupNotify=true
SingleMainWindow=true

After creating the file e.g. in /usr/share/applications/signal-desktop.desktop run desktop-file-validate /usr/share/applications/signal-desktop.desktop to make it known to the system.

In case of errors, the Signal-Desktop/CONTRIBUTING.md has also some help for known issues.

…and don’t forget to donate to Signal!

You have another opinion?
Great! Then let's reduce the fallacy together!


Why are there no comments?