It started as a stupid project cause I was bored. How much can you actually do without a windowing environment?
After finding out how to post to lemmy from a TTY, I realized that I can do most things I do daily using text.
Browsing the web in links, which opens all sorts of files in the corresponding programs if configured correctly.
Opening images in fbi, PDFs in fbpdf, listening to music in cmus, watching movies in mplayer, using e-mail in alpine, creating documents in vim and latex, …
The only thing that still requires a GUI is image editing and a few websites I need that don’t work without JavaScript.
And it’s actually really nice…more focused, without loading times, animations, popups, ads, or other distractions, and everything is scriptable.
Anyway, sorry for the blog post.
I may get hate for this, but… I do this a fair bit because I prefer TUIs for a lot of stuff, and also end up doing a lot of things in emacs because I usually have it open anyway…
Legendary video: https://www.youtube.com/watch?v=urcL86UpqZc
You’re following the Unix philosophy.
And I understand why some people are fonts enthusiasts, now.
On the console, you only have 16 colors and 1 font to customize your “desktop”.
How about a console with cursive writing font? That’s probably the reason why it’s named cursive. Because of all the curses of the users.
You can Install more fonts, but not all of them are any good.
Lol so cool. My fav text apps are toot for mastodon and maybe gomuks or iamb for matrix/element. Also what Lemmy app r u using?
I’m just using the Links browser and fbi for the images.
Does feddit.org work without JS? Does this depend on the front-end that the instance uses?
The standard frontend doesn’t let you log in without JS, but on old.feddit.org it works.
Same with the other instances I tested.
So weird I’m used to hearing about FBI using us for images. 🤔 Lol
Thatâ™s⠀really cool. � Ꭰо уо𝗎 𝗍һі𝗇𝗄 уо𝗎’ӏӏ со𝗇𝗍і𝗇𝗎е ᖯ𝗋о𝗐ѕі𝗇𝗀 ӏі𝗄е 𝗍һа𝗍?
Fuck you, you really made me check on my phone if all my text looks like this :(
Yes, I think I will. Not exclusively, of course. But starting Firefox in Wayland just takes a key combo and 5 seconds if needed.
Launching it using the raw framebuffer means it blocks the screen until you close it, and there’s no means to do anything else except switching to another TTY, is that it?
Firefox doesn’t run in the framebuffer. It opens under Wayland in another tty.
Starting Firefox takes 5 seconds? I start thinking I need to optimise if it takes more than 2
It takes 5 seconds when the PC has to start up a wayland compositor, first.
What wayland compositor do you use for that? Have you tried
cage
?I use Gnome.
I’ve found
cage
to be really convenient when you want to run a single app from a tty. 5s to start gnome + ff is pretty good, though. Not sure how cage would compare.See, that’s another great thing about this experiment: I get to discover all kinds of cool new tools.
Thanks for that, looks exactly like what I need.
Ahhh my bad I didn’t read your comment properly, assumed you meant with a desktop running already

Pretty cool, this is how people used computers before, but back then computers couldn’t do as many things as they can now
Give browsh a try
I did. It doesn’t accept mouse clicks from gpm, and it doesn’t offer keyboard navigation. Both issues are long-standing bugs that also affect the Chrome version, Carbonyl.
Your post made me wonder, so I checked and of course it exists. Behold, a text-mode Lemmy client: Neon Modem Overdrive
Tried it. Didn’t work.
indeed… #NeonModemOverdrive failed for me too.
So, how did you do post to lemmy.ml? Did you use cURL? If so, I would love to see the sample code.
I logged into old.feddit.org with links.
Thanks for the tip. It seems to work but I have to say it’s a rough UX because the UI is really meant for a graphical browser. I could not even paste my UID and PW in to login.
Well, that’s disappointing.
Try it if you’re interested. It worked for enough other people that the dev closed my issue.
I couldn’t get it to show any content, on 3 different distros and 4 different home instances.
Maybe I’m just really dumb, though.
What about the Lynx browser…it’s TTY isn’t it…?
yes it only shows the filename of an image. But you can set it up to open images in an external image viewer when you click on it.
Tried browsh ?
Yes. I have absolutely no idea what its purpose or use case is.
On a TTY, it has no mouse click support. It also has no keyboard navigation support in general. So how am I supposed to navigate websites?
On a terminal inside a graphical environment it’s completely useless, cause I’m in a graphical environment and can just use Firefox.Seriously, if anyone is using Browsh or Carbonyl productively, I’d love to know for what.
Thank you for this.
aerc
is going to save my sanity.It’s awesome. Seeing aerc getting an update always makes me smile.
And it actually lets me set up multiple IMAP/SMTP accounts without sacrificing a chicken to the Unix Philosophers.
I wouldn’t recommend skipping the offering, but purely from a technical standpoint it is unnecessary.
Bookmarked. Thank you!
Been attempting to learn bash again, will make is more appealing.
How much can you actually do without a windowing environment? […] Opening images in fbi, PDFs in fbpdf, listening to music in cmus, watching movies in mplayer
Maybe not an “environment” but it sounds like you’re at least using a window manager. The PDFs and videos, not to mention web browser, are gonna be hard to pull off from a raw shell.
But that’s a detail. Otherwise I share your enthusiasm, I’ve been doing things this way for a while. Basically: tiling window manager + TUI file manager + scripts which do precisely what I want, if possible in the terminal, if necessary by launching a GUI app. In practice the GUI apps are Firefox, mapping app, and messaging apps.
The general discovery I made was this: for the small price of foregoing pretty colors and buttons and chrome, you can get a computer to do exactly what you want it to do much quicker. Assuming a willingness to learn a bit of shell scripting, of course.
For example: I have a button which runs a script with
getmail
that pulls in my email and then deploysripmime
andweasyprint
to convert it to datestamped PDF files, which it dumps with any attachments directly into an inbox folder. In other words, I have maderanger
into my email client and I never need to “download” anything, it’s already there.And those PDFs I can then manipulate with a bunch of shell scripts that use standard utilities, i.e. to split them, merge them, shrink them, clean them of metadata, even make them look like them come from photocopied paper (dumb bank!). All the stupid shit I once did with 10 manipulations hunting thru menus with a pointer in a fiddly app and always forgetting how it was done. Now I just select the file in the terminal, hit a button and it’s done, I don’t even see the PDF.
Of course, it’s not for everyone, but this is the promise of free computing.
The general discovery I made was this: for the small price of foregoing pretty colors and buttons and chrome, you can get a computer to do exactly what you want it to do much quicker. Assuming a willingness to learn a bit of shell scripting, of course.
I find the emphasis people put on speed interesting, because by far the slowest part of any interaction I have with my computer is caused by me just figuring out what I’m doing next. When I’m functioning at top speed not needing to click around, or say, having the perfect keyboard shortcut, would save me only fractions of a second.
Actually… to add to this I think the cognitive load of visually navigating is much lower than typing specific things it. I think this is why I find I’d prefer to click around my bookmarks or files to find something than just pull up a “Find” dialog and type something reasonable in.
That is exactly the reason why I like the text interface so much. It makes you think about what you want to do next.
In a graphical environment, there are lots of hints right in front of you what you could do next (made even worse in other OSs that use pop-ups).
In a text environment, unless you actively do something, all you get is a blinking cursor.
It increases my productivity and reduces time wasted on the computer, not because it is a bit faster, but because I don’t get distracted.
For the same reason, I suppose you would love text adventure games like Hitchhiker’s Guide to the Galaxy, where you have to come up with your action, as opposed to getting visual aids which come like a loaded question, steering you and somewhat robbing you of control.
Fair point about raw speed. I never found the keyboard-vs-mouse speed debate very interesting either.
But cognitive load is a double-edged sword. Sure, the first time you attempt a task, the abstraction of a GUI is really helpful. There’s nothing to remember, you just point and click around and eventually the task is done. But when you have a task with 7 steps which you have to do every 2 weeks, then the GUI becomes a PITA in my experience. GUIs are all but impossible to script, and so you’re gonna need a good memory if you want to get it done quickly and accurately. This is where CLI scripting becomes genuinely useful. Personally I have quite a few such tasks.
No, I’m not using a window manager, X nor Wayland.
Images, PDFs and video can be rendered on the framebuffer, which has been the standard output for Linux TTY’s for a while now.
For multitasking, I use tmux, which works a lot like a tiling window manager, but for the text console.Great! I guessed that going full framebuffer would be trickier than that. You’ve laid me down a new challenge.
Nowt wrong with a tty interface. All you need is a gif->ASCII converter and you can view the images too.
The default video output device of a Linux TTY is the framebuffer.
I have no issues viewing images and PDF documents, or watching videos.
I’d love to be able to ditch the gui entirely, I’ve found working from a TTY really helps me focus on the actual work I’m supposed to be doing
Unfortunately the one impossible hurdle is the web browser. Have kinda got around the need for it mostly with an llm cli for basic questions but will always find myself needing to fire up a window manager just to get a browser eventually
Also doesn’t help that I’m primarily a web developer
cage
is a minimalist Wayland compositor that only shows a single application in fullscreen. When you close the app, it drops you back to your console.
It’s compatible with programs that need X11 through XWayland, and it has practically no loading times.cage -ds firefox
would open Firefox in fullscreen.
Option-d
hides client-side decorations and-s
allows you to switch from Wayland to another TTY using Ctrl+Alt+F[1-6]I put aliases for the programs I use in my .bashrc so I can just type FF[Enter] and a second later I have Firefox open.
always find myself needing to fire up a window manager just to get a browser eventually
A chromeless tiling WM is basically invisible and AFAIK has almost zero performance impact. That’s roughly what I do.
I usually use gamescope for that purpose but it’s still a bit of a pain and takes me out of the tmux/helix loop
Sometimes it’s nice to put the ADHD away and just have simple fucking interfaces without all the stupid distractions.
This was my exact experience browsing the Social Media on gemini:// – it was glorious how less can actually be more.
I’d love to put the ADHD away sometimes :(
I would not recommend web links opening in other programs.
What did you use to do so?
OP shared the tools they used, you’ve probably missed it.
- browser - links
- image viewer - fbi
- PDFs - fbpdf
- music - cmus
- movies -mplayer
- e-mail - alpine
- documents - vim, latex
Ah gotcha. I’m on cell so it just looks unformated text.
Open up fbi
I tried w3m, lynx, links and elinks, which all failed cause they don’t support JavaScript, which is necessary to log in.
Then I tried Browsh and Carbonyl, which failed cause they both don’t accept mouse clicks in a TTY and offer no keyboard navigation.Then I tried Neonmodem Overdrive, a CLI fediverse browser, which I just couldn’t get to show any posts.
In the end, @[email protected] gave me the hint that some instances have alternative “old-reddit-like” frontends that allow logging in without JavaScript.
And my home instance with old.feddit.org is one of them. So now I’m using links, cause it’s the most user-friendly text browser IMO.Not sure if you know, but you can setup links to pipe images (and whatever other media you want) to external programs through the Associations menu.
Afterwards pressing Enter or I when an image is selected, a new option “open” will appear.
Yes I set it up to open in FBI without prompt.