shithub: touchuichal

Download patch

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 {
+	print
+	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
+}