Gentoo Archives: gentoo-amd64

From: B Nice <anonymous.pseudonym.88@×××××.com>
To: gentoo-amd64@l.g.o
Subject: Re: [gentoo-amd64] Re: twinview
Date: Tue, 06 Mar 2007 16:06:41
Message-Id: aac6b7bc0703060804q1c88bfb5p6c0cb8409ae410b@mail.gmail.com
In Reply to: [gentoo-amd64] Re: twinview by Duncan <1i5t5.duncan@cox.net>
1 On 3/6/07, Duncan <1i5t5.duncan@×××.net> wrote:
2 > list-catcher <list-catcher@××××××××××.com> posted
3 > 45EB30CC.9080709@××××××××××.com, excerpted below, on Sun, 04 Mar 2007
4 > 15:49:16 -0500:
5 >
6 > > Does anyone use twinview to run two monitors at different resolutions?
7 >
8 > I used to. I won't run proprietary kernel modules any more, but the
9 > issues you discuss apply equally well to freedomware drivers (such as the
10 > Radeon driver I use) when used with multiple monitors as well. It's not
11 > an NVidia-only thing.
12 >
13 > > I've got two monitors one on top of the other with the lower
14 > > resolutioned one on top. The one on top (lower resolution) has a dead
15 > > area where the window manager/X thinks exists but doesn't show.
16 > > Sometimes the window manager will put windows there that I can't see.
17 > >
18 > > I'm not sure where the problem is because different window managers
19 > > treat it differently, although the dead space exists in all of them.
20 >
21 > This is a common problem, specifically mentioned in various X
22 > documentation, particularly on xinerama, I've read. "Legacy" window
23 > managers that haven't been updated to work well with xinerama (or any of
24 > the pseudo-xinerama implementations, designated as such because xinerama
25 > specified an interface for working with multiple monitor and/or non-
26 > rectangular display areas that they all use) make what turns out to be an
27 > invalid assumption, that the screen area is rectangular, and entirely
28 > viewable. The xinerama documentation specifically mentions that one may
29 > have problems with window managers not yet updated to understand it, and
30 > so it remains, several years later, with those /still/ not updated.
31 >
32 > Note that Gentoo supports xinerama with its own USE flag, used by most
33 > window managers and perhaps a few other apps as well. I just checked and
34 > the two window managers you mention specifically below (fvwm and fluxbox)
35 > both make use of USE=xinerama. Thus, if you don't have it enabled (I see
36 > you appear to, from the emerge --pretends you listed, but others reading
37 > might not), I'd recommend that you do so, then remerge affected packages
38 > using emerge --newuse world (short form -N).
39 >
40 > > In fvwm, for example, if I maximize a window that is predominately in
41 > > the lower resolutioned monitor it will make that window take up the
42 > > entire visible area not including the dead space. Yet, fvwm does load
43 > > windows in the dead space sometimes and I can drag my cursor into it.
44 > >
45 > > Fluxbox maximizes windows to the entire desktop, both monitors, which is
46 > > annoying but that's another issue, including the dead space.
47 >
48 > It would appear that fvwm is partially adapted to the xinerama
49 > extensions, but either you haven't configured the window placement to
50 > mind xinerama, or it's not fully adapted, since maximize seems to work as
51 > desired but window placement doesn't.
52 >
53 > fluxbox would appear to be less adapted to xinerama. In a way, that's
54 > not surprising however, as it continues to be a "lightweight" window
55 > manager, and part of that "lightweightness" might be /because/ it doesn't
56 > support extensions like xinerama used in more complex cases.
57 >
58 > I wouldn't know the specifics for either package, however, as I'm a KDE
59 > person here. FWIW, kwin and I believe a few other KDE packages make use
60 > of USE=xinerama as well. I'd suggest however, that if you are interested
61 > as it appears you have reason to be, that you check the documentation for
62 > both window managers in regard to xinerama implementation and
63 > configuration. It's possible you have support merged (via USE=xinerama)
64 > but not activated in the respective configurations.
65 >
66 > > xorg.conf is attached.
67 >
68 > snip snip the emerge --pretends and parts of xorg.conf that aren't
69 > relevant...
70 >
71 > > Section "ServerFlags"
72 > > Option "Xinerama" "true"
73 > > EndSection
74 >
75 > > Section "ServerLayout"
76 > > Screen 0 "Screen0" 0 0
77 > [other section settings snipped]
78 > > EndSection
79 >
80 > > Section "Device"
81 > > Identifier "Card0"
82 > > Driver "nvidia"
83 > > VendorName "nVidia Corporation"
84 > > BoardName "NV40 [GeForce 6800]"
85 > > BusID "PCI:3:0:0" Screen 0
86 > > Option "TwinView" "True"
87 > > Option "TwinViewOrientation" "Above"
88 > > Option "ConnectedMonitor" "CRT, CRT, TV"
89 > > Option "MetaModes" "1600x1200,1024x768"
90 > > Option "SecondMonitorHorizSync" "31-65"
91 > > Option "SecondMonitorVertRefresh" "52-120"
92 > [other section settings snipped]
93 > > EndSection
94 >
95 > > Section "Screen"
96 > > Identifier "Screen0"
97 > > Device "Card0"
98 > > Monitor "Monitor0"
99 >
100 > FWIW, you can probably safely delete at least the 1,4 and 15 bit depth
101 > settings below, and possibly 8-bit, leaving only the 16-bit settings.
102 > Try commenting them out for awhile to be sure, but 1-bit is black and
103 > white, and 4 bit is 16-color, both of which are virtually unheard of in
104 > modern configs, while 15-bit is extremely uncommon and AFAIK always has
105 > been. 8-bit (256 color) was popular back in the limited video memory
106 > days of the early to mid 90s, but isn't used much today either, tho it's
107 > narrowly possible you might still need it for compatibility with games of
108 > that era. It's much more likely you'd need support for 24-bit or 32-bit
109 > bitdepths. Here, however, I simply go 16-bit, as that's plenty good for
110 > my use and less memory and memory bandwidth intensive than 24 or 32-bit,
111 > as well as slightly more CPU efficient than 24-bit. (32-bit would be
112 > more CPU efficient, but the memory and bandwidth effects counteract than
113 > and then some, in many cases.)
114 >
115 > > SubSection "Display"
116 > > Viewport 0 0
117 > > Depth 1
118 > > EndSubSection
119 > > SubSection "Display"
120 > > Viewport 0 0
121 > > Depth 4
122 > > EndSubSection
123 > > SubSection "Display"
124 > > Viewport 0 0
125 > > Depth 8
126 > > EndSubSection
127 > > SubSection "Display"
128 > > Viewport 0 0
129 > > Depth 15
130 > > EndSubSection
131 > > SubSection "Display"
132 > > Viewport 0 0
133 > > Depth 16
134 > > EndSubSection
135 > > EndSection
136 >
137 > You will likely wish to check out xorg's "panning domain" settings as
138 > well. AFAIK, the nvidia proprietary driver has a non-standard way of
139 > setting up this sort of thing, but the idea is to create a rectangular
140 > "virtual display" enclosing the "dead area" you mentioned, and allow the
141 > lower resolution monitor to pan into the otherwise dead area.
142 >
143 > There are pluses and minuses to this approach, however. While you
144 > eliminate the "dead area" and gain virtual display real estate, the
145 > "unlocked" panning behavior can be rather distracting and is somewhat
146 > harder to work with, at least until you get used to it. Here, when I had
147 > monitors of different sizes (I eventually found the necessary funds as
148 > monitor prices came down, and now have a 21" and a 22" monitor, both
149 > operated at the same resolution, and close enough in viewable size not to
150 > matter), I limited the panning to the smaller one, and to one dimension
151 > only. As you, I stack my monitors, so I created a virtual display the
152 > height of both put together, and the width of the widest, so the smaller
153 > one panned only horizontally, in ordered to view the otherwise "dead
154 > space". I found this the best setting for me as it eliminated the dead
155 > space, while limiting the panning to horizontal only minimized the
156 > feeling of disorientation I constantly have if I allow panning in both
157 > horizontal and vertical dimensions. Additionally, only the little
158 > monitor panned, and that's above my main work area on the big monitor, so
159 > it was less annoying than it would have been had my main work area
160 > panned. Of course, the corresponding setting for those who prefer
161 > horizontally arranged monitors would be a vertical (only) panning domain
162 > on the lower resolution monitor).
163 >
164 > The other minus to panning is that (on most window managers at least)
165 > maximized windows that would otherwise maximize to just the single
166 > monitor area, maximize instead to the larger panning area. However, with
167 > appropriate settings (either apps or a window manager that remembers
168 > window sizes and/or placement if configured to do so), having certain
169 > windows normalize (instead of maximize) to the appropriate real
170 > resolution of the monitor means this minus is minor and relatively
171 > controllable.
172 >
173 > I'd post segments of my xorg.conf as examples of panning, except that
174 > they'd not apply to you anyway, since I believe both the xorg-native
175 > radeon merged framebuffer and proprietary nvidia representations are non-
176 > xorg-standard in this regard, so my settings would only confuse you.
177 > However, as I recall, nvidia's README file (maybe manpage too or instead,
178 > now?) was just /loaded/ with information on this and other config
179 > settings, and yes, they proved very helpful to me here, before I upgraded
180 > to a Radeon that actually had freedomware drivers to go with the
181 > freedomware OS, instead of trying to disregard the user's use of a
182 > freedomware OS by forcing proprietaryware on customers that actually
183 > wanted to use the hardware they bought, and refusing to provide specs or
184 > freedomware drivers. The documentation should be equally helpful to you,
185 > as I know it covers virtual display and panning domain configuration,
186 > among many other informative and helpful topics. =8^)
187 >
188 > --
189 > Duncan - List replies preferred. No HTML msgs.
190 > "Every nonfree program has a lord, a master --
191 > and if you use the program, he is your master." Richard Stallman
192 >
193 > --
194 > gentoo-amd64@g.o mailing list
195 >
196 >
197
198 This may or may not help you, but it works for my system. I use the
199 Nvidia "slavery-ware" drivers that support multi-monitor integrally.
200 Granted I'm also using Gnome and Beryl, so you may have to do some
201 minor edits to get it working for you.
202
203 Section "ServerLayout"
204 Identifier "Layout0"
205 Screen "Screen0"
206 InputDevice "Mouse0" "CorePointer"
207 InputDevice "Keyboard0" "CoreKeyboard"
208 EndSection
209
210 Section "Files"
211 RgbPath "/usr/share/X11/rgb"
212 ModulePath "/usr/lib64/xorg/modules"
213 FontPath "/usr/share/fonts/misc/"
214 FontPath "/usr/share/fonts/TTF/"
215 FontPath "/usr/share/fonts/Type1/"
216 FontPath "/usr/share/fonts/100dpi/"
217 FontPath "/usr/share/fonts/75dpi/"
218 EndSection
219
220 Section "Extensions"
221 Option "Composite" "enable"
222 EndSection
223
224 Section "Module"
225 Load "GLcore"
226 Load "dbe"
227 Load "dri"
228 Load "extmod"
229 Load "glx"
230 Load "record"
231 Load "xtrap"
232 Load "freetype"
233 Load "type1"
234 EndSection
235
236 Section "ServerFlags"
237 # Option "Xinerama"
238 Option "SLI" "on"
239 EndSection
240
241 Section "InputDevice"
242 Identifier "Keyboard0"
243 Driver "kbd"
244 EndSection
245
246 Section "InputDevice"
247 Identifier "Mouse0"
248 Driver "mouse"
249 Option "Protocol" "auto"
250 Option "Device" "/dev/input/mice"
251 Option "ZAxisMapping" "4 5 6 7"
252 EndSection
253
254 Section "Monitor"
255 Identifier "Monitor0"
256 VendorName "Sager"
257 ModelName "Internal"
258 Option "HorizSync" "31.0 - 81.1"
259 Option "VertRefresh" "56.0 - 75.0"
260 EndSection
261
262 Section "Monitor"
263 Identifier "Monitor1"
264 VendorName "Samsung"
265 ModelName "Syncmaster 225BW"
266 Option "HorizSync" "31.0 - 81.1"
267 Option "VertRefresh" "56.0 - 75.0"
268 EndSection
269
270 Section "Device"
271 Identifier "Card0"
272 Driver "nvidia"
273 VendorName "nVidia Corporation"
274 BoardName "GE Force Go 7800 GTX"
275 Option "AddARGBGLXVisuals" "true"
276 Option "AllowGLXWithComposite" "true"
277 Option "Twinview" "on"
278 Option "TwinViewOrientation" "Above"
279 Option "MetaModes" "1680x1050,1680x1050"
280 EndSection
281
282 Section "Screen"
283 Identifier "Screen0"
284 Device "Card0"
285 Monitor "Monitor0"
286 DefaultDepth 24
287 SubSection "Display"
288 Depth 24
289 Modes "1680x1050"
290 EndSubSection
291 EndSection
292
293
294 Hope it helps.
295 --
296 gentoo-amd64@g.o mailing list