tinmop - a client for gemini or pleroma social network
tinmop [OPTION]...
This document assumes basic knowledge of how fediverse works. More information about this topic can be found on the official website (https://docs.joinmastodon.org/).
Tinmop proposes a terminal interface to connect with Pleroma social network and as client for the gemini protocol
gemini://gemini.circumlunar.space/
Without options the program will start a terminal interface and will try to connect to your instance (see Configuration)
Users of Tinmop supposed to interact with the social network using a terminal interface (TUI), The terminal screen layout is sketched below:
#+NAME: screen-layout
#+BEGIN_SRC text
---------------+---------------------------+
| | |
| tags window | thread windows |
| | |
| | modeline |
+---------------+---------------------------+
| | |
| conversations | main window |
| window | |
| | |
| | |
+---------------+---------------------------+
| command window |
+-------------------------------------------
#+END_SRC
The screen is subdivided in five window:
The main way to interact with the program is using the keyboard. By default you can move focus to each window (except command window that can not get focus explicitly) using 'M-arrow key' (meta is ALT on many keyboards). There is a contextual help that appears when the user input data that provide hints about commands and a quick help window that can be shown by hitting ~?~ (if this keybinding has not been customized).
A folder is an object to groups messages for each timeline an arbitrary number of folders can be created, when the last message of a folder is deleted the folder is deleted as well.
The configuration of tinmop is based on text files but there are available two different kind with different syntax and scope.
The distribution of this software comes with a bunch of pre-backed configuration files but user is expected to write a simple file with their credential to log into the server.
This is a simple file with each entry in a single line that look like this:
#+NAME: simple file example #+BEGIN_SRC text
# a line starting with a '#' is a comment
# a file can be included in another with this directive: # use "shared.conf"
# The server instance name server = server address
# your username username = username
#+END_SRC
Not incidentally the information in the example above are the absolute minimum the user has to provide before starts the program and connect to pleroma (to use tinmop as a gemini browser only an empty file will suffice): the name you chose when you made the account on the server and the address of the server.
As you can see a line starting with a # is considered comment and skipped by the program
The file with this credential are confidential and must be put into
user's home directory under the path
$HOME/.local/share/tinmop/main.conf
. Probably the directory
tinmop
does not exists on user system, if it does not exists must
be created manually.
If the program was installed correctly two other files with simple
semantics are located in your system wide configuration directory
(usually /etc/tinmop/
), please check these files for more
information, as they are extensively commented.
Is worth mentioning again that, without an user configuration file, the program can be used as gemini client.
These files contains Common lisp (see https://common-lisp.net/) source code. And are used both as a way to configure the program and to write module for tinmop itself.
These files are the only way to configure program's keybindings: sequence of pressing button to fire command commands (do not worry it is not too difficult!).
These files must be a valid Common Lisp program to allow the program to even starts. Again this is actual source code that is loaded end executed by the main program; be careful, do not copy and paste code from untrusted sources as this could results in a severe security damage.
Again in the configuration directory there is a (commented) file
named init.lisp
that user can use as their starting point to
write their files. A custom init file, or other module files, must
be located into the directory $HOME/.local/share/tinmop/
or
$HOME/.config/tinmop/
(because, you know, data is code and code
is data) to be successfully loaded.
However there is no need to write their own init file if user is happy with the provided one by the package maintainers.
After the configuration the program can be started but we are not ready to join the network yet because tinmop need to be trusted by the server. Just follows the instruction on screen to register the application with your instance. This procedure should be followed once: when the program starts for the first time (but please note that there must be a file with valid credentials available).
For help with pleroma visit the pleroma website:
https://pleroma.social/
For information about gemini:
$ tinmop -o gemini://gemini.circumlunar.space
The program has an inline help (default binding for help is "?")
You can search the help strings with a command (default: "C-h a").
Moreover you can have some useful hint at the program web page:
[https://www.autistici.org/interzona/tinmop/]
There are many, totally unknown, hiding in the code! Please help the programmer to nail them using the issue tracker.
There is always need for help, you can join the developer, sending patches or translating the UI to your favourite language.
Just point your browser to the code repository.
See also the file CONTRIBUTE.org
If you decomment the line:
#+BEGIN_SRC lisp ;;(push :debug-mode features) #+END_SRC
The program will be compiled in debug-mode
this means that a lot
of diagnostic output will be appended to a file named tinmop.log~
in the directory ~$HOME/.local/share/tinmop/
.
The author of this software collects no user data information with this software.
But this software is a client to connect and interact to one or more remote computer. So potentially it could share a lot of information with other actors but just after the user allowed it to do so.
It is the user responsibility to checks the privacy conditions of the instance this software connect to.
By default, pressing "!" will contact the remote service located at: "gemini://houston.coder.town/search".
Moreover launching quick_quicklisp.sh
will contact
https://www.quicklisp.org/, check the
quicklisp sources for
details.
My deep thanks to the folks that provided us with wonderful SBCL and Common lisp libraries.
In particular i want to thanks the authors of the libraries Croatoan and Tooter for their help when I started to develop this program.
There are more people i borrowed code and data from, they are mentioned in the file LINCENSES.org
This program is was born also with the help of CCCP: "Collettivo Computer Club Palermo".
Also thanks to "barbar" for testing of the installation scripts.