▶️ Deskreen Youtube channel (video tutorials, demos, use cases for Deskreen day to day usage)

Overview

Deskreen

Github All Releases

Deskreen Logo

Website: https://deskreen.com

release all os -- no code signing build-and-test codecov-generate codecov platform

▶️ Deskreen Youtube channel (video tutorials, demos, use cases for Deskreen day to day usage)

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.



  • Bugs General - for general bug reports if you don't know dev environment details. Please include Deskreen version! If you saw a bug and know your dev environment, and how to reproduce it, please consider opening a new Issue labeled as Bug and provide full details.

  • General Discussion - for general discussion. For example how did you find out about Deskreen? Or send cheers and thanks to anyone in Deskreen's community members. 🎉


  • Enhancements and New Features for Deskreen - share your ideas of what improvements can be done to Deskreen. Issues created with enhancement tag should be related to some concrete example of change in UI, Security patch, Performance improvement with some concrete notes on how you think the problem should be approached. Otherwise for general improvements with short paragraphs post your thoughts here.





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!

Display Dummy Plugs are good temporary solution, but it is not that good for everyone. 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! On a long run Deskreen seeks for getting rid of Display Dummy Plugs, because most people don't like using them. Sometimes they can't use them because all available display ports are already taken. So we need to have native drivers for Win / Mac / Linux that will help to enable virtual display without Dummy Display Plugs. There are already working commercial solutions out there with their own drivers which they don't disclose, but this task is doable with a help of entire community. 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!

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.

Share your valuable knowledge on how to create virtual desktop without a Dummy Display Plug in this discussion thread.

Thank you in advance!

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.

  1. git clone this repo
  2. cd app/client; yarn install --frozen-lockfile ; cd ../../ ; yarn install --frozen-lockfile
  3. 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/client
SKIP_PREFLIGHT_CHECK=true yarn test:nowatch -- -u

Run yarn test-all locally to make sure you don't have any errors, before submitting your PR

Instruction for running a local Sonar Qube, community edition

Prerequisites

You need to install Sonar Qube community edition for your machine. And sonar-scanner. Then add sonar scanner to your PATH.

You need to run sonar-scanner separately on root directory and on app/client directory.

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

High level architecture design

high-level-design

WebRTC Screen Sharing Session Initiation Step by Step

sharng-session-init

Benchmarks:

Benchmarks can be found here

Note on versioning:

  • All versions git tags should start with v ex. v1.0.0
  • Before making a new release with git push set version to ! 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
    • app/package.json -- in version key ex. 1.0.0
    • app/package-lock.json -- in version key ex. 1.0.0

Found typo on https://deskreen.com ?

You can submit your pull request with fix on Deskreen website locales repo

Maintainer

License

AGPL-3.0 License © Pavlo (Paul) Buidenkov

Copyright

Deskreen Logo PNG Image -- © Nadiia Plaunova

Apache 2.0 © blueprintjs

MIT © Electron React Boilerplate

simple-peer MIT. Copyright (c) Feross Aboukhadijeh

GNU General Public License (GPL) Version 2 node-forge

ISC Copyright (c) 2019, Mapbox pixelmatch

Thanks

🙏 Special thanks to Electron React Boilerplate community for providing a good kickstart template boilerplate code for electron project, that really helped a lot to get started with development of Deskreen.

🙏 Thanks to Github workflows for enabling a robust CI pipeline for the needs of 'forging' 🛠️ Deskreen.

🙏 Many thanks to all 🌍 open source community members and maintainers of libraries used in this project.

Donate

Click to donate on Deskreen's Patreon page

Click to donate on Deskreen's Opencollective page

You might also like...

🤖 Kaixin (Bot Always Stay in Channel)

 🤖 Kaixin (Bot Always Stay in Channel)

🤖 Kaixin (Bot Always Stay in Channel) this is a bot kaixin open source code.

Jan 20, 2022

🤖 NODE.TS - Play a welcome sound every time someone joins the voice channel, meme bot. (Olha ele ae)

welcome2voice-bot 🤖 NODE.TS - Play a welcome sound every time someone joins the voice channel. 🤖 INVITE-ME 🤖 Installation Clone project git clone g

Feb 23, 2022

Simple example script that receives the signal from one iptv channel and relays it via websocket to another server to replicate the stream to multiple players

Simple example script that receives the signal from one iptv channel and relays it via websocket to another server to replicate the stream to multiple players

Simple example script that receives the signal from one iptv channel and relays it via websocket to another server to replicate the stream to multiple players

Feb 20, 2022

This provides the channel of the anonymous ojosama salon for your server.

This provides the channel of the anonymous ojosama salon for your server.

🫖 匿名希望お嬢様Bot 匿名希望お嬢様Botはojosamaを利用したお嬢様口調の匿名サロンを実現しますわ!! ⚠️ ワーニング 注意事項を必ずお読みいただき、同意した上でお使いください。 注意事項に違反した使い方は製作者の意図した使い方ではなく、発生した損害・法的責任は利用者が責任を追うものと

Nov 13, 2022

A NodeJS package for voice channel interactions on Revolt. This package lets you join voice channels, play music and more!

Revoice.js - A Voice Module for Revolt This package is still in developement and lacks many features. You still are able to play sound to a voice chan

Dec 25, 2022

This bot can raise your mood. This bot send joke often our channel for users. Sometimes bot don't work because we have not server for this project...)

This bot can raise your mood. This bot send joke often our channel for users. Sometimes bot don't work because we have not server for this project...)

Hi, welcome to send-joke-bot telegram bot project 🤖 What can do this bot ? This bot can raise your mood. This bot send joke often our channel for use

Sep 26, 2022

DownTube is a free to use - Content downloader service that works upon YouTube based open source APIs. It is developed and handled by M30.

DownTube is a free to use - Content downloader service that works upon YouTube based open source APIs. It is developed and handled by M30.

🚀 DownTube 3.1.7 DownTube is a free to use - Content downloader service that works upon YouTube based open source APIs. It is developed and handled b

Sep 5, 2022

A lightweight, easy-to-use jQuery plugin for fluid width video embeds.

Introducing FitVids.js A lightweight, easy-to-use jQuery plugin for fluid width video embeds. FitVids automates the Intrinsic Ratio Method by Thierry

Dec 24, 2022

▶️ Streams a list of tracks from Youtube, Soundcloud, Vimeo...

PlayemJS PlayemJS is a front-end JavaScript component that manages a audio/video track queue and plays those tracks sequentially. It can currently pla

Nov 27, 2022
Owner
Leo
I am sultanov. I am a professional full stack developer.
Leo
This DJS ticket system with transcripts is fully configurable, you can change the transcripts channel, tickets channel, and more

This DJS ticket system with transcripts is fully configurable, you can change the transcripts channel, tickets channel, and more! This command uses embeds, and buttons.

LunarCodes 6 Oct 18, 2022
HTML5

One file. Any browser. Same UI. Author: John Dyer http://j.hn/ Website: http://mediaelementjs.com/ License: MIT Meaning: Use everywhere, keep copyrigh

MediaElement.js 8k Dec 27, 2022
HTML5

One file. Any browser. Same UI. Author: John Dyer http://j.hn/ Website: http://mediaelementjs.com/ License: MIT Meaning: Use everywhere, keep copyrigh

MediaElement.js 8k Jan 8, 2023
Tonton video tutorial di YouTube saya untuk cara penginstalan & apabila kurang mengerti bisa hubungi saya di WhatsApp 🐣Klik link di bawah untuk tutorial penginstalan di heroku

BOTZ10 LAST Termux • Heroku • Session Setting • Thanks TERMUX Git clone this repo > git clone https://github.com/zeeoneofc/BOTZ10a.git > cd BOTZ10a >

zeeone 17 Dec 23, 2021
This is a YouTube Video Planner app built with NextJS, GraphQL, Prisma and MongoDB for the MongoDB Atlas Hackathon

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

Justin Chau 2 Jan 14, 2022
Source code for a girlfriend bot that you can talk to in VC, video can be found on youtube

Girlfriend Bot This repo is basically the source code for the main youtube video which was basically me creating a girlfriend that i can talk to in VC

UltraX 16 Dec 2, 2022
Video.js - open source HTML5 & Flash video player

Video.js - HTML5 Video Player Video.js is a web video player built from the ground up for an HTML5 world. It supports HTML5 video and Media Source Ext

Video.js 34.8k Jan 5, 2023
A Node JS Express/Serverless demo application that creates a slideshow video using the Pexels image library and Shotstack video editing API.

Shotstack Pexels Slideshow Video Demo This project demonstrates how to use the Shotstack cloud video editing API to create a video using an HTML form

Shotstack 25 Dec 9, 2022
A Chrome extension to help you inspect Mp4 video content and find irregularities in video streams.

MP4Inspector A Chrome extension to help you inspect Mp4 video content and find irregularities in video streams. Installation In chrome navigate to chr

Bitmovin 48 Nov 28, 2022
An simple package to create an Activity in Discord Voice Channel using Discord.js

discordjs-activity An simple package to create an Activity in Discord Voice Channel using Discord.js ?? | Installation npm install discordjs-activity

Sudhan 55 Nov 15, 2022