tootmage icon indicating copy to clipboard operation
tootmage copied to clipboard

multicolumn terminal mastodon client for shitty nerds

tootmage

multicolumn terminal mastodon client for shitty nerds.

currently in an extremely alpha here-be-dragons state. code contributions, suggestions, issues and such now welcome.

setup.py forthcoming At Some Point (write me one, please!). Needs prompt-toolkit, mastodon.py from github (1.2.0 will work badly, 1.2.1 will be fine when I getaround to releasing it) and possibly a bunch of other stuff.

termwrap is an improved version of ansiwrap (https://github.com/jonathaneunice/ansiwrap) that works with unicode.

setup:

  • you will be prompted for login stuff on first run
  • DO NOT SHARE THE CONTENTS OF THE .secret FILES WITH ANYONE
  • you can change various things in settings.py. looking at it is recommended
  • by default, notification via notify-send and aplay is attempted - turn that off if you don't need / want it (boop sound graciously provided by @[email protected])
  • there are currently two themes - one that uses RGB colours and unicode ("datawitch"), one that uses none of that ("helvetica standard").

basic operation:

  • You can change the active column using either control+pageup/down or alt+arrowup/down
  • You can scroll the active column with pageup/down
  • Enter commands to do stuff - basic line editing and history are available.
  • The commands available are essentially all the functions in Mastodon.py (Compare http://mastodonpy.readthedocs.io/en/latest/), plus some extra, documented below.
  • Commands are autocompleted either when you hit tab, or when they are executed (hit enter). You can enter commands in shortened form, i.e. enter s-p instead of status_post, or just "r" for "status_reply". Use tab autompletion to discover many more shortcuts.
  • You can autocomplete usernames by entering the start of the username (starting with an @) and pressing tab.
  • You can refer to entries in columns while typing your command by entering ".columnnumber.resultnumber". You can refer to the entries of the active column using "#resultnumber"
  • To view a toot, enter ".columnnumber.resultnumber" or #resultnumber" with no further commands - this also expands CWs.
  • You can actually straight up enter python commands - prefix them with ;
  • If the full version of the entered command starts with "status", the first "." in the first toot parameter is optional

additional commands:

  • "toot text" (short t): posts a toot. text is automatically quoted (quotes are escaped)
  • "status_boost toot" (short b): synonym for status_reblog
  • "status_reply toot text" (short r): does magic to automatically prepend the correct mentions to your post and maintain CWs and such. Also auto-quotes.
  • "status_view toot number": (short v): runs a function (specified in the settings) with the url of the toot as parameter. optionally pass a number as the second parameter to view a numbered url in a toot. the default settings just open firefox, but you could also e.g. make the command put the URL in a HTML file that you can then look at in your browser
  • "status_expand toot" (short x): expands a conversation
  • "quit": does that

things that are bad still and/or known bugs

  • visibility is not retained in replies
  • can't scroll horizontally yet - hope your screen is wide enough (overflow gets cut off on the right)
  • currently no easy way to specify CW, visibility, attach media - have to use the full status_post command to do it
  • everything is a bit user-unfriendly, error output is terrible
  • documentation is bad
  • resizing temporarily breaks screen

screenshots: datawitch helvetica standard