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.
— antranigv.rss (@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 tsdevice:/?uuid=...&pub_key=...
.
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
scli
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
export DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/dbus-TaY0zoKZIb,guid=4f518f874f97170e788a94fb5fa14a3c
Now, you can run scli
again and it will work fine π
Happy Chatting!@#$%
That’s all folks! π