

Deskreen
Deskreen
Deskreen turns any device with a web browser into a secondary screen for your computer
Deskreen is an electron.js
based application that uses WebRTC
to make a live stream of your desktop to a web browser on any device. It is built on top of Electron React Boilerplate For better security mechanism, end-to-end encryption is implemented, which is inspired by darkwire.io. The difference is that it is rewritten in Typescript
and transformed to use node-forge
instead of window.crypto.subtle
. Why this was made? Because a client served with http
without SSL, which makes window.crypto.subtle
unavailable.
Deskreen FAQ
Get Started for translators
Want to add a new language support for Deskreen? Or you found a typo in existing translations of Deskreen App or website? Here are step by step guides:
Deskreen Github Discussion Threads
Read and Respect our Contributor Covenant Code of Conduct When Writing in our Discussion Threads.
Announcements Channel in Discussions
Some progress and updates on Deskreen can be found here.
Installing with binaries
Windows
- Get the .msi or .exe file from Releases
Mac
- Get the .dmg file from Releases
- Or get from Homebrew:
brew install --cask deskreen
Linux
- Debian and Ubuntu based distributions (deb)
- Enterprise Linux based distributions (rpm)
- Arch Linux AUR Package
- AppImage for other distributions
Get Started for Developers
Run yarn test-all
locally to make sure you don’t have any errors, before submitting your PR
Prerequisites
You will need to have node
npm
and yarn
installed globally on your machine.
- git clone this repo
cd app/client; yarn install --frozen-lockfile ; cd ../../ ; yarn install --frozen-lockfile
yarn dev
— run in dev mode with live updates
Useful yarn commands
yarn start
— run in production mode to test, without packaging yarn package
— to package an app and make executables available in release
folder
for more yarn commands look at package.json
How to run tests
yarn test
— run all unit tests yarn build-ux && yarn test-ux
— run User Experience tests (no tests for app/client
yet)
TODO: add e2e tests with host + client app interaction
run tests of host app
yarn test-watch-not-silent
— run tests in watch mode with console logs only for host app, excluding app/client
yarn test -- -u
— update snapshots
run tests for app/client
yarn test
— run client tests in watch mode test:nowatch
— run client tests a single time yarn test -- -u
— update snapshots
Generate test coverage results
yarn coverage` -- when run from project root, generates a coverage report for `host` and `app/client
How to regenerate snapshots if you have tests failing when running yarn test
?
in root ./
folder of project run this:
yarn jest --updateSnapshot
in Deskreen Viewer ./app/client
folder of project run this:
cd app/clientSKIP_PREFLIGHT_CHECK=true yarn test:nowatch -- -u
Documentation
High level architecture design
WebRTC Screen Sharing Session Initiation Step by Step
Benchmarks:
Website:
← Back to projects