ペンタブのデュアルモニター設定

以下Wacom Intuos Sでの話。
環境はLinuxmint 20.3 MATE

デュアルモニターでペンタブを使うと、二つのモニター全体を一つのペンタブで入力するようになってしまうので、ペンの上下移動はまだしも左右の移動はわずかに動かしただけでも大きく歪む。円を書くと横長の楕円になる。

そこで特定のモニターだけにペンタブの入力を反映させるようにしたい。

こちらの記事が参考になったが、gnome-control-centerは使えなかったのでコマンドで処理した。

Linux:マルチモニタ環境でWacomペンタブに特定のディスプレイだけをマッピングさせる
https://slacknotebook.com/using-wacom-tablet-on-linux-multi-monitor/

まずは接続されているモニターを見つける

@NN-ThinkPad-X260:~$ xrandr
Screen 0: minimum 320 x 200, current 3286 x 1080, maximum 16384 x 16384
eDP-1 connected primary 1366x768+1920+252 (normal left inverted right x axis y axis) 277mm x 156mm
   1366x768      60.00*+
   1360x768      59.80    59.96  
(省略)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-2 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
省略

eDP-1という名前らしい。

次にスタイラスペンの名称を調べる。

Wacom Intuos S Pen stylus           id: 9   type: STYLUS    
Wacom Intuos S Pad pad              id: 10  type: PAD       
Wacom Intuos S Pen eraser           id: 16  type: ERASER    
Wacom Intuos S Pen cursor           id: 17  type: CURSOR    

ペンの使える範囲を第一モニターに割り当てる


ペンタブにハマった話

購入の経緯

昨年秋頃にペンタブレットを購入した。
ワコム Intuos S(CL4100)

オンライン研修が増えてくると研修資料をPDFで入手してメモをノートに書いたりすると両者泣き別れで保存するはめになり不便、かといってPDFにタイプ打ちして書き込むのもいいが、線を引いたり図形やイラストメモをいれるには面倒、だから直接手書きしたいというところから来ている。

最近では統計の勉強などで数式をよく記録するのだが、数式はMathJAXを動かしてLaTeX表記を使うととてもキレイにかつ厳密に描けるのだが、単なる自分の備忘記録のためならば手書きで十分(というよりは手書きのほうが覚える)という要望もある。

この商品を選んだ理由は、サイズがディスプレイよりも一回り小さく(やや大きめのMもある)軽く扱いやすいことや、アニメータになるわけでもなく手書きノートの代わり程度の機能があれば十分なので、4つのボタンとスタイラスペンだけのシンプルな機能(しかない点)が気に入ったからだ。加えて、ネットでLinuxに事実上対応しているという情報もあったことが大きい。きちんとコミュニティもありドライバなども更新されているようだ。あとでXP-PENという別会社の商品が公式にLinux対応していることを知るのだが。

ハマりのきっかけ

ノートPCはどうしても画面が狭くなってしまい、モニターをHDMIに接続して使ってる。いわゆるデュアルモニターとかマルチディスプレイという環境だ。特に研修の場合は、講師が示すスライドの画面を見ながら、自分のPDFに書き込むためには、両者を同時に見られるようにしておく必要がある。

ワコムのIntuosは、USBに接続すればPlug&Playが機能して自動的にドライバを認識してくれるので、ソフトウェア側が対応していさえすれば、すぐにでもペンを使った書き込みは可能だ。お絵かきソフトではなく、Xournal++というオープンソースのアプリケーションがあり、これはPDFを下地にして書き込みの部分は別に保存するという使い方ができるので、これを選んだ。

最初は、何の調整もせずに使っていた。字は汚いがそれなりに自分では読めるので、まあこんなものかと思いながら。そのうち、マルチディスプレイ環境では、二つのディスプレイを一つの画面にしてペンタブが機能していることに気が付き、PC側を記録用、外付けDPを閲覧用に分けたくなった。

Windows/Macならワコムが用意したツールがあって設定ができるのだが、Linuxの場合も設定メニュでペンダブレットを選べばできるようなことがネットで紹介されている。しかし自分のLinuxmint/MATEの環境にそれはなかった。これも後で、gnome-control-centerをターミナルで叩けばGUIが出てくるということを知る。

あれこれといじっているうちに、ナントカ片方だけで認識するようになったのだが、使っているうちに画面の片方ではなくペンタブ側の左片方だけが機能していて結果的に左側のモニターだけに書き込んでいるかのように見えただけだった。

具体的な挙動はAskUbuntuのこの記述(Wacom Intuos S only recognized in Android Mode)がかなり正確である。

これはペンタブをLinux環境のUSBに繋ぐと、なぜかAndroid環境に接続したものとみなされてしまい、タブレットの左半分を縦に使うという動作をしているらしい。

後に知ることだが、ペンタブの4つのボタンの内、両端の2つを同時に長押しすることでPC環境とAndroid環境の入替えができるという。

次に、Linuxのページにあるカーネルドライバなどをインストールした。このコンパイルでもいろいろなハマりどころがあり、githubなどで質問を出したりしながら解決していった。

結果的にわかったことは、「何もしない」環境に戻すのが最も早道かつ的確な対応であるということだった。

使ったコマンドの一部(備忘記録)

  • lsusbで接続されているUSBデバイスが認識されているかどうかを見る
:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 5986:0706 Acer, Inc Integrated Camera
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 005: ID 056a:0374 Wacom Co., Ltd CTL-4100 [Intuos (S)]
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

このVID:056aというのがPCのインタフェースに接続しているということらしく、Androidとして認識されると2d1fになり、苦闘の人生へ進むはずだ。
PID:0374はプロダクトを表す。

  • xsetwacom --list ワコムドライバで設定されている機能を調べる。ペン、消しゴム、カーソル、パッドが使える(実際はペンとパッド本体しかない)。
:~$ xsetwacom --list
Wacom Intuos S Pen stylus           id: 9   type: STYLUS    
Wacom Intuos S Pen eraser           id: 15  type: ERASER    
Wacom Intuos S Pen cursor           id: 16  type: CURSOR    
Wacom Intuos S Pad pad              id: 17  type: PAD       
  • libwacom-list-local-devices ワコムドライバで認識されているハードウェアの動作を定義するパラメタを調べる。
:~$ libwacom-list-local-devices 
# Device node: /dev/input/event5
[Device]
Name=Wacom Intuos S  ※誤ったハードが認識されているとここに(Android)が表示される
ModelName=CTL-4100
DeviceMatch=usb:056a:0374;  ※誤ってハードが認識されるとここが2d1fで始まる
Class=Bamboo
Width=6    ※Android版とPC版の違いはここが2か6かの違い。Androidを認識させたまま2を6に変更しても挙動に変化はなかった。
Height=4
IntegratedIn=
Layout=intuos-s-p3.svg
Styli=0x862;

[Features]
Reversible=false
Stylus=true
Ring=false
Ring2=false
Touch=false
TouchSwitch=false
# StatusLEDs=
NumStrips=0
Buttons=4

[Buttons]
# Left=
# Right=
Top=A;B;C;D;
# Bottom=
# Touchstrip=
# Touchstrip2=
# OLEDs=
# Ring=
# Ring2=
EvdevCodes=0x100;0x101;0x102;0x103;
RingNumModes=0
Ring2NumModes=0
StripsNumModes=0

結論

以上を調べてみて、一応のところでハードウェアは認識されているものの、アンドロイド端末に接続されていると誤認識されていれば、まずは、「4つのボタンの内、両端2つを同時に長押ししてLEDの点灯が変化するのを見て設定を入れ替える」ことが正解。

デュアルモニターの設定は、gnome-control-center ではできない。別記事にした。

やってはいけない

ここのページにあるドライバなどのインストール