<?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>Kanru&#039;s 探險日誌 &#187; xwindow</title>
	<atom:link href="http://blog.kanru.info/archives/tag/xwindow/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.kanru.info</link>
	<description>當發現美好的事物時，所要做的第一件事，就是把它分享給所有人</description>
	<lastBuildDate>Sun, 23 May 2010 09:51:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Xorg 1.4 XInput Hotplug</title>
		<link>http://blog.kanru.info/archives/279</link>
		<comments>http://blog.kanru.info/archives/279#comments</comments>
		<pubDate>Thu, 15 Nov 2007 18:55:38 +0000</pubDate>
		<dc:creator>kanru</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[evdev]]></category>
		<category><![CDATA[xorg]]></category>
		<category><![CDATA[xwindow]]></category>

		<guid isPermaLink="false">http://blog.kanru.info/archives/279</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>Xorg 1.4 開始支援 hal based 的 xinput hotplug，也就是說滑鼠跟鍵盤這些設備可以拔來拔去而不用在 xorg.conf 裡面設定，再加上越來越多 driver 可以 auto-configuration，xorg.conf 裡面的東西越來越少了。</p>

<p>xorg 的 evdev driver 是利用 linux kernel 的 evdev 支援，來使用滑鼠、鍵盤等多種設備，我的 Logitech V450 就一定要用 evdev 才能支援所有的按鍵。</p>

<p>無奈 Debian Sid 中的 Xorg 以及 evdev 都非常的新，但是一些升級的配套措施跟文件跟不上，導致最近發生許多問題，相關的 bug report 有 <a href="http://bugs.debian.org/443292">#443292</a>、<a href="http://bugs.debian.org/442316">#442316</a>。</p>

<p>今天終於把滑鼠鍵盤都設定好了，關鍵在於 hal 的設定跟 gnome 的設定。</p>

<p>首先是設定 hal，因為 hal 預設只設定了使用 evdev，但是沒有顧慮到非使用 us layout 的人，導致升級之後鍵盤 layout 大亂，目前暫時取消了這項設定，我們可以從 /usr/share/doc/hal/examples/10-x11-input.fdi 把設定撿回 
/etc/hal/fdi/policy/，內容如下：</p>

<p><pre>
&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;deviceinfo version="0.2"&gt;
  &lt;device&gt;
    &lt;!-- FIXME: Support tablets too. --&gt;
    &lt;match key="info.capabilities" contains="input.mouse"&gt;
      &lt;merge key="input.x11_driver" type="string"&gt;mouse&lt;/merge&gt;
      &lt;match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
             string="Linux"&gt;
        &lt;merge key="input.x11_driver" type="string"&gt;evdev&lt;/merge&gt;
      &lt;/match&gt;
    &lt;/match&gt;</pre></p>

<pre><code>&amp;lt;match key="info.capabilities" contains="input.keys"&amp;gt;
  &amp;lt;!-- If we're using Linux, we use evdev by default (falling back to
       keyboard otherwise). --&amp;gt;
  &amp;lt;merge key="input.x11_driver" type="string"&amp;gt;keyboard&amp;lt;/merge&amp;gt;
  &amp;lt;match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
         string="Linux"&amp;gt;
    &amp;lt;merge key="input.x11_driver" type="string"&amp;gt;evdev&amp;lt;/merge&amp;gt;
    &amp;lt;merge key="input.xkb.rules" type="string"&amp;gt;xorg&amp;lt;/merge&amp;gt;
    &amp;lt;merge key="input.xkb.model" type="string"&amp;gt;evdev&amp;lt;/merge&amp;gt;
    &amp;lt;merge key="input.xkb.layout" type="string"&amp;gt;dvorak&amp;lt;/merge&amp;gt;
  &amp;lt;/match&amp;gt;
&amp;lt;/match&amp;gt;
</code></pre>

<p>&lt;/device&gt;
&lt;/deviceinfo&gt;
</p>

<p>其中關於鍵盤 layout、model、rules 的設定是我加上去的。滑鼠不需更動即可 hotplug 使用。</p>

<p>接下來關鍵的地方是，如果你使用 gnome 的話，記得把 keyboard model 改成 evdev，如圖：</p>

<p><a href="http://www.flickr.com/photos/kanru/2035334916/" title="gnome keyboard setting by Kanru Chen, on Flickr"><img src="http://farm3.static.flickr.com/2072/2035334916_e7d5594109_o.png" width="497" height="497" alt="gnome keyboard setting" /></a></p>

<p>最後，xorg.conf 就可以清乾淨了：</p>

<p><pre>
Section "Device"
        Identifier      "intel"
        Driver          "intel"
        Option          "AccelMethod"     "XAA"
        Option          "XAANoOffScreenPixmaps" "True"
EndSection</pre></p>

<p>Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "CorePointer"
        Option          "Device"                "/dev/input/event9"
        Option          "Protocol"              "auto-dev"
        Option          "SHMConfig"             "on"
        Option          "LeftEdge"              "1100"
        Option          "RightEdge"             "5800"
        Option          "TopEdge"               "1600"
        Option          "BottomEdge"    "4200"
        Option          "HorizEdgeScroll" "on"
EndSection</p>

<p>Section "Monitor"
        Identifier      "Configured Monitor"
        Option          "DPMS"
        DisplaySize     330 200
EndSection</p>

<p>Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        DefaultDepth    24
        SubSection "Display"
                Modes           "1280x768" "1024x768"
        EndSubSection
EndSection
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kanru.info/archives/279/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
