2017年7月26日水曜日

Linuxのマルチディスプレイでメインディスプレイだけをワコムタブレットの作業範囲にする

古いパソコンを捨てずに愛用し続けている私ですが、やはりディスプレイは買い足しています。

新しいディスプレイはよく壊れますが、なぜか古いディスプレイは壊れずに生き残っています。
ワコムのタブレットも古い機種ですが現役です(笑)

さて、OSをLinux Mint 18.2 64bit Xfceに更新したのでタブレットの設定も見直しました。

まずは、サブディスプレイをタブレットの作業範囲に含めないようにします。

xrandrコマンドでディスプレイの情報を収集します。

$ xrandr
Screen 0: minimum 8 x 8, current 3200 x 1080, maximum 8192 x 8192
VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 317mm x 254mm
1280x1024 60.02*+ 75.02
1920x1080 59.93
1680x1050 59.88
1440x900 59.89
1400x1050 59.98
1360x768 59.96 59.80
1280x960 75.00 60.00
1152x864 75.00 75.00 70.00 60.00
1024x768 75.03 70.07 60.00
960x600 60.00
960x540 59.99
840x525 69.88 60.01 59.88
832x624 74.55
800x600 75.00 72.19 60.32 56.25
720x450 59.89
700x525 74.76 59.98
680x384 59.96 59.80
640x480 75.00 72.81 72.81 59.94
512x384 70.07 60.00
400x300 72.19
320x240 72.81 60.05
DVI-I-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 connected primary 1920x1080+1280+0 (normal left inverted right x axis y axis) 509mm x 286mm
1920x1080 60.00*+
1680x1050 59.95
1440x900 74.98 59.89
1280x1024 75.02 60.02
1280x960 60.00
1152x864 75.00
1024x768 75.03 70.07 60.00
800x600 75.00 60.32 56.25
640x480 75.00 59.94

「VGA-0」と「DVI-I-1」がconnectedになっていますね。
私がダブレットで使用するメインディスプレイは「DVI-I-1」なので、そちらを有効範囲にします。

ワコムタブレットの設定を変更するのはxsetwacomコマンドを使用します。
まずはタブレットの情報を表示します。

xsetwacom list

$ xsetwacom list
Wacom Graphire Pen stylus id: 11 type: STYLUS
Wacom Graphire Pen eraser id: 12 type: ERASER
Wacom Graphire Pen cursor id: 13 type: CURSOR

MapToOutputパラメータで作業範囲を設定します。

$ xsetwacom set 11 MapToOutput DVI-I-1
Unable to find an output 'DVI-I-1'.

なぜか見つからないと怒られます。
マニュアルを確認すると
「ディスプレイの識別子のかわりに WIDTHxHEIGHT+X+Y という形式で X11 のジオメトリを指定します」
とあるので指定方法を変更します。

xrandrコマンドの出力で「DVI-I-1」の後に「1920x1080+1280+0」とあるのでそちらを指定します。

追記:idはOS再起動で振り替わるので設定ファイルを作る場合は"device name"を指定したほうが良いです。

$ xsetwacom set 11 MapToOutput 1920x1080+1280+0
$ xsetwacom set 12 MapToOutput 1920x1080+1280+0
$ xsetwacom set 13 MapToOutput 1920x1080+1280+0

タブレットではサブディスプレイにカーソルが移動できないが、マウスならばサブディスプレイへ行ける状態になれば成功です。

続いて、タブレットの作業範囲とディスプレイのアスペクト比(16:9)をマッチングさせます。
まず現在の値を調べます。

$ xsetwacom get 11 Area
0 0 10206 7422

x軸の最大値(10206)を解像度の横幅(1920)で割り、その値に解像度の縦幅(1080)をかけます。
10206 / 1920 * 1080 = 5740.875

算出された値をY軸の最大値として設定します。

$ xsetwacom set 11 Area 0 0 10206 5740
$ xsetwacom set 12 Area 0 0 10206 5740
$ xsetwacom set 13 Area 0 0 10206 5740

試しにGIMPなどで真円をトレースして楕円に歪まなければ設定OKです。

OSを再起動すると無効になるのでシェルなどを作って起動時に実行できるようにしておきます。

#!/bin/sh

device="Wacom Graphire"
stylus="$device Pen stylus"
eraser="$device Pen eraser"
cursor="$device Pen cursor"

xsetwacom set "$stylus" MapToOutput 1920x1080+1280+0
xsetwacom set "$eraser" MapToOutput 1920x1080+1280+0
xsetwacom set "$cursor" MapToOutput 1920x1080+1280+0

xsetwacom set "$stylus" Area 0 0 10206 5740
xsetwacom set "$eraser" Area 0 0 10206 5740
xsetwacom set "$cursor" Area 0 0 10206 5740

xsetwacom set "$stylus" Threshold 1
xsetwacom set "$eraser" Threshold 1
xsetwacom set "$cursor" Threshold 1

Thresholdは筆圧で1〜2048の値を指定できます。
デフォルトが27で1が最強です。
体感できる違いはありませんが(笑)






激安でプロ並 安く始めるCGイラスト

0 件のコメント:

コメントを投稿