And why not use a virtual workspace manager instead?
And why not use a virtual workspace manager instead?
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.
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.
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'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.
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.
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
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.