Multiple-Display Power Tools For Linux?
shift writes "I've used multiple monitors for years (currently 3) and find that Linux is lacking in power tools for such setups. Even Windows 7 has added the feature to move a window from screen to screen with keyboard shortcuts. Are any of the major desktop environments adding such features? I'm still stuck on FVWM and have defined functions to swap the contents of screens as well as move windows from screen to screen and so on. But this just seems like such basic functionality people would want in multi-screen setups that I'm surprised I don't find any of these features in our latest desktop environments."
Why not just make each monitor it's own workspace?
Use compiz and set your shortcuts in Window Management / Put. Just checked moving windows to different outputs (I use 2 displays) and it works.
While we're on the subject, I'm curious to know how well Linux supports three monitor setups. I'm thinking of setting up three monitors on two graphics cards with KDE4. Does anyone have experience with this setup? How well does Compiz work for you? (I've heard anecdotal stories that Compiz can't cross video cards.) Is this something that SaX (or another GUI tool) setup, or will I be hand-editing configuration files?
I rather refute it. I have used linux on the desktop exclusively for years. What problems exactly are you having?
Or are you just trolling?
I've been using multiple screens for years, though mostly under Ubuntu on nVidia cards. I can simply drag windows from one screen to another - not exactly difficult. Maximised windows will even resize themselves as my tow monitors do not have the same resolution.
Given that, if you really waanted keyboard control...
alt-space, down arrow, down arrow (to un-maximise), return
then
alt-space, down arrow, down arrow, down arrow (move)
use arrow keys to move window to wherever on your desktop you want it.
Is this just a problem with FVWM? I know I've been doing it for years in both FreeBSD and Linux. I've done it with FreeBSD running Windowmaker as early as 2002-2003, iirc. And I've done it on Linux with KDE and Gnome.
I've done it with Matrox, ATI, and Nvidia cards. I guess I'm not really sure what the submitter is talking about, because it works for me just as he's asking for without any special hardware.
In fact, in linux running Ubuntu, this was the default configuration as I recall, and I've actually got this working on the Ubuntu 9.10 right here.
Mod me up (I prefer "informative") but you know it's true
This might be overly simplifying the matter, but Ubuntu (GNOME environment) has got multiple workspaces built in, and CTRL-ALT-SHIFT-right_arrow will throw the current window to the next workspace. Couldn't you just assign each workspace to a different monitor and be done with it?
When using Xinerama (which you really ought to be if you want control over your multi-screen setup), many tiling window managers can do all sorts of neat things. I personally use Awesome, although I'm told that xmonad is also good at this.
My Systems
Xmonad seperates the concept of virtual desktops from the displays on which they are put.
so not only can you move a window from one monitor alt-shift-[wer] for moving from monitors 1 2 3 respectivly.
you can put any of the (default 9) virtual desktops on any monitor with alt-[1-9]. The window manager is about as hard to learn to use as VI though it is really really well worth it. expecially when you use it from within gnome so you dont have to loose all the task bar goodness.
To move a window to another monitor (not workspace) in GNOME, press alt+F7, hold shift and the direction you want to move.
Linux has many fine tiling window managers available, such as Xmonad, AwesomeWM, and StumpWM. These pieces of software deal very well with multi-monitor setups. They have support and expressive keybindings built in. They also automatically manage window size and placement, which is a great boon, especially if you have a lot of screen real estate: no more dragging windows around to see everything!
Truly, tiling window managers are screen-management power tools. I personally use Xmonad on four screens with named dynamic workspaces, which allows me to nicely label each set of windows and layout according to the content of the windows involved.
dwm had its multihead support improved back in July. Since pretty much all of dwm's window management is by keyboard, of course it has keyboard shortcuts for moving windows between monitors. So yeah, this feature exists in even one of the most minimalist window managers out there.
multiple mointor support is through XRandR. It also does away with the stupid xorg.conf.
i thought once I was found, but it was only a dream.
FVWM is a windows manager that has been around with few major functional changes for several decades. It's a solid windows manager that is very good at what it does; managing your workspaces and placing the right windows in the right place, directing input to the correct application, etc. In addition it is highly streamlined, with not a lot of excess bells and windows, which makes it highly valuable in a low and limited resource environments. Gnome and KDE are much fatter tool sets providing many of the bells and whistles you seem to crave. In addition FVWM can be used in conjunction with individual tools from these tools sets. Try out Gnome or KDE, either instaed of or along side FVWM and see what you get.
Let's not pretend there was no problem with multiple monitors at times.
To me, Linux has been ready for the desktop for 10 years, and I've been using it almost exclusively. So, that's said.
Though, using dual monitor out of the box has failed me at the first instance a good number of times. And that's far away from perfect. Because I know how to handle Xorg.0.log and xorg.conf; and I know where to post for help; but Aunty Tilly doesn't.
Example 1: 1600x1200 next to 1024x768, Gnome, year:2009. Failed. Took me a few hours until I found a filed bug, that Xorg would not accept a higher resolution of the virtual desktop than 2048x2048. Placing 1600x1200 above 1024x768 finally worked; based on Gnome's GUI. Still not good.
Example 2: Playing with KDE (4.3.2-4), that same thing doesn't. The desktop configuration applet (Computer Administration->Display) simply doesn't allow to un-mirror the two screens; contrary to the 'Display' applet in Gnome. Another need to resort to Google, and a forum. Solution: I need to issue a number of xrandr commands to split the two displays to show separate content. Not good.
Example 3: Having another box with Nvidia-card with TV out. The same KDE (4.3.2-4) applet simply is not aware of the TV output. It shows one standard display, the LCD monitor. Over. Of course, the Nvidia-applet works fine, doing anything with the TV of my liking. But it would require the user to know that she uses a Nvidia card, and that there is another applet that she needs to use. Not good.
The problem, AFAIK, is not that on Linux one couldn't; but one can't, once too often, not simply out of the box.
I've been using FVWM with multiple monitors for years. xrandr has simplified things considerably. I can drag from one monitor to another with no problem. Below is my current xorg.conf (note that I am running on Fedora 10). You can use a Radeon card by changing the driver to 'radeon'. Use 'lspci' to get the appropriate BusID for your card(s). There may be simpler solutions but this has worked well for me.
And for those saying to use a different window manager please note that FVWM has not stood still but is still true to the name it had when I began using it 15 years ago: the Frugal Virtual Window manager. It is frugal with regards to RAM and CPU use. I also like it because I can edit a file (gasp) to modify the configuration. For old farts like me that's a plus. YMMV.
Section "InputDevice"
# keyboard added by rhpxl
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "Monitor"
Identifier "DVI0"
Option "Enable" "true"
Option "DPMS"
EndSection
Section "Monitor"
Identifier "DVI1"
Option "LeftOf" "DVI0"
Option "Enable" "true"
Option "DPMS"
EndSection
Section "Device"
Identifier "nVidia Corporation GeForce 8600 GT"
Driver "nv"
BusID "PCI:1:00:0"
#Option "Monitor-DVI0" "DVI1"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation GeForce 8600 GT"
DefaultDepth 24
SubSection "Display"
Depth 24
Virtual 3840 1200
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
EndSection
xfce, xev, devilspie, xbindkeys, xmodmap, xrandr, vim, man. you can do every crazy thing that comes to mind with this, except window wobbling. i haven't had the need for that, hence no tool for it. reading the man pages won't take more than two hours. you can even use emacs or nano instead of vim with the same great result.
Last place I worked we had two monitors for every developer, and we had about 40 developers. Place I work now has 4 developers, and 3 have 2 monitors and 1 has 3 monitors. The one thing we found in both places is that older Nvidia cards work best. 7800 series, stuff like that. Get the latest cards and you'll pull your hair out trying to get them to work.
--- It is not the things we do which we regret the most, but the things which we don't do.
You most definitely haven't tried to setup a multiple display environment in any modern Linux...
I've been using linux for the last 10 years at home, finally ditching Windows entirely about 4 years ago (So I'm pretty decent at setting up/working with Linux)... Just 2 days ago, I tried to setup a 3 monitor desktop at work (2 Nvidia cards and 1 Intel card), and gave up after 10 hours of trying to get it work. I got X using them as different sessions (One instance of Gnome per monitor), but couldn't get a unified window manager between them... And I tried 2 different distributions (Ubuntu and Fedora)
One thing Windows does REALLY well right now, is multiple monitors. What you said, is pure anti-MS hatred. There's a lot that I don't think Windows does well, and a lot that I think Linux does REALLY well, but multiple monitors clearly isn't one...
If a man isn't willing to take some risk for his opinions, either his opinions are no good or he's no good
Did you try it with Xinerama? xorg.conf
Option "Xinerama" "1"
in your Section "ServerLayout" should tie all separate screens together into one desktop.
That's easy, just try and get a composited desktop in this mode though.
http://mugginix.com/articles/2009/Nov/12/Xinerama_Composite_Fail/
Did you seriously not expect to get called out on that?
http://imgur.com/RSTFx
How the hell does this sort of crap keep getting modded informative?
"I've got more toys than Teruhisa Kitahara."
That's incorrect. I'm a huge Linux fan, but Windows has the multi-monitor down pat. Even when cards are from different MFGRs. Intel on-board + an NVidia card will display just fine. Windows will see all of them and display all of them. In Linux, on my laptop, gnome displays them just fine, but they're the same card of course.
If there's one thing I've wanted for as long as I've used Linux, it's multiple monitor support on the regular, plain text console. I use a dual-head nVidia card, which works fine under X, but console mode has always been a let-down. One monitor always displays a normal console, while the other usually ends up displaying whatever I saw perhaps 10 minutes prior (as if it is showing part of the other monitor's scrollback buffer).
So, each can clearly show unique content in text mode, but does any tool exist that can bring some order to it?
The file is an incredibly good idea. You do not want to have no choice but GUI tools to deal with something where the display is so stuffed that you can only get text. What you want is exactly what is happening - GUI tools that write to a file that anyone that can get to the text can fix whether they are doing it with a GUI tool or a text editor.
Then there's the other huge advantage. I have a dozen twin head machines with similar video cards and similar monitors, and new ones end up being about the same. I only had to tweak the xorg.conf file ONCE (took about a minute) and now I just copy it to each machine. With no portable file and a GUI tool I would have to log onto each machine and click away at a maze of twisty menus and boxes to get a configuration I already have.
Configuration files are the way of saying - "just do what this other machine does and don't ask me to repeat myself" - vastly superior to a GUI micromanagement method. Generating the files is a different story, but the important thing is to be able to do something with them to avoid pointless busy work.
I'm running three monitors on Windows XP, with a Radeon x1650 driving two and a Geforce 7600 running the other one. It was literally a matter of installing the ATI drivers, then the nVidia drivers, then checking a couple checkboxes. Both Catalyst and Nvidia control panel work fine.
Maybe I happened to pick a couple cards that don't interfere with each other?
Use nouveau instead of nvidia, and do Xorg -configure, and you should be golden. The big thing is that nvidia won't do multicard with non-nV hardware.
I have two ATI chipsets in my current work box, and everything works just great.
~ C.
We are running 4 monitors on every linux workstation at work. Using two nvidia dual display cards and the nvdia drivers. No problem at all having all 4 appear as one integrated desktop where windows can be moved between screens at any time. A rather nice setup.
Details:
Quadro NVS 440 cards ( probably now replaced by something even nicer ).
Has Xinerama enabled.
Ubuntu 8.04 ( Hardy ) A very stable release.
Did everybody miss the line in TFA where he said:
Still stuck on FVWM?
Windows 3.1 had pretty miserable multi screen support too. That's why everyone dumped it like a leaking baby diaper.
Ubuntu, and KDE both handle multiple monitors very well.
Why would the OP mention Windows 7 in the same post where he whines about FVWM?
Level playing field much?
Sig Battery depleted. Reverting to safe mode.
I'm currently running dual screens under OpenSUSE 11.2. Multiple screens is easy, getting them to run in portrait mode (on nVidia) is somewhat trickier. (It was easy under OpenSUSE 10.x, but the driver for the new Kernel in 11.x broke it...) But once it's working you can run Compiz, which puts window management streets ahead of any Micro$oft products. It's worth the effort.
Settings -> Keyboard and Mouse -> Global shortcuts -> Kwin
Window to screen \d
Kwin has a lot of shortcuts you can define.
I don't know what the post is all about, but it is defiantly not true.
> but Windows has the multi-monitor down pat
No, it hasn't. Had been removed after XP. Server 2008 and Vista do not support Multi-Graphiccard-Multiscreen-Solutions any more.
Newer Linux AND Windows releases leave multi-screen completely to the drivers. So if your Driver supports a card with two screen connectors, then you are ready. If not, things get ugly.
Setting up two screens on my Geforce 6600 and 8800 systems with Ubuntu is piece of cake, start Nvidia-Tool, active and configure screens, ready.
"Life is short and in most cases it ends with death." Sir Sinclair
Multiple graphics cards? That's a very exotic multiple-display configuration these days now that dual-head graphics cards are the standard. So if you act like your experience with your exotic setup is typical, you can expect shocked reactions from the 99% of multi-display users currently using a single dual-head graphics card with no problems or setup difficulty.
The most common problem is having to use nvidia's setup tool instead of the standard 'display preferences' control panel because nvidia is taking forever to implement xrandr 1.3. But on the upside, they have their own (proprietary) solution to support hardware acceleration with a Xinerama setup (with similar cards).
Just because you can post a screenshot of a Linux machine running multi-head, doesn't rebut at all the fact that it's a pain in the ass to set up, doesn't work consistently between window managers. In short, your productivity on a Linux box is inversely proportional to the number of monitors you've got hanging off it, the very opposite of the point of having them.
Now I see Microsoft have finally decided to breathe some life into their dual-head code that they haven't touched since Windows 98, and come up with something that doesn't blow chunks. Bravo. Now their users can join the Mac users who have had dual head for longer than most of than remember.
Now don't get me wrong, I like Linux, I run it, and I will run it for as long as I need and can get it*. But I don't get all silly and got plugging displays and mice into it. Linux is not a desktop operating environment, and don't let anyone tell you otherwise (such as myself, two years ago, before I wised up).
* maybe another ten years? It'll more likely be outlawed than ever die.
Xinerama keeps things aware of monitor boundaries (at least, I'm using multiple monitors with Xinerama right now, and things work properly).
A single card with two heads is easy, yes. Multiple cards, though, can get tricky, especially if they're not from the same manufacturer (by which I mean Intel, ATI, or nVidia).
This. Welcome to the ugly side of proprietary drivers. nVidia wrote their driver in a really misbehaving way, they circumvent most of the X architecture. Don't expect it to play nice with... anything (does it even support XRANDR?) Long story short, you can use the nVidia card alone, and then use their tools to set up the dual head display on it, or you can use the Intel card alone and expect all your built-in tools to play fine. Never the twain shall meet. The fact that you got even independent X sessions working on it I find nothing short of miraculous (I would be curious to see glxinfo on each display).
Firstly, you do know that neither Vista nor 7 will let you use multiple cards with different drivers (e.g. you can't even use substantially different generations of nvidia cards together)? So much as you complain about it being hard to use nvidia+Intel cards for 3 screens on Linux, it's actually impossible in the latest versions of Windows.
Secondly, in terms of your Linux setup, you need to use Xinerama and disable nvidia TwinView. The way to do this is to add two separate "Device" sections (within /etc/X11/xorg.conf) for the same nvidia card, with one marked as "Screen 0" and one marked as "Screen 1". Then you need a separate Screen for each of those Devices, plus another for the Intel card. Secondly, make sure that you have Xinerama enabled (add Options "Xinerama" "on" within the ServerFlags section). Finally, make sure that within the "ServerLayout" section you have all three of your screens mentioned and using the "LeftOf" or "RightOf" keywords to make sure they are glued together. There's an example xorg.conf here for example.
These types of setups aren't easy to setup with graphical tools in Linux (where perhaps they should be) but if you understand a bit about how xorg.conf works they are not too hard to configure.
I'm using a pair of triple- and quad-head PCs as we speak. Linux on both: CentOS 5.3 on one, Ubuntu 9.10 on the other. One ran OpenSuSE 10.2 previously. Two cheap dual-head nVidia cards, their binary drivers. Started with the xorg.conf generated from the nVidia tool. Spent several hours the first time trying to get it going years back, but nowadays just spend about 15 minutes setting it up upon install. Works as one large screen in each case. As such, I just drag things around on the (big) desktop to change displays. The doco supplied with the nVidia drivers is reasonably good and all I really used. Runs 3D stuff fine on each. One is KDE, the other GNOME. Both environments seem to have an awareness of the physical displays as well- if I hit maximise, it'll fill the current monitor. I'm not sure that the Linux ecosystem is really lacking such things.
I'm not 100% sure which features are apparently lacking? Is it just keyboard shortcuts to move a window from one physical screen to another? That'd certainly be useful, though I can already do this with a mouse. I know that the keyboard shortcut list is lacking in GNOME, and more options in KDE couldn't hurt either. Perhaps that's what it's about.
Unless Xorg decides that the maximum allowable view is smaller than that allowed by your multiple monitors.
In which case, you have to create an almost empty Display SubSection to tell it what is really allowed. Then restart X.
It took me less than half an hour to find this (http://www.thinkwiki.org/wiki/Xorg_RandR_1.2), but it is not obvious and most people do not know how to create xorg.conf and people now say you don't need one!
Cheers,
If we're talking nVidia hardware, then when you use a combination of nVidia's TwinView with x.orgs' Xinerama for three or more screens, then there are issues with windows maximising across two screens when it should only be on one.
If you're using just Xinerama or Twinview then screen boundaries are respected.
There's a "fake xinerama" patch available though that works around the TwinView with Xinerama problem.
Which would mean that if I had four monitors on my machine, I could only do one third as much work. The only way it could be true would be if I were compelled to spend three quarters of my working day reconfiguring my monitor setup, every single day.
I hope I won't sound too much like a zealot for saying this, but if that is your experience of Linux sir, then I humbly submit that you are doing it wrong.
I take your point that setting up multi-display systems could still be easier, but let's not be ridiculous.
Don't let THEM immanentize the Eschaton!
Just because you can post a screenshot of a Linux machine running multi-head, doesn't rebut at all the fact that it's a pain in the ass to set up,
Plug in monitor.
Click System/Preferences/Display.
Click X-Server Display Configuration.
Click Detect Displays.
Select Twinview from the combo selector.
Click Apply.
Close the dialog box.
You'd have to be a real mouth-breather to find that difficult.
And you'd have to be a complete moron to think that always works. I have one of the older ATI cards at work and up until the latest version of ubuntu (with newish open source drivers) I'd routinely get graphics corruption. On my newer ATI card at home, there are no decent open source drivers and driving two screens with the propietary drivers is a real pain. Like when notifications suddenly start appearing partway off screen. Not to mention when I use compiz, video playback is dog slow, and there doesn't seem to be an easy way to fix that.
There are enough horror stories out there to get that it's still not quite there yet. xrandr is nice, but it's taken the propietary vendors a bit to catch up. Yes, it would be nice if they open sourced everything. Not going to happen though, so it might be a good idea to have a stable API for once, so it doesn't end up breaking every 6 months.
> but Windows has the multi-monitor down pat
No, it hasn't. Had been removed after XP. Server 2008 and Vista do not support Multi-Graphiccard-Multiscreen-Solutions any more.
Windows 7 does.
http://www.techarp.com/showarticle.aspx?artno=637&pgno=8
Windows 7 supports heterogeneous multi-adapter configurations, whereas Windows Vista does not. In Windows 7, a system can have a heterogeneous multi-adapter configuration, with multiple GPUs that require different WDDM drivers. The WDDM model for Windows Vista required that all display adapters use the same driver.
Additional sources
What kind of crack are you on! Windows will take just about any piece of shit video card you have and multi head it without problems.
Plug it in, install drivers, "extend desktop to this monitor"
It's been this easy for a good 10 years now.
According to that article heterogeneous multi-adapter will work in Vista/W7 if you use XPDM drivers instead of WDDM drivers.
At least that's my understanding of this:
A user could force the installation of a XPDM driver for each of these devices, and therefore get heterogeneous multi-adapter multi-monitor to work as in Windows XP.
Linux is a desktop OS. it just has some rough edges for installation and a couple of ease of use problems.
So, the same as every other OS then?
I'm tired of people making out that Linux isn't "ready for the desktop" because of a few minor problems, as if all the OSes they think are "ready for the desktop" are perfect. News flash: every OS has its problems, sure you may think that another OS is "better" than Linux because you have already learnt to live with its problems, but that's pretty much missing the point. From my perspective (having been using Linux as a desktop OS for around 12 years, and pretty much exclusively for the last 7), the likes of Windows and OS X are far less "ready for the desktop" than Linux, probably mostly because they present a whole new set of problems that I have to deal with.
One thing about Linux is important to me though - if a problem is a big enough deal to me then I _can_ fix it myself, whereas under many other OSes this simply isn't an option.
the maximaize window bug
What "maximize window bug"? I'll admit that I don't have a lot of use for maximizing windows, but on the odd occasion that I do it seems to work perfectly.
http://blog.nexusuk.org
Just like normal Slashdot, everybody here missed my point entirely...
I've setup quite a few multiple monitor setups using Linux. Some work out of the box. But most required some significant xorg.conf hackery. And the documentation for xorg.conf is cryptic at best. I didn't say it wasn't possible. I didn't say it was hard in all cases. I didn't say that once setup it didn't work very well... What I did say is that it's no ways near as easy as with Windows. Don't believe me? Go Google "Dual monitor Ubuntu", and look at the replies to the forums... 46 PAGES of people with problems? And you all are tearing me apart saying that Linux isn't that good at it?
As I've said before, there are somethings that Linux does REALLY well, and multiple monitors is NOT one... Once you get it setup, it does work quite well. But getting it setup can be an exercise in madness...
If a man isn't willing to take some risk for his opinions, either his opinions are no good or he's no good
I'm still using fvwm and have been doing it for 10+ years. Over the years I've tried switching to gnome or KDE several times but found them too be too slow and lacking features and ended up back in fvwm again. I even tried gnome + sawfish for a while but the constant lisp hacking got the best of me. Fvwm has for a long time and still handle multiple monitors perfectly well and I'm still very happy with it.
Yes, this solution is fine (and easy!) for someone who wants to shell out the $$$ for a multi-headed graphics card (or even say the new Matrox 8-screen card) -- but say one wants to live with older hardware. Say one has a MB with an i915 chip for "standard" VGA and one has added a "Radeon HD 3450" card which is relatively a cheap 2 head graphics card -- one has the capability of configuring 2 additional (total of 3) monitors -- but can one get X to talk to both hardware drivers (the Intel and the ATI)? Not in my experience (and I have tried).
If X indeed supports this (multiple screens across multiple hardware (driver) types) then I simply have not figured out the required tricks. If it doesn't support this it is a deficiency in the X capabilities and should be fixed.
The version of X I am currently running is 1.7.1 and I'm about to upgrade to 1.7.3.
Side note: The most annoying thing IMO is that given the cooling capacity requirements of most current medium-to-high-end video cards is that they take up 2-slots. Slots I could devote to other uses (ATI TV receivers -> MythTV recorders for example). The standard "one size fits all" releases of hardware to the masses will never be right for my interests (I generally view unused slots as opportunities to make my computer more interesting [think very old car/engine tinkerer]) -- so I will want all of the slots available -- and the MB manufacturers have generally not changed the general design layout in ~15 years to deal with this.
But you've gone and done so, conveniently ignored the rest of my points, and made it the entire base of your argument. I guess I should be grateful you didn't merely write me off as a cretin based on the two grammatical errors I made in the post.
Before you humbly suggest one is "doing it wrong", why don't you try dual-head in another OS? You'll see it's impossible to "do it wrong".
Now, back to Linux.
You're prepared to accept all these things from your Daily Desktop. I hope I won't sound too much like a zealot for saying this, but if that is your experience of Linux sir, then I humbly submit that you are doing it wrong.