

Show HN: Building an HTML5 Desktop environment with a minimal server component - Lerc
https://github.com/Lerc/notanos

======
jnbiche
Different implementation of a similar idea:

[https://github.com/grimwire/grimwire](https://github.com/grimwire/grimwire)

grimwire appears to be somewhat further along, although still in alpha. both
are very cool projects/ideas.

------
SimHacker
This is what I was getting at in the discussion about X window managers. There
is basically no purpose to be running X at this point, when you could just run
a web browser and implement the distributed window system inside of that
instead:

[https://news.ycombinator.com/item?id=5876723](https://news.ycombinator.com/item?id=5876723)

There are a lot of advantages to running the window manager (and ui toolkit)
in the window server itself, like NeWS used to do, but X doesn't do on
purpose:

[https://news.ycombinator.com/item?id=5845119](https://news.ycombinator.com/item?id=5845119)

[https://news.ycombinator.com/item?id=5844332](https://news.ycombinator.com/item?id=5844332)

[https://news.ycombinator.com/item?id=5876685](https://news.ycombinator.com/item?id=5876685)

------
neurotech1
@Lerc: I think its pretty cool you decided to write your own. I'm working
something similar, for a different use case. I'm looking at something more
embedded, for Cortex-M4[1] class SoCs.

The concept of a HTML5 "Desktop" is being developed by Firefox OS[2] and
Tizen[3] so there is likely benefits to this.

[1]
[http://en.wikipedia.org/wiki/ARM_Cortex-M#Cortex-M4](http://en.wikipedia.org/wiki/ARM_Cortex-M#Cortex-M4)

[2]
[http://en.wikipedia.org/wiki/Firefox_OS](http://en.wikipedia.org/wiki/Firefox_OS)

[2] [http://en.wikipedia.org/wiki/Tizen](http://en.wikipedia.org/wiki/Tizen)

------
outworlder
I thought about something similar. But instead of running web apps, the idea
would be to use HTML and JS to build a full desktop environment - except that
some DIVs would actually show the windows of native apps. Instead of "desktop
themes", you'd have CSS. Want a tiling window manager? Just add the javascript
to move the divs the way you want.

It wouldn't need to be a full browser (even though it could). The approach
could be similar to what QT already does with CSS.

I have searched but my Google-fu skills were not enough. Is there something
similar already?

~~~
Lerc
I don't know of anything like that. You could implement it a number of ways.
You could conceivably do it with a browser plugin that did the interface to
the native content. Probably making a Wayland compositor that way would be
easier than wrangling X11.

I do plan to add more apps that run on the native side, they will be conscious
of the HTML interface though. It's taking more of the Extremely smart client
approach. So much so that there isn't a great need for a protocol beyond
something for sending the client the JavaScript that runs any application
specific protocol.

------
jplur
This is great! I just got a raspberry pi and was looking into running a
browser as a kiosk and making a file manager that works with a gamepad as the
only input device.

Also reminds me of a cruddy file browser I was working on for servers with
php: [http://selfsamegames.com/selfsame/](http://selfsamegames.com/selfsame/)

I'll probably be in touch ;)

------
websitescenes
Super cool idea. I already write apps in js and HTML so this would be a
natural extension for me. I never learned Java and just went straight into
server side programming and markup. Something like this would be n interesting
way to translate my skills to the desktop. Thanks for sharing!

------
pjmlp
Lively Kernel anyone?

[http://www.lively-kernel.org/lively/](http://www.lively-kernel.org/lively/)

------
themgt
Firefox OS would seem to be the most "real" open-source attempt at an OS with
a fully (superset of) HTML5 UI-layer.

------
Semaphor
Does it run on Javascript Linux?

[http://bellard.org/jslinux/index.html](http://bellard.org/jslinux/index.html)

~~~
Lerc
I don't think Bellard's emulator supports tcp/ip. Getting it to listen on a
port would be tricky.

You could probably do it the other way around without too much trouble. Run
Linux inside Notanos. You could implement a file system that communicates with
the host environment.

------
dreen
The important question is

Does it have a browser?

------
eddywebs
All the apps like ckEditor, Pacmini ... (notanos/notanos/apps)

were those developed from scratch in JS or ported ?

~~~
Lerc
There's a mixture.

CKeditor is [http://ckeditor.com/](http://ckeditor.com/) CodeMirror is
[http://codemirror.net/](http://codemirror.net/)

Which are both JavaScript

GlGears is an emscripten port from c.

Pac Mini is written by myself in DCPU16 assembly and running on a Javascript
Emulator.

I wrote Termish in JavasScript.

I made Generic Platformer for a Ludum Dare using Haxe and compiling to
JavaScript.

~~~
eddywebs
Sweet good work :)

