shithub: touchuichal

ref: 4994c9b68490e536f0fc68cd0b40c31c51dc82b1
dir: /touchuichal.txt/

View raw version
[[[ms
.FP lucidasans
. \" no header
.ds CH "
.
.HTML "Designing for Touch: Bringing the Plan 9 User Experience to Modern Devices"
.TL
Designing for Touch: Bringing the Plan 9 User Experience to Modern Devices
.AU
Joel Fridolin Meyer
joel@sirjofri.de
.AI
.AB
The Plan 9 operating system has a specific idea for user interaction and user interfaces.
In general, many aspects are well thought out and provide a mostly consistent look and feel throughout the whole operating system.
However, all user interaction components are designed for a standard computer system: A computer screen paired with keyboard and mouse for interaction.
In this paper we will explore different challenges we encounter when designing a specialized touch user interface for Plan 9 systems.
.AE
]]]

# Why do we need a touch user interface?

The world is changing.
Especially in the last decades computer systems changed from expensive pieces of hardware to much smaller systems that embed everything into one device.
While most computing expensive tasks are moved to the cloud, a full computer system is often not bigger than what can comfortable fit in your hand.
[[[ms
.\" quote of some dude stating that, if I can find it.
]]]

While older computer systems are designed with specific devices for human interaction—for example computer screen, keyboard and mouse—modern computer systems often embed many of those devices into one—a single touchscreen.
Going from that to a ‘single device for everything’ is not a big step, especially when combined with cloud computing.

This trend comes with a cost:
Most operating systems were—and often still are—designed for a computer system with dedicated screen, keyboard and mouse.
Plan 9 is not different, although it allows for various combinations of hardware due to its strong networked nature.
Due to the increasing amount of touch devices—especially on the mobile market— and increasing hardware support¹ of Plan 9 it's important that we think about touch user interfaces.
[[[ms
.FS
¹ Ports of the Plan 9 distribution ‘9front’ to devices like the PinePhone are being worked on.
.FE
]]]


# Why do we need a Plan 9-specific user interface?

When reading this far, the first thought might be:
“Let's just use what we have and put it on a touch device”.
While this though is the most obvious one, it's also a naïve thought.
Even big and expensive operating systems like Microsoft Windows tried that, and failed.

A much more important point is that the best touch user interfaces are designed for touch from the ground up, most notably Apple's iOS and Google's Android.
Both systems are widespread and their handling of touch interfaces is often seen as the ‘de facto’ standard.

This ‘de facto’ standard doesn't fit the Plan 9 operating system too well though.
Plan 9 has its own, very specific idea of important aspects of user interfaces.
For example, it has its own mechanism for inter-process communication, it's own view of resources and has a unique user interface, which leads to a very distinct user experience.

Let's assume that we try to achieve this same user experience using the commonly known standard of touch user interfaces.
Many interactions just don't ‘feel’ right.
Sending some data to another program?
Sure, on Plan 9 we'd probably use the plumber.
On modern mobile operating systems we often find a system that's quite similar.

But what if we want to copy and paste some text?
Sure, just LMB-sweep, MMB-click, RMB-click to snarf, then LMB-click and RMB-click to paste… which is mouse driven, but feels natural to a Plan 9 user.
Now try to achive this ‘feel’ with a pure touch screen interaction.

This natural Plan 9 user experience is very hard to achieve using current standards.
That's why we believe that we need a specific touch user interface for Plan 9 systems.


# Challenges

Since the scope of a paper is way too small, and the scope of designing and implementing user interfaces are way too big, this paper will focus on the design challenges only.
To do that properly we'll have to take a look at what Plan 9 users experience when interacting with the operating system.

But before we do that, we'll quickly remind ourselves about general challenges of touch interfaces.

[[[ms
.\" refer to survey!
]]]

## Well-known touch user interface challenges

- Different screen sizes (phone, tablet, much bigger differences than on PC).
- Touch challenges (thumb size, multi touch, ...).
- Probably nothing new, refer to existing documents.

## Three pillars of user interfaces on Plan 9

### Text interface

- shell interface
- rio/window

### Graphics

- devdraw

### Mouse interaction

- mouse chording
- rio/window integration

## Integrated system components

### Plumber

- How plumber is important for Plan 9 UI
- It should be natively integrated and feel natural to use it.

### Namespaces

- How to visualize and manage namespaces on Plan 9, using touch UI.
- Dynamic, per-process namespaces are an integral part of Plan 9.