Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arjamizo/650cf7b60ce63c3b7331d43518ab91d0 to your computer and use it in GitHub Desktop.
Save arjamizo/650cf7b60ce63c3b7331d43518ab91d0 to your computer and use it in GitHub Desktop.
dochere syntax

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

There is now an easier way with automatic Signal Desktop installer, which also keeps Signal auto 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 > ~/.local/share/applications/signal.desktop <<EOF
    [Desktop Entry]
    Exec=nw /home/$USER/apps/Signal
    Icon=/home/$USER/apps/Signal/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.

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