diff options
author | Christian Cleberg <hello@cleberg.net> | 2024-03-04 22:34:28 -0600 |
---|---|---|
committer | Christian Cleberg <hello@cleberg.net> | 2024-03-04 22:34:28 -0600 |
commit | 797a1404213173791a5f4126a77ad383ceb00064 (patch) | |
tree | fcbb56dc023c1e490df70478e696041c566e58b4 /content/blog/2023-11-08-scli.md | |
parent | 3db79e7bb6a34ee94935c22d7f0e18cf227c7813 (diff) | |
download | cleberg.net-797a1404213173791a5f4126a77ad383ceb00064.tar.gz cleberg.net-797a1404213173791a5f4126a77ad383ceb00064.tar.bz2 cleberg.net-797a1404213173791a5f4126a77ad383ceb00064.zip |
initial migration to test org-mode
Diffstat (limited to 'content/blog/2023-11-08-scli.md')
-rw-r--r-- | content/blog/2023-11-08-scli.md | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/content/blog/2023-11-08-scli.md b/content/blog/2023-11-08-scli.md deleted file mode 100644 index d3b26a7..0000000 --- a/content/blog/2023-11-08-scli.md +++ /dev/null @@ -1,157 +0,0 @@ -+++ -date = 2023-11-08 -title = "Installing scli on Alpine Linux (musl)" -description = "Learn how to properly configure scli for musl-based systems." -+++ - -[scli](https://github.com/isamert/scli) is a command-line tool that -allows you to connect to your Signal messenger account. This program -utilizes a two-pane display that shows you chats on the left and the -focused conversation on the right. - -This guide will show you how to install `scli` and its -dependencies on Alpine Linux, which requires some extra work due to -musl. - -If you're using a non-musl system, you can likely following the -`scli` README and download the packaged binaries for an -easier installation process. - -## Dependencies - -In order to use `scli`, you need a few dependencies: - -- `openjdk17-jre` - Used as a dependency for the - `signal-cli` tool. Version may vary. -- `signal-cli` - Used as the backbone of the - `scli` tool. -- `findutils` - Replaces the standard Busybox version of - `xargs`. -- `urwid` - A console user interface library for Python. -- `urwid-readline` - For GNU emacs-like keybinds on the - input line. -- `qrencode` - Displays a QR code in the terminal to link - the device using your phone. Not necessary if you're only linking - on desktop and can copy/paste the connection URL. - -Let's start by installing the packages available via Alpine's -repositories. Be sure to install the latest version of -`openjdk`. If you run into Java-related issues, uninstall -`openjdk` and install an older version. - -```sh -doas apk add openjdk17-jre findutils qrencode -``` - -Next, let's install `signal-cli`. Be sure to export the -version of `signal-cli` that you want. I use version -`0.12.4` below, but that may be outdated by the time you're -reading this. - -```sh -export VERSION="0.12.4" -wget https://github.com/AsamK/signal-cli/releases/download/v"${VERSION}"/signal-cli-"${VERSION}".tar.gz -doas tar xf signal-cli-"${VERSION}".tar.gz -C /opt -doas ln -sf /opt/signal-cli-${VERSION}"/bin/signal/cli /usr/local/bin -``` - -Finally, install the `urwid` packages using the Python -packaging utility. - -```sh -pip3 install urwid urwid-readline -``` - -## Installation - -Now that we have all of the dependencies we need, we can install -`scli`. Start by simply cloning the repository. - -```sh -git clone https://github.com/isamert/scli -``` - -When I cloned this repository on 2023-11-08, I found a bug in the logic -that required a fix. You must edit the `scli` file and -replace the one instance of `RLIMIT_OFILE` with -`RLIMIT_NOFILE`. - -```sh -cd scli -nano scli -``` - -Once complete, you can move this program to anywhere on your -`$PATH`. I chose the following directory. - -```sh -doas mv scli /usr/local/bin/scli -``` - -## Initial Setup - -Now that everything is installed, we can login and configure the client. -Start by generating a connection link. - -```sh -signal-cli link -n "YOUR-DEVICE-NICKNAME" | tee >(xargs -L 1 qrencode -t utf8) -``` - -This will generate a connection link and related QR code for you to use -to link the devices together. Once complete, **wait patiently** for the -connection process to finish. - -Once it completes, it will exit and return you to the prompt. From here, -you need to perform an initial `receive` command to start -things off. The `USERNAME` variable should be your phone -number, such as `+15551237890`. - -```sh -signal-cli -u USERNAME receive -``` - -Also be sure to test the daemon to ensure it works properly. If no -errors occur, it's working. If you run into errors because you're not -running a DBUS session, see my notes below. - -```sh -signal-cli -u USERNAME daemon -``` - -Once the initial reception is complete, you are ready to use -`scli`. - -This process will differ depending on your desktop environment (DE). If -you are running a DE, you likely have a DBUS session running already and -can simply launch the program. - -However, if you're like me and running your computer straight on the -TTY without a DE, you'll need to start a DBUS session for this program. - -```sh -# If you're not running a DBUS session yet, you need to start one for scli -dbus-run-session -- scli - -# OR - If you're already running a DBUS session, simply run scli -scli -``` - -## Configuration - -Lastly, there are a number of configuration options that you can pass -via the command or in the `~/.config/sclirc` file. See the -Github README for more information on configuration options. - -```sh -nano ~/.config/sclirc -``` - -```conf -# ~/.config/sclirc - -wrap-at = 80 -enable-notifications = true -``` - -That's it! Following this guide, I have a functional `scli` -program that successfully sends messages to my contacts and myself! |