nwjs / nw.js

Call all Node.js modules directly from DOM/WebWorker and enable a new way of writing applications with all Web technologies.
https://nwjs.io
MIT License
40.27k stars 3.88k forks source link

Is it possible to start node-webkit as the window manager? #722

Closed CoryGH closed 6 years ago

CoryGH commented 11 years ago

Is it possible to start node-webkit as the window manager? So that instead of having the overhead of a window manager you just boot into a single site?

I'm trying to use a bunch of Raspberry Pis as stations to automate away the paperwork for a production line - the tracking software is already designed for node-webkit but the combination of not wanting people to fiddle with the OS or have wasted screenspace (this part could be accomplished with kiosk mode) and wanting to keep CPU overhead to a bare minimum leads me to ask this question.

TL;DR: I want to start a single-window node-webkit app in kiosk mode that replaces the desktop window manager entirely.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Mithgol commented 11 years ago

...and in addition to Chrome OS and Firefox OS we'd have some node-webkit-OS. Wonderful idea.

jaeh commented 11 years ago

have a look at nwm: https://github.com/mixu/nwm

i am very interested in this and plan to start working on a window manager in node sometime in the future, unfortunately work just decided to throw more of itself towards me, so no window manager creation for me for at least the next 2 month :(

have fun jascha

CoryGH commented 11 years ago

@manarius Want to work on it together? I've actually got a pretty massive project that is at present closed-source but have been considering making it open-source - it's a PostgreSQL/node.js/javascript/web(node-webkit and chrome based clients) private cloud computing system for small businesses (as in the benefits of a cloud, without the insecurity of giving up your data to a third-party) - would be happy to discuss it with you in more detail if you are interested - I think a webkit-based OS has been a long time coming.

CoryGH commented 11 years ago

@mattlenz My thoughts on the subject make me think of a server cluster that acts like a mainframe for a company (since being able to throw hardware at a computing problem is the de facto standard). For clients existing technologies must be used like node-webkit or web browsers (since nobody will get an OS just because it might be suitable for filling a role - actual adoption won't come until people realize they can save on licensing fees while still improving their system). Extensibility is critical (not just in being extensible, but in being capable of being maintainable when people can modify their own systems simply with JavaScript).

My current system essentially has a local db written in JavaScript with a heavily-coupled managed code engine attached to it and some standard gui mechanisms (binding gui controls to tables [or ordered/filtered/joined subsets of tables adding/removing/updating rows when a delete/insert/update occurs]) - everything updates in real time whether you are editing the same table twice on one machine or two separate people are viewing some abstract subset of the table on two different machines via socket.io connections to a node.js server (permissions are handled per user role [arranged in a hierarchial grouping] and cascade by table and column [haven't added per-row permissions yet] which are checked both on the server for all requests [select,update,insert,delete,grant,revert,archive,schema,code,execute] and on the client prior to performing an action [just for the sake of a more responsive gui and not wasting server resources, if someone tries to bypass the permission checks the server will still reject the transaction]). Code can be applied globally, per table or per row as functions, events, classes(with stable inhertance), namespaces or properties and the managed code engine will create all the actual client-side js on the fly (inheritance can happen in the traditional class sense, but db objects also have inhertance, in that each row of each table inherits from the table "ghost" row and itself code-wise, tables inherit from a ghost table and themselves as well - both tables and individual rows are js pseudoclasses and can have their own functions/events/sub-classes/coded-properties/run-time-properties-and-variables/etc) - async methods aren't yet implemented nor client/server side affinity (eventually I want to build in the ability to mark code as execute at local/server/client/cluster and flag for sync/async to have the engine build that out without the hit to development time in doing so for a method, but it's a fairly low priority for the moment).

It's probably more telling to show what it produces at present: http://imgur.com/a/zQdpp

Currently I'm working on node.js based modular drivers for stuff like barcode scanners and rfid tags because I'm expanding the system onto about 50 Raspberry PI's for people to utilize in a production process - so far it looks like I could hack something together with chromium + node.js in the background (and might want to add the ability for the software to handle client-side node.js computing instances interfacing with a browser via socket.io to 127.0.0.1 anyway for things like services that start an application on an event [like a barcode scan or rfid swipe]) - but I've been mulling over the idea of a MDI browser or a single-page web OS for years and really love the idea, a MDI browser would be virtually impossible to get people using, but really the interfaces people use in different applications are so incredibly variable that the whole OS experience should be mutable to match it - maybe a 3-4 key hotkey to open a control panel or admin dialog prompt for doing things like network config or to get a shell, but otherwise the user should experience whatever a particular application developer wants them to experience - at least in my opinion.

If you want to talk about it more in-depth I'll be on the irc.rizon.net channel #jsos - might take me a bit to respond but I'll leave the window for it open on a secondary machine (choosing this both to avoid posting my email out on the open web for spammers and incase anyone else is interested in this so we aren't spamming the node-webkit issue tracking site).

bmatusiak commented 10 years ago

yes you can...

i do so by setting this in ~/.xinitrc and startx command will load with it

xset -dpms                                                                                                                                                                                                                  
xset s noblank                                                                                                                                                                                                              
xset s off                                                                                                                                                                                                                  
/home/ubuntu/node-webkit/nw /home/ubuntu/display-app
rduckett commented 9 years ago

How can I get gdm/entrance/kdm/etc to do this? Infact, what pertains to getting a complete NW.JS system running (at least in linux). I may have a look at combining nwm and NW.JS just to see if the bindings are all compatible and if I can have desktop apps running in HTML elements!

stale[bot] commented 6 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.