
1i5t5.duncan at cox
Oct 20, 2009, 2:10 PM
Post #3 of 5
(650 views)
Permalink
|
|
Re: Is xinerama use-flag needed for xrandr mode?
[In reply to]
|
|
Sebastian Beßler posted on Tue, 20 Oct 2009 20:31:57 +0200 as excerpted: > today I migrated successfull to kde 4.3.2 an now I feel adventurous to > give xrandr powered dualscreen-mode a new try. > > The last time I tried it with xinerama-flag and without and the effect > was the same all the time, windows and panels stretched over both > screens. > > So as xinerama didn't made any difference for me I want to know if > xinerama is needed for xrandr or not. As Dmitri says, they're different technologies. Xinerama itself isn't used that much any more, with xrandr taking its place to some degree. What it's still used for is if you have separate video cards (as opposed to a single card with two or more outputs). In that case, without xinerama, the additional cards will normally come up as separate X desktops, each doing its own thing. You can move the mouse and keyboard focus between them, but windows cannot be moved between them or cover the combined area. I think I've seen it referred to as zaphod mode. With kde3, each one would have its own separate kde session running. kde4 doesn't have that feature. (From the remarks of kde folks, it seems that it was originally an accident that kde3 could do it too, but once it was found to work, they kept it for the duration of kde3. But kde4 works differently and that feature is no longer available.) With xinerama running, it would combine all desktops into one. However, xinerama had another element to it as well, now incorporated into X in general, and the xinerama USE flag often controls how apps interact with this element. This element is often called "pseudo- xinerama", and first appeared with the merged framebuffers, which are now superseded with xrandr, but it continues to use what was formerly called "pseudo-xinerama" only it's now just the way X normally works. Let's go back to the era of separate cards to see how this works. Back then, when two cards each controlling a separate monitor were used with xinerama to create a larger combined desktop, xinerama exposed what was then a new API, allowing window-managers and other apps that cared, to see not only the size of the "big rectangle" that was the entire desktop, but the size and shape of each individual monitor's portion thereof. Without this info, the window manager didn't know about internal monitor edges or "dead" areas not covered by any display but still enclosed in the "big rectangle" of the overall desktop. Maximizing a window would therefore maximize it to the entire desktop, covering both/all displays. But a window manager that was "xinerama aware", that is, that was written to the xinerama API, could see these internal edges, and could choose to maximize windows to only a single monitor, and if it was /really/ advanced, it could figure out where the dead areas were, and wouldn't let new windows get "lost" in the area where there was actually no display. It's this API that has now become basically a part of X itself (note that I'm talking from a user perspective, I have no idea what component or extension actually exposes it, hopefully it's not everything implementing it on its own), as so much more than xinerama actually uses it. But many apps still have optional support for that API -- only that has changed some as well. Since it's basically a part of X now, most window managers (and other apps that would need to know) do support it to some degree regardless. But the degree to which they support it and/or the configuration options for it that they expose are what this USE flag ends up actually controlling. So it is with KDE (I think). If I'm not mistaken, what the xinerama USE flag controls for KDE4 (and for kde3 before it), mainly, is whether the "Multiple Monitors" kcontrol aka system settings applet is built and installed. With the USE flag on, you should get this applet, and/or it should have more options, than if the USE flag is off. Note that I've always just had it on so I don't actually know for sure what's missing with the flag off, but that's what I THINK it does. Basically, it gives you the OPTION to have kwin consider the monitor edges when it places windows, when you're moving windows, when you maximize windows, for fullscreen, etc. You can still have it treat the entire desktop as a single unit if you want, or you can have it consider the monitor you're on (well, that the mouse is on, normally) at the time. The great thing is that it's not all or nothing. You can have it behave as a single unit for maximizing but only fullscreen to a single monitor, if you like. Or the reverse, or have it treat both the same one way or the other. Note that regardless of what you set here for the general behavior, for window maximize at least, it's possible to set individual windows or applications to a different behavior. For instance, I have the multi- monitor options all enabled, so it treats my two monitors separately in general. However, I use the specific window settings to have some windows either start at or forced to the full desktop size, or more often, to just more than or just less than a full monitor size, so I can expose another window if it's just less than, or so the titlebar, toolbars, etc, get put on the top monitor leaving more room for actual window content on the bottom monitor, if it's just more than a single monitor's size. If you run an equery hasuse xinerama, you'll get a list of all the packages you have installed that have that USE flag (activated or not). Note that for kde, it's not just kwin and systemsettings. There's a couple other kde apps that use it as well. But it's reasonably easy to guess what they use it for, and see that it's not as major as the kwin and systemsettings support. mplayer, xinelib, and libsdl (among the non-kde apps I have installed that have that flag) are also reasonably easy to guess what they use it for. In particular, video overlay normally works on only one output at once, so anything that uses that (including these apps) is likely to find knowing where one monitor ends and the next begins rather useful information for full-screening. -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman
|