From fdd80eadcc2f147d0198d94b7b908764778184a2 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Mon, 29 Apr 2024 14:18:55 -0500 Subject: format line wrapping and fix escaped characters --- content/blog/2023-11-08-scli.md | 119 ++++++++++++++++++---------------------- 1 file changed, 54 insertions(+), 65 deletions(-) (limited to 'content/blog/2023-11-08-scli.md') diff --git a/content/blog/2023-11-08-scli.md b/content/blog/2023-11-08-scli.md index 3b2ce31..0d01ea4 100644 --- a/content/blog/2023-11-08-scli.md +++ b/content/blog/2023-11-08-scli.md @@ -5,49 +5,42 @@ description = "" draft = false +++ -[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. +[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. +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. +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. +- `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. +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" @@ -56,8 +49,7 @@ 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. +Finally, install the `urwid` packages using the Python packaging utility. ```sh pip3 install urwid urwid-readline @@ -65,25 +57,24 @@ 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. +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`. +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. +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 @@ -91,43 +82,41 @@ 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. +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. +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`. +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. +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`. +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. +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. +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 @@ -139,9 +128,9 @@ 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. +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 @@ -154,5 +143,5 @@ 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! +That's it! Following this guide, I have a functional `scli` program that +successfully sends messages to my contacts and myself! -- cgit v1.2.3-70-g09d2