Signal-cli with scli on FreeBSD
So couple of days ago I migrated from macOS on Macbook Pro to FreeBSD on ThinkPad T480s.
I should blog about this macOS to FreeBSD laptop migration.— Antranig Vartanian (@antranigv) October 30, 2020
Unfortunately, since we are in war, I do not have the time to blog about the migration, although I’m taking notes every day about every change that I do so I can blog later on :-)
However, one of the biggest concerns for me was running Signal on FreeBSD, as I understnad, Signal people are not interested in supporting the *BSDs.
As any sane person, I started searching the internet for possible solutions and turns out all I need is two pieces of software
The installation is as easy as running
pkg install signal-cli scli
Now for the simple part.
First, you need to link your phone by running
signal-cli link -n "FreeBSD"
It will give an output that says
Copy that output, and then in another terminal run
qrencode 'tsdevice:/?uuid=...&pub_key=...' -t ANSI256
You will be represented by a QR Code in the console (cool, aye?).
Using the phone app, link the device by scanning the QR Code.
To receive list of your contacts run
signal-cli -u +myphonenumber receive
Now try to run the TUI interface by running
Side-note: In case you are not able to send or receive messages, you might need to do some DBUS magic.
First, find if you have DBUS running
antranigv@zvartnots:~ $ ps -x -o comm,pid | grep dbus dbus-launch 53571 dbus-daemon 54064 dbus-daemon 54963
Then, you will need to find the
DBUS_SESSION_BUS_ADDRESS environment variable, this is usually set in the DBUS child process, in our case, it’s
54963, so we can use
procstat as root
root@zvartnots:~ # procstat -e 54963 PID COMM ENVIRONMENT 54963 dbus-daemon SHELL=/usr/local/bin/bash DBUS_STARTER_ADDRESS=unix:path=/tmp/dbus-TaY0zoKZIb,guid=4f518f874f97170e788a94fb5fa14a3c DISPLAY=:0.0 WMAKER_BIN_NAME=wmaker PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/home/antranigv/bin WINDOWPATH=9 MAIL=/var/mail/antranigv GTK_THEME=Adwaita:dark DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/dbus-TaY0zoKZIb,guid=4f518f874f97170e788a94fb5fa14a3c USER=antranigv DBUS_STARTER_BUS_TYPE=session MM_CHARSET=UTF-8 WRASTER_COLOR_RESOLUTION0=4 PWD=/usr/home/antranigv BLOCKSIZE=K LANG=en_US.UTF-8 LOGNAME=antranigv HOME=/home/antranigv
Okay! we have our variable!
Now, we need to set the ENV and we are done, if you use
(t)csh then execute
setenv DBUS_SESSION_BUS_ADDRESS unix:path=/tmp/dbus-TaY0zoKZIb,guid=4f518f874f97170e788a94fb5fa14a3c
If you are using
bash, run the following
Now, you can run
scli again and it will work fine :)
That’s all folks! :)