Professional Documents
Culture Documents
GitHub - Ieski - Deskreen - Deskreen Turns Any Device With A Web Browser To A Second Screen For Your Computer
GitHub - Ieski - Deskreen - Deskreen Turns Any Device With A Web Browser To A Second Screen For Your Computer
ieski / deskreen
forked from pavlobu/deskreen
Deskreen turns any device with a web browser to a second screen for your computer
www.deskreen.com
AGPL-3.0 License
0
stars
507
forks
Star
Notifications
master
Go to file
Contribute
Fetch upstream
pavlobu … on 24 Jan
View code
Deskreen
Website: https://www.deskreen.com
https://github.com/ieski/deskreen 1/7
18/06/2021 GitHub - ieski/deskreen: Deskreen turns any device with a web browser to a second screen for your computer
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.
You can find brief
requirements for driver API in ./drivers/README.md .
Prerequisites
You will need to have node npm and yarn installed
globally on your machine.
https://github.com/ieski/deskreen 2/7
18/06/2021 GitHub - ieski/deskreen: Deskreen turns any device with a web browser to a second screen for your computer
2. yarn install
3. yarn dev -- run in dev mode with live updates
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
Prerequisites
You need to install Sonar Qube community edition for your machine.
And sonar-scanner.
Then add sonar scanner to your PATH.
https://github.com/ieski/deskreen 3/7
18/06/2021 GitHub - ieski/deskreen: Deskreen turns any device with a web browser to a second screen for your computer
Luckily for you sonar scanner is automatically triggered after husky checks.
So you only
need to install and configure SonarCube locally and
create two separate projects in
SonarCube panel.
First project for host app, and second project for client viewer app.
TODO:
add how to get started with local SonarCube for Deskreen in details.
Documentation
Electron main
Any device with a web browser that
UI (react.js) process (deskreen supports WebRTC
web browser window)
Web browser that supports
Signaling Server (port 3131) ./app/server WebRTC
HTTP server (sends web page files to Browser tab with Deskreen client web
client) at moment Koa, can be any page ./app/client
WebSocket socket.io-server.
Responsible client and host app
e2e encrypted
UI (react.js)
WS based communication. signal exchange
unique roomID for each
connection
WiFi or socket.io-client (connect to
electron desktopCapturer
https://github.com/ieski/deskreen 4/7
18/06/2021 GitHub - ieski/deskreen: Deskreen turns any device with a web browser to a second screen for your computer
https://www.deskreen.com
Deskreen | WebRTC Screen Sharing Session Initiation Step by Step by Pavlo (Paul)
Buidenkov 22 Jan 2021
Computer on private
network with Deskreen
App running WiFi or
Sinaling Server ( HTTP and Client viewing device on
Screen Sharing Session (
connected on 127.0.0.1
Websocket electron main LAN or private network
with a WebRTC compatible
electron renderer process ) process ) 127.0.0.1 WebBrowser
Generate a
public private
keypair, one for socket connect to <roomID> ex. 123456
all sessions HTTP GET <addr>/<roomID>
wait for USER_ENTER event from client,
every event below in this diagram
send static files in response Generate public
is emitted to same roomID private keypair,
one for
current session
emit GET_MY_IP
passthrough USER_ENTER event to host emit USER_ENTER event with public key in payload
keep client's public key
and encrypt further
payloads with it
emit USER_ENTER with public key to client passthrough USER_ENTER event to client
keep received
host's public key
and encrypt further
payloads with it
emit TOGGLE_LOCK_ROOM immediately to prevent other
clients to connect to this room, if someone tries to
connect, they will receive a ROOM_LOCKED
https://github.com/ieski/deskreen 5/7
18/06/2021 GitHub - ieski/deskreen: Deskreen turns any device with a web browser to a second screen for your computer
when electron
desktopCapturer
stream available,
simple-peer sends send stream with WebRTC
stream to client
when simple-
peer.on('stream',
occurs -> show
stream in web
browser UI video
DOM element
Note on versioning:
All versions git tags should start with v ex. v1.0.0
Before making a new release with git push <version-tagname> set version
to
<version-tagname> ! without v in the beginning! (ex. 1.0.0 -- not start with v ) in
these three files:
package.json -- in version key ex. 1.0.0
Maintainer
Pavlo (Paul) Buidenkov
License
AGPL-3.0 License © Pavlo (Paul) Buidenkov
Copyright
Deskreen Logo PNG Image -- © Nadiia Plaunova
Thanks
Thanks to Github workflows for enabling a robust CI pipeline for Deskreen creating needs.
Many thanks to all open source community members and maintainers of libraries used in
this project.
https://github.com/ieski/deskreen 6/7
18/06/2021 GitHub - ieski/deskreen: Deskreen turns any device with a web browser to a second screen for your computer
Donate
Click to donate on Deskreen's Patreon page: DONATE!
Releases
1
tags
Packages
No packages published
Languages
TypeScript 92.9%
JavaScript 4.3%
CSS 2.0%
HTML 0.8%
https://github.com/ieski/deskreen 7/7