Package: toot-tooi
tooitooi is a text-based user interfaces for Mastodon, Pleroma and friends. The name
is a portmantou oftootandTUI.It uses theTextual framework.Source code:https://github.com/ihabunek/tooiPython package:https://pypi.org/project/toot-tooi/IRC chat: #toot channel on libera.chatNB: Coud not gettooias Python project name, if someone knows python people
ask them kindly to approvethis request.Project statusThis project is in its early days and thingswillchange without notice.While we aim to keep the project usable at all times, expect that things may
break before we hit version 1.0.InstallationCurrently tooi requirestootfor logging
into instances.The recommended method of installation is usingpipxwhich installs python projects into their own virtual environments.Follow thepipx installation guideto set it up.Install toot and tooi by running:pipx install toot
pipx install toot-tooiAlternatively, if you know what you're doing, install both projects from pypi
using your favourite method.UsageBefore first use, runtoot loginto log into your mastodon instance.Tooi will authenticate as the currently activetootuser. You can check who
you're logged in as by runningtoot whoami, and switch accounts usingtoot activate.Launch the program by runningtooi.Runtooi --helpto see the available commandline options.Key bindingsGeneric bindings:Arrow keys orh/j/k/l- move up/down/left/rightTabandShift+Tab- move between focusable componentsSpaceorEnter- activate buttons and menu itemsManaging tabs:.- refresh timeline/- open search tab1-9- switch between open tabsCtrl+d- close current tabg- open new tab ("goto")Status bindings:a- show accountb- boost statusd- delete statuse- edit statusf- favourite statusm- show mediar- reply to statuss- reveal sensitivet- show threadu- show toot sourceSetting up a dev environmentCheck out tooi and install in a virtual environment:git clone https://github.com/ihabunek/tooi.git
cd tooi
python3 -m venv _env
source _env/bin/activate
pip install --editable ".[dev]"Run the app by invokingtooi.To use theTextual console, run
it in a separate terminal window:textual consoleThen run tooi like this:textual run --dev tooi.cli:mainCode style and lintingRule of thumb: look at existing code, try to keep it similar in style.Please runmake lintto check formatting before sending a patch. This runs
flake8 which checks for some basic code style rules. It shouldn't be too
aggressive, and if you're bothered by a rule, let me know.Lines can be upto 100 characters wide, wrap them if they go over that.Wrapping styleWrapping style is not enforced by the linter, but this is the preferred style
most of the time:# NO: Do not wrap after opening parenvery_long_package_name.even_longer_long_function_call(first_argument,second_argument,third_argument)# YES: Align arguments on next tabvery_long_package_name.even_longer_long_function_call(first_argument,second_argument,third_argument)Type checkingYou're encouraged to specify types in your code. While they can be a bit of a
pain in Python, I have found them to be useful in locating errors and
eliminating potential bugs.This project is configured to usepyrightfor type checking, and I
recommend that you install the pyright language server if it's available for
your editor. Currently it returns errors in some places, some of which are
caused by the way textual is implemented. So it's not required to have zero
errors before submitting patches, but it will indicate problems in new code.