ref: 843ca3633dfc4e757f6aed8337b5181201f4d309
author: sirjofri <sirjofri@sirjofri.de>
date: Sun Jul 30 11:41:18 EDT 2023
adds mkfile and draft layout
--- /dev/null
+++ b/mkfile
@@ -1,0 +1,6 @@
+PDF=`{ls *.txt | sed 's/txt$/pdf/g'}
+
+all:V: $PDF
+
+&.pdf: &.txt
+ txt2ms <$prereq | troff -ms | lp -dstdout > $target
--- /dev/null
+++ b/touchuichal.txt
@@ -1,0 +1,71 @@
+[[[ms
+.FP lucidasans
+. \" no header
+.ds CH "
+.
+.HTML "Towards a Touch User Interface for Plan 9"
+.TL
+Towards a Touch User Interface for Plan 9
+.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 thought-through and provide a mostly consistent look and feel throughout the whole operating system.
+However, all user interaction components are designed for a standard computer screen in mind, 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?
+
+Hello World.
+
+Next paragraph.
+
+Actual contents:
+
+- Many modern computer systems come with touch screens only, without traditional input methods.
+
+# Why do we need a Plan 9-specific user interface?
+
+- Plan 9 OS is much different than other OSes.
+- It has very specific idea of IPC, user interaction and what a computer is.
+
+# Challenges
+
+## Well-known 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.
+
--- /dev/null
+++ b/txt2ms
@@ -1,0 +1,81 @@
+#!/bin/awk -f
+
+# if someone wants to use that:
+# ‥text‥ to print italic
+# ‥‥text‥‥ to print bold
+# it might be better to just use \fI and \fB directly
+function parsed(a){
+ if(dontparse) return a
+ gsub(/‥‥[^‥]+‥‥/, "\\fB&\\fR", a)
+ gsub(/‥‥/, "", a)
+ gsub(/‥[^‥]+‥/, "\\fI&\\fR", a)
+ gsub(/‥/, "", a)
+ return a
+}
+
+BEGIN {
+# print ".de XS\n.ds LQ \"\"\n.nr |i (\\\\$1i-1i)/3u\n.ie '\\\\$1'0' .tm TOC:.XL \\\\$1 \\\\*(LQ\\\\$2\\\\*(LQ \\\\n%\n.el .tm TOC:.XL \\\\$1 \\\\*(LQ\\h'\\\\n(|iu'\\\\*(SN\\0\\0\\\\$2\\\\*(LQ \\\\n%\n.."
+}
+
+firstheader && NR == 1 {
+ printf ".TL\n%s\n", parsed($0)
+ nextline = 1
+}
+
+$1 ~ /^\[\[\[ms/ {
+ ismsblock = 1
+ next
+}
+
+$1 ~ /^\[\[\[/ {
+ ignore = 1
+ next
+}
+
+$1 ~ /^\]\]\]/ {
+ ismsblock = 0
+ ignore = 0
+ next
+}
+
+ignore {
+ next
+}
+
+ismsblock {
+ next
+}
+
+$1 ~ /^#+$/ {
+ l = length($1)
+ $1 = ""
+ sub(/^[ \t]*/, "")
+ printf ".NH %d\n.LG\n%s\n.NL\n", l, parsed($0)
+ #printf ".SH %d\n%s\n", l, parsed($0)
+ #printf ".XS %d \"%s\"\n", l, parsed($0)
+ istitle = 1
+ nextline = 1
+}
+
+$1 ~ /^-/ {
+ $1 = ""
+ sub(/^[ \t]*/, "")
+ printf ".IP •\n%s\n", parsed($0)
+ nextline = 1
+}
+
+/^$/ {
+ if(istitle)
+ printf ".LP"
+ else
+ printf ".PP"
+ istitle = 0
+}
+
+{
+ if(nextline == 0)
+ print parsed($0)
+ else
+ nextline = 0
+}