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

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!