mirror of https://codeberg.org/cage/tinmop/
722 lines
25 KiB
Org Mode
722 lines
25 KiB
Org Mode
#+TITLE: tinmop
|
|
|
|
* Name
|
|
|
|
tinmop - a client for gemini, gopher, pleroma social network and 9p protocol over TLS
|
|
|
|
* Synopsis
|
|
|
|
tinmop [OPTION]…
|
|
|
|
* Description
|
|
|
|
This document assumes basic knowledge of how fediverse works. More
|
|
information about this topic can be found on the following websites:
|
|
|
|
- [[https://en.wikipedia.org/wiki/Fediverse]] ;
|
|
- [[https://pleroma.social/]] ;
|
|
- [[https://docs.joinmastodon.org/]] .
|
|
|
|
|
|
Tinmop proposes an extensible terminal interface to connect with
|
|
Pleroma social network, the gemini and gopher protocol
|
|
|
|
- gemini://gemini.circumlunar.space/
|
|
- [[https://gemini.circumlunar.space/docs/]]
|
|
|
|
Finally tinmop can connect to network file system using 9p protocol
|
|
over TLS (using client certificates as authentication method).
|
|
|
|
For more information about this feature, please visit:
|
|
[[https://kamid.omarpolo.com/]].
|
|
|
|
* Options
|
|
|
|
Without options the program will start a terminal interface and will
|
|
try to connect to your instance (see [[Configuration]]) + -o, --open-net-address ARG :: Open net address (currentli only gemini or 9p)
|
|
+ -m, --notify-mentions ARG :: Notify messages that mentions the user + -R, --reset-timeline-pagination ::
|
|
Reset the timeline pagination. By default the new toots are fetched
|
|
starting from the last one downloaded from the instance, this switch
|
|
will force the program to fetch the last message posted by users
|
|
+ -G, --gemini-client-only :: Start as gemini client only + -c, --check-follows-requests :: Checks for follow request at start
|
|
+ -e, --execute-script SCRIPT-FILE :: Execute a script file + -f, --folder FOLDER-NAME :: Start on that folder
|
|
+ -h, --help :: print program help and exit + -t, --timeline TIMELINE-NAME :: Start using this timeline
|
|
+ -u, --update-timeline :: Update the selected timeline
|
|
+ -v, --version :: Print program version and exit
|
|
|
|
* Usage
|
|
|
|
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:
|
|
|
|
- tag window :: shows the tag users subscribed for and available messages for each tag;
|
|
|
|
- threads window :: for a given timeline and folder (see [[Folders]]) show the discussions saved in user's local database;
|
|
|
|
- conversations window :: show the /private/ conversations the user is having with others;
|
|
|
|
- main window :: show the body of the message selected in the tag window or gemini page
|
|
|
|
- command window :: the window where the user instruct the software to perform commands
|
|
|
|
|
|
Using the program in gemini exclusive mode (option *"-G"*) the program layout is simplified:
|
|
|
|
#+NAME: screen-layout-gemini-fullscreen
|
|
#+BEGIN_SRC text
|
|
|
|
+------------------------------------------+
|
|
| |
|
|
| main window |
|
|
| |
|
|
| |
|
|
| |
|
|
+------------------------------------------+
|
|
| command window |
|
|
+------------------------------------------+
|
|
|
|
#+END_SRC
|
|
|
|
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).
|
|
|
|
** Command window keys
|
|
|
|
The command window has a few hardcoded command keys to interact
|
|
with it:
|
|
|
|
- the *left* and *right* arrow keys move the cursor;
|
|
- the key *home* and *end* move the cursor to the start and end of
|
|
the input respectively;
|
|
- *canc* and *backspace* delete the next and previous character
|
|
respectively;
|
|
- the *new line* (often called *enter* key) send the input to the
|
|
program;
|
|
- *C-k* (that is: "press 'control' and while pressed press 'k') /kills/ (deletes) the text from the cursor position to the end of
|
|
the input previously typed;
|
|
- press *M-left* and *M-right* (*left alt* and *left* or *right*
|
|
arrow together) to browse pages of the suggestion window; the
|
|
suggestion window is a window that holds a previously inputted
|
|
data that are compatible with the string the user is typing into
|
|
the command window;
|
|
- if suggestions are gemini URI press *TAB* to input the current
|
|
selected suggestion;
|
|
- if suggestion window is *not* rendered, pressing *up* and *down*
|
|
arrow keys will cycle through input history, if there is not a
|
|
suggestion window rendered pressing *up* and *down* will scroll
|
|
on suggestions.
|
|
|
|
** Folders
|
|
|
|
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.
|
|
|
|
* Configuration
|
|
|
|
The configuration of tinmop is based on text files but there are
|
|
available two different kind with different syntax and scope.
|
|
|
|
- a key-value text files used to configure the access credential to
|
|
server and visual theme of the program (simple configuration);
|
|
|
|
- common lisp source code. Used to write module (AKA plugin) and to
|
|
configure keybindings to interact with the software.
|
|
|
|
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.
|
|
|
|
** Simple configuration
|
|
|
|
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 (see the "-G" command line
|
|
switch on top of this manual).
|
|
|
|
** Lisp program
|
|
|
|
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/~.
|
|
|
|
However there is no need to write their own init file if user is
|
|
happy with the provided one by the package maintainers.
|
|
|
|
* First time start
|
|
|
|
After the configuration the program can be started but we are not
|
|
ready to join the fediverse 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).
|
|
|
|
There is no additional steps to follow to connect to gemspace,
|
|
instead.
|
|
|
|
* Gempub support
|
|
|
|
Tinmop maintains a gempub library scanning a directory on your
|
|
file system (library directory); the library directory path can be
|
|
set using the configuration directive:
|
|
|
|
#+BEGIN_SRC text
|
|
|
|
gempub.directory.library = /absolute/path/to/your/gempub/library
|
|
|
|
#+END_SRC
|
|
|
|
the default value is ~$XDG_DATA_HOME~ (usually something like ~$HOME/.local/share/tinmop/~).
|
|
|
|
Using *'M-g g l'* the library can be inspected using a simple query
|
|
language (similar to SQL) that search in the metadata of the gempub
|
|
files, example of query follows:
|
|
|
|
#+BEGIN_SRC text
|
|
|
|
where author like "calvino" and published < "1980"
|
|
|
|
where author like "cal%" or published = "1980"
|
|
|
|
#+END_SRC
|
|
|
|
Valid search keys are:
|
|
|
|
- title;
|
|
- author;
|
|
- language;
|
|
- description;
|
|
- publish-date;
|
|
- revision-date;
|
|
- published;
|
|
- copyright.
|
|
|
|
You can use ~< > = != <= >= like~ operators for comparison and the
|
|
two logical operator ~and~ and ~or~, the character ~%~ act like a
|
|
wildcard and means: /'any sequence of character'/.
|
|
|
|
Note that the right hand side of the operator must be wrapped in
|
|
quotes.
|
|
|
|
After the search is performed a window with the results is shown,
|
|
selecting an item of this window will open the gempub and will add
|
|
all its table of contents on the tour mode, so that the book could
|
|
be browsed.
|
|
|
|
For more information on tour mode see below or use *'C-h A <enter> tour mode'*.
|
|
|
|
* Tour mode
|
|
|
|
Tinmop maintains a queue of links that can be then visited by the
|
|
user, this queue is called *tour*.
|
|
|
|
There are two ways to add a link to the tour:
|
|
|
|
- when a link window is open and focused pressing *t* will start a
|
|
prompt for link indices to be saved in the tour; the prompt expect
|
|
a simple, comma or space separated, list of indices or index range, index
|
|
range is a couple of index separated by a dash, example below:
|
|
|
|
#+BEGIN_SRC text
|
|
1 2 5 8-12
|
|
#+END_SRC
|
|
|
|
The string above will save the link index number 1, 2, 3, 5, 8, 9,
|
|
10, 11, 12 to the tour.
|
|
|
|
The other way to add links to the tour is using the command *'gemlog-add-unread-posts-tour'* (default keychord: *'M-g s t a'*)
|
|
that will add all the unread posts to the tour.
|
|
|
|
There are a few more useful command to manipulate the tour:
|
|
|
|
- next-tour-link :: (*'M-t t'* or just 't' if a gemini window is focused)
|
|
follows the next link in the tour;
|
|
|
|
- show-tour-links :: (*'M-t s'* or just *'T'* if a gemini window is focused)
|
|
shows the contents of the tour in a link window
|
|
|
|
- clean-all-tour :: (*'M-t c'*)
|
|
|
|
- shuffle-tour :: (*'M-t S'*) shuffle the contents of the tour
|
|
|
|
* How to get more help
|
|
|
|
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 "?"), a
|
|
manpage (default binding to view the manpage is "C-h m") and inline
|
|
help can be searched (default: "C-h A").
|
|
|
|
Moreover you can have some useful hint at the program web page:
|
|
|
|
[https://www.autistici.org/interzona/tinmop/]
|
|
|
|
* Default keybindings
|
|
|
|
** Global keymap
|
|
|
|
- ! :: gemini-search
|
|
- > :: open-net-address
|
|
- ? :: print-quick-help
|
|
- C-a :: show-about-window
|
|
- C-h A :: apropos-help-global
|
|
- C-h a :: apropos-help
|
|
- C-h h :: print-quick-help
|
|
- C-h m :: open-manual
|
|
- M-c :: open-chats-list-window
|
|
- M-down :: pass-focus-on-bottom
|
|
- M-e :: eval-command
|
|
- M-g c i :: import-gemini-certificate
|
|
- M-g c s :: gemini-open-certificates-window
|
|
- M-g g b s :: display-bookmark
|
|
- M-g g l :: open-gempub-library
|
|
- M-g s o :: gemini-open-gemlog-window
|
|
- M-g s r :: gemlog-refresh-all
|
|
- M-g s t a :: gemlog-add-unread-posts-tour
|
|
- M-l :: load-script-file
|
|
- M-left :: pass-focus-on-left
|
|
- M-right :: pass-focus-on-right
|
|
- M-s l :: message-window-lock-scrolling
|
|
- M-s u :: message-window-unlock-scrolling
|
|
- M-t S :: shuffle-tour
|
|
- M-t c :: clean-all-tour
|
|
- M-t s :: show-tour-links
|
|
- M-t t :: next-tour-link
|
|
- M-up :: pass-focus-on-top
|
|
- q :: quit
|
|
|
|
** Follow request window
|
|
|
|
- C-J :: process-follow-requests
|
|
- d :: follow-request-delete
|
|
- down :: follow-request-go-down
|
|
- q :: cancel-follow-requests
|
|
- up :: follow-request-go-up
|
|
|
|
** Send post window
|
|
|
|
- C-J :: send-message
|
|
- d :: attach-delete
|
|
- down :: attach-go-down
|
|
- e :: edit-message-body
|
|
- m :: change-mentions
|
|
- q :: cancel-send-message
|
|
- s :: change-subject
|
|
- up :: attach-go-up
|
|
- v :: change-visibility
|
|
|
|
** Thread window
|
|
|
|
- / b :: thread-search-next-message-body
|
|
- / m :: thread-search-next-message-meta
|
|
- C-I :: thread-search-next-unread-message
|
|
- C-J :: thread-open-selected-message
|
|
- C-X m b :: boost-selected-status
|
|
- C-X m f :: favourite-selected-status
|
|
- C-X m r b :: unboost-selected-status
|
|
- C-X m r f :: unfavourite-selected-status
|
|
- C-X m s :: subscribe-to-hash
|
|
- C-X m t :: move-message-tree
|
|
- C-X m u :: unsubscribe-to-hash
|
|
- C-c c :: change-conversation-name
|
|
- C-c o :: open-conversation
|
|
- C-c u :: update-conversations
|
|
- C-f c :: change-folder
|
|
- C-t R :: reset-timeline-pagination
|
|
- C-t U :: update-current-timeline-backwards
|
|
- C-t c :: change-timeline
|
|
- C-t h r :: refresh-tags
|
|
- C-t u :: update-current-timeline
|
|
- C-u c k g :: crypto-generate-key
|
|
- C-u c k i :: crypto-import-key
|
|
- C-u c k s :: crypto-export-key
|
|
- C-u f :: follow-user
|
|
- C-u i :: ignore-user
|
|
- C-u r f :: start-follow-request-processing
|
|
- C-u r r :: report-status
|
|
- C-u u :: unfollow-user
|
|
- C-u v a :: view-user-avatar
|
|
- C-u x :: unignore-user
|
|
- D :: delete-post-using-regex
|
|
- M-u :: delete-and-move-previous
|
|
- N :: repeat-search
|
|
- P :: poll-vote
|
|
- U :: thread-mark-prevent-delete-selected-message
|
|
- X :: refresh-thread-totally
|
|
- \ \ b :: thread-search-previous-message-body
|
|
- \ \ m :: thread-search-previous-message-meta
|
|
- c :: compose-message
|
|
- d :: delete-and-move-next
|
|
- dc :: thread-mark-delete-selected-message
|
|
- down :: thread-go-down
|
|
- end :: thread-goto-last-message
|
|
- g :: thread-goto-message
|
|
- home :: thread-goto-first-message
|
|
- l :: open-message-link
|
|
- left :: open-previous
|
|
- n :: thread-search-next-unread-message
|
|
- r :: reply-message
|
|
- right :: open-next
|
|
- up :: thread-go-up
|
|
- v :: open-message-attach
|
|
- x :: refresh-thread
|
|
- | :: send-message-to-pipe
|
|
|
|
** Posts window
|
|
|
|
- / :: message-search-regex
|
|
- C-J :: message-scroll-down
|
|
- N :: repeat-search
|
|
- down :: message-scroll-down
|
|
- end :: message-scroll-end
|
|
- home :: message-scroll-begin
|
|
- left :: message-scroll-left
|
|
- npage :: message-scroll-next-page
|
|
- ppage :: message-scroll-previous-page
|
|
- right :: message-scroll-right
|
|
- up :: message-scroll-up
|
|
- | :: send-to-pipe
|
|
- b :: net-address-history-back
|
|
|
|
** Gemini viewer window
|
|
|
|
- / :: message-search-regex
|
|
- C-J :: message-scroll-down
|
|
- C-[ :: go-to-previous-link
|
|
- C-] :: go-to-next-link
|
|
- C-b a :: bookmark-gemini-page
|
|
- C-b d :: delete-gemini-bookmark
|
|
- C-b s :: display-bookmark
|
|
- I M :: collect and join together all the images linked from a gemini page and then display the resulting images
|
|
- N :: repeat-search
|
|
- O :: open-gemini-toc
|
|
- T :: show-tour-links
|
|
- U :: gemini-view-source
|
|
- ] :: open-next-visible-link
|
|
- b :: net-address-history-back
|
|
- c :: gemini-open-certificates-window
|
|
- d :: gemini-open-streams-window
|
|
- down :: message-scroll-down
|
|
- end :: message-scroll-end
|
|
- home :: message-scroll-begin
|
|
- l :: open-message-link
|
|
- left :: message-scroll-left
|
|
- npage :: message-scroll-next-page
|
|
- p :: message-toggle-preformatted-block
|
|
- ppage :: message-scroll-previous-page
|
|
- r :: gemini-refresh-page
|
|
- right :: message-scroll-right
|
|
- s :: gemini-subscribe-gemlog
|
|
- t :: next-tour-link
|
|
- up :: message-scroll-up
|
|
- | :: send-to-pipe
|
|
|
|
** Gemini page table of contents window
|
|
|
|
- C-J :: gemini-toc-scroll-down-page
|
|
- down :: gemini-toc-scroll-down
|
|
- n :: gemini-toc-scroll-down-page
|
|
- p :: gemini-toc-scroll-up-page
|
|
- q :: gemini-toc-close
|
|
- up :: gemini-toc-scroll-up
|
|
|
|
** Gemini stream window
|
|
|
|
- C-J :: gemini-streams-window-open-stream
|
|
- a :: gemini-abort-download
|
|
- down :: gemini-streams-window-down
|
|
- q :: gemini-streams-window-close
|
|
- up :: gemini-streams-window-up
|
|
|
|
** gemini certificates window
|
|
|
|
- d :: delete selected certificate
|
|
- C-J :: print information for the selected certificate
|
|
- down :: gemini-certificate-window-go-down
|
|
- q :: gemini-close-certificate-window
|
|
- up :: gemini-certificate-window-go-up
|
|
|
|
** Gemini subscription window
|
|
|
|
- C-J :: show-gemlog-to-screen
|
|
- d :: gemlog-cancel-subscription
|
|
- down :: gemlogs-subscription-go-down
|
|
- l :: open-message-link
|
|
- q :: close-gemlog-window
|
|
- up :: gemlogs-subscription-go-up
|
|
|
|
** Gempub library window
|
|
|
|
- C-J :: gempub-open-file
|
|
- down :: gempub-library-window-go-down
|
|
- q :: gempub-library-window-close
|
|
- up :: gempub-library-window-go-up
|
|
|
|
** Post's tag window
|
|
|
|
- C-J :: open-tag-folder
|
|
- U :: unsubscribe-to-hash
|
|
- down :: tag-go-down
|
|
- r :: refresh-tags
|
|
- up :: tag-go-up
|
|
|
|
** Conversations window
|
|
|
|
- C-J :: goto-conversation
|
|
- C-c c :: change-conversation-name
|
|
- I :: ignore-conversation
|
|
- dc :: delete-conversation
|
|
- down :: conversation-go-down
|
|
- up :: conversation-go-up
|
|
|
|
** Attachments window
|
|
|
|
- C-J :: open-message-attach-perform-opening
|
|
- a :: open-all-message-attachments
|
|
- down :: open-message-attach-go-down
|
|
- q :: close-open-attach-window
|
|
- up :: open-message-attach-go-up
|
|
|
|
** Links window
|
|
|
|
- / :: search-link-window
|
|
- C-J :: open-message-link-perform-opening
|
|
- N :: repeat-search
|
|
- T :: save-selected-message-in-tour
|
|
- down :: open-message-link-go-down
|
|
- e :: open-message-link-open-enqueue
|
|
- q :: close-open-message-link-window
|
|
- t :: tour-mode-link
|
|
- up :: open-message-link-go-up
|
|
|
|
** Chats list window
|
|
|
|
- C-J :: show-chat-to-screen
|
|
- R :: refresh-chats
|
|
- c :: chat-create-new
|
|
- down :: chat-list-go-down
|
|
- l :: change-chat-label
|
|
- q :: close-chats-list-window
|
|
- r :: refresh-chat-messages
|
|
- up :: chat-list-go-up
|
|
|
|
** Chat window
|
|
|
|
- / :: message-search-regex
|
|
- M-c :: write-to-chat
|
|
- a :: open-chat-link-window
|
|
- down :: message-scroll-down
|
|
- end :: message-scroll-end
|
|
- home :: message-scroll-begin
|
|
- npage :: message-scroll-next-page
|
|
- ppage :: message-scroll-previous-page
|
|
- up :: message-scroll-up
|
|
|
|
** File explorer
|
|
|
|
- / :: file-explorer-search
|
|
- C-J :: file-explorer-open-node
|
|
- D :: file-explorer-delete-tree
|
|
- M d :: file-explorer-download-mirror
|
|
- M u :: file-explorer-upload-mirror
|
|
- M-m :: file-explorer-mark-by-regexp
|
|
- N :: repeat-search
|
|
- X :: file-explorer-delete-marked
|
|
- a :: file-explorer-create-path
|
|
- c :: file-explorer-close-path
|
|
- d :: file-explorer-download-path
|
|
- down :: file-explorer-go-down
|
|
- e :: file-explorer-edit-file
|
|
- end :: file-explorer-scroll-end
|
|
- home :: file-explorer-scroll-begin
|
|
- i :: file-explorer-node-details
|
|
- m :: file-explorer-mark-entry
|
|
- q :: file-explorer-close-window
|
|
- r :: file-explorer-rename-path
|
|
- u :: file-explorer-upload-path
|
|
- up :: file-explorer-go-up
|
|
- x :: file-explorer-expand-path
|
|
|
|
** Gopher window
|
|
|
|
- up :: gopher-window:go-to-previous-link
|
|
- down :: gopher-window:go-to-next-link
|
|
- k :: gopher-window:go-to-previous-link
|
|
- j :: gopher-window:go-to-next-link
|
|
- C-J :: gopher-window:open-menu-link
|
|
- b :: net-address-history-back
|
|
- C-b a :: bookmark-gopher-page
|
|
- C-b s :: display-bookmark
|
|
- C-b d :: delete-gemini-bookmark
|
|
|
|
* BUGS
|
|
|
|
There are many, totally unknown, hiding in the code; this is scary!
|
|
😱 Please help the programmer to nail them using the
|
|
[[https://notabug.org/cage/tinmop/issues/][issue tracker]].
|
|
|
|
* Contributing
|
|
|
|
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
|
|
[[https://notabug.org/cage/tinmop/][code repository]].
|
|
|
|
See also the file CONTRIBUTE.org
|
|
|
|
** Debug mode
|
|
|
|
If you uncomment 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/~.
|
|
|
|
* Files
|
|
|
|
- ~$HOME/.local/share/tinmop/db.sqlite3~: the program database
|
|
- ~$HOME/.local/share/tinmop/client~: the program credentials to connect with the instance *keep private!*
|
|
- ~$HOME/.local/share/tinmop/tinmop.log~: this file is created only for debugging and should not be enabled in binary package distribution (see [[Contributing]]).
|
|
- ~/etc/tinmop/default-theme.conf~: default visual style
|
|
- ~/etc/tinmop/shared.conf~: some default configuration not related to themes
|
|
- ~/etc/tinmop/init.lisp~: system wide configuration
|
|
- ~$HOME/.config/tinmop/init.lisp~: user configuration
|
|
- ~$HOME/.config/tinmop/main.conf~: user configuration (simple format)
|
|
|
|
* Privacy
|
|
|
|
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
|
|
[[https://beta.quicklisp.org/quicklisp.lisp][quicklisp sources]] for
|
|
details.
|
|
|
|
* Acknowledgment
|
|
|
|
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 was born also with the help of CCCP: "Collettivo
|
|
Computer Club Palermo".
|
|
|
|
Also thanks to "barbar" for testing of the installation scripts.
|