RasmusLindroth / tut

Licence: MIT license
TUI for Mastodon with vim inspired keys

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to tut

gomphotherium
Gomphotherium (/ˌɡɒmfəˈθɪəriəm/; "welded beast"), a command line Mastodon client.
Stars: ✭ 22 (-86.67%)
Mutual labels:  tui, mastodon, terminal-based, mastodon-app, mastodon-client
iMast
📱🐘 3rd-party Mastodon Client for iOS
Stars: ✭ 93 (-43.64%)
Mutual labels:  mastodon, mastodon-app, mastodon-client
Ftxui
💻 C++ Functional Terminal User Interface. ❤️
Stars: ✭ 433 (+162.42%)
Mutual labels:  tui, terminal-based
Toot
toot - Mastodon CLI & TUI
Stars: ✭ 455 (+175.76%)
Mutual labels:  tui, mastodon
Ox
An independent Rust text editor that runs in your terminal!
Stars: ✭ 2,634 (+1496.36%)
Mutual labels:  tui, terminal-based
stui
A Slurm dashboard for the terminal.
Stars: ✭ 36 (-78.18%)
Mutual labels:  tui, terminal-based
Spotui
Spotify in the terminal 💻🎶
Stars: ✭ 302 (+83.03%)
Mutual labels:  tui, terminal-based
Jexer
Java Text User Interface
Stars: ✭ 174 (+5.45%)
Mutual labels:  tui, terminal-based
tfex-rs
A simple terminal UI file manager
Stars: ✭ 29 (-82.42%)
Mutual labels:  tui, terminal-based
cryptgo
A terminal application to watch crypto prices!
Stars: ✭ 123 (-25.45%)
Mutual labels:  tui, terminal-based
resto
🔗 a CLI app can send pretty HTTP & API requests with TUI
Stars: ✭ 113 (-31.52%)
Mutual labels:  tui, terminal-based
secman
[Archived] 👊 Human-friendly and amazing secrets manager.
Stars: ✭ 63 (-61.82%)
Mutual labels:  tui, terminal-based
Fediverse.app
A client for Pleroma and Mastodon instances written using Flutter
Stars: ✭ 72 (-56.36%)
Mutual labels:  mastodon, mastodon-client
Py cui
A python library for intuitively creating CUI/TUI interfaces with widgets, inspired by gocui.
Stars: ✭ 380 (+130.3%)
Mutual labels:  tui, terminal-based
mangadesk
Terminal client for MangaDex 📖
Stars: ✭ 569 (+244.85%)
Mutual labels:  tui, terminal-based
Grofer
A system and resource monitoring tool written in Golang!
Stars: ✭ 135 (-18.18%)
Mutual labels:  tui, terminal-based
Moe
A command line based editor inspired by vi/vim. Written in Nim.
Stars: ✭ 252 (+52.73%)
Mutual labels:  tui, terminal-based
xplr
A hackable, minimal, fast TUI file explorer
Stars: ✭ 2,271 (+1276.36%)
Mutual labels:  tui, terminal-based
KnzkApp
A Open-Source Mastodon Client
Stars: ✭ 42 (-74.55%)
Mutual labels:  mastodon-app, mastodon-client
termshark
A terminal UI for tshark, inspired by Wireshark
Stars: ✭ 7,368 (+4365.45%)
Mutual labels:  tui

Tut - a Mastodon TUI

Release web tut tut-bin @tut

A TUI for Mastodon with vim inspired keys. The program has most of the features you can find in the web client.

Press C to create a new toot and N to focus on your notifications.

You can find Linux binaries under releases.

Preview Preview 2

Table of contents

Currently supported commands

  • :q :quit exit
  • :timeline home, local, federated, direct, notifications, favorited
    • :tl h, l, f, d, n, fav (shorter form)
  • :blocking lists users that you have blocked
  • :boosts lists users that boosted the toot
  • :bookmarks lists all your bookmarks
  • :compose compose a new toot
  • :favorited lists toots you've favorited
  • :favorites lists users that favorited the toot
  • :h :help view help
  • :lists show a list of your lists
  • :list-placement top, right, bottom, left
  • :list-split row, column
  • :muting lists users that you have muted
  • :preferences update your profile and some other settings
  • :profile go to your profile
  • :proportions [int] [int], where the first integer is the list and the other content, e.g. :proportions 1 3
  • :requests see following requests
  • :saved alias for bookmarks
  • :tag followed by the hashtag e.g. :tag linux
  • :user followed by a username e.g. :user rasmus to narrow a search include
  • :window switch window by index (zero indexed) e.g. :window 0 for the first window.

Keys without description in tut

  • c = Compose a new toot
  • jk = navigation up and down in feed
  • hl = cycle through feeds without closing them as you do with q and ESC
  • arrow keys = navigation. Same as jk and hl
  • g or Home = go to top
  • G or End = go to bottom
  • ? = view help
  • q = go back and quit
  • ESC = go back

Explanation of the non obvious keys when viewing a toot

  • V = view. In this mode you can scroll throught the text of the toot if it doesn't fit the screen
  • O = open. Gives you a list of all URLs in the toot. Opens them in your default browser, if it's an user or tag they will be opened in tut.
  • M = media. Opens the media with xdg-open.

Configuration

Tut is configurable, so you can change things like the colors, the default timeline, what image viewer to use and some more. Check out the configuration file to see all the options.

You find it in XDG_CONFIG_HOME/tut/config.ini which usally equals to ~/.config/tut/config.ini.

You can find an updated configuration file in this repo named config.example.ini. If there are any new configurations options you can copy them frome that file.

Install instructions

Binary releases

Head over to https://github.com/RasmusLindroth/tut/releases

Arch and Manjaro

You can find it in the Arch User Repository (AUR). I'm the maintainer there.

https://aur.archlinux.org/packages/tut/ https://aur.archlinux.org/packages/tut-bin/

You can also use tut-mastodon. Currently aur/tut collides with a package named tut if you're running Manjaro ARM. So if you face the same problem you can use this package instead. I suggest you add an alias for tut-mastodon to tut in the config for your shell. Usually .bashrc or .zshrc.

alias tut='tut-mastodon'

https://aur.archlinux.org/packages/tut-mastodon/

Alpine Linux

tut package is available in the community repository.

https://pkgs.alpinelinux.org/package/edge/community/x86_64/tut

Debian

http://packages.azlux.fr/ (I'm not the maintainer)

FreeBSD

https://www.freshports.org/net-im/tut (I'm not the maintainer)

Build it yourself

If you don't use the binary that you find under releases you will need Go. Use a newer one that supports modules.

# Fetches and installs tut. Usally /home/user/go/bin
go get -u github.com/RasmusLindroth/tut

# You can also clone the repo if you like
# First clone this repository
git clone https://github.com/RasmusLindroth/tut.git

# Go to that folder
cd tut

# Build or install

# Install (usually /home/user/go/bin)
go install

# Build (same directory i.e. ./ )
go build

If you choose to install and want to be able to just run tut you will have to add go/bin to your $PATH.

Flags and commands

Commands:
    example-config - creates the default configuration file in the current directory and names it ./config.example.ini

Flags:
    --help -h - prints this message
    --version -v - prints the version
    --new-user -n - add one more user to tut
    --user <name> -u <name> - login directly to user named <name>
        Don't use a = between --user and the <name> 
        If two users are named the same. Use full name like [email protected]

Templates

You can customise how toots and user profiles are displayed with a Go text/template.

You'll have to place a file named toot.tmpl and/or user.tmpl in XDG_CONFIG_HOME/tut/ which usually equals to ~/.config/tut/.

You can copy ./config/toot.tmpl and ./config/user.tmpl from this repo manually or with curl or wget.

cd ~/.config/tut

# using curl
curl -o toot.tmpl https://raw.githubusercontent.com/RasmusLindroth/tut/master/config/toot.tmpl

curl -o user.tmpl https://raw.githubusercontent.com/RasmusLindroth/tut/master/config/user.tmpl

# using wget
wget https://raw.githubusercontent.com/RasmusLindroth/tut/master/config/toot.tmpl

wget https://raw.githubusercontent.com/RasmusLindroth/tut/master/config/user.tmpl

The data available for you in toot.tmpl is two structs. The first one is the Toot-struct, you can see all fields in ./ui/item_status.go. The second one is the Style-struct. You can find the fields for style in ./config/config.go.

You acces them with .Toot and .Style in your template file.

The data available in user.tmpl is almost the same. You still have the Style but instead of Toot you have a struct named User. You can see all fields in ./ui/item_user.go.

Password manager for secrets

If you run pass, gopass or something similar you can protect your secrets. You'll have to manually update your accounts.toml. It should be located at ~/.config/tut/accounts.toml. Currently you can only hide ClientID, ClientSecret and AccessToken. The command must be prefixed with !CMD!. Here's an example of what the file can look like.

[[Accounts]]
Name = 'tut'
Server = 'https://fosstodon.org'
ClientID = '!CMD!gopass show -o -f misc/tut-id'
ClientSecret = '!CMD!gopass show -o -f misc/tut-secret'
AccessToken = '!CMD!gopass show -o -f misc/tut-token'

Thanks to

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].