Textual Posts

8 posts tagged with Textual

I get a kick out of being creative within the limitation of the terminal. I may even have come up with with an entirely new way of drawing boxes in the terminal. As bizarre as that sounds.

Boxes in the terminal are not new. Rich is full of them, but they predate Rich by a long time.

CLI apps will typically use box drawing characters to build boxes out of unicode characters. There are characters for vertical lines, horizontal lines, corners, and cross pieces. With a mixture of regular, heavy, and double lines. Even rounded corners. They work like lego: throw them together in the right order and you can display exotic things such as panels and tables at the command prompt.

But there is a problem. Look what happens when you set a background color:

A Rich panel. continue reading…

I've published a number of Open Source Python libraries, but none have seen as much buzz as Rich. Released in 2020, the Rich repo has 35,000 stars on Github. Since then I've released Textual (a work in progress) and Rich-CLI, both of which are on a similar trajectory as far as GitHub stars go.

In this post I'd like to lay out what I think contributed to the popularity of Rich, which you can hopefully apply to your own open source project(s).

Too the moon! You may start to see more Richified apps soon. Including Pip, which recently adopted Rich progress bars and more. continue reading…

I've just released v0.1.15 of Textual, with Windows support.

The Windows support is somewhat experimental, but so far seems solid. You will get best results on the new Windows Terminal. On the classic command prompt you might find a reduced color palette. This works on VSCode, but is missing mouse input on Windows 10 due to an upstream issue which is apparently fixed in Windows 11. If you have Windows 11, I'd appreciate confirmation on that!

This is the code_viewer example in the Textual repo. continue reading…

I'm trialing the idea of Weeknotes, a weekly summary of what I've done / learned in the prior week. Inspired by Simon Willison who has an uncanny ability to respond to a tweet with a link to a weeknote of his containing just the information you needed. These will be a little rougher, a little less edited, than my usual content. But the point is to get something out there and to develop the habit of writing.

The investment for Textualize landed at the end of last year, just before Christmas. Naturally I was on a bit of a high. This last week-and-a-half I've come down to earth and settled in to a routine of going in to the office every day (something I swore I'd never do again). And it's not so bad. continue reading…

Before my recent career change I described myself as a full stack web developer (hey I built this blog). When I started building web sites professionally the work that a front-end developer did was considered a lesser form of software development, requiring a less academic set of skills than the developers who wrote code to talk to databases and serve APIs.

Now I'm not convinced that was true even back in the day, and it is not even remotely true now (I might go as far to suggest the reverse may be true). Just one of the skills you need for front end development is CSS, the code which defines how a web page looks. There is a lot to learn and to wield CSS well. continue reading…

I recently posted about my plans to take a "year off" to work full time on open source. The TL and DR of it was that I would live on savings while working on Rich and Textual, both of which where generating a bit of buzz in the Python community.

Additionally, I would work on a cloud service using both those projects which at some point would become a business.

Now this was a good plan. The money from GitHub sponsors which I had previously been donating to charity would take the sting out of not having an income for a while. While far from a salary (where I live), at around $1000 a month it would help pay a few bills. continue reading…

I recently came to a decision which will have a big impact on my open source work. In particular Rich and Textual, but also pyfilesystem and lomond. For the foreseeable future, possibly up to a year, I'll be working on them essentially full time.

Rich is a very popular project now, with over 29K stars on Github. It has near 100% coverage and a stable API, but no codebase is ever really finished so there will be on-going work. Textual is Rich's sister project which is brand new and under active development, but already has 4.8K stars. It is also a much larger project than Rich. To do Textual justice I'm going to need to put in some serious time over and above what I could realistically do for a hobby project.

Some of the applications in the Textual examples directory continue reading…

I've started work on a new project called Textual.

Textual is (or will be) a TUI framework using Rich as a renderer. It's still very early days, but ultimately the goal is to have something which you can uses to build a Text User Interface with little to no boiler-plate.

It is async powered. Each "widget" runs in an async task and communicates via a message queue. This should allow the UI to remain responsive even when the app is doing work.

Running a Textual app in Vscode.

An example Textual app (currently the only one) with a default layout. Title bar with working clock. Side panel that can be toggled with a key. And a scrolling window containing Markdown. continue reading…