Encrypted messaging is getting big on Linux, and one of the more popular protocols for this type of communication lately is Tox. It’s completely p2p, supports text, video, and has dozens of security and privacy features. The Tox protocol is open source, and the project encourages developers to create their own third-party AppImage to use the chat service. Out of all of the clients out there, qTox client is one of the most popular.
SPOILER ALERT: Scroll down and watch the video tutorial at the end of this article.
The qTox client itself, like all Tox clients, rely on the Tox protocol. On many Linux distributions, there aren’t official packages for the protocol, so you’ll need to build it manually. To compile the protocol, open up a terminal and install the necessary build dependencies. Then follow the commands to compile the code on your system.
sudo apt-get install \ build-essential \ cmake \ libavcodec-dev \ libavdevice-dev \ libavfilter-dev \ libavutil-dev \ libexif-dev \ libgdk-pixbuf2.0-dev \ libglib2.0-dev \ libgtk2.0-dev \ libkdeui5 \ libopenal-dev \ libopus-dev \ libqrencode-dev \ libqt5opengl5-dev \ libqt5svg5-dev \ libsodium-dev \ libsqlcipher-dev \ libswresample-dev \ libswscale-dev \ libvpx-dev \ libxss-dev \ qrencode \ qt5-default \ qttools5-dev-tools \ qttools5-dev \ git
Getting qTox built on Debian is no problem, though officially, only Debian 9 Stable (Stretch) has support. Those intending to build this software on Old Stable (8) or Testing (10) do so at your own risk!
In a terminal, install the following dependencies with the Apt-get package manager.
sudo apt-get install \ automake \ autotools-dev \ build-essential \ check \ checkinstall \ cmake \ ffmpeg \ libavcodec-dev \ libavdevice-dev \ libexif-dev \ libgdk-pixbuf2.0-dev \ libgtk2.0-dev \ libkdeui5 \ libopenal-dev \ libopus-dev \ libqrencode-dev \ libqt5opengl5-dev \ libqt5svg5-dev \ libsodium-dev \ libsqlcipher-dev \ libtool \ libvpx-dev \ libxss-dev \ pkg-config \ qrencode \ qt5-default \ qttools5-dev \ qttools5-dev-tools \ yasm \ git
Arch Linux users should have no issue installing the qTox dependencies, as support for the OS is specifically outlined on the website. However, if you’re on Arch Linux and don’t feel like building the app from source, consider downloading the AUR package of qTox instead.
sudo pacman -S --needed base-devel qt5 openal libxss qrencode ffmpeg opus libvpx libsodium git
Getting all necessary dependencies for Fedora Linux is a two-step process. First, open up a terminal and use DNF to install the Fedora development package group.
sudo dnf groupinstall "Development Tools" "C Development Tools and Libraries"
Next, use the terminal to get the special qTox/Toxcore dependencies.
sudo dnf install \ autoconf \ automake \ check \ check-devel \ ffmpeg-devel \ gtk2-devel \ kf5-sonnet \ libexif-devel \ libsodium-devel \ libtool \ libvpx-devel \ libXScrnSaver-devel \ openal-soft-devel \ openssl-devel \ opus-devel \ qrencode-devel \ qt5-linguist \ qt5-qtsvg \ qt5-qtsvg-devel \ qt-creator \ qt-devel \ qt-doc \ qtsingleapplication \ sqlcipher \ sqlcipher-devel \ git
sudo zypper install \ libexif-devel \ libffmpeg-devel \ libopus-devel \ libQt5Concurrent-devel \ libqt5-linguist \ libQt5Network-devel \ libQt5OpenGL-devel \ libqt5-qtbase-common-devel \ libqt5-qtsvg-devel \ libQt5Xml-devel \ libsodium-devel \ libvpx-devel \ libXScrnSaver-devel \ openal-soft-devel \ patterns-openSUSE-devel_basis \ qrencode-devel \ sqlcipher-devel \ sonnet-devel \ git
Linux users who want qTox and all of its components will need to visit the installation page and learn about what to install to build the code successfully. Alternatively, there is a qTox AppImage available. The AppImage will get the job done, though by not compiling it from source, the program will not be optimized for your PC.
At the center of qTox is the Tox protocol (aka toxcore). Toxcore is the main dependency, and without it, the qTox program will not build correctly. Luckily, building and installing the Tox protocol on a Linux system is super simple.
Start the installation process of Toxcore by grabbing the latest code in a terminal with the Git tool.
git clone https://github.com/toktok/c-toxcore.git toxcore
CD into the new “toxcore” folder and run cmake.
cd toxcore cmake .
Build the Toxcore software by executing the make command.
Lastly, finish up the process by installing Toxcore.
sudo make install
echo '/usr/local/lib/' | sudo tee -a /etc/ld.so.conf.d/locallib.conf sudo ldconfig
Install qTox Client
Toxcore is working, so now it’s time to build the qTox client and install it on Linux. Like with toxcore, building the qTox client starts by cloning the code locally via Git.
git clone https://github.com/qTox/qTox.git
With the qTox code on your Linux PC, use the CD command and move the terminal into the sources folder.
Inside the sources folder, run cmake to generate a makefile.
Compile the qTox code on your Linux PC with the make command.
Install the software on your Linux PC with make install.
sudo make install
Launch the qTox app on your Linux desktop. After the app finishes starting up, you’ll notice a login window. If you’ve already got a Tox account, log in with your user information. Alternatively, select the “New Profile” button, and create a new user.
Once you’re in qTox, you’ll be able to add friends by pasting their ID codes into the “Tox ID” box, under the “add friend menu”.