On Thu, Apr 25, 2019, at 7:57 PM, LM wrote: > > Also wondering what user interfaces are typically used with Plan 9 > programs (programs not designed for the command line). Is there > anything on the roadmap for user interface development? I've looked > at several GUI and TUI libraries on a variety of operating systems > (over a long period of time) and I've yet to find one I really like. > I do like working with command line programs, but some programs just > don't lend themselves to that format. Was wondering what design ideas > Plan 9 developers might have for user interface development. >
I'm not up to writing much at the moment, (and I think I might have not received some messages in this thread,) but just to say the filesystem interfaces of Plan 9 programs make a fascinating extension to their UI and functionality. I once cropped an image interactively using page, rio, topng of course, and crop -i 4 to trim off rio's border. Smoothing off the rough edges of that process and making it a little more powerful would be interesting. The plumber is a powerful tool too, as are namespaces and the ability to nest rios. What I don't like is the use of spaces to separate tokens in all the filesystem interfaces. While it means you can hypothetically type into them with con, or just use echo or any other shell utilities to control them, in some circumstances quoting gets hairy. Also, splitting tasks between multiple small languages gets annoying because the only means of communication between them is text, which means you have to write translation between different syntaxes as well as the task you want. (Personally, I also have problems with the C source I'd need to work with to extend and improve these interfaces.) I've started on my own system with one language embracing all the DSLs, and suitably structured data -- a-lists and tagged tables -- to ease the job of interfacing them, but it's a long job and not top priority in my life right now. Plan 9 shell and environment support lists, but they're 1-dimensional, null-separated, and I don't think any of the filesystem interfaces even try to support them. You can't echo them with the nulls anyway.