Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

About the project

The project is under development and still very experimental.

What is it?

The project aims to provide a system to display any X application running on a remote server into a web browser, using modern web technologies (websockets and Canvas).

How is it supposed to work?

The project is divided into three major parts.

The backend part communicates directly with the X clients, serialize/deserialize clients requests, handle these locally when possible or transfer them to the frontend when not.

The web application backend handles the authentication process, and is responsible for launching the backend application is a new process. It is also used as a bridge to communicate from the backend application to the browser.

The frontend (web browser) application, handles the requests received via web sockets, and is responsible for the rendering. It is also responsible for listening events and transfering them to the server (not yet implemented).

Does it work?

Not yet. The main framework to communicate between the browser and the X clients is more or less done, but only a very few X request are implemented (quite partially). There are still some important things to fix in the backend, some parts which are not threadsafe yet.

Running the application

The application at least needs a JDK and maven installed. To run the application in production mode (which is not really worth right now though), nix-password-checker will be required. After setting the paths in frontend/conf/application.conf

mvn clean compile install

should be enough to setup everything. The application can then be ran using

mvn play2:run

you can then login with your usual Linux/UNIX username/password combination. The password is only checked when ran in production mode, but this requires (for now) to run the application as a root user.


The project is still only starting, but any help or suggestions would be greatly appreciated.