Ubuntu 10.04 で Xinerama を有効にした状態でデュアルディスプレイにする際の注意点

最近Ubuntuをアップグレードするたびにこの手のエントリを書き続けている気がする・・・!

Ubuntu 10.04 で Xinerama 周りにバグが入ったようです。症状としては、画面をまたいでマウスを移動するといきなりピクピク分身し出して、その後もしつこくマウスを動かしたり何かウィンドウを出したりするとXが落ちてログイン画面に戻ります。かなり致命的。

バグが発生する条件はもう判明しています。ScreenのIDが、(Screenの位置的に)左から右、上から下にかけて昇順に並んでいないと画面をまたいでマウスを移動させる際にバグります。例えば、Screen 1がScreen 0の左側にあるとバグります。自分の場合は、メインのスクリーンを右側に横置き、サブスクリーンを左側に縦置きという感じで使っていたので見事にこのバグを踏んでしまいました。

解決策

この問題はxorg.confのScreenのIDを手動で再割り当てすることで解決します。2つしか画面がなかったらScreenのIDっぽいのの0と1を全部入れ替えればOK。

縦置きしているディスプレイがプライマリになっちゃうのが嫌

上記の解決策は根本的な解決にはなっていません。今回のケースだと、縦置きの方がプライマリになってしまうので、メニューやタスクバー的なものが全部そっちに表示されてしまいます。縦置きの上の方にメニューがあると首が疲れるので勘弁して欲しいです。

これを直そうと頑張ってみたのですが、なかなかうまくいかず。ScreenのOptionのmetamodesに書いてあるDFP-0、DFP-1の0,1を入れ替えると、プライマリとサブが入れ替わるんですが、回転する方も逆になってしまいます。これはDeviceのRotate CCWを、もう片方のDeviceの方へカットすれば行けそうかと思ったんですが、そうすると今度は画面が崩れます・・・。xorg.confの細かい部分が分からないので、今回はもうこれで妥協してしまいましたが、もうちょっと調べれば行けそうな感じではあります。

ハイパー妥協策

縦置きと横置きの位置を入れ替えちゃいなよ。という冗談はともかく、今はスペースの関係で縦置きが左側になってますが、今後は右側に置くようにしよう・・・。

まあ五月病で疲れたので今回はこの辺で・・・。気力が戻ってきたら改めて挑戦してみるかも。