I prefer to work with a single large external monitor. If my device is a laptop I keep it in clamshell mode when attached to an external monitor. I find switching applications with keyboard shortcuts and focusing on one thing at a time has improved my productivity. Using two or more monitors made it so easy for me to get distracted. To each their own though.
When I ran multiple monitors I often designated one as my "communication" display, which got email/chat on it, and probably browser as well (for reference material), while the other was the active work one with the current task (usually a few terminals). I found the clearly defines areas for specific tasks was useful.
Now I work off a 40" 4k TV without magnification (I'm close to it), and I try to do similar but it's a lot more haphazard. I find that once you have a wall of pixels in front of you, putting stuff in areas helps, but it's also nice to just throw stuff around and treat it as a actual physical desktop (as it's actually about the size now).
The thing to keep in mind is that as screens get larger, maximizing to fill the whole screen makes less and less sense. I can't even see all my screen at once. I could place it farther back and scale it up, but why would I just by a smaller screen and keep it closer then? I want those pixels. I run all my browser windows at about a quarter screen size, and have that app scaled up to 125% (but not all apps), and that almost never has a problem with a site, and I have other info I care about quick saccade away.
Can recommend Nvidias nView software for partitioning the screen into work-areas. Then maximizing, by default dragging the window to a border of a work-area, but is programmable so you can select a default area, just fills the area. Only downside is that you need to patch a JNZ in their DLL where they check if you have a Quadro card and quit.
Windows has PowerToys [1] with the tool FancyZones, I've used it daily for a while and in general works pretty well, it's customizable and I use it to setup "zones" for working and splitting my tools into predefined spaces on muy screens.
Windows 11 has some nice window management features like this built in, but I’ve found the windows power toys fancy zones to be even better. This works for all graphics cards.
I've found this to be the optimum as well. The fact that you can have 2 1080p monitors worth of display height stacked on top of each other is invaluable when writing code/reading docs. For the other half of the monitor I can usually split it up between a browser/target app I'm debugging and something else, which usually varies by the actual use-case.
> maximizing to fill the whole screen makes less and less sense
I guess that was the point of having "windows" in the first place. Per TFA:
> Websites and documents usually end up with a lot of whitespace and padding around them
This only happens if you needlessly maximise; windows are supposed to fit their content, not their container†. (Yes I realise that the article is in jest, yet I see so many people complaining about "poor app/web design" when all you need to do is not maximise on a wide enough screen. I smell Horror Vacui[0])
> When I ran multiple monitors I often designated one
In my case this ends up with me having a single screen for work and the other(s) mostly unused††; the ROI of the extra screen(s) thus drops extremely quickly. With a typical two-screen symmetric setup this also means my head/eyes have a constant bias in one direction, which means RSI quite quickly. Plus having things ever so slightly move in my peripheral vision triggers my reptilian emergency reflexes which goes contra to the goal of focusing.
I've noticed that "maximisers" are typically using two or more screens as they would use windows. To be fair I'm not bashing on "maximisers" at all, I just view the thing as with coffee: there are the dippers and the non-dippers, and to each his own, but when I see people arguing/complaining I'd rather point out that they should use a setup matching their preference and not try to force others into some "enlightenment".
I do blame (in jest) the "maximiser" mindset for the flurry of apps with huge "content" that basically forces you to maximise yet end up reinventing ad-hoc window management inside the app, only poorly and inconsistently.
† Which is the default behaviour of the "maximise" (a.k.a "zoom" in Apple HIG parlance) green plus traffic light on macOS, that you now have to reach to with Option.
†† The only use case I found possibly interesting is looking at documentation over there, which in practice I found equally efficient to have on either a separate virtual desktop, or on an iPad.
I used to have 2 pcs, connected over synergy, for the same reason.
The best part is that your cmd-tab / application switcher is local to that screen.
Still looking for a similar solution on 1 laptop with 2 screens.
I've longed for a window manager that can assign different virtual desktops to different screens. Of course, there are compositing, scaling and resolution issues to overcome, but it'd be really neat to have a palette of virtual desktops that could be called up on whichever monitor was most convenient.
...and it'd make screen mirroring during presentations a breeze!
Maybe I'm not understanding what you want exactly, but it sounds like what i3 and Sway already do. Workspaces are created as needed and are specific to that monitor, so if workspace 3 is on the right monitor, you can jump to it with super-3 even if you're on the left monitor. You'd be looking at workspace 3 on the right monitor plus another workspace like 1 or 2 on the left. Each monitor displays a separate workspace which can be changed without affecting the other.
You can also define rules in the config so that certain programs will open in certain workspaces every time, and you can move the whole workspace to the other monitor (not a default keybind iirc) if desired. Good in a portrait+landscape monitor setup for if you need your browser to be wider for a little bit.
You can absolutely do this in i3 or sway. There aren't default keybindings for doing it, but it is easy to set up your own. I set $mod+equals to 'move workspace to output up' in i3 (or something like that -- I'm not on that machine to check). This works for me since I set up my external display to be above the laptop screen, so it effectively means 'move this workspace to the other output'. You could also specify a specific output to move to, or change what the direction is.
That's not quite what's being asked for. I think it's more like super+1 for "move workspace 1 to the current monitor". I haven't quite figured out how to do that in sway, although I'm pretty new with it.
In my scheme that move is just two key combos away, which seems fine to me, especially since it is rarely what I want. You could make it one key combo if you want, too, in a script if not in a single line.
I used to do stuff like this back in the day with Fvwm2, but less at the desktop level and more at the application level. You can set applications (windows really, and by title or id) to either be sticky to desktop or screen, etc. I had my mail client follow me no matter the virtual desktop I was on, but let other windows be anchored to the virtual desktop.
Honestly, I often miss Fvwm2 and my config in its power and simplicity, but Windows long ago became "good enough" and since the heavy apps I really care about (mail client, browser, maybe an IDE if I'm not using vim for the project) are cross platform (which they all are), as long as there's a good SSH client I'm good, and Windows Terminal plus built in OpenSSH shipped with windows works fairly well.
I basically want to have real multi user.
I want my dev/project to be an isolated user, also bc of software supply chain security.
I want to map it to a (virtual) screen. I want to be able to share the clipboard.
I think the closest is running multiple OS X/Linux in VMs
You could also achieve this with pure X server and several system users: X controls your display and inputs (kb/mouse), and you let different X clients from different system users display on that server (eg. set the DISPLAY env var properly, configure X server permissions with xhost utility).
Then, you use a configurable tiling manager to control which windows go where (I am sure you can even go by the user somehow, but maybe you'll need to "decorate" the client run with an env var too).
what i do for work is very close to what you want and its pretty easy to achieve with using lightdm and the dm-tool with the add-nested-seat command. It will start a new Xephyr X server local to your current user and attach the session manager to it. from there you just login and have the second user session in a window just like you wanted... however, i did not get clipboard sharing to work but i actually like this extra bit of isolation.... its not even hackish and performance is exactly as native because it is... its a bit harder to get sound working concurrently, but not impossible, although i never really tried. However, i use pipewires pulseaudio interface to stream audio to a remote AV receiver in the room and this should work fine in the second user session too, although as said i never bothered to try...
Check out Total Spaces (https://totalspaces.binaryage.com/) for Mac. I use this with dual monitors and love that each monitor can have its own virtual desktop.
I have my left monitor as a communications hub. It has only one virtual screen. I also keep my browser there.
That won’t work. I just want separation. Between applications. I can run multiple instances of chrome, but the is has trouble figuring out where to put what.
I’ve tried routing VNC though an ssh tunnel (doesn’t accept connection to localhost), but it’s all pretty shit.
And I really don’t like carrying 2 MacBooks around
I don’t think you can have the same desktop on both screens, but otherwise herbstluftwm allows this.
Also monitors are virtual so you can have multiple virtual monitors on one physical monitor. I want to one day try this with a 4K tv to have multiple monitor layouts.
It also works well within virtual pc's and licensing is per machine so you can use it on multiple virtual pc's at the same time as the main host, so you can multiple virtual pc's running, subject to hw abilities, and it works instantly and seemlessly, also high customisable and you can do your own commands to work with things like nVidia's mosaic.
I cant remember if it also does tilting like that described in this post or not, but you can certainly do a lot with mosaic run it all from shortcuts so you can instantly switch to different resolutions and layouts and the shortcuts can be used in Ultramon, for seamless operations, ie switch between 2 physical monitors and 3 monitors, all called from within ultramon. Ultramon then detects the physical monitor changes and acts accordingly.
You can spend hours in front of one these, get perfectly comfortable without taking up your desk space as it clamps to the back of your desk, and when you have to do paperwork, you can push the monitors to the back of the desk.
but if they ever added some batteries and motors so it can drive around, I'd get one of these for my mobile solution as it can still do 3 monitors. :-)
https://allimperatorworks.com/product/iw-j20-pro/
> Using two or more monitors made it so easy for me to get distracted.
I have a desktop with three monitors and a laptop with one, and I don't notice any difference in distractibility. It's a discipline problem, not a technical one, and so you should solve it on a personal level and not a technical one.
I mean, think about it. If you "unlock" the ability to use multiple monitors at once without getting distracted, "it's free real estate" - you have more space to work with, and there's empirical evidence to suggest that that results in increased productivity. Programming involves a lot of consulting documentation and using multiple tools at once - it's very amenable to multiple monitors (as opposed to, say, writing a novel).
> I mean, think about it. If you “unlock” the ability to use multiple monitors at once without getting distracted, “it’s free real estate”
If the distraction problem isn’t from size but strictly—as was described—from multiple monitors, this isn’t true; multiple monitors are cheaper than single monitors for a given total area and pixel density, but its possible to get one large (ideally curved) monitor that has the real estate of multiple lesser monitors. I found going going from twin 23” 16:9 monitors FHD monitors to a single curved 34” 3440x1440 monitor a reduction in distraction, as well as increase in real estate.
Multiple monitors are a distraction, IME, because of discontinuities (all of gaps between them, discontinuity in viewing angle, and, if they aren’t identical devices in pristine condition with identical settings, differences in display quality, whether its color/brightness/contrast/etc.)
> and so you should solve it on a personal level and not a technical one.
Why, when a technical one suffices?
I've not personally seen much of a productivity increase over two 24"-ish screens and a single 32" 4K screen myself. I don't have the physical desk space for two of those (nor do I think it would be particularly useful for me)
Because if you're programming then the imposed limitation forcing you to constantly switch between windows almost certainly reduces your productivity. Do you never find yourself jumping back and forth between two or three documentation pages (library API, manpage, language spec, whatever), one or more pieces of example code, and one or more files with code that you're editing? Plus a window for build tooling? I find having that all visible at once in dedicated locations to be incredibly convenient, much more like working on a physical bench top.
> I find having that all visible at once in dedicated locations to be incredibly convenient
That’s a reason for seeking out a solution with large enough display area and sufficient resolution. That doesn’t necessarily require multiple monitors.
I wasn't meaning to differentiate between those two approaches. The original complaint seemed to be that having too many windows visible was leading to distraction. Honestly I found that claim perplexing. If it was only when they were spread across multiple physical monitors (as opposed to a single very large one) that would be even stranger to me.
At the end of the day though I admit that it comes down to whatever works for the individual to maximize their effectiveness.
> there's empirical evidence to suggest that that results in increased productivity
Can you share this evidence?
The thing is that one can only focus on a single monitor at a time. So productivity IME really depends on your windows manager. If I can quickly jump from code to documentation while looking at the same pixels without moving my neck or eyes, that seems like it would be more productive than changing focus to another screen and back.
I've been working on a single 1080p laptop display for years now, running Linux with bspwm. I've tried hooking up external displays to this setup, but I haven't found it increased my productivity. Sure, the extra real estate was nice, but shifting focus between monitors detracted from the experience enough that I always went back to a single screen. The comfort of having a portable setup and being able to work from anywhere is also a plus.
You assume that there are no scenarios where you want two windows up at the same time; e.g. for comparison or quick reference.
I have a custom setup where I can quickly switch between windows and applications using keyboard shortcuts and save e.g. cursor positions.
I still prefer having the relevant material on-screen rather than switching between them. And it's due to the reason previously mentioned: for me it's faster to reference material that is on-screen at the same time rather than switching between them.
Perhaps this has something to do with the type of code bases one works with? I work quite a bit on legacy apps, where one has to reference both documentation, tests and git history (when it's of value), as well as a browser window to actually run the code. That'a already a lot of things to be switching between.
I do run into those situations of course, where I want to see two windows side-by-side, but it's very rare and almost always temporary. Most of my windows run full screen, and if I need to focus on something else I just switch to it. It's important that this switch happens very quickly, so my window manager configuration has no delays, and every window is a quick keyboard shortcut away (either on a different workspace, "alt-tabbed" on the same workspace, or quickly accessible via rofi).
This workflow completely removes the need for a separate screen. A larger screen and higher resolution would be nice to have, but not for productivity reasons. I've found a 15.6" 1080p display to be sufficient with this setup, even though I have other screens I could use at the same time. It boils down to personal preference, but I doubt there's some "empirical evidence" that using more than one screen objectively leads to higher productivity.
Monitor #1: The page
Monitor #2: The code
Monitor #3: Mail, chat etc.
You can drop the third one, but at least two is kinda required. You can't just shove #1 and #2 on a single monitor or the page layout won't match the user's.
Debatable, my sway setup transitions instantly :) Everyone has their preferred workflow. I personally switched back from two monitors to a 15" laptop screen
Same here. In the circumstances where I need multiple things up at once I use Windows' window tiling features to arrange things as I need. They even made this functionality better in Windows 11. I'm a big proponent of using one good monitor over any number of other monitors.
One thing that cracks me up is how many of my users request multiple monitor setups, but look at the keyboard while they type.
I tried powertoys fancy zones (from MS itself) and never looked back. Can’t tell if it will work with 11. My layout is 4 overlapping vertical full-height panes, so I can split the screen in half, or around 2:3 either way. E.g. my browser is usually x=0, w=3/5, and my vim is x=1/2, w=1/2. This way I can see the changes in 1500+-width but slightly overlapped by an editor to feel comfortable with line widths and their left margin.
What stands out in fancy zones is that these areas do not have to tile each other and may overlap. Positioning windows in there is also very UX. I couldn’t find anything close enough in linux world (well, one may always program i3 or awesome, but it’s beyond my scope of interest).
I don’t get why MS doesn’t just build it into windows, since it’s their own, free tool.
Second FanzyZones. I've remapped the keys I could to mimic i3, and the only thing keeping it from "perfect" is keyboard shortcuts to control splitting/moving/resizing. You can toggle between pre-configured fixed zones using the keyboard, which is mostly good enough.
PowerToys also has a ton of other useful tools like a color picker, bulk file rename, and keyboard remapping (useful when using Synergy between Windows/MacOS). Highly recommend.
I just remapped the super-pagedn/up keys for window switching (only next/prev instead of hjkl). Otherwise I'm using i3 on Linux, and use Synergy to move between Windows, MacOS, and Linux so it helps to have as much between the three environments consistent.
I use two 27" 4k Monitors in landscape mode arranged vertically. That way I have one primary monitor just in front of me and some extra space when I need it.
Having the secondary screen above the primary means you won't have neck pain from looking to the one side all the time. In addition, it is quite relaxing to lean back and watch a presentation/video on the secondary screen.
The biggest downside is the position of a webcam. I placed it between the monitors with a 3D printed holder. However, that is certainly not an optimal solution.
You are right, that looking down is more comfortable than looking up when sitting straight.
However, I like it better to look up than to look left or right and my reasoning is that it is symmetrical. Therefore, I prefer to have the secondary screen above the primary.
I use a laptop and I make heavy use of workspaces. I generally don't use an external monitor at all. However, when working at a desk, I use an external keyboard and trackpad, and put the laptop on a stand.
I dislike plugging into a monitor because it I hate the chaos of resizing everything. When I'm on the large monitor I unconsciously expand things; then when I switch back everything is on top of everything else or expanded beyond the window edges or reflowed or what have you.
I say this having worked with applications where you truly need an external monitor: image editing (where you put all your extra palettes on the extra monitor, and DAWs, where timeline and mixer views take up a full monitor each. Programming isn't like that.
Totally this. I've been using Linux for so long time that I haven't realised Windows has that feature as well - when I've learned about this and WSL has been introduced I've switched immediately :)
All of these layers are different keybinds and windowing systems with no smooth integration. Pop Shell has one way of stacking windows into tabs, tmux has another, firefox has another. Ideally i want one set of keybinds that can seamlessly let me search for a firefox tab or an open editor tab, or move a tmux pane into a terminal window into a stacked pop shell window. Like one set of controls and UI for all the windowing. Currently i think we all are juggling multiple nested paradigms and sets of shortcuts for no good reason (besides it being hard to implement)
Yes but unfortunately that doesn't really work for heavy applications today. That would mean like 50 independent memory-hungry firefox or IDE processes corresponding to every tab/file you might have open. The entire point is to decouple a window from the resources/host process that controls the window.
Why would an IDE have a separate process for another window? At least, Idea does it right (iirc).
As for FF, I have 47 windows opened, but 11 processes running—one of which is a ‘master’ process. Meanwhile tabs that are in one window can still run in multiple processes.
multiple browser windows are not different resource-wise than multiple tabs, you are still running against same instance of the browser.
The other benefit of leaving window (and tab) managerment to the OS is that tabs switching should also better, imagine your tabs show up in the OS switcher and you can look them up in spotlight or something.
FF might have a setting on ‘about:config’ for whether to open links in tabs or windows. But off-hand I only know for certain about the one for links from other apps.
I am exactly the same way. I have a 50" 4k TV in my basement that exists solely as a monitor for my laptop(s). TVs have the advantage of being ridiculously cheap, and there's no law saying that you can't just plug into the HDMI port and use it as a monitor. The refresh-rate is so-so, but since all I don't really play games, it's not a problem.
Having a 50" TV lets me sit pretty far away from the screen and also gives me plenty of room to put a million applications next to each other which (at least for me) helps me avoid being distracted. I also have a lot of issues reading small text [1], so having a big screen allows me to make the text gigantic while not sacrificing a ton of screen real estate.
It's honestly great; if I ever am forced to work in an office again, I'm going to insist that the company purchase me the equipment for a similar setup.
[1] I'm reasonably certain that I'm not dyslexic, but I do find that reading off a screen is substantially easier for me when I use extremely big text. This is part of the reason most my book reading is either on the Kindle or the large-print vision-impaired versions of books.
I did. He told me that I just have the normal symptoms of getting old. I miss my 20s when I could read tiny text on a 19inch screen (CRT). Now I magnify everything, 250% really messages with a lot of websites, but at least I can read. (I'm writing this on a pinebook pro, so the screen is not large to begin with)
I wear glasses/contact lenses already, so I get my eyes checked regularly. I've had pretty bad eyesight since I was nine years old, and an astigmatism in my left eye since I was at least nineteen. Theoretically at least, my contact lenses correct for it.
I honestly don't think it's a vision issue though; I don't have issues identifying the letters, and I don't have trouble reading the words or parsing sentences, I seem to have a lot of trouble keeping track of which line I'm on when I'm reading stuff with relatively small font. When I have large font, I don't have this issue, and I can read relatively quickly without a ton of issues.
> I find switching applications with keyboard shortcuts and focusing on one thing at a time has improved my productivity. Using two or more monitors made it so easy for me to get distracted.
I very much agree with this - alt-tabbing between browser, terminal and fullscreened Emacs are what I've been doing for years. But very recently I decided to make two significant changes:
1. Adding a second monitor for documentation or visualizing output. When I'm going through longer written works (tutorials on languages, toolkits, etc), it's rotated to portrait mode and I find it more conducive to typing and testing things on the first monitor (with Emacs still fullscreen, but C-x 2 for splitting it in half). Recently I've been playing with OpenSCAD and I've liked having the second monitor in landscape mode; then I edit files in Emacs, and OpenSCAD updates the render as soon as I save the file. Transcribing music from scans displayed on a portrait monitor into MuseScore in fullscreen on a landscape monitor is a third "topic" I find two monitors handy for. Lastly is IT/sysadmin where I have a 160x60 terminal with a tab per server on the landscape monitor, and dashboards or documentation on the second monitor rotated to landscape mode. Control PgUp and PgDown between server consoles, each running screen, where screen zero is colorized log output.
2. The second change might have a a bigger impact than the first: multiple virtual desktops, one for each "topic." For example, my virtual desktops are currently entitled "Main", "IT", "3D Modelling", "Programming", and "Music". Of course I switch between them with a keyboard shortcut. This really seems to help my focus, by putting things "out of reach" so that I can't just Alt-tab to Reddit or HN when I'm bored or stuck.
The key with any tool is to figure out how to make it work for you, not against you. Sounds like you've already made progress on this front, but I thought I'd provide my two cents.
I use a 27” 4k monitor, in unscaled mode, but I use zoom heavily on macOS (Ctrl+Scroll Wheel) - with some extra scroll cruising setup with SteerMouse on my mouse. The lets me reduce the pixel to density to that if a much larger screen on-demand to help with my eyes a bit.
The one thing that I dearly miss from OS X going to linux, is the 'double tap to zoom on a text container' thing that simply doesn't appear to have an equivalent on linux. Being able to double tap and zoom up on text when I'm tired after a long day is very nice.
I agree, I've also moved back to a single monitor. Less distraction, and for me also less neck pain as I keep what I'm focusing on straight in front of me, instead of having a monitor off to one side.
I work with the KDE virtual desktops grid with a 3x2 arrangement and wrap around on a 32" curved screen. I've found it very useful to put the same windows in the same grid squares and have hotkeys to easily go between. I know exactly the keystrokes ahead of time to get to the window I want and don't have to move my neck to get there. I can tile them, since I've got plenty of space on the one large screen, but usually the 6 virtual desktops are good enough. I've tried multiple monitors before, but couldn't get into it.
That's pretty much exactly my setup. On top of that I make sure I can do most important things with just my left hand: I use Ctrl+F1/2/3 as is default in KDE (Firefox on F1, editor of F2 usually), but then I rebind stuff to the Windows key: Win+W maximises a window, Win+A tiles to the left and Win+S tiles right. Kinda unrelated, but I also rebind Konsole's "Clear Scrollback and Reset" to Ctrl+Shift+X because I use it before running compilers and stuff, so I can easily find the actual start of the command's output.
I use two monitors, but one is my tiny 13" laptop screen which has _only_ my browser on it (which holds my current project, and Slack et al. in various tabs)
Everything else lives on my 32" 4K monitor. This gets me a nice compromise, as I found having two larger monitors leading to distraction as well (or just completely ignoring one of the monitors, so it added little value to me).
I agree I just like to add for development it'd be nice to at least a terminal window and an editor open side by side. In case of web dev the browser pointing to localhost and the editor side by side. I don't understand why an "ideal monitor for programmers" would need to have space for Twitter.
It's funny how our brains work, eh? I find I'm the complete opposite. I need two monitors so things are right there in my face. I get distracted switching tabs. Thanks a lot ADHD.