Good morning,
I skimmed through the ideas page as well as the mails in this thread and
I wanted to share my thoughts and ideas.
(1) I am working on a port of 9front to the pinephone smartphone.
Although it is still a long way to go I believe the project can be very
interesting for UI ideas and implementations. This would also fit tbe rio
alternatives idea. Let me quickly explain.
Plan 9 has a unique user interface built from many components. We have
heavy use of three mouse buttons, many text-based interfaces (also
counting acme tags, for example), system-wide plumber support, only to
mention few of those. However, some of these aspects don't make much
sense on a touch device due to big thumbs and the nature of touchscreens.
The idea for this would be designing an integrated, Plan 9-worthy
touchscreen rio replacement for mobile devices. Ideally it can coexist
with rio (i.e run inside rio windows and rio can run inside
"this-window-manager" windows) and is fully compatible with existing
graphical UI applications (using standard draw routines).
Although the software can currently not be tested on the pinephone (I'm
still working on the kernel) there are some devices with rudimentary
touchscreen support (I have a working thinkpad twist with 9front) we can
use for testing, and some functionality can be tested inside scaled rio
windows on common Plan 9 systems.
(2) Under similar circumstances (mobile device with touch input) another
project might be some kinda graphical (rc) shell interface. I have an
idea, and we also discussed ideas on the discord server.
(3) A high-level filesystem interface for UI widgets. Many modern UI
layouts can be described as a hierarchy of containers. The UI filesystem
would start as an empty window, which is reflected by an empty
filesystem. The user could create widget containers (hbox, vbox) by
creating directories and files, as well as input boxes, buttons and more
by creating files. The hierarchy would directly reflect the drawn window.
The user can listen to files for button interaction and write text to
labels etc..
(4) A filesystem that filters a namespace, but the file contents and not
the namespace.
The idea is to have a filesystem like exportfs, however, it doesn't just
represent the files as is, but applies user-defined filters to the
filenames/paths as well as the file contents.
Imagine you have a namespace which contains markdown files that end with
.md. Using this overlay filesystem you can present the same namespace,
but convert the filenames using sed (from .md to .html) and when reading,
the file contents (from markdown syntax to html syntax).
The filesystem would be very powerful for exposing plain text data as
html, encapsulating data into some predefined layout, and much more. It
could essentially make any plain text filesystem available as regular
web-friendly html files, convert troff source to postscript, convert plan
9 images to png, and much more. You can even present device files as json
for modern web applications.
Caching file contents can improve performance and reduce load.
(5) Ringfs. This is a very small project and also the least powerful as
far as I can say now.
The general idea is that the filesystem presents the created files and
when reading a file the contents point to the next file in the "ring" in
alphabetical order.
It's probably best explained using the following shell interaction:
; touch fileA fileB fileC
; cat fileA
fileB
; cat fileB
fileC
; cat fileC
fileA
The project is very small and probably too simple for a GSoC project.
These are some ideas I thought about in the last months. Some are very
small and I can imagine mentoring these smaller projects if it's not to
hard. My time is rare (as for most of you I guess) and I never mentored
any programmer, so I guess I'd ask more experienced people now and then.
Personally I like all of these ideas and would like to work on all of
them if I had enough time.
sirjofri
------------------------------------------
9fans: 9fans
Permalink:
https://9fans.topicbox.com/groups/9fans/Td4449edc4863e16e-M7eef49e9a147609a6fee4160
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription