Text-Based User Interfaces (TUI; CLI) 💻🖮

138 readers
1 users here now

Forum for advanced users who grok the power of text-based apps, the advantage of tmux/GNU screen, the keyboard and who often find the mouse a hinderance to a fast workflow. A text-based UI is also a decent escape from enshitified resources.

This forum broadly covers tools, hacks, and advocacy of text-based environments.

Slightly marginally kind of related:

founded 1 year ago
MODERATORS
1
17
submitted 1 year ago* (last edited 1 year ago) by evenwicht to c/text_ui
2
 
 
3
4
 
 

Dumbing down of technology and competency over the past decade has led to a number of situations where sophisticated users are actually the ones being marginalised.

  • PDFs are being wrapped with some exclusive JavaScript garbage that only works for GUI users. Terminal users are losing the ability to simply download PDFs. Links to files with a “.pdf” extension are often not actually PDFs anymore - they are HTML w/js embedded masquerading as PDFs. Mozilla is on board with this deception.
  • Ethernet: public libraries have disabled ethernet ports, mostly. Some librarians even go apeshit when someone plugs into them (not understanding that it’s another way for wifi-less people to connect). You either subscribe to mobile phone service & disclose your number to pass the captive portal’s verfication, or you can fuck off, as far as the library is concerned. And yes, people are generally okay with /public/ libraries excluding people this way.
  • The value of compatibility is totally lost. Young network admins just assume everyone runs the same latest browser as them, and that everyone has a recent model smartphone. If you don’t buy a new phone every couple years, they believe it’s your fault you’re excluded. The concept of design and engineering for compatibility is a lost competency. The word “compatibility” is becoming history despite the decline of interoperability. Soon dictionaries will tag the entry for “compatibility” with “(rarely used)”.
  • We can no longer access public services like court system search tools, business registries, and public libraries book catalogs from a text terminal. The drive to dumb everything down has led to fancy UIs that work with fewer clients.
  • Access restrictions block access to resources unless you have a non-Tor IP address. Sophisticated users know better than to expose their personal IP addresses while also exposing to their ISP where they go. Sophisticated users are in such a small minority that it’s trivial to oppress them.
  • Using asymetric encryption to protect email payloads was a thing in the 90s. Who predicted that we would /devolve/ to 100% in-the-clear email payloads ~25 years later?

There are a lot more examples but to cut to the chase: How did we fuck this up?

Instead of teaching users to become sophisticated, as a society we just threw in the towel and decided we cannot teach people.. that they cannot even learn the speed and utility of terminals and keyboards. So we said “fuck it, give everyone a GUI and a mouse”. And so now we are at a point where even the technicians themselves seem to be helpless without a GUI and mouse, so they are oblivious to the demographic of users who are slowed down by their UIs.

Then we decided: since everyone has a GUI and a mouse, throw graphical CAPTCHAs their way. Surely no one uses terminals anymore, right? And why stop there.. get rid of documents (simple HTML).. make every webpage an /application/ instead, because surely everyone can run any random JavaScript we shoot their way.

This is not to say low tech users should be left behind. Indeed some people are truly incapable of terminals, scripting, Tor, PGP, etc. The problem is catoring for the tech illiterates exclusively results in disempowering sophisticated users.

It parallels the situation where classroom instruction moves so slow for some of the faster learners at the top of the class that they get bored and drop out of school, and waste their potential. I’m at a point where I’m fighting to retain an analog life because the digital workflows being pushed on us are so dumbed down that I just cannot accept being forced to click through shitty oppressive technology that forces interaction with tech giants and walled-gardens.

If I could choose between broadband with today’s garbage (ads, CAPTCHAs, Cloudflare, anti-bot, anti-tor, …) and 9600 baud dial-up to garbage-free text services that just work, I would seriously choose the latter. I am serious about that.

5
6
 
 

Back in the days of dial-up BBSs and Internet via a real modem, speed and availability constraints led to apps that work well offline.

Now that most people have unlimited broadband, offline tools have become rare. Now we are trapped in an infrastructure that constrains us to having internet at all times which is then reinforced by the Tyranny of Convenience.

So when someone makes the point “boycott Time Warner/Spectrum because they support right-wing politics and assault privacy”, ppl are helpless.. unable to stomach the idea of being offline. It’s like no one has the constitution to say “fuck this shit”.

The web has become such garbage that I am happy to be offline. Shitty ISPs don’t get a dime from me. No more paying for something that is infested with surveillance advertising, CAPTCHA, and garbage. I’m content to periodically login from public hotspots.

But not a single lemmy client for offline use.. to sync when plugged in and then read and compose replies later. This would give a better workflow even if always online because you would have a local copy (useful when servers bail out out of the pure fucking blue).

The hecklers will say “what are you waiting for.. write it yourself!” As if 1 person can recreate a whole infrastructure (lemmy, kbin, mastodon, xmpp, scraper bots, etc). The heart of the issue is it’s a paradigm that’s being overlooked. If you are going to create an app for whatever reason, why not design it at the ground level to work offline and headless? Of course it would also work online and a GUI can be a separate module. But the reverse is not true.. design an app to expect always-available internet and you have something that cannot easily adapt to an offline workflow.

7
5
submitted 1 year ago* (last edited 1 year ago) by evenwicht to c/text_ui
 
 

This thread is a whine and winge fest to collect complaints of functionality missing in our world of text UIs. I’ll start off with:

  • SMS 2.0 (“RCS”): The new standard for SMS (Rich Communcation Services) only has an Android 8.1 app -- nothing for the desktop at all
  • kbin/mbin
  • Lemmy: Neonmodem Overdrive seems dysfunctional; some servers have an old. FE which works with links browser because it has a JavaScript engine, but it’s a terrible UX; and nothing works as far as offering offline access.
  • Mastodon voting and poll creation: (though I have not tested https://brutaldon.org/)
8
 
 

Toot (CLI+TUI)

Toot is a standalone app.

help pageAuthentication:
toot login Log into a mastodon instance using your browser (recommended)
toot login_cli Log in from the console, does NOT support two factor authentication
toot activate Switch between logged in accounts.
toot logout Log out, delete stored access keys
toot auth Show logged in accounts and instances
toot env Print environment information for inclusion in bug reports.

TUI:
toot tui Launches the toot terminal user interface

Read:
toot whoami Display logged in user details
toot whois Display account details
toot notifications Notifications for logged in user
toot instance Display instance details
toot search Search for users or hashtags
toot thread Show toot thread items
toot timeline Show recent items in a timeline (home by default)
toot bookmarks Show bookmarked posts

Post:
toot post Post a status text to your timeline
toot upload Upload an image or video file

Status: toot delete Delete a status
toot favourite Favourite a status
toot unfavourite Unfavourite a status
toot reblog Reblog a status
toot unreblog Unreblog a status
toot reblogged_by Show accounts that reblogged the status
toot pin Pin a status
toot unpin Unpin a status
toot bookmark Bookmark a status
toot unbookmark Unbookmark a status

Accounts:
toot follow Follow an account
toot unfollow Unfollow an account
toot following List accounts followed by the given account
toot followers List accounts following the given account
toot mute Mute an account
toot unmute Unmute an account
toot block Block an account
toot unblock Unblock an account

Hashtags:
toot tags_followed List hashtags you follow
toot tags_follow Follow a hashtag
toot tags_unfollow Unfollow a hashtag

To get help for each command run:
toot --help

https://github.com/ihabunek/toot

I think I recall some things I could not do with Toot. Toot is in the official Debian repos, so might as well install it.

Bitlbee (IRC backend)

This is great if you already use an IRC client like IRSSI. Each Mastodon account can be logged in with its own “window” (which in IRSSI just means another text screen). Bitlbee is by far the fastest and easiest to post from if you have many accounts. But there is a msg size limitation because IRC inherently has a line size limit of like ~394 characters, which becomes a cap regardless of what the server supports.

Bitlbee is actually a large collection of middleware plugins for different IM platforms like ICQ, Skype, Jabber, Matrix, etc. The Mastodon plugin comes from kensanata.

It has a slight compatibility issue with some Mastodon servers. So if you connect to ten different servers, maybe half of them will work just fine and half will neglect to show you your own messages. Consider it experimental.

Bitlbee is now in the official Debian repos so you might as well install it. But I don’t know if Kensanada’s plugin became part of the official release yet. When I first installed it, it was a manual process.

Mastodon Archive (CLI)

This is also a kensanata tool. It’s purely for backups. It’s also hit or miss depending on which server it connects to. But it’s indispensible as it gives you an easy way to periodically grab a backup copy of messages to you (mentions) and from you, which is searchable offline.

Voting not implemented

One limitation of both Bitlbee and Toot is neither of them have implemented any aspect of voting interaction. You cannot make a poll and you cannot vote in polls. But both tools at least give you a way to /view/ the voting results.

Bitlbee may have a hacker option: you can free-type API calls. Thus perhaps possible to vote and make polls if you know the API well.

We could really use a text-based tool dedicated to voting. For me it’s an unmet need.

9
 
 

This bash alias will check the weather in Amsterdam over Tor:

alias weathernl="curl -s --socks4a 127.0.0.1:9050 -A '' 'https://wttr.in/Amsterdam,Netherlands?lang=en&A'"

If your city name contains a space, just substitute with a ”+”:

curl -s --socks4a 127.0.0.1:9050 -A '' 'https://wttr.in/Los+Angeles,California?lang=en&A'

This is one of few websites that looks like garbage in a GUI browser but great in text. Remove --socks4a 127.0.0.1:9050 if you don’t have tor proxy installed.

10
 
 

Tracker pixels are surprisingly commonly used by legitimate senders.. your bank, your insurance company, any company you patronize. These assholes hide a 1-pixel image in HTML that tracks when you open your email and your IP (thus whereabouts).

I use a text-based mail client in part for this reason. But I got sloppy and opened an HTML attachment in a GUI browser without first inspecting the HTML. I inspected the code afterwards. Fuck me, I thought.. a tracker pixel. Then I visited just the hostname in my browser. Got a 403 Forbidden. I was happy to see that.

Can I assume these idiots shot themselves in the foot with a firewall Tor blanket block? Or would the anti-tor firewall be smart enough to make an exception for tracker pixel URLs?

11
 
 

cross-posted from: https://lemmy.sdf.org/post/22571649

According to 15 U.S.C. 7704 §5(a)(5):

INCLUSION OF IDENTIFIER, OPT-OUT, AND PHYSICAL ADDRESS IN COMMERCIAL ELECTRONIC MAIL.—

(A) It is unlawful for any person to initiate the transmission of any commercial electronic mail message to a protected computer unless the message provides—

(i) clear and conspicuous identification that the message is an advertisement or solicitation;
(ii) clear and conspicuous notice of the opportunity under paragraph (3) to decline to receive further commercial electronic mail messages from the sender; and
(iii) a valid physical postal address of the sender.

When my text-based mail client receives an HTML-only email message, it tries to render the HTML as text. It’s sometimes a jumbled up unreadable heap of garbage because the HTML is malformed and relies on a forgiving/tolerant rendering engine. Even when the HTML is proper and standards compliant, links are not exposed to text rendered. E.g. a msg will say “to unsubscribe and stop receiving emails, update preferences here.”

Where is “here”? That is just raw text. Sure, an advanced user can do a number of things to dig up that link. But I doubt that would pass the legal standard of “clear and conspicuous”.

Anyone have confidence either way whether HTML-only spam is legally actionable on this basis?