tabstop Annex B

GIMPでイラストを描いていくよ!

たすけて!ついんびゅー!

2008-03-23 | その他
普段使っているPCがいくつかあるんですが、引っ越してネットにつなげるようになったので、そのうちの1つにUbuntu Linux(Gusty)を入れてみました。

ところが、このマシンがデュアルモニタだったのが運の尽き。とーっても苦労しています。

まず、デュアルモニタは普通に左右に並べて使うようにしてあります。

Twinview関連の設定を素直に設定してあげると、カーソルはメイン画面に収まるのに、GIMPの線はものすごーく横にズレた場所に描かれてしまいます。

この方法の一番の問題は画面の縦横比とタブレットの縦横比が一致しないこと。普通はどっちかに合わせて適当に変換してあげるものですが、Xサーバの仮定とGtkの仮定が全然違うんでものすごいことになります。

GIMPのバグかなと思って調べてみると、WacomのドライバとGDKの双方の思い込みで根の深い問題になってます。

  1. XサーバはGDKに2画面分を合わせた大きさを報告します。
  2. Wacomのドライバは、タブレットの座標を変換してカーソルの座標が1つのスクリーンに収まるようにつじつまを合わせます。
  3. GDKはつじつまを合わせる前の座標をもらってきて、Xサーバに教えてもらった2画面分のサイズに収まるように自前で変換しています。

酷い話です。

ということで、直すのは大変なので諦めました。

今のところ、こんな感じに対処してます。
ポイントは
  • Twinviewの設定はしない
  • ScreenNoの設定はしない
  • KeepShapeも絶対に設定しない
  • (本当はないけど)タブレットが2画面分の座標を持っているように嘘の値を報告する

あたりでしょうか。せっかく用意されたTwinview設定を全部無視するんだから酷い話です。


Section "InputDevice"
Driver "wacom"
Identifier "stylus"
Option "Device" "/dev/input/wacom"
Option "Type" "stylus"
# Option "ForceDevice" "ISDV4"# Tablet PC ONLY
Option "USB" "on"
Option "SendCoreEvents" "on"
Option "Mode" "Absolute"
Option "BottomX" "18554" #これを足す
Option "BottomY" "7422" #これも足す
EndSection


※eraserとcursorも同じ感じです。

私のタブレットではもともとBottomX=9477でした。この値は
xidump -v -l
とすると
eraser extension
key: min=8, max=12, num=5
btn: num=5
val: axes=6 mode=abs buf=0
axis[0]: res=2032, min=0, max=9477
axis[1]: res=2032, min=0, max=7422
axis[2]: res=1, min=0, max=511
axis[3]: res=1, min=-64, max=63
axis[4]: res=1, min=-64, max=63
axis[5]: res=1, min=0, max=1023
みたいに出てきます。axis[0]とaxis[1]がX座標とY座標です。
で、BottomXを2倍にしてあげると、タブレットが動く範囲がメイン画面に限定されるようになります。


で、ようやく動くようになりました。
このPCにはA6くらいの小さいタブレットがくっついてるんですが、補正なしではプルプル震える線が、補正つけるとすごく綺麗になりました。
いっつも使ってるA5のFavoだとそんなに気にならなかったんですが、はじめてG-Pen作ってよかったなーって実感しました。

最新の画像もっと見る

コメントを投稿