Giter Club home page Giter Club logo

osjs-xpra-application's Introduction

OS.js Logo

OS.js is an open-source web desktop platform with a window manager, application APIs, GUI toolkit, filesystem abstractions and much more.

Support Support Donate Donate Community

OS.js Xpra Application

This is the Xpra Package for OS.js.

This is in no way complete, see the Xpra HTML5 client library for more information

Installation

npm install @osjs/xpra-application
npm run package:discover

Contribution

Documentation

See the Official Manuals for articles, tutorials and guides.

Links

osjs-xpra-application's People

Contributors

andersevenrud avatar frju365 avatar immortalin avatar matheusfelipeog avatar shadoweo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

osjs-xpra-application's Issues

Too slow xpra drawing?

I tried official xpra client, and os-js client. For some reason, os-js client (xpra-html5-client) is performing very poorly. It's like 1 frame per second or less. When I looked into the dev tools, it confirmed my suspicion of 1fps, and i noted base64 image constructions at a similar or slower rate.

Official XPRA client seems to be getting quite a bit of updates, but too sad they don't export it as an NPM'able library nor do they make it easy to use individual bits and pieces.

I will probably do some more digging, but performance difference will probably kill one of my use cases until i can identify the problem.

Support subpath URI and token

We serve our xpra client under a subpath(e.g. ws://localhost:8000/desktop) and plus a query string for the authentication token(https://localhost:8000/desktop/?token=s3sdfou239sdofj2o30usdofj23) when initiating the connection. This works with the official client, however, it doesn't seem to work with the osjs xpra application.

This is a link to start a binder server (a free public docker based service): https://mybinder.org/v2/gh/imjoy-team/imjoy-hybrid-desktop/xpra?urlpath=desktop (takes a minute to start up and you will see the official xpra client link).

Support authentication

Currently the Xpra application doesn't support any mode of authentication, at least username/password for PAM authentication would suffice, if you wouldn't mind adding this feature to the client!

[Enhanacement Proposal] Implement more of the HTML5 client's functionality

First off, XDG Menu Support:

I was looking into this while doing my QOL changes but was having some trouble figuring out how to hook the contextmenu items and the items exported by the HTML5 client together. To be honest it was a minor thing on my mind at the time compared to getting it up and running with authentication support, and I admittedly did not attempt to view the menu's properties directly during runtime yet. I also wanted to ask about the possibility of integrating the XDG Menu perhaps not into the client menu itself, but the desktop's applications menu, is there a way to add items to that menu exposed to application developers?

I think this might be the next logical enhancement for this project, at least in my mind, barring either:

  • Xpra Proxy Server support
    • This is where the server creates a session, and then hands that session off to the client, currently that functionality does not seem to work (though it does seem to work in the HTML5 client) and may need additional options to be passed to the JavaScript client component. It's quite possible that this functionality is working, but we're lacking the functionality to start anything in the connected session, though IIRC it disconnected from the server every time I attempted.
    • This would also allow multiple users to use the same Xpra websocket address, I could see administrators wishing to lock users into a single Xpra endpoint for shell purposes (if X11/Xpra is provided on the shell/server).
  • Possibly supporting chromeless windows (like panel windows drawn by the aformentioned matchbox-panel, which doesn't seem to draw right because of the window chrome), if that's even a possible thing.

All three of which I would like some comments or feedback on if you have any. Apologies if any of this seems disjointed, trying to articulate these the best I am able.

What do you think? Could this be a thing, and would it be as simple as me creating a global array to store the stitched together entries and callbacks in, and have the context menu use that as the menu for that item?

Could it even be possible (in the OS.js Applications Menu's current form) to add them to the main applications menu at time of connection, and is there a possible reference I could look towards to guide me in that endeavor?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.