[HN Gopher] I made Deskreen, open source app to make any device ...
___________________________________________________________________
I made Deskreen, open source app to make any device a second screen
for computer
Author : pavlobu
Score : 171 points
Date : 2021-01-18 11:13 UTC (11 hours ago)
(HTM) web link (www.deskreen.com)
(TXT) w3m dump (www.deskreen.com)
| aargh_aargh wrote:
| Does anyone have a recommendation if I want to do the reverse,
| i.e. share my Android screen in a PC window (Windows)?
|
| A quick Google search reveals that there are options, does anyone
| have any experience doing that?
|
| Ideally I'd like to mirror an app view to a PC window regardless
| whether the android display is turned off or even the app is in
| the background. Not sure if that's even possible on a non-rooted
| android.
| pavlobu wrote:
| I was thinking of doing a Deskreen for mobile and tablets to do
| exact same thing, but technology is not there yet for React
| Native.
|
| Things may change in future
| jjice wrote:
| I literally did this earlier today. Funny coincidence. I'm
| using Vysor[0]. Worked out of the box for me. If you aren't
| pro, the display quality leaves some to be desired, but it
| works fine for me to make Android dev on hardware a bit more
| comfortable. It requires the device be unlocked though. It even
| has a web interface that uses WebUSB. I didn't try it, but
| seems like a neat option.
|
| [0] https://www.vysor.io/
| ffpip wrote:
| scrcpy - https://github.com/Genymobile/scrcpy
| pavlobu wrote:
| Nice one! But still not cross platform.
| jowood wrote:
| It works on Linux, macOS and windows
| Groxx wrote:
| Depending on how technical you are / your audience is: Vysor or
| scrcpy. Vysor used to be a free chrome extension, but alas, no
| longer. https://fossbytes.com/android-screen-mirroring-apps-pc/
| pwlb wrote:
| Anybody who wants to this with Linux: scrcpy uses adb(turn on
| usb debug) und works like a charm
| boromi wrote:
| Any link to an HDMI 4k 60hz dummy adapter that support HDR?
| pavlobu wrote:
| No, but you can always google :)
| mfkp wrote:
| Dummy display adapter for $1.47 shipped with promo code 7O8A2CEG
|
| https://smile.amazon.com/dp/B08RCHWKWQ/
| pavlobu wrote:
| See, they are cheap like chips :)
| Yeroc wrote:
| I guess the downside of using this mechanism is that if you
| already have an external monitor attached then you can't use
| this solution? Or is there another way to use Deskreen? For
| example, my Mac laptop is already plugged into a large
| external display so there's no free port for a dummy plug
| like this.
| dingdingdang wrote:
| Think you are missing a beat by not having affiliate links to
| those Display Dummy Plugs! Would certainly order via you as a
| cost free way of donating should I come to need this type of
| software.
| kevincox wrote:
| It seems like the sender could be in-browser as well using WebRTC
| for the screen sharing. I would guess this is what is being used
| anyways as the receiver is a browser? If not is the quality much
| different?
| pavlobu wrote:
| Yes basically it's two browsers talking to each other. But
| there is an important thing to notice.
|
| You need to run a signaling server running somewhere. You cant
| run a signaling server in browser. When doing screen sharing
| between two browsers it basically goes to external signaling
| server on internet and asks credentials and then doing peer to
| peer communication.
|
| Deskreen can run without access to world wide web with its own
| local signaling server.
|
| The speed is also much better when doing direct communication
| through local signaling server running on host machine.
|
| Hope that helps you to understand it better.
|
| Cheers
| kevincox wrote:
| I can see the benefit of a local signaling server however I
| am always online so I would be happy to run it in my browser
| and avoid running electron.
|
| > The speed is also much better when doing direct
| communication through local signaling server running on host
| machine.
|
| This should only affect the setup time right? As soon as the
| connect is established the signaling server should not be
| required.
| pavlobu wrote:
| Not quite. As I've tested the speed is much slower when I'm
| using a simple-peer API with external IPC servers array
| filled in.
|
| You may use what better fits your use case. But I want to
| mention that I made and end-to-end encryption for initial
| signals to be sent to each other. Signals are basically
| encrypted and hard to hack. Also deskreen has a lot of
| alrets and confirmations so you can always check your
| devices IPs. Also it has Lock Room feature -> meaning as
| soon as someone connected to a socket, it is immediately
| locked and no one can access it except 2 host and client
| devices.
|
| But you can have a look in source code and maybe find some
| security leaks. Please submit the issue if you find it.
|
| By the way I forgot to reference simple peer on github, let
| me fix that soon.
| Animats wrote:
| _Deskreen can run without access to world wide web with its
| own local signaling server._
|
| That should be the standard setup. Allowing any access to
| your screen via a remote server is a huge security hole.
| kevincox wrote:
| A signaling server does not provide access to your screen.
| The clients can verify that they are connected to each
| other without MITM.
| premek wrote:
| _ANY_ device!
| pavlobu wrote:
| Yup, lol :D
| [deleted]
| retribe wrote:
| I tried it with an iPad and it works great, however the text-
| quality is sadly not good enough for my use case: as a second
| screen for looking at API documentation, PDFs and coding. I wish
| this could be improved - software such as Parsec(only for Windows
| hosts) can achieve better quality (though not perfect).
| pavlobu wrote:
| Hey thank you for your feedback!
|
| Indeed there is still enough room to improve for Deskreen.
|
| You can try to change resolution of your virtual display to
| make all look bigger if you need that.
|
| Cheers
| stragies wrote:
| Text should look pixel-perfect if you use loss-less
| compression. Or aren't you? Are you using QuickSync/HWEnc
| (lossy h26X?) ?
| grishka wrote:
| Please, remove that atrocious "smooth scrolling" script from your
| website so it doesn't feel broken.
| pavlobu wrote:
| Removed!
|
| Agree, not everybody likes it :)
| ficklepickle wrote:
| You can use the CSS attribute "scroll-behavior: smooth" which
| avoids the hazards of using JS to hijack the scroll event.
|
| I don't believe it works on safari, but safari is the new IE
| so what can you do.
| pavlobu wrote:
| I removed it and it really works ok now even with safari.
|
| Uh.. Honestly I did not write a full website and just
| grabbed the one I found on github.
|
| It is a cool template, though, it is not completely 'react'
|
| and still using some legacy JS libraries, even jQuery (!)
| grishka wrote:
| The #1 problem with all these scripts is that they make the
| scrolling wonky when you use the trackpad on macOS. There's
| supposed to be a 1:1 relationship between how far you move
| your fingers and how far it scrolls, and these make it
| either fly off the screen at the speed of light or feel
| like you're scrolling through molasses. Either way, it
| clashes with your muscle memory.
| pavlobu wrote:
| Meet Deskreen an app to make any device with a web browser a
| second screen for your computer.
|
| You can download latest Deskreen-1.0.0 version on our website:
| https://www.deskreen.com/
|
| Quick Demo Video On Youtube -- Tablet as Second Screen for a
| laptop | Using Deskreen: https://youtu.be/rmg5tZ4iSx8
|
| Deskreen can be used not only for second screen use case, but
| also for screen mirroring through local WiFi, or single
| application window view sharing to other devices.
|
| Features:
|
| * works with WiFi or LAN
|
| * use any device with web browser as second screen for your
| computer (using Display Dummy Plug)
|
| * use any device web browser to mirror your computer's screen
|
| * use any device web browser to view a single application window
| from your computer's screen
|
| * supports multiple screen sharing sessions to as many devices as
| you want
|
| * supports changing picture quality while sharing a screen.
|
| * Picture auto quality change supported. (for performance boost
| while watching youtube video for example)
|
| * End-to-end security
|
| * dark mode UI support ;)
|
| available for Win / Mac / Linux
|
| Note: app is not Code-Signed yet, code signing is pricy. Any
| donations are highly encouraged. Donate on Patreon.
|
| Links:
|
| Deskreen on Github: https://github.com/pavlobu/deskreen Deskreen
| on Patreon: https://www.patreon.com/deskreen
|
| Thank you all for your attention,
| ValentineC wrote:
| Thank you for making this open source. I hope you'll be able to
| find a way to make this worthwhile for yourself.
| pavlobu wrote:
| You are welcome!
|
| I know it is not absolutely encouraged nowadays, but I'm
| making it completely out of good will.
|
| Making a good thing to the world you live in, is already
| worthwhile, isn't it? :)
|
| Cheers
| GordonS wrote:
| > app is not Code-Signed yet, code signing is pricy
|
| I've used K Software before (who resell Comodo certs for
| cheaper), but it looks like they are around $90/year now; I'm
| sure they were a good bit cheaper when I last renewed 2-3 years
| back :-/
|
| Be prepared for a shitty and lengthy verification experience
| though, including having to put details on multiple online
| telephone directories of their choosing (wtf that is meant to
| prove, I don't know!), and possibly having to get your identity
| notarised by a solicitor/lawyer.
|
| I really wish there was some kind of "Let's Encrypt for code
| Signing", but because of the verification requirements it's
| hard to see it happening. I suppose it _might_ be technically
| possible to do for a selected set of countries if the right gov
| APIs existed.
| pavlobu wrote:
| Yep, code signing is a racket and a complete bs :/
| mnw21cam wrote:
| No, I don't seem to be able to download the latest
| Deskreen-1.0.0 version from your web site, because your web
| site is just a blank white page.
| pavlobu wrote:
| Or just go straight to github.com releases page and download
| it from there directly. Here it is:
|
| https://github.com/pavlobu/deskreen/releases/tag/v1.0.0
| pavlobu wrote:
| https://www.deskreen.com/
|
| please try to visit that website
|
| It may be a problem of Github CDN it is not able to catch up
| with so many users at the moment, probably
| ficklepickle wrote:
| It works fine. That was a bad-faith comment from someone
| that browses with JS disabled. Frankly, I think that
| comment was uncalled for.
|
| I also make the choice to disable JS by default, but I just
| enabled it to see your site.
|
| I think this is an awesome project and I freaking love your
| attitude, too. Thanks for sharing and keep up the good
| work.
| pavlobu wrote:
| Thank you for your feedback! It really means a lot to me
| :)
| pavlobu wrote:
| I see download counts rising with this command: curl -s
| https://api.github.com/repos/pavlobu/deskreen/releases |
| egrep '"name"|"download_count"'
| lrvick wrote:
| X.org already has this feature built in: XDMX.
|
| No need for Dummy Plugs. Can do 200 screens if you want.
|
| You can create extend your desktop to virtual screens all you
| like.
| pavlobu wrote:
| Yes, Both linux and mac have x servers running. But different
| variations of them. There is no problem with Linux at all, it
| is all customizable and user can be just asked to restart a
| computer to rewrite x server configs.
|
| But on mac and windows this is a quite different situation.
| kodablah wrote:
| Nice. I was considering the same (did POC w/ just screen no input
| a couple of years ago[0] tho may not work since I used gunjs).
| One thing I was considering instead of Electron is a systray
| daemon that send input to a chrome extension via native window
| messaging.
|
| 0 - https://github.com/cretz/myscreen.live
| pavlobu wrote:
| Great work!
|
| Yes, I was also thinking of adding an autostart on login
| feature and saving previously connected devices. So users don't
| have to reconnect every time.
| xur17 wrote:
| Any chance this could work with a chromecast device (I imagine it
| should be fairly easy since they can be directed to display a
| webpage).
| pavlobu wrote:
| It already works with smart TV's, I've tested it, but you need
| to install a chrome browser on it and type in address manually.
|
| In future I thought to add a simple 6 digit pass when
| connecting to computer running Deskreen, kind of a chromecast
| experience, but this is more a commercial use case, because it
| requires load balancing and a fleet of cloud machines running
| on the background. Besides you will be Forced to use it with
| internet only.
|
| So for now there is no better alternative to just using a web
| browser on your smart tv and typing address in manually.
|
| ...
|
| Note that in future a feature to remember a previously
| connected device will be added, so you will have to type
| bafflying address in browser only once :)
|
| Cheers
| christiansakai wrote:
| Dang, this is what I call creative coding.
| stragies wrote:
| The package is huge, even the Debian package. Are you shipping a
| bunch of dependencies/frameworks in the package? Aren't there
| more system-components you could use?
| pavlobu wrote:
| It is an electron app. We just have to live with it.
| michaelpb wrote:
| Is there no way to do this without a physical plug? I think
| there's a way to make dummy X.org display devices without any
| extra physical hardware -- I've definitely done similar stuff
| when setting up headless automated E2E testing, before tools for
| this were widely available. Is the hard part connecting it to an
| existing session as a display? Or is it that cross-platform
| compatibility is what's holding it back, since perhaps there is
| no equivalent for people running a macOS or Windows based OS?
|
| All that said, this looks super cool! Congrats and thanks for
| sharing! I'm tempted to give it a shot. My current set-up is
| similar except I use Barrier to share my mouse and keyboard
| across 4 cheap (<$200) laptops I've accumulated over the last few
| years.
| pavlobu wrote:
| Hi thanks on paying attention on that,
|
| Yes it is a problem of cross-platform support. Each os with its
| own zoo of tricks and tweaks.
|
| So for each os there should be a separate module, basically 3
| different projects that then can be used as native modules for
| Deskreen.
|
| I'll just repost my previous answer.
|
| >Yes, Both linux and mac have x servers running. But different
|
| >variations of them. There is no problem with Linux at all, it
|
| >is all customizable and user can be just asked to restart a
|
| >computer to rewrite x server configs.
|
| >But on mac and windows this is a quite different situation.
|
| Cheers
| stragies wrote:
| If your device has an unused VGA connector, then on X11
| (perhaps Wayland too) you can "force" the graphics-card into a
| mode for that output without connecting a VGA dummy plug.
|
| That second screen you just export with X11vnc.
|
| Using Android Phones/tablets, and USB connections, you can do
| some little "adb forward" magic, and then push the VNC stream
| over the USB-connection to a VNC viewer on the Android tables.
|
| Run x2vnc to "beam" pointer/HID data to the tablet, for when
| you are on the external screens with the mouse.
|
| Works fine, very low latency, no WIFI required. And it charges
| your tablet too.
| pavlobu wrote:
| Wow, sounds great!
| boromi wrote:
| Very interesting. Does this act like Luna Display? How's the
| latency
| pavlobu wrote:
| Hi thank you for asking.
|
| Yes it acts like luna display, but you can buy HDMI plug from
| third party.
|
| The latency depends you how close you are to wifi source. When
| they are connected with a cable, then it depends on your local
| network hardware and network cards performance.
|
| The framerate may drop if you move away from wifi or download
| something huge from internet like torrents, but overall it
| depends on how beefy the host machine is (where Deskreen app
| runs). My firend used a 3D modeling software Zbrush on a beefy
| Windows PC with Deskreen and barely noticed any lags. So it's
| usable even for creators.
|
| on average it consumes pretty low network resources ~1.5
| megabytes per second when watching youtube videos through it.
| but overall experience is good if you have fast network cards
| and fast router.
| jdalgetty wrote:
| Great idea - though it doesn't seem like there are many options
| for USB-C based dummy display plugs.
| pavlobu wrote:
| Hey, thank you for your comment! There are USB-C type based
| plugs out there. At least I wanted to buy one on Aliexpres, but
| then I decided not to buy it because I already had a converter
| from USB-C type to HDMI. Like the one here:
| https://cdn.webshopapp.com/shops/172646/files/146990684/oric...
|
| and I plug HDMI plug there, and it perfectly works with
| Deskreen!
|
| HDMI plugs are the cheapest so far.
|
| Cheers
| boromi wrote:
| https://www.amazon.com/Cablecc-Virtual-Headless-Emulator-192...
|
| Is one option
| francoisp wrote:
| very nice ! I had been using XDisplay, (wired, Macosx iOS only)
| requires an app on iOS device and needs a patch once in a
| while... maybe because Apple was about to come out with sidecar?
| (API changes?) Anyway this is WAY better! True hacker: hard to
| build a business out of it, so open-sources it. May the source be
| with you! Cheers
| pavlobu wrote:
| Haha!
|
| Thank you for such a kind feedback!
|
| Paul
| mmastrac wrote:
| Very cool. IIRC some VNC distributions for Windows came with a
| virtual screen driver that was useful for avoiding the need for a
| dummy plug.
| pavlobu wrote:
| Thank you for your comment! Yes, but getting rid of a dummy
| plug is a whole separate project for each operating system, so
| I basically need to create three new repos on github and start
| development for that.
|
| However I really feel there is a lack of low level programming
| languages knowledge such as C and Assembly from my side in
| order to write a code for Deskreen. It basically requires
| hacking knowledge and there should be patches for minor OS
| version updates.
|
| This sounds like a tough task for me at the moment.
| mmastrac wrote:
| Understandable. Your progress so far is amazing.
| nihil75 wrote:
| Very nice! Maybe look at Synergy for mouse/keyboard/stylus
| sharing between devices: https://github.com/symless/synergy-core
| pavlobu wrote:
| Hey, thanks!
|
| I'll check that out.
| texs0987 wrote:
| Or Barrier: https://github.com/debauchee/barrier
|
| Its a fork from Synergy 1.9
| als0 wrote:
| Barrier is available in the standard Ubuntu and Debian
| repos too.
___________________________________________________________________
(page generated 2021-01-18 23:01 UTC)