<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kasperian Moving Parts &#187; X</title>
	<atom:link href="http://movingparts.net/tag/x/feed/" rel="self" type="application/rss+xml" />
	<link>http://movingparts.net</link>
	<description>kinda like batman, but with a wife and 3 kids</description>
	<lastBuildDate>Mon, 12 Mar 2012 02:31:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>KDE 4.2 (trunk) Now Rocking On My Thinkpad T61!!!</title>
		<link>http://movingparts.net/2008/10/03/kde-42-trunk-now-rocking-on-my-thinkpad-t61/</link>
		<comments>http://movingparts.net/2008/10/03/kde-42-trunk-now-rocking-on-my-thinkpad-t61/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 18:34:10 +0000</pubDate>
		<dc:creator>Jason 'vanRijn' Kasper</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[kde4]]></category>
		<category><![CDATA[nvidia]]></category>
		<category><![CDATA[X]]></category>

		<guid isPermaLink="false">http://movingparts.net/?p=423</guid>
		<description><![CDATA[My work laptop and main computing device is a Thinkpad T61 with an nVidia Corporation Quadro NVS 140M (rev a1) card. It&#8217;s been a frustrating last year in trying to run a KDE4 desktop as my main work and development environment because of the problems with the proprietary nVidia drivers that show up in KDE4. [...]]]></description>
			<content:encoded><![CDATA[<p>My work laptop and main computing device is a Thinkpad T61 with an nVidia Corporation Quadro NVS 140M (rev a1) card. It&#8217;s been a frustrating last year in trying to run a KDE4 desktop as my main work and development environment because of the problems with the proprietary nVidia drivers that show up in KDE4. However, this little post is definitely more of a <strong><em>Huzzah!!!</em></strong> than a disgruntled grousing session. Lord knows we&#8217;ve had plenty of those. =:)</p>
<p>Thanks to the folks at nVidia who are diligently working on improving the problems in their drivers!!</p>
<p>Anyway, I&#8217;ve followed everything I could find on <a href="http://techbase.kde.org/User:Lemma/KDE4-NVIDIA">Lemma&#8217;s techbase pages</a> and in the nVidia forums, but nothing has worked. Until now!</p>
<p>I&#8217;m running the latest beta from nVidia (177.78). I also discovered that for me, contrary to what everyone else seems to be saying, if I use InitialPixmapPlacement=2, performance is MUCH worse than if I use InitialPixmapPlacement=1. Using the <a href="http://techbase.kde.org/User:Lemma/KDE4-NVIDIA#Benchmarking_Changes">benchmarking tools</a> from the techbase page, I found that on the <a href="http://intertwingly.net/stories/2006/07/10/penroseTiling.html">Penrose Tiling test</a>, using Opera, the Canvas test would take up to 30 seconds for me if I did &#8220;nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1&#8243; before running it. However, if I did &#8220;nvidia-settings -a InitialPixmapPlacement=1 -a GlyphCache=1&#8243; instead, then the Canvas test only took around 2.5 seconds. WOW! So I added &#8220;nvidia-settings -a InitialPixmapPlacement=1 -a GlyphCache=1&#8243; to my X startup script and was very pleased to discover that KDE 4.2 now is VERY usable on my little laptop!!! Again, <strong><em>HUZZAH!!!</em></strong></p>
<p>For completeness, then, here is the Screen section  from my xorg.conf:</p>
<blockquote><p>Section &#8220;Screen&#8221;<br />
Identifier     &#8220;Screen0&#8243;<br />
Device         &#8220;Device0&#8243;<br />
Monitor        &#8220;Monitor0&#8243;<br />
DefaultDepth    24<br />
Option &#8220;RenderAccel&#8221; &#8220;True&#8221;<br />
#Option &#8220;RandRRotation&#8221; &#8220;True&#8221;<br />
Option &#8220;UseEdidFreqs&#8221;   &#8220;False&#8221;<br />
#Option &#8220;UseInt10Module&#8221; &#8220;True&#8221;<br />
Option &#8220;TwinView&#8221; &#8220;1&#8243;<br />
#Option &#8220;TwinViewOrientation&#8221; &#8220;Clone&#8221;<br />
Option &#8220;TwinViewXineramaInfoOrder&#8221; &#8220;DFP-0&#8243;<br />
#Option &#8220;UseCompositeWrapper&#8221; &#8220;True&#8221;<br />
Option &#8220;AddARGBGLXVisuals&#8221; &#8220;True&#8221;<br />
Option &#8220;DisableGLXRootClipping&#8221; &#8220;True&#8221;<br />
Option &#8220;DamageEvents&#8221; &#8220;True&#8221;<br />
Option &#8220;TripleBuffer&#8221; &#8220;True&#8221;<br />
Option &#8220;UseEvents&#8221; &#8220;True&#8221;<br />
#Option &#8220;DynamicTwinView&#8221; &#8220;True&#8221;<br />
Option &#8220;FlatPanelProperties&#8221; &#8220;DFP: Scaling = Centered; CRT: Scaling = Centered, Dithering = Enabled&#8221;<br />
Option &#8220;OnDemandVBlankInterrupts&#8221; &#8220;True&#8221;<br />
Option &#8220;PixmapCacheSize&#8221; &#8220;2000000&#8243;<br />
Option &#8220;AllowSHMPixmaps&#8221; &#8220;False&#8221;<br />
Option &#8220;BackingStore&#8221; &#8220;True&#8221;<br />
#Option &#8220;NvAGP&#8221; &#8220;3&#8243;<br />
#Option &#8220;ConnectedMonitor&#8221; &#8220;DFP&#8221;<br />
Option  &#8220;metamodes&#8221; &#8220;CRT: 1680&#215;1050 +0+0, DFP: 1680&#215;1050 +0+0&#8243;</p>
<p>SubSection     &#8220;Display&#8221;<br />
Depth       24<br />
EndSubSection<br />
EndSection</p></blockquote>
<p>To be honest, I am not 100% sure which of the recently-changed variables in my setup have resulted in this improving so drastically&#8211;whether the new nVidia driver beta (177.78), the xorg.conf changes, or the InitialPixmapPlacement=1 change&#8211;but the end result is that I&#8217;m now able to use KDE 4.2 (trunk) quite happily and I&#8217;m thoroughly stoked about it.</p>
<p>Hope this helps some other poor soul out there. Oh&#8211;also, does it sound far-fetched that IPP=1 would work better for me than IPP=2??</p>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-0145797618566457";
/* movingparts.net horizontal */
google_ad_slot = "5269839769";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://movingparts.net/2008/10/03/kde-42-trunk-now-rocking-on-my-thinkpad-t61/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Multi-Monitor Setup On A Single Physical Head (Now Better!)</title>
		<link>http://movingparts.net/2008/10/03/multi-monitor-setup-on-a-single-physical-head-now-better/</link>
		<comments>http://movingparts.net/2008/10/03/multi-monitor-setup-on-a-single-physical-head-now-better/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 18:04:29 +0000</pubDate>
		<dc:creator>Jason 'vanRijn' Kasper</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[workstation]]></category>
		<category><![CDATA[X]]></category>
		<category><![CDATA[xephyr]]></category>

		<guid isPermaLink="false">http://movingparts.net/?p=417</guid>
		<description><![CDATA[That&#8217;s a big title, eh? I blogged previously about setting up a multi-head X environment for development and testing, even though I&#8217;m working on a laptop with only one card. My previous attempt used Xdmx and multiple Xephyr displays, and there were some problems with it. Thankfully, Lubos commented about his nifty little fakexinerama library [...]]]></description>
			<content:encoded><![CDATA[<p>That&#8217;s a big title, eh? I <a href="http://movingparts.net/2008/09/25/a-poor-mans-multi-monitor-setup-on-a-single-physical-head/">blogged previously</a> about setting up a multi-head X environment for development and testing, even though I&#8217;m working on a laptop with only one card. My previous attempt used Xdmx and multiple Xephyr displays, and there were some problems with it. Thankfully, Lubos commented about his <a href="http://ktown.kde.org/~seli/fakexinerama/">nifty little fakexinerama library</a> that achieves the same result only MUCH easier (easierly?) and without any of the problems that I&#8217;d seen using Xdmx/Xephyr(1..n). Here, then, is a description of what I&#8217;ve done and the results&#8230;.</p>
<p>This is a screenshot from within the Xephyr session, showing the 1600&#215;1200 Xephyr display. The cool thing is that using ksnapshot from within the Xephyr session will actually capture the entire display, not just what fits on your host display. This is important for me because my laptop LCD display is only 1680&#215;1050, so I can&#8217;t actually fit the entire Xephyr display inside my real physical display. Nice to know, definitely, since this means that I can create a monstrous Xephyr display that doesn&#8217;t fit inside my actual host display and still get full-display snapshots out of it. So what you see here is a KDE3 session spanning all 4 Xinerama heads. Kicker correctly only spans head 1. VMware Workstation is on head 2, in full-screen mode, but only full-screened on the second head. It can span more than 1 head as I&#8217;ll show further down.</p>
<p><a title="screenshot-ws-fullscreen-enabled by vanRijn, on Flickr" href="http://www.flickr.com/photos/vr/2910277014/"><img src="http://farm4.static.flickr.com/3030/2910277014_2bec572c4f.jpg" border="0" alt="screenshot-ws-fullscreen-enabled" width="500" height="375" /></a></p>
<p>To achieve this, I downloaded seli&#8217;s fakexinerama library, compiled it in ~/build/ like this:</p>
<blockquote><p>gcc -O2 -Wall Xinerama.c -fPIC -o libXinerama.so.1.0 -shared<br />
ln -s libXinerama.so.1.0 libXinerama.so.1<br />
ln -s libXinerama.so.1 libXinerama.so</p></blockquote>
<p>I then copied the real /usr/lib/libXinerama.so.1.0.0 to /usr/lib/libXinerama.so.1.0.0.real (make sure you backup your library!) and set up an alias in my ~/.profile so that I can easily switch on and off this fake xinerama library. When I start up my real host session, I don&#8217;t want to be using fakexinerama, but when I launch my Xephyr session for multimon development, I do need it to be there.</p>
<blockquote><p>xin () {<br />
if [ "$1" = "real" ]<br />
then<br />
sudo cp /usr/lib/libXinerama.so.1.0.0.real /usr/lib/libXinerama.so.1.0.0<br />
elif [ "$1" = "fake" ]<br />
then<br />
sudo cp ~/builds/libXinerama.so.1.0 /usr/lib/libXinerama.so.1.0.0<br />
else<br />
echo &#8220;real or fake?&#8221;<br />
fi<br />
}</p></blockquote>
<p>Here&#8217;s the contents of my ~/.fakexinerama config file:</p>
<blockquote><p>#Configuration file ~/.fakexinerama<br />
#<br />
# The format of the file is rather strict. Lines beginning with # are comments. First line is one<br />
# number, specifying number of screens. This line must be followed by this number of lines, each<br />
# containing four numbers: X Y W H, i.e. screen&#8217;s X and Y origin, width and height.<br />
4<br />
0 0 800 600<br />
800 0 800 600<br />
0 600 800 600<br />
800 600 800 600</p></blockquote>
<p>This establishes a 2&#215;2 4-head xinerama configuration. Next up is creating the Xephyr display. From within your regular host session:</p>
<blockquote><p>Xephyr :2.0 -ac -br +xinerama -screen 1600&#215;1200 &amp;<br />
xterm -display :2&amp;</p></blockquote>
<p>You should now have a single Xephyr screen that&#8217;s 1600&#215;1200 pixels with an xterm running inside of it. Now switch focus to the new xterm window and turn on the fakexinerama library and start up a KDE3 session:</p>
<blockquote><p>xin fake<br />
startkde<br />
# (and when you&#8217;re done with this little environment, make sure you return your system to sanity by running &#8220;xin real&#8221;)</p></blockquote>
<p>That&#8217;s about it. Really cool stuff. One last little screenshot&#8230; This one shows VMware Workstation spanning multiple heads. This obviously works with real external monitors as well. The way it works is by clicking the little monitor button to the right of the &#8220;View&#8221; menu. This tells Workstation to cycle through the available display topologies. So, on first press, Workstation spread across all 4 heads (fullscreen multimonitor, largest topology). Second press took on this configuration that I screengrabbed (vertical span). Third press spread Workstation horizontally across the first 2 heads. And then 4th press returned Workstation to just fullscreen on head 2 (where I started it from).</p>
<p><a title="screenshot-ws-fullscreen-enabled-multimonvert by vanRijn, on Flickr" href="http://www.flickr.com/photos/vr/2909429451/"><img src="http://farm4.static.flickr.com/3152/2909429451_bffc5b2349.jpg" border="0" alt="screenshot-ws-fullscreen-enabled-multimonvert" width="500" height="375" /></a></p>
<p>One last thought on the subject&#8230; One of the things I&#8217;m hopefully going to be able to work on in the next couple of months is implementing the new <a href="http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2552578">EWMH _NET_WM_FULLSCREEN_MONITORS hint</a> in various X window managers. Currently, Workstation does some internal gyrations to convince window managers to allow our undecorated fullscreen window to maximize over multiple monitors/heads. _NET_WM_FULLSCREEN_MONITORS was the hint that was recently added to the EWMH spec to correctly accomplish this, but as far as I know, it hasn&#8217;t been added to any window managers yet. I&#8217;m excited about getting the chance to get up to speed on some window manager internals again! It&#8217;s been a while since I&#8217;ve last had the chance to do that (bbkeys/blackbox days of yore!).</p>
<p>Anyway, hope this helps someone else set up a multi-head dev/test environment, should the need arise. =:)</p>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-0145797618566457";
/* movingparts.net horizontal */
google_ad_slot = "5269839769";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://movingparts.net/2008/10/03/multi-monitor-setup-on-a-single-physical-head-now-better/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Modeline Generation and Xinerama Info</title>
		<link>http://movingparts.net/2008/09/16/modeline-generation-and-xinerama-info/</link>
		<comments>http://movingparts.net/2008/09/16/modeline-generation-and-xinerama-info/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 23:17:12 +0000</pubDate>
		<dc:creator>Jason 'vanRijn' Kasper</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[X]]></category>

		<guid isPermaLink="false">http://movingparts.net/?p=397</guid>
		<description><![CDATA[So, I&#8217;m trying to think positively about the 3-hour battle I just had with X. I learned 2 new things today, which I didn&#8217;t really want to learn but yay nonetheless. First, Xinerama. I&#8217;m going to be doing multiple monitor stuff for work, which should be really interesting if I can keep my self-imposed stress [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;m trying to think positively about the 3-hour battle I just had with X. I learned 2 new things today, which I didn&#8217;t really want to learn but yay nonetheless.</p>
<p>First, Xinerama. I&#8217;m going to be doing multiple monitor stuff for work, which should be really interesting if I can keep my self-imposed stress level down. I have never had more than a single monitor to use on any given desktop or laptop until I started working at VMware, and as such I am currently less than clueful with how all of this stuff works in X. (As an aside, if anyone can refer me to some really good documentation or multi-head/multi-screen/multi-monitor/multi-display Linux/X resources, I&#8217;d <em>greatly</em> appreciate it!) So today I was looking into a bug report that had to do with a Twinview side-by-side display configuration, and I discovered that &#8220;xdpyinfo -ext XINERAMA&#8221; will tell you what the screen topology looks like currently. For example, my normal Twinview cloned 1680&#215;1050 setup looks like this:</p>
<blockquote><p>XINERAMA version 1.1 opcode: 158<br />
head #0: 1680&#215;1050 @ 0,0</p></blockquote>
<p>&#8230; whereas if I change it to a side-by-side 1680&#215;1050 configuration, I believe it will show this:</p>
<blockquote><p>XINERAMA version 1.1 opcode: 158<br />
head #0: 1680&#215;1050 @ 0,0<br />
head #1: 1680&#215;1050 @ 1600,0</p></blockquote>
<p>(I can&#8217;t be certain since apparently in all of my fiddling, I disabled Xinerama in my /etc/X11/xorg.conf file and currently, it shows me this: XINERAMA version 1.1 opcode: 158 head #0: 3360&#215;1050 @ 0,0 *sigh*) This is coolness that I&#8217;m sure I&#8217;ll be needing to use frequently in the coming months.</p>
<p>Secondly, Modelines. Now, honestly, it&#8217;s been years since I&#8217;ve had to worry about manually putting Modelines into my XF86Config/xorg.conf files. X has gotten much better since those bad old days and things have pretty much Just Worked (TM). Although I still do fondly remember the days of working with some hard-core X hackers in trying to get my laptop display drivers working (like 10 years ago??) But somewhere between my Ubuntu 8.04 installation and my current OpenSUSE 11 installation, X no longer thinks that it should allow me to output a 1680&#215;1050 resolution to my external monitor (a Dell 2007FPb). I disagree strongly. =;D Unfortunately, my Lenovo T61 laptop looks like crap unless it displays in its native resolution of 1680&#215;1050, so in Ubuntu Hardy, I became accustomed to doing the cloned twinview 1680&#215;1050 thing. Like I said, something broke this when I went to OpenSUSE 11. I&#8217;m guessing it&#8217;s a newer X version. But anyway, after a whole lotta Google action, I came across a post that suggested another dude use the &#8220;gtf&#8221; command to find a good X11 Modeline. Wow, cool!! Here&#8217;s what it does:</p>
<blockquote><p>$ gtf 1680 1050 60</p>
<p># 1680&#215;1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz<br />
Modeline &#8220;1680x1050_60.00&#8243;   147.14   1680 1784 1968 2256    1050 1051 1054 1087   -HSync +Vsync</p></blockquote>
<p>Awesome!!! I don&#8217;t know if this little tool didn&#8217;t exist back in the bad old days when X required you to enter this or if I just didn&#8217;t know about it, but this would have saved me lots of agony over the years had I known about it. =:) I copied/pasted that into my /etc/X11/xorg.conf inside the Monitor section for my Dell 2007FP, restarted X, and now nvidia-settings will kindly let me use 1680&#215;1050 resolution again. YAY!</p>
<div id="in_post_ad_bottom_1" style="clear:both;margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-0145797618566457";
/* movingparts.net horizontal */
google_ad_slot = "5269839769";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://movingparts.net/2008/09/16/modeline-generation-and-xinerama-info/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

