I used to use 3 monitors but now I use 2 (one is the size of 2 monitors, 32"). On the left side of one I have the ide and on the other side usually whatever references or document I need to work with, and then on the second monitor half I have for skype and half I have for the debugger/console.
PROTIP: Windows 10 makes it exceptionally easy for a multimonitor setup due to the new snap behavior.
I can't imagine developing without 3 screens worth of real estate. If I had room for another I'd probably put it to very good use.
Depends how you use them for webdev I think on monitor for your main IDE a second for the Database IDE(work mangler or what have you) and a main one for the application is a good setup.
You want to hide distractions like Skype,Outlook and so on.
Yes, I think it depends a great deal on how you use your three monitors. The author was using them in a way that led to distractions and then concluded that it was always bad for productivity.
What I used to do was this:
- One monitor for IM, email and ticketing system on the host machine. IM is left in DND while working, but occasionally there are IMs and emails which do need to be responded to immediately. Having email open also lets me browse through any emails associated with whatever work item I'm looking at.
- Two monitors devoted to a full-screen development VM. These two windows get the IDE, database windows, and the browser.
I was hugely productive like this, and going to two (or worse, one) monitor was a noticeable impact and I would get annoyed at all the alt-tabbing.
To me, having three monitors is analogous to having three stacks of paper on your desk. If you were working on a task that required you to look at three different sheets of paper, you wouldn't stack them on top of each other. You'd lay them out side-by-side. If you couldn't do that, you'd drive yourself crazy.
I full screen my IDE on the center monitor, split that into 3 80-column code windows. The project explorer and outline view go on monitors on either side, along with the debugging windows, a browser to preview on the left, a browser to search documentation on the right, usually 1 or 2 consoles on the right for pure console commands, and maybe a tmux session to hold docker instances for databases/webservers.
This is why I've fought against 2 monitors here. It was clear that the people asking for them had no need for them and were the usual "my desk should be a trophy case of IT prizes because I'm so special."
I'd be more flexible if everyone were to get one, but management doesn't want the expense. Its just incredible how childish people in an office setting act sometimes. I work in a building with other organizations like my own and have a close relationship with the IT department of one group that has dual monitors for everyone. Sadly, according to their IT guys, the second monitor becomes a dedicated Facebook terminal.
So instead, we standardized on 24" monitors that allow side by side windowing. I feel like that's the best solution for us. Widescreen monitors should be used in this way.
While your comment comes across quite snarky, I agree that probably a good Linux WM would fix many of the problems the author mentions. Windows and especially mouse movement across 3 screens probably gets tedious fast.
Actually on Windows we move windows across monitors with winkey+shift + arrows. Add a keybaord based window resizer to the mix and you have mouse free/pain free window management on Windows.
Well, multi-monitor handling is something that Windows is very good at (compared to OSX or common Linux WMs). It correctly remembers window positions, etc., you don't have ridiculous limitations of cross-monitor window positioning like OSX. Windows 10's is going to be a big jump forward in that as well.
Exotic (tiling) WMs under Linux can be very good if someone takes the time to set them up, however, standard Gnome, KDE, XFCE, Cinnamon are all inconvenient.
"standard Gnome, KDE, XFCE, Cinnamon are all inconvenient."
I work and travel with Kubuntu and part of my routine is hooking up god-awful monitors, projects and whatnot and for the most part, I don't see a problem with convenience.
I haven't particlularly looked at issues of Window position because I expect it to change from site to site.
While I agree that multi-tasking is a bad idea for productivity, three monitors don't necessarely lead to multi-tasking.
It really depends on how much screen space you need to efficiently do one task. Having three monitors myself, I mostly use two of them, sometimes one or sometimes all three, depending on the task. So you can still minify distraction.
And there are definately tasks where three monitors come in handy and save me a lot of window switching / aligning.
Wow, how do you arrange 4 screens? One next to the other to form a semi circle, or a 2x2 grid? If the former, how do you avoid getting weird neck problems?
I am totally expericing geek envy here, with the one proviso that I would want to be able to take my work along with me, if/when I have to go visit clients.
3 x 23" monitors at 1920x1080[0] is working well for me. Distractions galore, but as someone said, when you're in the zone, you're in the zone. That's when having all that real estate really pays off - it's so much more efficient having everything easily accessible.
herbstuftwm on archlinux, with everything opening up in their own designated windows - having taken a lot of time to have it just so - is what gives me joy everyday.
[0] Will upgrade to higher resolutions in the next round, but presently this was much more affordable.
One possible problem with your experience with 3 monitors is that you have poor tools at your disposal to manage them. When I first switched from 2 monitors to 3 monitors (on Linux), it was horrendous:
- My workspaces were monolithic. If I changed my workspace, the windows on all my monitors went with it.
- Alt-tab worked globally across all monitors. I wanted it to only list the windows that were on the currently focused monitor.
- Moving windows from one monitor to the next in a predictable way was a chore. (I eventually resolved this with some key bindings, but it was a hack.)
- No window manager I know of afforded me the option of using tiling or (GOOD) stacking layouts on a per-monitor basis. (Some tiling WMs exist that solve the monolithic workspace problem, but they are all tiling.)
My first solution to this was to fork Openbox. It worked well for a while, but it was subject to a lot of state transition bugs and my hack became hard to maintain.
I love working with three monitors now, because I can freely mix and match the windows on my screen. My workspaces are dynamic (add/remove/rename as I please), so everything is composable. On one monitor, I might have a bunch of terminals in tiling mode. On another, I might have GIMP in stacking mode. Interestingly, in order to achieve this, I had to break compatibility with existing standards (but support as many as possible). As a result, some existing WM tools (particularly pagers and possibly task bars) just can't work well with my WM without explicit support. Perhaps this is why so few of these WMs exist outside the tiling world!
You might want to check out i3wm[1]. I know you said that you're not particularly interested in tiling WMs but it's great for multiple monitors. Thinking about it, it would be perfect for a triple monitor setup as it solves a lot of the problems you've mentioned (monolithic workspaces, moving windows to workspaces predictably, etc.) and is highly (and easily) configurable.
I am very aware of the WMs in this space. I used Xmonad for several years, for example.
Wingo is actually a tiling WM. But it's also a stacking WM. The difference with other tiling WMs is that its stacking layouts are first class citizens (hopefully as good as Openbox's) rather than hacks to get pesky applications to behave.
That's something I can't understand - why the inferior model is enforced by the specs (the same workspace on all screens). Having separate workspaces for separate screens is a natural setup, and for me it's the reason I couldn't use GNOME or KDE for work.
As with most anything, the answer lies in history. The idea that multiple monitors could share the same root window in X is relatively "recent" (Xinerama, but now RandR). Before Xinerama, you'd drive multiple monitors on Linux by using separate X screens. Separate X screens have distinct root windows. As a result, you could not move one window from one monitor to the next. Window managers and the specifications surrounding them were built up around this architecture.
As a result, there is very meager support in the FreeDesktop WM standards for multiple monitors that share the same root window. Wingo breaks very few of them, but the ones it breaks (e.g., `_NET_WORKAREA`) are pretty important for pagers. It also breaks an implicit assumption that only one workspace is visible at any point in time.
So pagers and taskbars are like, "Oh. So you have multiple workspaces visible and they don't all have the same geometry?" Whoops. :-)
It works for some people, it doesn't work for others. It's a mistake to think that more screens means more distractions for everyone. It certainly doesn't for me. When I'm focused on an app, it gets my attention, and the mere presence of data nearby doesn't really get me. The benefit for me is in app switching, because I never have think about it when I can just glance over.
The things that do affect me are popups and noises and the nearby phone. But these are all things that still exist on a single-monitor setup.
I'm glad the author has found a solution that works for him, but it's wrong to generalize it as a solution for everyone.
I've found it depends on the depth of 'flow' you're in. When trying to force yourself to get something done (perhaps using various productivity techniques), eliminating distractions can be quite beneficial. OTOH when actually enjoying what you're doing and being naturally focused, the distractions don't really matter and can even add enjoyment to the work.
Personally I can detect this easily by trying to watch TV or movies at the same time as I'm working. If it feels good, then I'm naturally focused on the work. If it feels distracting, then it's probably best to eliminate all distractions.
but it's wrong to generalize it as a solution for everyone
This is the fundamental flaw in virtually all quick-fix lifehack kind of pieces -- they project personal habits and failings generally, and then make broad claims about how to fix their own issues. It is the alcoholic telling you not to keep alcoholic beverages in your house.
I feel absolutely claustrophobic on a laptop with but a single work surface. And it isn't because I need multiple unrelated things fighting for my attention, but instead because I need maximal information for the singular thing I am working on. The flow of using all of the pieces of information is much higher -- for me -- when I don't need to task shift, shroud other pieces of information, and so on.
Docs/requirements/protocol specs on one screen, IDE on the other at the minimum. Realistically I usually like the IDE itself on multiple screens, inspector/project structure/source management on one, text editor on the other. Sometimes I split the text editor across multiple screens.
But that's personal habit. As mentioned I find working on a laptop absolutely crippling, though I have no doubt that there are people for whom it is ideal.
Having a full keyboard and a mouse is a big boost to productivity, over crippled little laptop keyboards and trackpads.
Also, physically, the screen on an Air or many of these new MacBooks is one fourth the size of just one of the three screens on my desktop. I suppose you can get by if you're just doing email or writing, but I'll stick with my full workstation for developing software. Two monitors is an absolute minimum, but the third one is nice for stashing Fiddler or the Chrome dev tool windows in.
>> Having a full keyboard and a mouse is a big boost to productivity, over crippled little laptop keyboards and trackpads.
I respectfully disagree. I use a 27" external monitor with a MacBook Pro as my keyboard and mouse. I find external mice and keyboards too wide. It's been a while since I used a full sized keyboard but I find they make my right shoulder ache.
Since I can touch type I don't really miss the keypad at all. In fact I remap Caps Lock to Ctrl and use Ctrl-h, Ctrl-m, Ctrl-i (in Colemak) so that I don't have to reach for backspace, return and tab. That saves my right wrist, which seems to be a bit weak.
Then again I spend a lot of time in a tmux window with short cuts to move about, so that might be why it works for me.
I think the downvotes are for such a subjective setup.
Other thoughts - if you find a full-size keyboard uncomfortable, and prefer a custom keymapping, sounds like you might like the Happy Hacking Keyboard and a mouse of your choice:
I have 3 monitors adding up to 7680 horizontal pixels. It helps a lot when you are working remote: at 2560 pixels most customer equipment doesn't "outscreen" me. Also it means I can keep local apps running full screen for easier access.
Citrix, remote desktop and VNC combined with the combined imagination of a few IT departments makes one screen very inefficient.
As for why people (not sneak but others) would proclaim that they are running twitter and non-related web sites at work I don't know although I'll admit that I have Whatsapp in a chrome tab and check it once in a while.
Except that said macbook is terribly expensive and is something which 99% of us don't need. I have one, but I don't pretend I needed it and I would definitely be more effective with a cheaper dual screen desktop, which I'd have if I weren't a essentially mobile worker.
Life is full of trade-offs and your macbook is one of them, get one it if you want, but don't pretend it defines you as super effective or low maintenance, only really our output verses cost will define that.
Hu, you capitalized High Maintenance like it is a Bad Thing. The only context I have ever heard it used in is in dating. In your case the ability to use a computer at a much higher effectiveness is, if anything, a proof that he is a better programmer.
I'm a game developer. 3 monitors isn't enough to solve my problems. The documentation, the IDE, and the game: For the basics, this is acceptable.
The game monitor is constantly switching between several HDMI inputs, as I'm testing on multiple consoles and my PC. I need to verify my change on all platforms after all. A dedicated HDMI switch was provided when the 3+ inputs on the monitor itself turned out to be insufficient.
I want to debug multiplayer. Figuring out which of the 5+ chrome windows full of documentation tabs I want back afterwards is a needless distraction, but even ignoring that: I don't have enough monitors to dedicate one to each debugger instance and each game instance. The IDEs are already cramped on a single monitor, with tabs of code, watched variables, logs, and breakpoints all divide and subdivide the space. I routinely spill IDE tabs into a second monitor for minor bugfixing, and now they get half a monitor each.
I wish to double check a function signature in the docs. A new chrome instance opens, covering up the already cramped confines of what I'm working on. I glance - no wait, it's been covered up. I alt tab back and forth a few times, and then notice some parameters had their order swapped. I buy a commercial license for Input Director out of pocket to treat my netbook as another monitor suitable for reading docs - I might be high maintenance, but it's no problem if I cover the cost myself, right? Even so, I continue split monitors between multiple IDEs.
I fix the bug in the inlined function. The entire C++ universe must now be rebuilt, because precompiled headers were abused. The overbuilt 6 core monster I inherited from another dev maxes out all it's cores. Fortunately, I already bugged IT into adding an SSD to it. While waiting for that rebuild to complete, I fix a serialization bug I noticed while fixing this bug - unfortunately it's a breaking change. I now have to rebuild 100GB+ of optimized-for-runtime-on-x-platform assets.
A designer complains that everything is crashing. For everyone. It will be at least an hour before everything finishes rebuilding for me. I wish I had another useful computer, that I might be able to investigate the issue (the netbook can't run anything of note.) Eventually, sheepishly, I ask IT about it. Despite my concerns that I'm being unreasonable, they see no issue and are more than happy to provide what is now my 3rd machine.
I buy myself a 4K monitor for work, the cheapest one I can find, again out of pocket because I don't feel I can justify the purchase from a business perspective - but still want one. My computers only have 3 outputs each, but this at least makes side by side IDEs less cramped. For the first time in my life, I choose an IDE font size other than "smallest possible" as monitor DPI stops being the bottleneck.
I no longer have to constantly drag the divider back and forth when doing side-by-side comparisons in P4Diff, which I use for every code review. I realize I can totally justify it.
MacBook on a sofa chair at Starbucks is how I spend my mornings. But I have a single 208" 4k monitor at work (I want two displays, but my integrated graphics can't seem to handle it).
Thing I'm building | IDE,code,ssh | Documentation / Debugging
Email and messages will always interrupt me, whether I have one monitor or three.
Honestly, the internet is boring. Facebook is boring, here is boring, reddit is boring, it is all boring. It is so much more fun to make stuff. But it's a good place to go to when I want to start my day up, shut it down, and reboot my brain when I'm working on something difficult.
The concept of multitasking and single tasking is oversimplified. People define what tasks are and what organized is. If I see mathematical similarity through the 30 or so random topics I switch up and progress through, there is something that is single tasked in there because it unifies all the information selections, and it builds as I progress through each one.
> Honestly, the internet is boring. Facebook is boring, here is boring, reddit is boring, it is all boring. It is so much more fun to make stuff. But it's a good place to go to when I want to start my day up, shut it down, and reboot my brain when I'm working on something difficult.
You just put into words something I've been feeling very strongly lately. Well said. Thanks.
Glad to see someone else who went towards the empty desktop for their displays. I use various background scenes that are either calming or spark conversation. I have no icons on there other than files/reports being exported on a current problem and on their way to the vendor or responsible team. Once sent they get filed. Its like the age old idea of a clean physical desk. Things are where they belong.
I always liked the dual monitor setup, it keeps work separate from mail/etc without taking up an undue amount of my physical desk and more importantly, eye space.
Distractions, frequent context switching, etc can definitely reduce your productivity. Having three monitors can definitely work enable / exacerbate this, but it doesn't have to. I use three monitors like this. One for a web browser with API docs and testing my web app, one for code, one for build output. If you use an IDE that combines code and build output into one window, then I would say use the remaining two for API docs and your web app.
Personally I found a single 21:9 aspect radio monitor is awesome for displaying code, since it lets you comfortably display 4 files in columns.
Heres an example with Sublime http://i.imgur.com/snoNsUx.png - 72 columns per file, probably 80 if you disable code minimaps, enough for most neatly written code.
I still have an auxiliary monitor on a side for stuff like docs, but all the action happens in front of me.
Ive wished for 3 monitors, usually when debugging a data-binding problem for a massive record. 1 for IDE, 1 for database browser, 1 for GUI. Giant record meaning each of those is full screen.
You need a policy on how to use multiple monitors, telling which monitors are assigned to which applications. If you will just randomly place applications on different screens, you will surely get a distracting work environment.
To disprove the statement that 3 monitors cause less productivity, here's a simple policy that always increases productivity (although is rarely optimal): use the extra screen just for one specific app. It leaves more space for other apps on other monitors and you can always have direct access to the separated app. A web browser is a good candidate to be this app.
The OPs arguments on reducing distractions really has nothing to do with using multiple monitors.
I can regularly use multiple screens to perform single tasks: Three screens: one web-browser with the product running, one with browser dev tools open, one with ide/text editor. No distractions, pure coding/debugging.
Or having remote desktops/shells open with tail/ for troubleshooting something in production....or if you're writing/researching etc...
Anyway, the point is there's plenty of single focus tasks that can utilize a multiple monitor desktop for productivity.
Of course, these days with the high-res monitors, you don't really need three anymore, when you can snap two 1200px wide windows next to each other on a single monitor.
I went from three screens to one of those new 34" curved Dell monitors and it's been a big productivity boost for me. Part of the story is that I was never fully comfortable with either xmonad or gnome-shell on multiple screens. The other part of the story is that it's easy to wind up focusing on the wrong screen, at least for me.
The 34" + xmonad combo with a asymmetric three column format helps me have two large focus windows and a series of shells off to the side, without having the distraction of slack always being visible. As an added benefit, notifications which used to appear on every screen now only appear way, way at the corner of my vision. For me, at least, this is great because I don't notice them if I'm busy concentrating, but if I'm looking at, say, documentation (my rightmost column), the notifications are prominent enough that I can look down and see what I'm missing in another workspace.
83 comments
[ 3.1 ms ] story [ 144 ms ] threadPROTIP: Windows 10 makes it exceptionally easy for a multimonitor setup due to the new snap behavior.
I can't imagine developing without 3 screens worth of real estate. If I had room for another I'd probably put it to very good use.
You want to hide distractions like Skype,Outlook and so on.
What I used to do was this:
- One monitor for IM, email and ticketing system on the host machine. IM is left in DND while working, but occasionally there are IMs and emails which do need to be responded to immediately. Having email open also lets me browse through any emails associated with whatever work item I'm looking at.
- Two monitors devoted to a full-screen development VM. These two windows get the IDE, database windows, and the browser.
I was hugely productive like this, and going to two (or worse, one) monitor was a noticeable impact and I would get annoyed at all the alt-tabbing.
To me, having three monitors is analogous to having three stacks of paper on your desk. If you were working on a task that required you to look at three different sheets of paper, you wouldn't stack them on top of each other. You'd lay them out side-by-side. If you couldn't do that, you'd drive yourself crazy.
I'd be more flexible if everyone were to get one, but management doesn't want the expense. Its just incredible how childish people in an office setting act sometimes. I work in a building with other organizations like my own and have a close relationship with the IT department of one group that has dual monitors for everyone. Sadly, according to their IT guys, the second monitor becomes a dedicated Facebook terminal.
So instead, we standardized on 24" monitors that allow side by side windowing. I feel like that's the best solution for us. Widescreen monitors should be used in this way.
On my 1366x768 notebook display they do nothing for me, because many tools have tool-bars and stuff.
The lack of a good trackpad makes working with most other window managers a massive pain.
Most of the time I work with 3 windows. Editor, browser and a terminal.
Between the editor and the browser, which are both maximized, I switch with alt+tab and the terminal is a Guake on f1.
[0]: occational problems related to updates [1]: as long as the setup is static and I'm not docking/undocking, connection projectors etc.
I work and travel with Kubuntu and part of my routine is hooking up god-awful monitors, projects and whatnot and for the most part, I don't see a problem with convenience.
I haven't particlularly looked at issues of Window position because I expect it to change from site to site.
It really depends on how much screen space you need to efficiently do one task. Having three monitors myself, I mostly use two of them, sometimes one or sometimes all three, depending on the task. So you can still minify distraction.
And there are definately tasks where three monitors come in handy and save me a lot of window switching / aligning.
And no post is going to make people discipline themselves or focus. Let them manage their productivity the way they do.
I have 4 screens now, soon will upgrade to three 40" 4K TVs. I also have 24 core machine with 192 GB RAM and water cooling.
24" in pivot mode are another option I am considering.
herbstuftwm on archlinux, with everything opening up in their own designated windows - having taken a lot of time to have it just so - is what gives me joy everyday.
[0] Will upgrade to higher resolutions in the next round, but presently this was much more affordable.
- My workspaces were monolithic. If I changed my workspace, the windows on all my monitors went with it.
- Alt-tab worked globally across all monitors. I wanted it to only list the windows that were on the currently focused monitor.
- Moving windows from one monitor to the next in a predictable way was a chore. (I eventually resolved this with some key bindings, but it was a hack.)
- No window manager I know of afforded me the option of using tiling or (GOOD) stacking layouts on a per-monitor basis. (Some tiling WMs exist that solve the monolithic workspace problem, but they are all tiling.)
My first solution to this was to fork Openbox. It worked well for a while, but it was subject to a lot of state transition bugs and my hack became hard to maintain.
So I wrote my own. In Go. (Including a full X client stack.) https://github.com/BurntSushi/wingo
I love working with three monitors now, because I can freely mix and match the windows on my screen. My workspaces are dynamic (add/remove/rename as I please), so everything is composable. On one monitor, I might have a bunch of terminals in tiling mode. On another, I might have GIMP in stacking mode. Interestingly, in order to achieve this, I had to break compatibility with existing standards (but support as many as possible). As a result, some existing WM tools (particularly pagers and possibly task bars) just can't work well with my WM without explicit support. Perhaps this is why so few of these WMs exist outside the tiling world!
[1] https://i3wm.org/
Wingo is actually a tiling WM. But it's also a stacking WM. The difference with other tiling WMs is that its stacking layouts are first class citizens (hopefully as good as Openbox's) rather than hacks to get pesky applications to behave.
As a result, there is very meager support in the FreeDesktop WM standards for multiple monitors that share the same root window. Wingo breaks very few of them, but the ones it breaks (e.g., `_NET_WORKAREA`) are pretty important for pagers. It also breaks an implicit assumption that only one workspace is visible at any point in time.
So pagers and taskbars are like, "Oh. So you have multiple workspaces visible and they don't all have the same geometry?" Whoops. :-)
The things that do affect me are popups and noises and the nearby phone. But these are all things that still exist on a single-monitor setup.
I'm glad the author has found a solution that works for him, but it's wrong to generalize it as a solution for everyone.
Personally I can detect this easily by trying to watch TV or movies at the same time as I'm working. If it feels good, then I'm naturally focused on the work. If it feels distracting, then it's probably best to eliminate all distractions.
This is the fundamental flaw in virtually all quick-fix lifehack kind of pieces -- they project personal habits and failings generally, and then make broad claims about how to fix their own issues. It is the alcoholic telling you not to keep alcoholic beverages in your house.
I feel absolutely claustrophobic on a laptop with but a single work surface. And it isn't because I need multiple unrelated things fighting for my attention, but instead because I need maximal information for the singular thing I am working on. The flow of using all of the pieces of information is much higher -- for me -- when I don't need to task shift, shroud other pieces of information, and so on.
Docs/requirements/protocol specs on one screen, IDE on the other at the minimum. Realistically I usually like the IDE itself on multiple screens, inspector/project structure/source management on one, text editor on the other. Sometimes I split the text editor across multiple screens.
But that's personal habit. As mentioned I find working on a laptop absolutely crippling, though I have no doubt that there are people for whom it is ideal.
Anything to do with video or 3d graphics and it can help a lot.
I'm thinking of downgrading to an Air or MacBook just to refocus my efforts.
Also, physically, the screen on an Air or many of these new MacBooks is one fourth the size of just one of the three screens on my desktop. I suppose you can get by if you're just doing email or writing, but I'll stick with my full workstation for developing software. Two monitors is an absolute minimum, but the third one is nice for stashing Fiddler or the Chrome dev tool windows in.
I respectfully disagree. I use a 27" external monitor with a MacBook Pro as my keyboard and mouse. I find external mice and keyboards too wide. It's been a while since I used a full sized keyboard but I find they make my right shoulder ache.
Since I can touch type I don't really miss the keypad at all. In fact I remap Caps Lock to Ctrl and use Ctrl-h, Ctrl-m, Ctrl-i (in Colemak) so that I don't have to reach for backspace, return and tab. That saves my right wrist, which seems to be a bit weak.
Then again I spend a lot of time in a tmux window with short cuts to move about, so that might be why it works for me.
[Updates for grammar]
My assertion is still that full sized keyboards and mice aren't necessarily better than laptops with track pads I guess YMMV.
Other thoughts - if you find a full-size keyboard uncomfortable, and prefer a custom keymapping, sounds like you might like the Happy Hacking Keyboard and a mouse of your choice:
https://elitekeyboards.com/products.php?sub=pfu_keyboards,hh...
It isn't cheap, but the compact nature of it allows you to have your mouse hand much closer. CTRL/CAPS swapping is considered also.
A simple tenkeyless (keyboard ends before the tenkey) might be suitable as well.
Of course if you're happy with your setup as is, that's all that matters. As is the common view in this thread, do whatever works for you.
Citrix, remote desktop and VNC combined with the combined imagination of a few IT departments makes one screen very inefficient.
As for why people (not sneak but others) would proclaim that they are running twitter and non-related web sites at work I don't know although I'll admit that I have Whatsapp in a chrome tab and check it once in a while.
Life is full of trade-offs and your macbook is one of them, get one it if you want, but don't pretend it defines you as super effective or low maintenance, only really our output verses cost will define that.
The game monitor is constantly switching between several HDMI inputs, as I'm testing on multiple consoles and my PC. I need to verify my change on all platforms after all. A dedicated HDMI switch was provided when the 3+ inputs on the monitor itself turned out to be insufficient.
I want to debug multiplayer. Figuring out which of the 5+ chrome windows full of documentation tabs I want back afterwards is a needless distraction, but even ignoring that: I don't have enough monitors to dedicate one to each debugger instance and each game instance. The IDEs are already cramped on a single monitor, with tabs of code, watched variables, logs, and breakpoints all divide and subdivide the space. I routinely spill IDE tabs into a second monitor for minor bugfixing, and now they get half a monitor each.
I wish to double check a function signature in the docs. A new chrome instance opens, covering up the already cramped confines of what I'm working on. I glance - no wait, it's been covered up. I alt tab back and forth a few times, and then notice some parameters had their order swapped. I buy a commercial license for Input Director out of pocket to treat my netbook as another monitor suitable for reading docs - I might be high maintenance, but it's no problem if I cover the cost myself, right? Even so, I continue split monitors between multiple IDEs.
I fix the bug in the inlined function. The entire C++ universe must now be rebuilt, because precompiled headers were abused. The overbuilt 6 core monster I inherited from another dev maxes out all it's cores. Fortunately, I already bugged IT into adding an SSD to it. While waiting for that rebuild to complete, I fix a serialization bug I noticed while fixing this bug - unfortunately it's a breaking change. I now have to rebuild 100GB+ of optimized-for-runtime-on-x-platform assets.
A designer complains that everything is crashing. For everyone. It will be at least an hour before everything finishes rebuilding for me. I wish I had another useful computer, that I might be able to investigate the issue (the netbook can't run anything of note.) Eventually, sheepishly, I ask IT about it. Despite my concerns that I'm being unreasonable, they see no issue and are more than happy to provide what is now my 3rd machine.
I buy myself a 4K monitor for work, the cheapest one I can find, again out of pocket because I don't feel I can justify the purchase from a business perspective - but still want one. My computers only have 3 outputs each, but this at least makes side by side IDEs less cramped. For the first time in my life, I choose an IDE font size other than "smallest possible" as monitor DPI stops being the bottleneck.
I no longer have to constantly drag the divider back and forth when doing side-by-side comparisons in P4Diff, which I use for every code review. I realize I can totally justify it.
Middle for code/editor/terminal, right for browser/debugger/unit tests and left for everything else (email, bug tracker, tickets, netflix).
The separation of concerns is what I really like.
http://i.imgur.com/kxcCh8D.jpg is fairly typical.
Email and messages will always interrupt me, whether I have one monitor or three.
Honestly, the internet is boring. Facebook is boring, here is boring, reddit is boring, it is all boring. It is so much more fun to make stuff. But it's a good place to go to when I want to start my day up, shut it down, and reboot my brain when I'm working on something difficult.
The concept of multitasking and single tasking is oversimplified. People define what tasks are and what organized is. If I see mathematical similarity through the 30 or so random topics I switch up and progress through, there is something that is single tasked in there because it unifies all the information selections, and it builds as I progress through each one.
You just put into words something I've been feeling very strongly lately. Well said. Thanks.
I always liked the dual monitor setup, it keeps work separate from mail/etc without taking up an undue amount of my physical desk and more importantly, eye space.
Heres an example with Sublime http://i.imgur.com/snoNsUx.png - 72 columns per file, probably 80 if you disable code minimaps, enough for most neatly written code.
I still have an auxiliary monitor on a side for stuff like docs, but all the action happens in front of me.
http://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3D...
To disprove the statement that 3 monitors cause less productivity, here's a simple policy that always increases productivity (although is rarely optimal): use the extra screen just for one specific app. It leaves more space for other apps on other monitors and you can always have direct access to the separated app. A web browser is a good candidate to be this app.
I can regularly use multiple screens to perform single tasks: Three screens: one web-browser with the product running, one with browser dev tools open, one with ide/text editor. No distractions, pure coding/debugging.
Or having remote desktops/shells open with tail/ for troubleshooting something in production....or if you're writing/researching etc...
Anyway, the point is there's plenty of single focus tasks that can utilize a multiple monitor desktop for productivity.
Of course, these days with the high-res monitors, you don't really need three anymore, when you can snap two 1200px wide windows next to each other on a single monitor.
Saying that, I love the amount you can get done when you're 'in the zone'. I just wish I could sustain it..
If you haven't tried the Pomodoro technique, I highly recommend it. It's a great tool to be able to pull out when you're feeling lethargic.
The 34" + xmonad combo with a asymmetric three column format helps me have two large focus windows and a series of shells off to the side, without having the distraction of slack always being visible. As an added benefit, notifications which used to appear on every screen now only appear way, way at the corner of my vision. For me, at least, this is great because I don't notice them if I'm busy concentrating, but if I'm looking at, say, documentation (my rightmost column), the notifications are prominent enough that I can look down and see what I'm missing in another workspace.