Is this a TeamViewer/AnyDesk level of interactivity or just a Twitch level of interactivity from 2nd screen? As in 2nd screen can be used to control the main source screen or just to watch what happens there?
Works the same as an additional monitor- which is what it is. The Dummy Plug creates the second monitor thru native support in the OS. Deskreen connects your additional device to it via a web browser. I installed it on Ubuntu and had it working in two minutes, using my iPad Pro 12.9” as a second monitor ;-) Looks and works good and decent latency.
indeed, i tried it myself now. but there was something in the wishlist of features about remote control. it should be possible to capture mouse clicks and most keyboard input in the browser and send it back. don't know how much effort that is though
It usually requires you to have an access to internet due to how WebRTC works signals should be exchanged on internet somewhere. Deskreen solves this problem by running local signaling server, so you don't need access to internet
Oh, and I played a bit with multiseat yesterday. If you want, every VNC user can have their own mouse/keyboard, with independent focus.
Though that currently takes a bit of fiddling (`swaymsg seat seat_name attach "virtual pointer"` + one wayvnc instance per pointer), wayvnc reportedly has a branch where it's done automatically.
Boy would this comment have saved me a lot of time had it been posted on the original discussion a couple of days back!
I did eventually find that project, but only after having written what is essentially the non-VNC half (creating and managing evdi displays) of it from scratch...
Virtual desktops are useful, but often a physical screen is better. For example, it's much more convenient to glance to and fro from code and logs/stack trace.
This is why cursors on text terminals would blink.
But I'm not sure making a mouse pointer blink is the right thing to do.
The whole Windows-Icons-Mouse-Pointer environment was developed when 640x400 was a high resolution and 22" monitors were considered huge. So easy to pick out the pointer at rest, but I can see how you can get lost on basically a 4K resolution TV.
I think that having multiple screens might use less cognitive resources than having virtual workspaces, since it is very natural to move your head / mouse whereas the workspace manager is a more high level construct.
When I do purchasing for my ecommerce business I keep a spreadsheet in one screen and a browser in the other. Occationally I do from my laptop with one screen and it takes longer and I make more mistakes because the spreadsheet is huge and there is too much cognitive overhead when I have to keep flipping between windows/virtual desktops.
Also when coding. I keep docs and messaging apps on one screen and I can keep the other screen clean with only code. It really is faster and easier with two screens.
The web browsers inspector is my main use at the moment. The M1 MBP display is simply too small to have the inspector and the browser comfortably on screen simultaneously, and its not possible to flick between virtual desktops (or application windows) without losing the context (some targeting stuff is hover-based, for example). Plus its annoying tweaking a css style, flicking back and forth all the time instead of seeing your change reflected as you change it.
It's more screen estate. Where it's usefuld depends on what you are doing.
I often have one screen for "actual" work and the other screen for chat/mail/... then checking for something going on there isn't a full context switch, but a short look.
Sometimes in development a second screen can be useful to have a screen full of different code files and second screen for documentation or the app or logs or whatever.
During video chat i have the faces of the others on one screen and notes and other things on the other screen or during social videoconfs during covid I have faces in one screen and second screen for a (board) game we are playing ...
It always depends on what you are doing. Things one can do are many.
Vertical oriented 1080p: chat windows, sometimes replaced by multiple command line windows.
Horizontal 4K: Emacs, Visual Studio Code, Browser with repositories/jira, command line windows.
Horizontal 4K: Browser with documentation, secondary VS Code windows, Outlook, Teams.
Macbook Pro screen: Finder, calculator, more command line windows.
Most of my "main" work takes place in the 2 horizontal 4K screens. The other 2 screens are "secondary" information. Having that much screen real estate allows me to more easily collect and arrange the information I need to do my job.
If I could change anything, it would be getting a 24 inch 4K screen to replace the vertical one, and having a higher refresh rate than 60Hz on all my screens.
I hope that one day 8K screens become affordable, because I'd love even sharper text. Reading on the vertical 1080p screen seems fuzzy compared to the 4K screens. (Which is definitely a "first world problem"!!)
I sometimes have to rough it with only a single exterior screen! Once I had to work on only the laptop by itself. The Horror!
;)
But, more seriously since this is HN: While the extra screens are great, as is the mouse and mechanical keyboard, it's not much of a hassle at all to work in a different location. I think the extra screens, desk space, peripherals, all go towards making me more comfortable rather than efficient. Which for me, rocking the oh-so-annoying ADHD along with nerve and back pain, means I can focus on work for that much longer in one session.
I should be working from home at least until mid 2021, hopefully much longer or even permanently. A good working environment can really improve your mental health at a time when, in the USA especially, things are incredibly stressful.
Hello from another ADHD sufferer. Interestingly though I fall on the other side of the remote work issue - I cannot wait to return to the office. My brain is quite stubborn about categorizing spaces; my computer room at home is where I do some side project programming and a fair amount of gaming. Having to try to recategorize it as a working space has proven impossible, and I don't really have any other space in this house, with my wife also working remotely.
Besides, more generally the drive to the office helps put me in work mode. The whole office building is a place where work happens. Then the drive home helps put me in leisure mode. Without those neatly coded space/time contexts I have been seriously struggling.
Everybody that keeps talking about how the world is going remote has been giving me a fair amount of anxiety. If I lose my office I'm not sure how I'm going to function. Besides, my coworkers and I miss seeing each other and being able to work together in person. We don't do much pair programming, but when we do, trying to do so over screen share has proven to be significantly less productive.
But then again, I am lucky to have an amazing team of people who I genuinely enjoy being around, and who are all very respectful of quiet time to work when needed. I'm also definitely an introvert but maybe less so than the average dev.. I miss social contact!
Sometimes I feel like in a diferent world than everyone else. I'm really happy with my 1080p devices, and upgrading them to higher resolution would feel like a waste of resources to me (I don't have especially bad eye sight, but on 1080p things are already small enough to my taste)
(Of course I'm talking only about computer monitor, for very big TV screens or for screens that I have 10cm from my nose it's a different story)
For me personally, it is only really noticeable when I shift my eyes from one of the middle 4K screens to the 1080p screen.
I am a little picky about fonts and their display though. The higher resolution the screen, the better. I have my Emacs configuration using a bunch of different fonts and sizes/weights/etc for my Org-mode, Terraform, TypeScript, and other editing. For example, when a todo item is put into "in progress" the heading is slightly larger and bolder, and when that item is complete, marking it "done" changes the text to italic, extra-light, and grey to reduce its visibility.
Time spent messing around with fonts is definitely an expression of ADHD and active procrastination, but I do get a pleasing effect from it! :)
Just got (as in, 2-3 hours ago) a new 4k display (32") to add to my 2x22" setup. My eyes are already happier. I'm using windows with scale set to 150% (for the 4k display) and 100% for the other 2.
WFH have an old Apple 20" screen as my only display. 1680 x 1050. With multiple workspaces and a tiling window manager, I find it completely usable. At the office I had two screens, but don't really miss it.
Because I can't see what's going on on a virtual desktop out of the corner of my eye? Because I can't easily play a game on one virtual desktop and have a browser open to glance at a guide, or a discord server or ...
I don't know why you wouldn't want two screens, personally. I've worked with three before and found them useful. Virtual desktops never felt natural.
The closest I came to adopting them really was during the "compiz" era, using the desktop cube effect. That metaphor seemed to play into my brain's spatial awareness quite well. But still not quite as well as a separate screen.
> The closest I came to adopting them really was during the "compiz" era, using the desktop cube effect. That metaphor seemed to play into my brain's spatial awareness quite well. But still not quite as well as a separate screen.
This makes me wonder how your brain can handle multiple browser tabs ;)
For me personally (not who you responded to), honestly not very well. I'm always losing track of which tabs are which. When the tabs are simple content it's mostly okay; mentally it's just like having a tabbed notebook. But if the tabs are interaction- or app-centric, my brain begins to slowly jam up.
My ADHD almost certainly takes a lot of the blame for that.
Honestly I have limits with those too. Any more than fit across the screen and I start to lose track. I find it mind boggling when people say they have dozens and dozens of tabs open at a time.
Definitely. I typically have browsers open in two or three different workspaces, for different purposes and with different profiles. But within any browser session, I never have more than half-a-dozen open tabs. I can't really mentally manage more than that.
I tend to run both. The second screen let's me have source/editor on one and reference material on the other. My daily driver is a three screen setup( laptop display and two external monitors). There's usually some combination of logs, app ui, source, and refence material across all three so I can switch between them without having to think about which virtual display they are on. In support situations, I'll have a screen share running on one, chat on another, and likely reference material on a third. You could do it with a single huge display, but it would need to be huge and have a way to subdivide it into reasonable slices for easy window snapping. Plus, you aren't going to get that in anything that can be used as a laptop ...
I grew up on programming on a Mac SE, so layering feels natural to me versus needing to have everything on screen at once. That said, a 26” 4K monitor “above” (with the resolution increased a bit) my 15” MacBook Pro has been a good setup in WFH mode.
When I'm coding, I generally have code on one, and the other has a browser with documentation, notes, issue tracker, or just used for searches etc. Usually that monitor is split and also has chat visible.
When I'm testing/debugging, one monitor might be the web app I'm working on, the other is the code I'm stepping through. Or I'll be tailing a log file or watching something in a database while using the app.
I do lots of client/server stuff, so sometimes I have a monitor showing the server-side (web UI and/or logs) and the other showing client-side (cli, logs, and/or local UI). The key useful thing is seeing the client do an action and send something to the server, and seeing the server instantly react: that's not possible when you can't see everything.
In some cases, I'm debugging remotely, and a monitor will be partly or completely dedicated to ssh/rdp/vnc to the remote system(s), with the other used for browser or cli app I'm testing. Usually chat, documentation, source, issue tracker is mixed in there too.
There's a couple things I work on that have long running builds (10+ minutes) or integration tests that takes a bit over 30 mins. Both are long enough that I'll do something else while waiting and suddenly 2 hours pass before I remember, so I like keeping the build status page visible somewhere to avoid that.
Even for non-work/coding sometimes I just have YouTube or Netflix open (either 1/4 window or full-screen) while I'm browsing the web on another.
To me, working on my laptop is doable, but feels like having one hand tied behind my back when compared to working with multiple monitors and a proper keyboard and mouse.
Guess I'll jump in too :). I have two 27" 4k monitors, the one directly in front holds work, the one off to the left has docs, chat, email, etc. I also use virtual desktops and I could arrange all this stuff with those, but having to switch back and forth is a minor cognitive hurdle I choose to avoid.
I've seen this question a few times and have been looking for hard sells, especially because I spent quite a few workdays during summer in a hammock without a second screen.
I've found about two hard sells so far:
Online presentations and demos to people. For example, showing some slides to some people, with some jumps to code or terminals. In this case, it's extremely valuable to have the call with webcams open on a second monitor so I can keep tabs on the expressions of the audience in order to adjust tempo. Switching the contents of the presentation screen / shared screen without warning is jarring and confusing to the audience. And commonly used communication programs do not support sharing one virtual desktop easily, only screens and/or windows.
And sometimes, it is valuable to be able to display more information at once. Sometimes, during larger outages, it helps to be able to display more key metrics of the system on one screen and poking the system on the other screen. This one can be done with virtual desktops, yes, but it has less overall cognitive overhead for me to just have a stable screen with the monitoring data and/or logs on it available instead of constantly flipping between desktops.
And again, during screen sharing, people hate it and get confused if I flip the main screen around too much between monitoring data and shells. So having a work screen to share with people on a call and another screen for information helps reduce that.
A lot of other use cases are convenient with more screen space, but good virtual screens with hotkeys work almost as well I've found.
Hi. It's open source so expectations can be lower than for commercial projects. It's made on pure enthusiasm. And we are figuring out a way of how to hack the OSes to get rid from dummy display plugs. (just look at repo README.md) So stay tuned, in future releases wi will be updating on that. Cheers
For those lucky to have VGA port, I've recently did a setup with iPad 3 as second display for laptop [0] with VGA and a few resistors to create dummy display.
Thanks! I didn't find a way to create a dummy display with native Win10 tools. There was a way to do it in previous minor releases, but with recent Win10 updates Microsoft has removed it or disabled. So went for a hardware solution instead, as I didn't want to install any 3rd party software. That's quite reliable solution, just need to be careful if moving laptop too much :)
Yeah, "add virtual ___" is one of the hardest and most complicated thing in Windows, probably worse on macOS, definitely where FOSS OS shine.
For Windows "software display" driver implementations, from top of my head there are DisplayLink, Fresco Logic FL2K driver, and a homebrew one by q61.org[1] but none are open sourced.
Of those, I’ve had the longest (since 2007 and then 2009) and most reasonably reliable experience with the DisplayLink family, to the point that I look for that and avoid alternatives. For example, USB parts from Startech, Targus, Belkin, Kensington, and Plugable leverage DisplayLink.
macOS is a pain as well. There was a fairly well documented way (in the open source world) of writing a stub driver to create a virtual display. Apple axed it without notifying anyone when their own "Use an iPad as a second screen" support came out. All the third party apps that provided that function broke overnight, notably Duet Display.
Considering Duet works again, I wonder if the mechanism they use was quietly shared with them or if it was publicly shared.
I see that there are HDMI and DVI-D dummy adapter editions, but they're a lot more expensive. I wonder if you could just get a cheap mass-produced HDMI-->VGA or DVI-VGA adapter and then push in resistors to save a few bucks.
With DVI-I, the resistor trick should work (it's just VGA), but not as easy as just folding some 1cent resistors around.
I have a 2016 iMac which has an amazing screen, but sadly apple removed target display mode in 2012, which makes it useless for me. It has been collecting dust, since I can't stand Mac OS except when I really have to use it (mostly some sound production things at work).
I can't fully vouch for this setup but there are some dirt cheap HDMI-to-USB devices on Amazon (got mine for $15) now. You can run HDMI out from your main machine to the USB of your iMac and then capture the input with OBS and run it full screen. A little hacky but it should work.
I've been using one to pipe an old Android phones camera to a virtual cam on my laptop.
Because I have a Linux workstation and I want to have 2 screens. The iMac screen is waaay better than my main screen, which is why I want to use it. In daylight, those extra 150 cd/m2 really help
Not sure if this
helps the dual-screen desire, but to make more use of it, couldn't you install linux directly on the iMac? I did that (install pop os) recently with a Macbook Air 2012, and it works flawlessly as far as I can see. All special keyboard buttons, sound, sleep/wake, battery, trackpad (minus gestures), etc. etc.
Anyway, the advantage would be you can plug directly into it and get full performance (no lag, full bandwidth) because you've basically converted it into a monitor.
How's the latency on that? I've been looking for a good "dock" solution for my phone but as it's type-c port is only USB 2 it doesn't support video out with charging.
Pretty good. I used it for a couple of years doing mobile development from a Windows machine and it was very responsive. The setup was a bit odd (licensing issues) and I ended up switching to scrcpy which is free and also very good:
Came here to say the same. If everybody included just a single high level picture like that, you’d give newcomers a real head start in understanding the code.
That is exactly what I think when I see any project on github without such a diagram. I would contribute to more simply if they had a brief diagram like the one I did :)
For those on windows(and with an Intel WiFi card) there is a hidden but an extremely useful feature - "project" can be used to turn any other windows PC/Laptop/Tablet into a second screen, just enable "cast to this PC" in settings, then from the host PC press Win+P from anywhere and the second machine becomes a secondary display instantly. To windows it appears as a normal display, without any hackery involved.
The fact that this part isn't linked to from the "Cast to wireless display" section of settings is absurd. Win10 control panel is a mess. I actually made a real effort to find the setting. Your post was the only thing to point me in the right direction.
Yep, it does - the underlying technology is based on Miracast and works only with Wifi adapters made by Intel because it's point-to-point. Sadly it doesn't work through an AP connection at all.
It’s best used for desktop apps and things like PowerPoint. It starts to lose frames and have tearing when doing video. I doubt it would be acceptable for any gaming.
It works well enough, but it’s not going to satisfy people who are concerned with things like benchmarks and FPS.
If I remember correctly, this feature is based on Miracast which means that it also works for most WiFi-enabled TVs.
Very useful for presentations, if the Intel drivers and TV manufacturer code have mercy on you that day and work without crashing, artefacts or random disconnects.
Similar here, my 5 year old laptop doesn't support it. I'm willing to accept lower performance if a nonaccelarated software route could be made to work
There should be a better way of reporting a bug on Windows than posting it on a public forum full of spam that is only accessible from a Metro app which does not come with LTSC.
It feels trying to get troubleshooting for Windows is like shouting into the void, so I, as well as I think many others, have long since just given up.
I for instance bought "Assure Software Support" at $99 a year to try to get support for an unrelated (usb-c dock) issue. And there seemed to be no way to actually use it, and I just gave up, resentful that I paid Microsoft a support fee.
This. There doesn't seem to be a pricepoint which effective for getting both help, and information back inside Borgs (of all kinds) to actually effect change.
I had a problem at work with Microsoft X.509 certificate management. I even found the reasonably capable, actual decision-making person who did X.509 at a conference, and he was pretty clear: nothing I said to him there, or in any other forum was going to change pace inside the company on the problem at hand. (he did point out it affected the DoD so I was somewhat assured it was going to get fixed)
OTOH when it was pointed out how badly Microsofts TCP implementation behaved, they did make changes. So "it depends"
I’ve submitted plenty of detailed bug reports with zero response or just form replies, so I don’t waste my time shouting into the void anymore. Having an actual response that isn’t just “we appreciate your report and will have someone look into it” might help.
To add, gpu accelerated, low to non cpu usage as well with recent drivers, unlike the 99% other solutions, no more whiney fans.
It reliably works with recent hardware only, you may see few performance profile options to choose from, that is an indication of HW accel.
Does that ever work reliably? I've tried it on a number of different systems, and half the time it just does nothing, and when it does, the screen updating is quite choppy to the point of being unusable.
My small company spends thousands per year on TeamViewer licenses, just because RDP can not attach to running desktop sessions (using Nvidia graphics cards). Do you think this is something that could change in the future, or is it a fundamental property of RDP?
I really dislike our reliance on TeamViewer, especially now in covid times where were relying even more on remote access.
WebRTC is the way to the future of open source remote desktops. I don't know exactly by I have a strong feeling that google is using WebRTC for chrome remote desktop
Can you use a RealVNC variant instead? I just replaced TeamViewer with UltraVNC single click for my remote support needs, it’s free, it’s branded with my logo and my clients find it easier to use.
I'm not sure, I think I've tried it but I don't remember what the result was. Note that our goal is decently fast (20fps+) 3d graphics.
I've also tried moonlight (which is an nvidia gamestream implementation), which seems to have performance but the client wasn't very usable for this usecase.
Oh, yeah it's probably not going to handle that too well. It's not really designed for full motion video. I tried running a game over it and only got a couple of FPS (although that's over an ancient USB WiFi dongle so modern performance might be better).
Still great for general productivity type stuff though!
I have trouble with RDP and a 1060, though I've not tried in many months so it might be something that has since been fixed.
The issue seemed to be switching between remote and local access, i.e using the machine locally, then from remote, then coming back to local. It would usually survive a couple of cycles of this then just be a black screen after login. Once in that state tricks to reboot the graphics driver did not work and reporting in speed working too, though the rest of the machine was up as services like IIS and file shares kept responding just fine.
My hacky solution is to run VM for most day-to-day work on that machine and remote to that, only using the bare metal when I need the fancy gfx card or otherwise the little bit of extra unpf gained by not having a virtualization layer in the mix.
Yeah I work at a games studio, we are fully remote at the moment due to covid, and disconnecting/reconnecting RDP usually crashes whatever is running on the machine at the time, due to "GPU removed" error. Also only DirectX applications work through RDP, nothing OpenGL/Vulkan based. We have some Citrix licences for that.
RDP/termsrv by design create a new session for incoming connections. However, with Windows Virtual Desktop (WVD), Windows Containers and Windows AppGuard, we definitely have a way of launching remote applications in an existing session.
Have you perhaps looked at WVD or RemoteApp? If you'd like to talk more professionally, you can email me at {first_name}.{last_name}@microsoft.com (my name is available on github.com/zeusk).
This might sound weird, but Steam allows you to stream your desktop for games and provides full control as well as stream of audio and video. Works on any device.
Wonder if it could help. Being targeted at games, it has great performance.
Are you talking about WiDi? I tried to use that on my 3gen i7 laptop. It was awful experience on Windows 7. Then I switched to Linux and never went back.
I could be mistaken, but I figured I'd point this out since it was my experience, the host PC must have wireless (context: I had a PC with only an ethernet connection, no wireless card).
It will take advantage of the ethernet connection, making for a more responsive experience, but however it is designed requires wireless even if the both computers are connected to ethernet.
I connected a usb wireless dongle and it did the trick for me.
So, combined with @gambiting saying something similar exists on Windows, I'm struggling to see the utility of Deskreen given the two main OS's already have such functionality built in.
To me, this project seems much more useful than these platform specific apps. ANY screen with a browser means much more compatibility than iPad only for the second screen.
I really want something that's like spacedesk (another one of these) but without using a HDMI dummy plug, spacedesk is glitchy however doesn't need a plug and can support many devices.
205 comments
[ 3.2 ms ] story [ 235 ms ] threadhttps://github.com/H-M-H/Weylus
In other words, can I use this app to draw from a tablet to something like Gimp on my main computer?
- Add a headless display with `swaymsg create_output SOME_NAME`
- Configure its resolution and position like you do for other outputs
- Start a VNC server on that output with `wayvnc --output=SOME_NAME`
- Start a VNC client somewhere else you want to use your second screen (there are some that are browser-based)
Unfortunately it is somewhat undocumented: https://github.com/swaywm/sway/issues/5553 but you can find some info on the net: https://www.reddit.com/r/swaywm/comments/k1zl41/thank_you_de...
I saw in that readme that they wanted ways to get rid of dummy adapters. That above is one such possible way for sway.
This made me think, "Sway. Sway. Sway. Sway in the Morning."
Not sure how many hip hop fans there are here...
Sway is so deeply rooted in the game and remains a solider for the culture to this day. Always a positive beam of positivity from him.
Though that currently takes a bit of fiddling (`swaymsg seat seat_name attach "virtual pointer"` + one wayvnc instance per pointer), wayvnc reportedly has a branch where it's done automatically.
I did eventually find that project, but only after having written what is essentially the non-VNC half (creating and managing evdi displays) of it from scratch...
And why not use a virtual workspace manager instead?
But I'm not sure making a mouse pointer blink is the right thing to do.
The whole Windows-Icons-Mouse-Pointer environment was developed when 640x400 was a high resolution and 22" monitors were considered huge. So easy to pick out the pointer at rest, but I can see how you can get lost on basically a 4K resolution TV.
Also when coding. I keep docs and messaging apps on one screen and I can keep the other screen clean with only code. It really is faster and easier with two screens.
I often have one screen for "actual" work and the other screen for chat/mail/... then checking for something going on there isn't a full context switch, but a short look.
Sometimes in development a second screen can be useful to have a screen full of different code files and second screen for documentation or the app or logs or whatever.
During video chat i have the faces of the others on one screen and notes and other things on the other screen or during social videoconfs during covid I have faces in one screen and second screen for a (board) game we are playing ...
It always depends on what you are doing. Things one can do are many.
Vertical oriented 1080p: chat windows, sometimes replaced by multiple command line windows.
Horizontal 4K: Emacs, Visual Studio Code, Browser with repositories/jira, command line windows.
Horizontal 4K: Browser with documentation, secondary VS Code windows, Outlook, Teams.
Macbook Pro screen: Finder, calculator, more command line windows.
Most of my "main" work takes place in the 2 horizontal 4K screens. The other 2 screens are "secondary" information. Having that much screen real estate allows me to more easily collect and arrange the information I need to do my job.
If I could change anything, it would be getting a 24 inch 4K screen to replace the vertical one, and having a higher refresh rate than 60Hz on all my screens.
I hope that one day 8K screens become affordable, because I'd love even sharper text. Reading on the vertical 1080p screen seems fuzzy compared to the 4K screens. (Which is definitely a "first world problem"!!)
;)
But, more seriously since this is HN: While the extra screens are great, as is the mouse and mechanical keyboard, it's not much of a hassle at all to work in a different location. I think the extra screens, desk space, peripherals, all go towards making me more comfortable rather than efficient. Which for me, rocking the oh-so-annoying ADHD along with nerve and back pain, means I can focus on work for that much longer in one session.
I should be working from home at least until mid 2021, hopefully much longer or even permanently. A good working environment can really improve your mental health at a time when, in the USA especially, things are incredibly stressful.
Besides, more generally the drive to the office helps put me in work mode. The whole office building is a place where work happens. Then the drive home helps put me in leisure mode. Without those neatly coded space/time contexts I have been seriously struggling.
Everybody that keeps talking about how the world is going remote has been giving me a fair amount of anxiety. If I lose my office I'm not sure how I'm going to function. Besides, my coworkers and I miss seeing each other and being able to work together in person. We don't do much pair programming, but when we do, trying to do so over screen share has proven to be significantly less productive.
But then again, I am lucky to have an amazing team of people who I genuinely enjoy being around, and who are all very respectful of quiet time to work when needed. I'm also definitely an introvert but maybe less so than the average dev.. I miss social contact!
(Of course I'm talking only about computer monitor, for very big TV screens or for screens that I have 10cm from my nose it's a different story)
I am a little picky about fonts and their display though. The higher resolution the screen, the better. I have my Emacs configuration using a bunch of different fonts and sizes/weights/etc for my Org-mode, Terraform, TypeScript, and other editing. For example, when a todo item is put into "in progress" the heading is slightly larger and bolder, and when that item is complete, marking it "done" changes the text to italic, extra-light, and grey to reduce its visibility.
Time spent messing around with fonts is definitely an expression of ADHD and active procrastination, but I do get a pleasing effect from it! :)
I don't know why you wouldn't want two screens, personally. I've worked with three before and found them useful. Virtual desktops never felt natural.
The closest I came to adopting them really was during the "compiz" era, using the desktop cube effect. That metaphor seemed to play into my brain's spatial awareness quite well. But still not quite as well as a separate screen.
This makes me wonder how your brain can handle multiple browser tabs ;)
My ADHD almost certainly takes a lot of the blame for that.
When I'm testing/debugging, one monitor might be the web app I'm working on, the other is the code I'm stepping through. Or I'll be tailing a log file or watching something in a database while using the app.
I do lots of client/server stuff, so sometimes I have a monitor showing the server-side (web UI and/or logs) and the other showing client-side (cli, logs, and/or local UI). The key useful thing is seeing the client do an action and send something to the server, and seeing the server instantly react: that's not possible when you can't see everything.
In some cases, I'm debugging remotely, and a monitor will be partly or completely dedicated to ssh/rdp/vnc to the remote system(s), with the other used for browser or cli app I'm testing. Usually chat, documentation, source, issue tracker is mixed in there too.
There's a couple things I work on that have long running builds (10+ minutes) or integration tests that takes a bit over 30 mins. Both are long enough that I'll do something else while waiting and suddenly 2 hours pass before I remember, so I like keeping the build status page visible somewhere to avoid that.
Even for non-work/coding sometimes I just have YouTube or Netflix open (either 1/4 window or full-screen) while I'm browsing the web on another.
To me, working on my laptop is doable, but feels like having one hand tied behind my back when compared to working with multiple monitors and a proper keyboard and mouse.
I've found about two hard sells so far:
Online presentations and demos to people. For example, showing some slides to some people, with some jumps to code or terminals. In this case, it's extremely valuable to have the call with webcams open on a second monitor so I can keep tabs on the expressions of the audience in order to adjust tempo. Switching the contents of the presentation screen / shared screen without warning is jarring and confusing to the audience. And commonly used communication programs do not support sharing one virtual desktop easily, only screens and/or windows.
And sometimes, it is valuable to be able to display more information at once. Sometimes, during larger outages, it helps to be able to display more key metrics of the system on one screen and poking the system on the other screen. This one can be done with virtual desktops, yes, but it has less overall cognitive overhead for me to just have a stable screen with the monitoring data and/or logs on it available instead of constantly flipping between desktops.
And again, during screen sharing, people hate it and get confused if I flip the main screen around too much between monitoring data and shells. So having a work screen to share with people on a call and another screen for information helps reduce that.
A lot of other use cases are convenient with more screen space, but good virtual screens with hotkeys work almost as well I've found.
As for the use cases, here are my most common layouts (3 monitors - old 4:3, 1440p, vertical 1080p):
- preview/debugger | code | docs (programming)
- slides | video call | chat (online presentations)
- gallery | photo | same photo but 1:1 zoom (photo editing)
- effect controls | timeline,preview,more controls | clip bins (video editing)
- chat | game | game wiki
[0] https://blog.zenlot.xyz/post/ipad_second_display/
For Windows "software display" driver implementations, from top of my head there are DisplayLink, Fresco Logic FL2K driver, and a homebrew one by q61.org[1] but none are open sourced.
1: http://q61.org/en/chibimo/build/
Considering Duet works again, I wonder if the mechanism they use was quietly shared with them or if it was publicly shared.
With DVI-I, the resistor trick should work (it's just VGA), but not as easy as just folding some 1cent resistors around.
https://www.geeks3d.com/20091230/vga-hack-how-to-make-a-vga-...
I am very much looking forward to try this.
[1] https://shells.com
I've been using one to pipe an old Android phones camera to a virtual cam on my laptop.
The display underneath should be connected via LVDS, so it should be relatively easy to give it native inputs.
https://floe.butterbrot.org/matrix/hacking/tdm/
https://www.ifixit.com/Answers/View/117066/Can+I+Mod+an+earl...
This will involve some kind of DisplayPort-to-LVDS board (or HDMI/DVI/VGA-to-LVDS). LVDS is the type of input on LCD panels.
If "amazing screen" means retina, one question is whether there is even a board available that can output high enough resolution for good results.
This page seems to have good info: https://jared.geek.nz/2015/apr/driving-fpdlink-displays
Anyway, the advantage would be you can plug directly into it and get full performance (no lag, full bandwidth) because you've basically converted it into a monitor.
It streams Android and iOS UI to desktops with actionable controls.
https://github.com/Genymobile/scrcpy
Go to Settings > Projecting to this PC to enable it. You may need to install the Wireless Display optional feature first.
It works well enough, but it’s not going to satisfy people who are concerned with things like benchmarks and FPS.
Very useful for presentations, if the Intel drivers and TV manufacturer code have mercy on you that day and work without crashing, artefacts or random disconnects.
I understand it’s not the usecase, but would be cool if this also worked over ethernet.
I for instance bought "Assure Software Support" at $99 a year to try to get support for an unrelated (usb-c dock) issue. And there seemed to be no way to actually use it, and I just gave up, resentful that I paid Microsoft a support fee.
I had a problem at work with Microsoft X.509 certificate management. I even found the reasonably capable, actual decision-making person who did X.509 at a conference, and he was pretty clear: nothing I said to him there, or in any other forum was going to change pace inside the company on the problem at hand. (he did point out it affected the DoD so I was somewhat assured it was going to get fixed)
OTOH when it was pointed out how badly Microsofts TCP implementation behaved, they did make changes. So "it depends"
The only downside imo is we (engineers) cannot directly respond to a end-user feedback.
We use Indirect Display driver model for lots of other things such as RDP, Graphics over USB etc..
I really dislike our reliance on TeamViewer, especially now in covid times where were relying even more on remote access.
I've also tried moonlight (which is an nvidia gamestream implementation), which seems to have performance but the client wasn't very usable for this usecase.
Still great for general productivity type stuff though!
I am able to RDP freely onto desktops with rtx 2070/gtx 960 cards no problem.
Is this more something specific involving some degraded performance/reduction in features?
The issue seemed to be switching between remote and local access, i.e using the machine locally, then from remote, then coming back to local. It would usually survive a couple of cycles of this then just be a black screen after login. Once in that state tricks to reboot the graphics driver did not work and reporting in speed working too, though the rest of the machine was up as services like IIS and file shares kept responding just fine.
My hacky solution is to run VM for most day-to-day work on that machine and remote to that, only using the bare metal when I need the fancy gfx card or otherwise the little bit of extra unpf gained by not having a virtualization layer in the mix.
RDP/termsrv by design create a new session for incoming connections. However, with Windows Virtual Desktop (WVD), Windows Containers and Windows AppGuard, we definitely have a way of launching remote applications in an existing session.
Have you perhaps looked at WVD or RemoteApp? If you'd like to talk more professionally, you can email me at {first_name}.{last_name}@microsoft.com (my name is available on github.com/zeusk).
It will take advantage of the ethernet connection, making for a more responsive experience, but however it is designed requires wireless even if the both computers are connected to ethernet.
I connected a usb wireless dongle and it did the trick for me.
So, combined with @gambiting saying something similar exists on Windows, I'm struggling to see the utility of Deskreen given the two main OS's already have such functionality built in.
I guess cross-platform might be the only use ?
I don't think you can use another mac as a second screen though.
[1]: https://www.yamdisplay.com/