{"action":"created","issue":{"url":"https://api.github.com/repos/NodeOS/NodeOS/issues/79","labels_url":"https://api.github.com/repos/NodeOS/NodeOS/issues/79/labels{/name}","comments_url":"https://api.github.com/repos/NodeOS/NodeOS/issues/79/comments","events_url":"https://api.github.com/repos/NodeOS/NodeOS/issues/79/events","html_url":"https://github.com/NodeOS/NodeOS/issues/79","id":47746109,"number":79,"title":"Silk GUI","user":{"login":"zodern","id":8175744,"avatar_url":"https://avatars.githubusercontent.com/u/8175744?v=3","gravatar_id":"","url":"https://api.github.com/users/zodern","html_url":"https://github.com/zodern","followers_url":"https://api.github.com/users/zodern/followers","following_url":"https://api.github.com/users/zodern/following{/other_user}","gists_url":"https://api.github.com/users/zodern/gists{/gist_id}","starred_url":"https://api.github.com/users/zodern/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zodern/subscriptions","organizations_url":"https://api.github.com/users/zodern/orgs","repos_url":"https://api.github.com/users/zodern/repos","events_url":"https://api.github.com/users/zodern/events{/privacy}","received_events_url":"https://api.github.com/users/zodern/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/NodeOS/NodeOS/labels/discussion","name":"discussion","color":"5319e7"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/NodeOS/NodeOS/milestones/2","html_url":"https://github.com/NodeOS/NodeOS/milestones/0.2.0","labels_url":"https://api.github.com/repos/NodeOS/NodeOS/milestones/2/labels","id":970423,"number":2,"title":"0.2.0","description":"  - [ ] Multiple architectures\r\n    - [ ] armv6\r\n    - [ ] armv7\r\n  - [ ] Multiple platforms\r\n    - [ ] Raspberry Pi QEmu (armv6)\r\n    - [ ] Raspberry Pi 2 QEmu (armv7)\r\n  - [ ] Raspberry Pi image\r\n  - [ ] Run on hardware\r\n    - [ ] u-boot (Raspberry Pi bootloader)\r\n- [ ] Travis-CI\r\n- [ ] build scripts written in Javascript\r\n- [ ] reverse proxy #35 \r\n- [ ] OpenGL / EGL\r\n  - [ ] WebGL on terminal\r\n  - [ ] Canvas on terminal\r\n- [ ] sound\r\n- [ ] HTML renderer on terminal (webkit based)\r\n- [ ] [compiled modules](https://github.com/NodeOS/NodeOS/issues/62)\r\n- [ ] self-hosted","creator":{"login":"piranna","id":532414,"avatar_url":"https://avatars.githubusercontent.com/u/532414?v=3","gravatar_id":"","url":"https://api.github.com/users/piranna","html_url":"https://github.com/piranna","followers_url":"https://api.github.com/users/piranna/followers","following_url":"https://api.github.com/users/piranna/following{/other_user}","gists_url":"https://api.github.com/users/piranna/gists{/gist_id}","starred_url":"https://api.github.com/users/piranna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piranna/subscriptions","organizations_url":"https://api.github.com/users/piranna/orgs","repos_url":"https://api.github.com/users/piranna/repos","events_url":"https://api.github.com/users/piranna/events{/privacy}","received_events_url":"https://api.github.com/users/piranna/received_events","type":"User","site_admin":false},"open_issues":28,"closed_issues":0,"state":"open","created_at":"2015-02-08T12:12:57Z","updated_at":"2015-04-29T09:29:02Z","due_on":null,"closed_at":null},"comments":102,"created_at":"2014-11-04T18:13:51Z","updated_at":"2015-06-11T16:15:57Z","closed_at":null,"body":"I have started making a GUI in javascript named Silk.  You can find the github repository [here](https://github.com/zodern/Silk).\r\n\r\n#### 4 main goals:\r\n- Fast and Lightweight\r\n- Designed with developers in mind\r\n- Experiment with new ideas for GUI's\r\n- Client (window manager) can be accessed remotely\r\n\r\n#### What is Completed\r\nI  duplicated Meteor.methods since they make it very for the client and server to communicate. \r\n\r\nThe basics of window management are done.  It is possible to open and minimize windows.  It applies the correct z-index to windows.  \r\n\r\nIt is possible to remotely access Silk by going to the url shown in the terminal.\r\n\r\n#### Plans\r\n\r\nThe first version will have a very simple text editor and file explorer.\r\n\r\nThere is no security to prevent anyone from remotely accessing the computer, which needs to be fixed.  We could look at [logon](https://github.com/piranna/logon).\r\n\r\nRight now the window manager uses iframes to show the apps.  Some websites don't allow themselves to display in iframes, including [google.com](http://google.com), [jw.org](http://jw.org) and [github.com](http://github.com).  If the expo browser is used in node os, maybe the window manager could create exoframes (I think that is what they are called) for each app.\r\n\r\nTo try it, past these commands into your terminal.  \r\n\r\n`npm i -g silk-gui` \r\n`cd silk`\r\n`npm start`\r\n\r\n### Screen Shots\r\n\r\n#### Loading Screen\r\n![screen shot 2014-11-04 at 11 47 39 am](https://cloud.githubusercontent.com/assets/8175744/4905158/58d20c0e-644d-11e4-8f5d-e2805577026c.png)\r\n\r\n#### Desktop\r\n\r\n![screen shot 2014-11-04 at 11 46 36 am](https://cloud.githubusercontent.com/assets/8175744/4905159/58d574f2-644d-11e4-923d-85ba136a55cc.png)\r\n\r\n#### Taskbar Hover \r\nNotice that the taskbar background becomes solid on hover.\r\n\r\n![screen shot 2014-11-04 at 11 47 55 am](https://cloud.githubusercontent.com/assets/8175744/4905160/58d64440-644d-11e4-8e4c-5a3368e82817.png)\r\n\r\n![screen shot 2014-11-04 at 11 48 30 am](https://cloud.githubusercontent.com/assets/8175744/4905157/58d22da6-644d-11e4-93a9-bc72b3cab34d.png)\r\n\r\n#### Current State of File Explorer\r\n![screen shot 2014-11-04 at 11 48 16 am](https://cloud.githubusercontent.com/assets/8175744/4905161/58d78602-644d-11e4-8697-f17127ae9e4e.png)\r\n\r\n\r\n#### If you have a suggestion or idea, feel free to create an [issue](https://github.com/zodern/Silk/issues)\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/NodeOS/NodeOS/issues/comments/111189934","html_url":"https://github.com/NodeOS/NodeOS/issues/79#issuecomment-111189934","issue_url":"https://api.github.com/repos/NodeOS/NodeOS/issues/79","id":111189934,"user":{"login":"piranna","id":532414,"avatar_url":"https://avatars.githubusercontent.com/u/532414?v=3","gravatar_id":"","url":"https://api.github.com/users/piranna","html_url":"https://github.com/piranna","followers_url":"https://api.github.com/users/piranna/followers","following_url":"https://api.github.com/users/piranna/following{/other_user}","gists_url":"https://api.github.com/users/piranna/gists{/gist_id}","starred_url":"https://api.github.com/users/piranna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piranna/subscriptions","organizations_url":"https://api.github.com/users/piranna/orgs","repos_url":"https://api.github.com/users/piranna/repos","events_url":"https://api.github.com/users/piranna/events{/privacy}","received_events_url":"https://api.github.com/users/piranna/received_events","type":"User","site_admin":false},"created_at":"2015-06-11T16:15:57Z","updated_at":"2015-06-11T16:15:57Z","body":"> I'm not even sure if Ozone-DRI is stable enough. I tried to build it multiple times the past few months, and even tried to build the Ozone-Wayland version, with no success. But this might be my fault, maybe I'm missing something important somewhere.\r\n\r\nHave you followed the instructions from https://www.chromium.org/developers/design-documents/ozone?  Seems should work out-of-the-box... At https://groups.google.com/a/chromium.org/forum/#!topic/ozone-dev/Q_5dkTj8Kew there are some more tips for compile it on Ubuntu, could be useful.\r\n\r\nThe Ozone Devs [seems very open to experiments](https://groups.google.com/a/chromium.org/d/msg/ozone-dev/eqV89buZjeA/oVYXjwwdX0UJ)... :-)\r\n\r\n>> Unfortunately, X11 does not correspond to our use. \r\n\r\n> Are you able to share your use? We are always interested in learning who's using (or trying to use) ozone.\r\n\r\nIn the same response, they talk about a \"egltest platform\" for testing purposses:\r\n\r\n> In the meantime, you could look at the \"egltest\" platform for a quick example that supports acceleration. Note that it is VERY limited in  functionality (no cursor, 1 surface only, fixed size).\r\n\r\nAnd seems what we are trying to do is one of the intended use cases :-)\r\n\r\n>> We are doing tests to see if we could use chromium with a specific ozone layer for STBs platforms, and at the same time having a more or less similar behaviour using ozone on a PC for debug.\r\n\r\n> This is one of the intended uses for ozone so you ought to find this quite workable. Check out the embedded=1 target for building \"embedded\" content shell -- a single display-filling web contents.\r\n\r\n:-D\r\n\r\n\r\n> So if we really want a graphical interface, then we'll need someone who can build a usable Chrome version with Ozone backend, or we could use basic Chrome build on X until things get stable enough.\r\n\r\nAnother simpler aproach to develop it, since we want a pure client-server architecture, it's just to use a Chrome browser on a desktop PC and connect to the NodeOS server using it's IP instead of localhost as address... :-D This is a valid use case, and one of the reasons why I wanted to isolate the GUI from any Node.js specific library :-D\r\n\r\n\r\n> By the way @piranna what were your plans to make /dev directory (or whatever it is called) accessible?\r\n\r\n[Make a FUSE filesystem that only show the devices that are not used by anybody and the current user has permissions to access to it](https://github.com/NodeOS/NodeOS/issues/95). For example, this way several users could be able to access each one to a different /dev/fbdevX at the same time since once one of them is open the others could not be able to access to it (in fact, it will not be shown at all), or you could plug several mouses and keyboards to the same computer and each user could read only from their own and not others. Building this way a multi-seat system would be fairly trivial... :-) I've also opened an issue on [fuse-bindings](https://github.com/mafintosh/fuse-bindings) (that seems the most updated and maintained of all FUSE libraries for Node.js) to request to add the fuse_get_context() function to be able to know [who is requesting access to each file](https://github.com/mafintosh/fuse-bindings/issues/3) :-)"}}