Last visisted [2020-11-02 Mon 10:30] keywords: bitwrite 1bit hypercard typewriter kilo SDL.


A work in progress concept, that all started with an idea:

2020-08-04 12:33:52: an extendable text editor inside of a Blit that tries really hard not to edit text. #halfbakedideas

This, combined with my 1bit aesthetics, led me to come up with this concept I'm calling "bitwrite".


The main goal is to build a means for me to boostrap my way into buildinng graphical user interfaces from my familiar keyboard-driven workflow. The idea is to build things that are a bit better than the TUIs you'd see made by ncurses, but not as sophisticated as something like imGUI. I also hope to give the system a simple core with a very flexible C API. That way, bitwrite can be easily modified and extended.


The whole process starts with the wonderfully simple Kilo text editor, and porting it to a simple bitmap GUI via SDL 'and btprnt. Bitmap fonts will be baked in using the xbm format.

Kilo internally treats text internally as a set of rows. Instead of writing to a text file, Kilo will be modified to write to a SQLite database as a kind of file format. This is where Kilo stops being a text editor, and starts becoming a text interface. With any luck, this approach will allow for more extendability of bitwrite, and also help better integrate with my existing software that also uses SQLite.

A command language will be added. Hitting alt-enter on the current line will allow the line to be evaluated by this interpreter.

Kilo structures things in terms of rows of text. Instead of text, this concept of a row will be expanded to be a region of pixels. A program interface will be written that allows a row to be occupied and written to in any arbitrary way. Not just text. The row height can be adjusted, but the width will remain fixed.

New programs can be save/loaded to the SQLite file.