1736467200 Seninha's Personal Chatting Workflow https://seninha.org/notes/chat.html

Seninha's Personal Chatting Workflow

\n

2025-01-10

\n

SYNOPSIS

\n
net/bitlbee\nnet/bitlbee-mastodon\nnet/telethon (not packaged on OpenBSD)\nnet/irgramd (not packaged on OpenBSD)\n
\n
\n

DESCRIPTION

\n

I use irc, telegram, mastodon and whatsapp services for instant\nmessaging. All those services (but IRC itself) are proxied to IRC.\n

\n

I use all those services through the Hexchat IRC client. Using a single\nsoftware for all chatting needs is better than relying on multiple\nprograms, as explained below at § RATIONALE. Hexchat's interface (and\nthe interface of most IRC clients in general) is also less harmful than\nalternatives for the other services.\n

\n

Telegram™ is proxied to IRC by irgramd. Irgramd is a Python3 software\nwhich works as both a IRC server and a telegram client (via the telethon\npython library).\n

\n

(I use Telegram mostly to talk with friends.)\n

\n

Mastodon/fediverse is proxied to IRC by bitlbee with the bitlbe-mastodon\nplugin. Bitlbee works as a IRC server and supports plugins that act as\nclients for different instant messaging services.\n

\n

(I use fediverse mostly to talk with friendly strangers.)\n

\n

Both proxy servers run on a virtual machine, for safety.\n

\n
┌──────────────────────────────────────────────────────────────────────┐\n│                ╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╷ │\n│                ╵              Seninha's Personal Computer          ╷ │\n│                ╵ ╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╷                    ╷ │\n│                ╵ ╵       Virtual Machine      ╷                    ╷ │\n│                ╵ ╵  ┌──────────────────────┐  ╷                    ╷ │\n│                ╵ ╵  │ irgramd (IRC server) │  ╷                    ╷ │\n│ ╶╶╶╶╶╶╶╶╶╶╶╶╷  ╵ ╵  │ ┌──────────────────┐ ├──────────────┐        ╷ │\n│ ╵  Telegram ╷──────⮞│ │     telethon     │ │  ╷           │        ╷ │\n│ ╵╴╴╴╴╴╴╴╴╴╴╴╴  ╵ ╵  │ │ (python library) │ │  ╷           │        ╷ │\n│                ╵ ╵  │ └──────────────────┘ │  ╷           │        ╷ │\n│                ╵ ╵  └───────────┬──────────┘  ╷           ⮟        ╷ │\n│                ╵ ╵              ⮟             ╷    ┌─────────────┐ ╷ │\n│                ╵ ╵  ┌──────────────────────┐  ╷    │   Hexchat   │ ╷ │\n│                ╵ ╵  │ httpd (web server)   │  ╷    │  IRC client │ ╷ │\n│                ╵ ╵  └──────────────────────┘  ╷    └─────────────┘ ╷ │\n│                ╵ ╵  ┌──────────────────────┐  ╷      ⮝         ⮝   ╷ │\n│                ╵ ╵  │ Bitlbee (IRC server) │  ╷      │         │   ╷ │\n│ ╶╶╶╶╶╶╶╶╶╶╶╶╷  ╵ ╵  │ ┌──────────────────┐ │  ╷      │         │   ╷ │\n│ ╵ Fediverse ╷──────⮞│ │ bitlbee-mastodon │ │  ╷      │         │   ╷ │\n│ ╵╴╴╴╴╴╴╴╴╴╴╴╴  ╵ ╵  │ │ (bitlbee plugin) │ ├─────────┘         │   ╷ │\n│                ╵ ╵  │ └──────────────────┘ │  ╷                │   ╷ │\n│                ╵ ╵  └──────────────────────┘  ╷                │   ╷ │\n│                ╵ ╵╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴                │   ╷ │\n│                ╵╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴ │\n│ ╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╷                                               │     │\n│ ╵ IRC networks ╷───────────────────────────────────────────────┘     │\n│ ╵╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴                                                     │\n└──────────────────────────────────────────────────────────────────────┘\n
\n
My current instant messaging setup.
\n
\n

Irgramd is unstable and under active development, but is usable to my\nneeds. Configuring it requires getting a Telegram API id and hash pair.\n

\n

I use my own fork of irgramd (soon to be released) with the following\ndifferences:\n

\n\n

For the telegram proxy, i also set up a web server to access cached\nmedia (sent by Telegram users) from outside the virtual machine. And i\nalso set a cronjob to remove old cached media (otherwise my VM's disk\nget full). Both of those are optional, but useful.\n

\n
@hourly   -ns /usr/bin/find /var/www/htdocs/tg -mtime +1 -delete\n
\n
cleaner cronjob
\n
\n

RATIONALE

\n

Using a different program for each service imposes the common annoyances\nof interacting with various softwares for the same thing: write different\nconfigurations and swap interaction between incompatible interfaces.\nAlso (for the nature of instant messaging) that disperses attention\nthrough different sources of information, by having several places to\nlook at for messages.\n

\n

Also, the interface of most of those programs induces addiction by\nimposing constant interaction (mostly scrolling). The following design\npatterns are harmful:\n

\n\n
┌──────────────────────────────────────────────────────────────────────┐\n│ ╭────────────────────────────────────────╮                           │\n│ │ Bob said:                              │                           │\n│ │           Does that game run on Linux? │                           │\n│ ╰────────────────────────────────────────╯                           │\n│ ╭────────────────────────────────────────╮                           │\n│ │ Alice said:                            │                           │\n│ │                     DO NOT INVOKE HIM! │                           │\n│ ╰────────────────────────────────────────╯                           │\n│                         ╭──────────────────────────────────────────╮ │\n│                         │ I'd just like to interject for a moment. │ │\n│                         │ What you're referring to as Linux, is in │ │\n│                         │ fact, GNU/Linux, or as I've recently     │ │\n│                         │ taken to calling it, GNU plus Linux.     │ │\n│                         │                                          │ │\n│                         │ Linux is not an operating system unto    │ │\n│                         │ itself, but rather another free          │ │\n│                         │ component of a fully functioning GNU     │ │\n│                         │ system made useful by the GNU corelibs,  │ │\n│                         │ shell utilities and vital system         │ │\n│                         │ components comprising a full OS as       │ │\n│                         │ defined by POSIX.                        │ │\n│                         ╰──────────────────────────────────────────╯ │\n│ ╭────────────────────────────────────────╮                           │\n│ │ Alice said:                            │                           │\n│ │                     SEE WHAT YOU DID?? │                           │\n│ ╰────────────────────────────────────────╯                           │\n│                         ╭──────────────────────────────────────────╮ │\n│                         │                 @@@@@@ @                 │ │\n│                         │               @@@@     @@                │ │\n│                         │              @@@@ =   =  @@              │ │\n│                         │             @@@ @ _   _   @@             │ │\n│                         │              @@@ @(0)|(0)  @@            │ │\n│                         │             @@@@   ~ | ~   @@            │ │\n│                         │             @@@ @  (o1o)    @@           │ │\n│                         │            @@@    #######    @           │ │\n│                         │            @@@   ##{+++}##   @@          │ │\n│                         │           @@@@@ ## ##### ## @@@@         │ │\n│                         │           @@@@@#############@@@@         │ │\n│                         │          @@@@@@@###########@@@@@@        │ │\n│                         │         @@@@@@@#############@@@@@        │ │\n│                         │         @@@@@@@### ## ### ###@@@@        │ │\n│                         │          @ @  @              @  @        │ │\n│                         │            @                    @        │ │\n│                         ╰──────────────────────────────────────────╯ │\n│ ╭────────────────────────────────────────╮                           │\n│ │ Bob said:                              │                           │\n│ │                                  What? │                           │\n│ ╰────────────────────────────────────────╯                           │\n│              ╭────────────────────────────────────────╮              │\n│              │         * seninha was banned *         │              │\n│              ╰────────────────────────────────────────╯              │\n└──────────────────────────────────────────────────────────────────────┘\n
\n
Imagine scrolling half a screenful to skip a low-effort shitpost…
\n
\n

I fixed those issues by using a single unified instant messaging\nsoftware which speaks several protocols and connects to different\nservices, and whose interface has larger information density (ie'\nmore text visible at once) with limited backlog (ie' finite scroll).\n

\n
┌──────────────────────────────────────────────────────────────────────┐\n│ Bob:      Does that game work on Linux?                              │\n│ Alice:    DO NOT INVOKE HIM!                                         │\n│ Seninha:  I'd just like to interject for a moment.  What you're      │\n│           referring to as Linux, is in fact, GNU/Linux, or as I've   │\n│           recently taken to calling it, GNU plus Linux.              │\n│ Seninha:  Linux is not an operating system unto itself, but rather   │\n│           another free component of a fully functioning GNU system   │\n│           made useful by the GNU corelibs, shell utilities and vital │\n│           system components comprising a full OS as defined by POSIX.│\n│ Alice:    SEE WHAT YOU DID??                                         │\n│ Seninha:  <https://example.com/cache/rms.png>                        │\n│ Bob:      What?                                                      │\n│         * seninha was banned *                                       │\n└──────────────────────────────────────────────────────────────────────┘\n
\n
I have this instead:
\n
\n

HISTORY

\n

Previously, i used four different softwares which, when combined,\nprovides access to telegram from irc:\n

\n\n

I was unsatisfied with that setup for the following issues:\n

\n\n

TODO

\n

Currently, Whatsapp™ is the only service i use which is not proxied to\nirc. In the future, i may addopt a whatsapp-irc gateway. That is not\nurgent, however. I only use Whatsapp™ rarelly, to talk with boomer\nrelatives.\n

\n

In the future, i want to replace hexchat with a unified text user\ninterface, similar to that of the Oberon System or the Acme editor.\nSo text operations (editing, selection, search, plumbing, etc) are\ncommon between all text-based software.\n

\n

BUGS

\n

Hexchat is not maintained anymore.\n

\n

I do not use a bouncer. That is currently not an issue. I cope with\nthat as it would get me a fear of missing out older messages; and make\nme read backlogs every day.\n

\n\n html seninha