Skip to content

Instantly share code, notes, and snippets.

@shvchk
Last active November 8, 2017 08:20
Show Gist options
  • Save shvchk/60b8410edf7eb00e7696f1534d47428d to your computer and use it in GitHub Desktop.
Save shvchk/60b8410edf7eb00e7696f1534d47428d to your computer and use it in GitHub Desktop.
Deprecated, please use official standalone Signal Desktop: https://signal.org

Install Signal Desktop as a standalone app, without Chrome dependency *

UPD 2: Official standalone Signal Desktop is released!
Install official Signal Desktop, old version and this guide using it should now be considered deprecated.


UPD 1: There is now an easier way with automatic Signal Desktop installer, which also keeps Signal updated.


This guide is for Linux systems, but as Node.js and NW.js are cross-platform, it is more or less the same for macOS and Windows. I will provide CLI commands, as they are universal for different Linux distros, but most of the steps could be as easily done with your GUI apps of choice.

  1. Install Node.js

  2. Install NW.js:
    sudo npm install -g nw (global)
    or
    npm install nw (current user)

  3. Create app folder and go into it:
    mkdir -p ~/apps/Signal && cd $_

  4. Get latest Signal Desktop package:
    wget -O signal.zip 'https://j.mp/signal-desktop-crx'

    This redirects to package download from Google Chrome Store servers.
    If you want to know more, there are also other options to get the package.

  5. Unzip Signal Desktop package:
    unzip signal.zip

  6. Signal Desktop is ready to use, launch it:
    nw ~/apps/Signal

    But you would probably want a more convenient way to launch it, so…

  7. Create a .desktop file:

    cat <<EOF > ~/.local/share/applications/signal.desktop
    [Desktop Entry]
    Exec=nw $(pwd)
    Icon=$(pwd)/signal.png
    Name=Signal
    Path=
    StartupNotify=true
    Terminal=false
    Type=Application
    EOF
    

    And get an icon for it:
    wget -O signal.png 'https://drive.google.com/uc?export=view&id=0B-sCqfnhKgTLbmdTSEpTaVVuRGM'

    Now Signal Desktop should appear in the programs list.

Don't forget, though, that this kind of setup is not supported by Open Whisper Systems, and for now you are on your own for keeping it up-to-date (when new version is available, just delete everything except icon from app directory and repeat steps 4 and 5 to install it).

For any further info (bug reporting, contributing, etc.) please use official Signal Desktop repository: https://github.com/WhisperSystems/Signal-Desktop#signal-desktop


Other options to get Signal Desktop package

  • Build it yourself:

    • Install Ruby (it is probably already installed)
    • Install sass gem: sudo gem install sass
    • Download Signal Desktop sources
    • Unpack it somewhere, e.g. /tmp, and go into unpacked directory (it will be like /tmp/Signal-Desktop-0.34.0)
    • Get dependencies: npm install
    • Build it: node_modules/grunt-cli/bin/grunt
    • You now have built Signal Desktop app in dist directory, move its contents to the previously created app directory: mv dist/* ~/apps/Signal/
    • Go back to the previously created app directory: cd ~/apps/Signal
    • You can now go to step 6, skipping step 5
  • Download it from Google servers directly:

    • Find Signal Desktop app ID in Chrome store, it is a 32 random letters string in the URL of the app page, after the last / and before any other non-letter symbol, e.g. in https://chrome.google.com/webstore/detail/signal-private-messenger/bikioccmkafdpakkkcpdbppfkghcmihk?hl=en URL app ID is bikioccmkafdpakkkcpdbppfkghcmihk. Well, bikioccmkafdpakkkcpdbppfkghcmihk is actually Signal Desktop app ID, so you could just trust me and use it :)
    • To download package, you can use this URL: https://clients2.google.com/service/update2/crx?response=redirect&prodversion=999&x=id%3D_____%26installsource%3Dondemand%26uc, replacing _____ with app ID, so that would be https://clients2.google.com/service/update2/crx?response=redirect&prodversion=999&x=id%3Dbikioccmkafdpakkkcpdbppfkghcmihk%26installsource%3Dondemand%26uc with Signal Desktop app ID, this is where shortened https://j.mp/signal-desktop-crx from step 4 redirects to.
    • You will get a crx file, which is more or less a zip archive, so rename it to signal.zip and move to the previously created app directory.
    • Go to step 5
  • Download it from Google servers with chrome-extension-downloader.com:

    • Just give it the URL of the app page, it will do the rest.
    • You will get a crx file, which is more or less a zip archive, so rename it to signal.zip and move to the previously created app directory.
    • Go to step 5

Note on Chrome dependency

This setup is not dependent on Chromium (or derivative) browser installation and does not use any of its files or settings. Still, at its core NW.js and therefore this setup uses the same technology used in Chromium based browsers, including Blink rendering engine and V8 JavaScript engine.

@arjamizo
Copy link

arjamizo commented Jun 2, 2017

I created a fork with shorter signal.desktop file creation (dochere) :)

@sergeevabc
Copy link

So there is no portable binary for Windows that works right out of the box?

@captn3m0
Copy link

captn3m0 commented Nov 1, 2017

Signal now has a standalone app: https://signal.org/blog/standalone-signal-desktop/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment