<p>Website: https://www.deskreen.com </p> <p>Deskreen turns any device with a web browser to a second screen for your computer<br /> Deskreen is an electron.js based application that uses WebRTC to make a live stream of your<br /> desktop to a web browser on any device.<br /> It is built on top of Electron React Boilerplate<br /> For better security mechanism, end-to-end encryption is implemented, which is inspired by<br /> darkwire.io. The difference is that it is rewritten<br /> in Typescript and transformed to use node-forge instead of window.crypto.subtle.<br /> Why this was made? Because a client served with http without SSL, which makes window.crypto.subtle unavailable.<br /> NOTE: We are looking for a solution to get rid from Dummy Display Plugs while using Deskreen as a second screen. Your code support is highly valuable and welcome in Deskreen!<br /> Display Dummy Plugs are good temporary solution, but it is not that good for everyone.<br /> If you are a seasoned Windows or Linux or MacOS hacker with a knowledge of low level tweaks and tricks, you can help us to make Deskreen better!<br /> On a long run Deskreen seeks for getting rid of Display Dummy Plugs, because most people don&#8217;t like using them. Sometimes they can&#8217;t use them because all available display ports are already taken.<br /> So we need to have native drivers for Win / Mac / Linux that will help to enable virtual display without Dummy Display Plugs.<br /> There are already working commercial solutions out there with their own drivers which they don&#8217;t disclose, but this task is doable with a help of entire community.<br /> The goal of Deskreen is to enable community power and knowledge to overcome these technical challenges and make it a go-to second screen solution that everyone will benefit from!<br /> We plan on making virtual display driver support for each of three main operating systems and place all OS related codes in ./drivers subdirectory of this project.<br /> You can find brief requirements for driver API in ./drivers/README.md.<br /> Share your valuable knowledge on how to create virtual desktop without a Dummy Display Plug in this discussion thread.<br /> Thank you in advance!<br /> Get Started for Developers<br /> Prerequisites<br /> You will need to have node npm and yarn installed<br /> globally on your machine. </p> <p>git clone this repo<br /> yarn install<br /> yarn dev &#8212; run in dev mode with live updates </p> <p>Useful yarn commands<br /> yarn start &#8212; run in production mode to test, without packaging<br /> yarn package &#8212; to package an app and make executables available in release folder<br /> for more yarn commands look at package.json<br /> How to run tests<br /> yarn test &#8212; run all unit tests<br /> yarn build-ux &#038;&#038; yarn test-ux &#8212; run User Experience tests (no tests for app/client yet)<br /> TODO: add e2e tests with host + client app interaction<br /> run tests of host app<br /> yarn test-watch-not-silent &#8212; run tests in watch mode with console logs only for host app, excluding app/client<br /> yarn test &#8212; -u &#8212; update snapshots<br /> run tests for app/client<br /> yarn test &#8212; run client tests in watch mode<br /> test:nowatch &#8212; run client tests a single time<br /> yarn test &#8212; -u &#8212; update snapshots<br /> Generate test coverage results<br /> yarn coverage &#8212; when run from project root, generates a coverage report for host and app/client<br /> Instruction for running a local Sonar Qube, community edition<br /> Prerequisites<br /> You need to install Sonar Qube community edition for your machine.<br /> And sonar-scanner. Then add sonar scanner to your PATH.<br /> You need to run sonar-scanner separately on root directory<br /> and on app/client directory.<br /> Luckily for you sonar scanner is automatically triggered after husky checks.<br /> So you only need to install and configure SonarCube locally and<br /> create two separate projects in SonarCube panel.<br /> First project for host app, and second project for client viewer app.<br /> TODO: add how to get started with local SonarCube for Deskreen in details.<br /> Documentation<br /> High level architecture design </p> <p>WebRTC Screen Sharing Session Initiation Step by Step </p> <p>Note on versioning: </p> <p>All versions git tags should start with v ex. v1.0.0<br /> Before making a new release with git push set version<br /> to ! without v in the beginning! (ex. 1.0.0 &#8212; not start with v) in these three files: </p> <p>package.json &#8212; in version key ex. 1.0.0<br /> app/package.json &#8212; in version key ex. 1.0.0<br /> app/package-lock.json &#8212; in version key ex. 1.0.0 </p> <p>Maintainer </p> <p>License<br /> AGPL-3.0 License © Pavlo (Paul) Buidenkov<br /> Copyright<br /> Deskreen Logo PNG Image &#8212; © Nadiia Plaunova<br /> Apache 2.0 © blueprintjs<br /> MIT © Electron React Boilerplate<br /> simple-peer MIT. Copyright (c) Feross Aboukhadijeh.<br /> Thanks<br /> Thanks to Github workflows for enabling a robust CI pipeline for Deskreen creating needs.<br /> Many thanks to all open source community members and maintainers of libraries used in this project.<br /> Donate<br /> Click to donate on Deskreen&#8217;s Patreon page: DONATE!<br /> Note: Changes to the Full-Text RSS free service</p>