Simula: A VR window manager for Linux
Soon after the invention of the movie camera, there was a &quot;genera&quot; of films that consisted of nothing but pointing a movie camera at a stage, and filming a play in one shot.<p>That&#x27;s the classic example of using a new technology to emulate an old technology, without taking advantage of the unique advantages of the new technology, before the grammar and language of film had been invented.<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Film_grammar" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Film_grammar</a><p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;History_of_film" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;History_of_film</a><p>&gt;The first decade of motion picture saw film moving from a novelty to an established mass entertainment industry. The earliest films were in black and white, under a minute long, without recorded sound and consisted of a single shot from a steady camera.<p>&gt;Conventions toward a general cinematic language developed over the years with editing, camera movements and other cinematic techniques contributing specific roles in the narrative of films. [...]<p>&gt;In the 1890s, films were seen mostly via temporary storefront spaces and traveling exhibitors or as acts in vaudeville programs. A film could be under a minute long and would usually present a single scene, authentic or staged, of everyday life, a public event, a sporting event or slapstick. There was little to no cinematic technique, the film was usually black and white and it was without sound. [...]<p>&gt;Within eleven years of motion pictures, the films moved from a novelty show to an established large-scale entertainment industry. Films moved from a single shot, completely made by one person with a few assistants, towards films several minutes long consisting of several shots, which were made by large companies in something like industrial conditions.<p>&gt;By 1900, the first motion pictures that can be considered &quot;films&quot; – emerged, and film-makers began to introduce basic editing techniques and film narrative.<p>Simply projecting desktop user interfaces designed for flat 2D screens and mice into VR is still in the &quot;novelty show&quot; age, like filming staged plays written for a theater, without any editing, shots, or film grammar.<p>VR window managers are just a stop-gap backwards-compatibility bridge, while people work on inventing a grammar and language of interactive VR and AR user interfaces, and re-implement all the desktop and mobile applications from the ground up so they&#x27;re not merely usable but actually enjoyable and aesthetically pleasing to use in VR.<p>The current definition of &quot;window manager,&quot; especially as it applies to X-Windows desktops, tightly constrains how we think and what we expect of user interface and application design. We need something much more flexible and extensible. Unfortunately X-Windows decades ago rejected the crucially important ideas behind NeWS and AJAX, that the window manager should be open-ended and dynamically extensible with downloadable code, which is the key to making efficient, deeply integrated user interfaces.<p>For example, the &quot;Dragon Naturally Speaking&quot; speech synthesis and recognition system has &quot;dragonfly&quot;, a Python-based &quot;speech manager&quot; that is capable of hooking into existing unmodified desktop applications, and scripting custom speech based user interfaces.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;t4ngo&#x2F;dragonfly" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;t4ngo&#x2F;dragonfly</a><p>Another more ambitious example is Morgan Dixon&#x27;s work on Prefab, that screen-scrapes the pixels of desktop apps, and uses pattern recognition and composition to remix and modify them. This is like cinematographers finally discovering they can edit films, cut and splice shots together, overlay text and graphics and pictures-in-pictures and adjacent frames. But Prefab isn&#x27;t built around a scripting language like dragonfly, NeWS or AJAX.<p>Here&#x27;s some stuff I&#x27;ve written about the direction that user interfaces should take to move beyond the antique notion of &quot;window managers&quot;, and enables much deeper integration and accessibility and alternative input and output methods.<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14182061" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14182061</a><p>&gt;Glad to see people are still making better window managers! [...] I think extensibility and accessibility are extremely important for window managers. [...] I&#x27;d like to take that idea a lot further, so I wrote up some ideas about programming window management, accessibility, screen scraping, pattern recognition and automation in JavaScript. [...] Check out Morgan Dixon&#x27;s and James Fogarty&#x27;s amazing work on user interface customization with Prefab, about which they&#x27;ve published several excellent CHI papers: [...]<p>&gt;Imagine if every interface was open source. Any of us could modify the software we use every day. Unfortunately, we don&#x27;t have the source.<p>&gt;Prefab realizes this vision using only the pixels of everyday interfaces. This video shows the use of Prefab to add new functionality to Adobe Photoshop, Apple iTunes, and Microsoft Windows Media Player. Prefab represents a new approach to deploying HCI research in everyday software, and is also the first step toward a future where anybody can modify any interface.<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=18797818" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=18797818</a><p>&gt;Here are some other interesting things related to scriptable window management and accessibility to check out:
aQuery -- Like jQuery for Accessibility<p><a href="https:&#x2F;&#x2F;donhopkins.com&#x2F;mediawiki&#x2F;index.php&#x2F;AQuery" rel="nofollow">https:&#x2F;&#x2F;donhopkins.com&#x2F;mediawiki&#x2F;index.php&#x2F;AQuery</a><p>&gt;It would also be great to flesh out the accessibility and speech recognition APIs, and make it possible to write all kinds of intelligent application automation and integration scripts, bots, with nice HTML user interfaces in JavaScript. Take a look at what Dragon Naturally Speaking has done with Python:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;t4ngo&#x2F;dragonfly" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;t4ngo&#x2F;dragonfly</a><p>&gt;Morgan Dixon&#x27;s work with Prefab is brilliant.<p>&gt;I would like to discuss how we could integrate Prefab with a Javascriptable, extensible API like aQuery, so you could write &quot;selectors&quot; that used prefab&#x27;s pattern recognition techniques, bind those to JavaScript event handlers, and write high level widgets on top of that in JavaScript, and implement the graphical overlays and gui enhancements in HTML&#x2F;Canvas&#x2F;etc like I&#x27;ve done with Slate and the WebView overlay.