Wacom Tablet (日本語) - ArchWiki

# Wacom Tablet (日本語)

まず、このガイドでは USB を使う Wacom タブレットを念頭に置いているということを提示しておきます。そのため、ここに書かれている情報は基本的に USB のタブレットに焦点があてられています。通常は Xorg の自動検出や動的な設定を使うことが推奨されています。しかしながら内蔵のタブレットデバイスでは、自動検出が動作しないために固定的な Xorg の設定を使うことを考えるかもしれません。固定的な Xorg の設定は、異なる USB ポートに Wacom タブレットが接続されたり、同じポートでもタブレットの抜き差しをすると基本的にタブレットを認識できなくなります。従って固定的な設定は推奨されないものだと考えて下さい。

## インストール

### カーネルドライバーが必要かどうか確認する (通常は必要ありません)

(USB デバイスの場合) タブレットを接続した後 `lsusb` や `dmesg | grep -i wacom` をチェックしてカーネルがタブレットを認識しているかどうか確認してください。また、タブレットが `/proc/bus/input/devices` に記載されているはずです。

現在のカーネルでサポートされていない新しいデバイスだと認識されないことがあります。

### Wacom ドライバーのインストール

Linux Wacom Project のおかげで、Linux で Wacom タブレットを使うために必要なものが全て含まれている xf86-input-wacom パッケージをインストールするだけです。

     # pacman -S xf86-input-wacom

Note: AUR には xf86-input-wacom の git バージョンである xf86-input-wacom-git があります。ただしこのパッケージを使うとトラブルが発生するかもしれません。例えば、git バージョンではボタンが動作しないことがあります。まずは xf86-input-wacom を試すことを推奨します。

### 自動設定

新しいバージョンの X は自動でデバイスを検出・設定することができます。先に進む前に、X を再起動して新しい udev ルールを適用してください。次のコマンドを実行して、デバイスがちゃんと認識されているか (ペンと消しゴムが機能するか) テストしてください:

     $ xsetwacom --list devices

全てのデバイスとタイプが検出されるはずです、例:

     Wacom Bamboo 2FG 4x5 Pen stylus 	id: 8	type: STYLUS
     Wacom Bamboo 2FG 4x5 Pen eraser 	id: 9	type: ERASER
     Wacom Bamboo 2FG 4x5 Finger touch	id: 13	type: TOUCH
     Wacom Bamboo 2FG 4x5 Finger pad 	id: 14	type: PAD

また、gimp や xournal を開いて拡張入力デバイスのセクションを確認したり、使っているソフトウェアによってサポートされているタブレット関連の機能をテストすることもできます。

タブレットを動かすために `xorg.conf` ファイルは必要ありません、全ての設定は `/etc/X11/xorg.conf.d/` フォルダ下のファイルに作られます。 全てが動作するようでしたら手動設定をスキップしてタブレットをカスタマイズする方法を示している設定セクションまで進んで下さい。

Xorg 1.8 から HAL のサポートがなくなり代わりに udev が使われるようになったため、タブレットによっては適切な udev ルールがないために自動検出がされてないことがあります。その場合は自分でルールを書く必要があります。

libwacom や libwacom-fedora をインストールしている場合は先にそれらのパッケージを削除してください。これらのパッケージは新しいバージョンの X で問題が発生します。インストールする必要がある X11 ドライバーは xf86-input-wacom だけです。

### 手動設定

手動設定は `/etc/X11/xorg.conf` や `/etc/X11/xorg.conf.d/` ディレクトリ下のファイルで行います。 Wacom タブレットデバイスにはカーネルドライバーによって提供されている `/dev/input/` のインプットイベントインターフェイスを使ってアクセスします。 タブレットを同じ、もしくは異なる USB ポートに抜き差しするとインターフェイス番号 `event??` は変化します。 そのため。デバイスを参照するときは決まった `event??` インターフェイス (固定設定) を使うのではなく適切な `event` ファイルに動的にシンボリックリンクを作成 (動的設定) するように udev を設定した方が良いでしょう。

#### udev による動的設定

Note: AUR にある wacom-udev パッケージには udev ルールファイルが含まれています。このパッケージを使う場合はこの章をスキップして `xorg.conf` の設定に進んでかまいません。

おそらく udev は既にインストールされていると思うので後は AUR の wacom-udev をインストールするだけです。

##### USB デバイス

USB タブレットを挿入（もしくは再起動）するとあなたのタブレットデバイスを示すシンボリックリンクが `/dev/input` に現れるはずです。

     $ ls /dev/input/wacom*
     /dev/input/wacom  /dev/input/wacom-stylus  /dev/input/wacom-touch

存在しない場合、デバイスが wacom-udev の udev 設定 (`/usr/lib/udev/rules.d/10-wacom.rules`) にまだ含まれていないことを意味します。ファイルに修正を加える前に `10-my-wacom.rules` などにコピーしておいて、パッケージを更新した時も戻せるようにしておくと良いでしょう。

他のデバイスの行を複製して idVendor,idProduct とシンボリックリンクの名前をあなたの使っているデバイスのものに修正してデバイスをファイルに追加してください。 この2つの id は次のコマンドで調べられます:

    $ lsusb | grep -i wacom
    Bus 002 Device 007: ID 056a:0062 Wacom Co., Ltd

この例では idVendor は 056a で idProduct は 0062 になります。 タッチがあるデバイス (例: Bamboo Pen&Touch) を使っている場合は、タッチ入力インターフェイスの行を追加する必要があるかもしれません。 詳細は linuxwacom wiki の Fixed device files with udev をチェックしてください。

ファイルを保存してコマンド udevadm control --reload-rules を使って udev の設定プロファイルをリロードしてください。 /dev/input の中身を見て wacom シンボリックリンクが作られていることを確認してください。 デバイスを認識させるためにタブレットを挿し直す必要があるかもしれません。

Xorg の設定のためのファイルは `/dev/input/wacom` でタッチデバイスは `/dev/input/wacom_touch` です。

##### シリアルデバイス

wacom-udev にはシリアルデバイスのサポートも含まれています。シリアルタブレットのユーザーは linuxconsole パッケージに入っている inputattach ツールを使うことができます。inputattach コマンドを使うことによってシリアルデバイスを /dev/input ツリーに結びつけることができます、例えば:

     # inputattach --w8001 /dev/ttyS0

利用可能なオプションについては man inputattach を見て下さい。 USB デバイスなので `/dev/input/wacom` ファイルを使います。Xorg の設定に進んで下さい。

#### 固定設定

固定設定をする場合は次のセクションの Xorg 設定のタブレットを参照してください。適切な `/dev/input/event??` ファイルを使って下さい。`/proc/bus/input/devices` を見ることでわかります。

#### Xorg の設定

動的・固定設定どちらの場合でも、`/dev/input/` にタブレットの適切な入力イベントデバイスを示すファイルが1つか2つ出来ています。後は関連する情報を `/etc/X11/xorg.conf` に追加するか、`/etc/X11/xorg.conf.d/` 下の適当なファイルに追加するだけです。 実際の設定はあなたの使っているタブレットの機能によります。`xsetwacom --list devices` を使うことでタブレットに必要な InputDevice セクションが何かという役に立つ情報が得られます。

Volito2 の設定例は以下のようになります:

    Section "InputDevice"
        Driver        "wacom"
        Identifier    "stylus"
        Option        "Device"       "/dev/input/wacom"   # or the corresponding event?? for a static setup
        Option        "Type"         "stylus"
        Option        "USB"          "on"                 # USB ONLY
        Option        "Mode"         "Relative"           # other option: "Absolute"
        Option        "Vendor"       "WACOM"
        Option        "tilt"         "on"  # add this if your tablet supports tilt
        Option        "Threshold"    "5"   # the official linuxwacom howto advises this line
    EndSection
    Section "InputDevice"
        Driver        "wacom"
        Identifier    "eraser"
        Option        "Device"       "/dev/input/wacom"   # or the corresponding event?? for a static setup
        Option        "Type"         "eraser"
        Option        "USB"          "on"                  # USB ONLY
        Option        "Mode"         "Relative"            # other option: "Absolute"
        Option        "Vendor"       "WACOM"
        Option        "tilt"         "on"  # add this if your tablet supports tilt
        Option        "Threshold"    "5"   # the official linuxwacom howto advises this line
    EndSection
    Section "InputDevice"
        Driver        "wacom"
        Identifier    "cursor"
        Option        "Device"       "/dev/input/wacom"   # or the corresponding event?? for a static setup
        Option        "Type"         "cursor"
        Option        "USB"          "on"                  # USB ONLY
        Option        "Mode"         "Relative"            # other option: "Absolute"
        Option        "Vendor"       "WACOM"
    EndSection

パス (`"Device"`) も使っているマウスに変更してください、ここでは `/dev/input/mouse_udev` になります。

    Section "InputDevice"
        Identifier  "Mouse1"
        Driver      "mouse"
        Option      "CorePointer"
        Option      "Device"             "/dev/input/mouse_udev"
        Option      "SendCoreEvents"     "true"
        Option      "Protocol"           "IMPS/2"
        Option      "ZAxisMapping"       "4 5"
        Option      "Buttons"            "5"
    EndSection

ServerLayout セクションに以下を追加してください:

    InputDevice "cursor" "SendCoreEvents"
    InputDevice "stylus" "SendCoreEvents"
    InputDevice "eraser" "SendCoreEvents"

最後に ServerLayout セクションでマウスの識別子を更新してください – 例えば

    InputDevice    "Mouse0" "CorePointer"

を次のように変更します

    InputDevice    "Mouse1" "CorePointer"

## 設定

### 全体的な概念

設定方法は2つあり、一時的な設定には xf86-input-wacom に含まれている `xsetwacom` ツールを使い、永続的な設定には `xorg.conf` もしくは `/etc/X11/xorg.conf.d` 内のファイルを使います。 利用できるオプションは同じため、まずは `xsetwacom` を使ってテストし、それから最終的な設定を Xorg の設定ファイルに追加するのを推奨します。

#### 一時的な設定

初めにデフォルトの設定と利用できるオプションを全て確認すると良いでしょう。以下のコマンドを使います。

     $ xsetwacom --list devices                    # get/set コマンドで利用できるデバイスを一覧します
     Wacom Bamboo 16FG 4x5 Finger touch	id: 12	type: TOUCH
     Wacom Bamboo 16FG 4x5 Finger pad	id: 13	type: PAD
     Wacom Bamboo 16FG 4x5 Pen stylus	id: 17	type: STYLUS
     Wacom Bamboo 16FG 4x5 Pen eraser	id: 18	type: ERASER
     $ xsetwacom --get "Wacom Bamboo 16FG 4x5" all # デバイスの名前を使います
     $ xsetwacom --get 17 all                      # もしくはデバイス id を使います
     $ xsetwacom --list parameters                 # オプションの説明を表示します
     $ man wacom                                   # さらに詳しい説明を表示します

Note: オプションを設定するシェルスクリプトを書くときにデバイス id を使ってはいけません。ホットプラグで id が変わることがあるからです。

オプションは `--set` フラグを使って変更できます。例えば:

     $ xsetwacom --set "Wacom Bamboo 16FG 4x5 Finger touch" ScrollDistance 50  # スクロールの速度を変更します
     $ xsetwacom --set "Wacom Bamboo 16FG 4x5 Finger touch" Gesture off        # マルチタッチジェスチャーを無効にします
     $ xsetwacom --set "Wacom Bamboo 16FG 4x5 Finger touch" Touch off          # タッチを無効にします

詳しい設定については下の #特定の設定のヒント を見て下さい。

Note: タブレットを一旦切断してからもう一度接続することでいつでも一時的な設定をリセットできます。

#### 永続的な設定

Xorg 1.8 以上で永続的な設定をするときは `/etc/X11/xorg.conf.d` に新しいファイルを作成するのが推奨されています (例: `52-wacom-options.conf`)。

    /etc/X11/xorg.conf.d/52-wacom-options.conf

    Section "InputClass"
        Identifier "Wacom Bamboo stylus options"
        MatchDriver "wacom"
        MatchProduct "Pen"

        # Apply custom Options to this device below.
        Option "Rotate" "none"
        Option "RawSample" "20"
        Option "PressCurve" "0,10,90,100"
    EndSection

    Section "InputClass"
        Identifier "Wacom Bamboo eraser options"
        MatchDriver "wacom"
        MatchProduct "eraser"

        # Apply custom Options to this device below.
        Option "Rotate" "none"
        Option "RawSample" "20"
        Option "PressCurve" "5,0,100,95"
    EndSection

    Section "InputClass"
        Identifier "Wacom Bamboo touch options"
        MatchDriver "wacom"
        MatchProduct "Finger"

        # Apply custom Options to this device below.
        Option "Rotate" "none"
        Option "ScrollDistance" "18"
        Option "TapTime" "220"
    EndSection

    Section "InputClass"
        Identifier "Wacom Bamboo pad options"
        MatchDriver "wacom"
        MatchProduct "pad"

        # Apply custom Options to this device below.
        Option "Rotate" "none"

        # Setting up buttons
        Option "Button1" "1"
        Option "Button2" "2"
        Option "Button3" "3"
        Option "Button4" "0"
    EndSection

identifier は自由に設定することができます。オプションの名前は `xsetwacom --list parameters` で表示されるものや `man wacom` で説明されているものと (ボタンを除いて) 同じです。#ボタンの再マッピング で説明しているとおり、ボタンの id は `xsetwacom` のものと異なるようです。

### 特定の設定のヒント

Linuxwacom wiki の Howto セクション を参照してください。

#### 向きを変更する

タブレットを異なる向きで使いたいときはドライバーに向きの設定をする必要があります。そうしないと動きがおかしなことになってしまいます。 全てのデバイスに Rotate オプションを設定することで向きを変更できます。利用できる方向は none,cw,ccw, half です。 例えば:

     $ for i in 12 13 17 18; do xsetwacom --set $i Rotate half; done   # remember the ids might change when hotplugging

もしくは `./wacomrot.sh half` のように以下のスクリプトを使って下さい:

    wacomrot.sh

    #!/bin/bash
    device="Wacom Bamboo 16FG 4x5"
    stylus="$device Pen stylus"
    eraser="$device Pen eraser"
    touch="$device Finger touch"
    pad="$device Finger pad"

    xsetwacom --set "$stylus" Rotate $1
    xsetwacom --set "$eraser" Rotate $1
    xsetwacom --set "$touch"  Rotate $1
    xsetwacom --set "$pad"    Rotate $1

#### ボタンの再マッピング

ボタンとホットキーのマッピングを変更することが可能です。

##### ボタン ID を見つけ出す

場合によって適切なボタン ID を見つけるために試行錯誤が必要です。例えばボタン ID が `xsetwacom` や `xorg.conf` の設定と異なることがあります。そういう場合 `xev` や `xbindkeys -mk` などのツールがとても役に立ちます。以下を実行してから:

     $ xsetwacom --get "Wacom Bamboo 16FG 4x5 Finger pad" Button 1 1
     $ xsetwacom --get "Wacom Bamboo 16FG 4x5 Finger pad" Button 2 2
     $ xsetwacom --get "Wacom Bamboo 16FG 4x5 Finger pad" Button 3 3
     $ # and so on

ターミナルウィンドウから `xev` を立ち上げ、ウィンドウ上にマウスカーソルを移動してボタンを押すと id が書き出されます。

##### 構文

`xsetwacom` の構文は柔軟性がありますが、あまりドキュメントがまとまっていません。xsetwacom 0.17.0 の一般的なマッピングの構文は以下の通りです (ソースコードより)。

     KEYWORD [ARGS...] [KEYWORD [ARGS...] ...]

     KEYWORD + ARGS:
       key [+,-]KEY [[+,-]KEY ...]  where +:key down, -:key up, no prefix:down and up
       button BUTTON [BUTTON ...]   (1=left,2=middle,3=right mouse button, 4/5 scroll mouse wheel)
       modetoggle                   toggle absolute/relative tablet mode
       displaytoggle                toggle cursor movement among all displays which include individual screens
                                    plus the whole desktop for the selected tool if it is not a pad.
                                    When the tool is a pad, the function applies to all tools that are asssociated
                                    with the tablet

     BUTTON: button ID as integer number

     KEY: MODIFIER, SPECIALKEY or ASCIIKEY
     MODIFIER: (each can be prefix with an l or an r for the left/right modifier (no prefix = left)
        ctrl=ctl=control, meta, alt, shift, super, hyper
     SPECIALKEY: f1-f35, esc=Esc, up,down,left,right, backspace=Backspace, tab, PgUp,PgDn
     ASCIIKEY: (usual characters the key produces, e.g. a,b,c,1,2,3 etc.)

##### サンプル

     $ xsetwacom --get "Wacom Bamboo 16FG 4x5 Finger pad" Button 1 3 # right mouse button
     $ xsetwacom --set "Wacom Bamboo 16FG 4x5 Finger pad" Button 1 "key +ctrl z -ctrl"
     $ xsetwacom --get "Wacom Bamboo 16FG 4x5 Finger pad" Button 1
     key +Control_L +z -z -Control_L
     $ xsetwacom --set "Wacom Bamboo 16FG 4x5 Finger pad" Button 1 "key +shift button 1 key -shift"

even little macros are possible

     $ xsetwacom --set "Wacom Bamboo 16FG 4x5 Finger pad" Button 1 "key +shift h -shift e l l o"

Note: There seems to be a bug in the xf86-input-wacom driver version 0.17.0, at least for my Wacom Bamboo Pen & Touch, but I guess this holds in general. It causes the keystrokes not to be overwritten correctly.

     $ xsetwacom --set "Wacom Bamboo 16FG 4x5 Finger pad" Button 1 "key a b c" # press button 1 -> abc
     $ xsetwacom --set "Wacom Bamboo 16FG 4x5 Finger pad" Button 1 "key d"     # press button 1 -> dbc  WRONG!

A simple workaround is to reset the mapping by mapping to "":

     $ xsetwacom --set "Wacom Bamboo 16FG 4x5 Finger pad" Button 1 ""          # to reset the mapping
     $ xsetwacom --set "Wacom Bamboo 16FG 4x5 Finger pad" Button 1 "key d"     # press button 1 -> d

##### カスタムコマンドの実行

Mapping custom commands to the buttons is a little bit tricky but actually very simple. You'll need xbindkeys so install it using

     # pacman -S xbindkeys

To get well defined button codes add the following to your permanent configuration file, e.g. `/etc/X11/xorg.conf.d/52-wacom-options.conf` in the InputClass section of your pad device. Map the tablet's buttons to some unused button ids.

     # Setting up buttons (preferably choose the correct button order, so the topmost key is mapped to 10 and so on)
     Option "Button1" "10"
     Option "Button2" "11"
     Option "Button3" "12"
     Option "Button4" "13"

Then restart your Xorg server and verify the buttons using `xev` or `xbindkeys -mk`.

Now set up your xbindkeys configuration, if you don't already have one you might want to create a default configuration

     $ xbindkeys --defaults > ~/.xbindkeysrc

Then add your custom key mapping to `~/.xbindkeysrc`, for example

     "firefox"
         m:0x10 + b:10   (mouse)
     "xterm"
         m:0x10 + b:11   (mouse)
     "xdotool key ctrl-z"
         m:0x10 + b:12   (mouse)
     "send-notify Test "No need for escaping the quotes""
         m:0x10 + b:13   (mouse)

#### TwinView セットアップ

If you are going to use two Monitors the aspect ratio while using the Tablet might feel unnatural. In order to fix this you need to add

    Option "TwinView" "horizontal"

To all of your Wacom-InputDevice entries in the `xorg.conf` file. You may read more about that HERE

#### Xrandr の設定

xrandr sets two monitors as one big screen, mapping the tablet to the whole virtual screen and deforming aspect ratio. For a solution see this thread: archlinux forum.

If you just want to map the tablet to one of your screens, first find out what the screens are called

    $ xrandr
    Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 16384 x 16384
    HDMI-0 disconnected (normal left inverted right x axis y axis)
    DVI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
      1920x1080      60.0*+
      1680x1050      60.0
      ...
    VGA-0 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 477mm x 268mm
      1920x1080      60.0*+
      1680x1050      60.0
      ...

Then you need to know what is the ID of your tablet.

    $ xsetwacom --list devices
    WALTOP International Corp. Slim Tablet stylus   id: 12  type: STYLUS

In my case I want to map the tablet (ID: 12) to the screen on the right, which is "VGA-0". I can do that with this command

    $ xsetwacom --set 12 MapToOutput "VGA-0"

This should immediately work, no root necessary.

If xsetwacom replies with "Unable to find an output ..." an X11 geometry string of the form WIDTHxHEIGHT+X+Y can be specified instead of the screen identifier. In this example

    $ xsetwacom --set 12 MapToOutput "1920x1080+1920+0"

should also map the tablet to the screen on the right.

### 筆圧曲線

You can add two options to xorg.conf to change how the pressure is registered when putting pressure on the pen. Example:

     Option        "PressCurve"    "50,0,100,50"         # Custom preference
     Option        "Threshold"     "60"                  # sensitivity to do a "click"

## 特定のアプリケーションの設定

### GIMP

GIMP で適切な使用法や、筆圧感知を有効にするには 設定 → 入力デバイス → 追加された入力デバイスの設定... を見て下さい。eraser, stylus, cursor の各デバイスのモードをスクリーンに設定して保存してください。

- Please take note that if present, the pad device should be kept disabled as I do not think The GIMP supports such things. Alternatively, to use such features of your tablet you should map them to keyboard commands with a program such as Wacom ExpressKeys.

- You should also take note that the tool selected for the stylus is independent to that of the eraser. This can actually be quite handy, as you can have the eraser set to be used as any tool you like.

詳しくは GIMP Talk - Community - Install Guide: Getting Wacom Drawing Tablets To Work In Gimp の Setting up GIMP セクションを参照してください。

If the above was not enough, you may want to try setting up the tablet's stylus (and eraser) as a second mouse pointer (separating it from your mouse) by using the `xinput create-master` and `xinput reattach` commands. It can help when GIMP doesn't start painting even if the stylus touches the tablet.

### Inkscape

GIMP と同じように、ファイル → 入力デバイス... を見て下さい。eraser, stylus, cursor の各デバイスのモードをスクリーンに設定して保存してください。

### Krita

If your tablet doesn't draw in Krita (clicks/pressure are not registered) but works in the brush selection dialog which has a small test area, try putting Krita in full-screen or canvas-only mode.

Krita 2.0 and later only require that QT is able to use your tablet to function properly. If your tablet is not working in Krita, then make sure to check it is working in QT first. The effect of tablet pressure can then be tweaked in the painttop configuration, for example by selecting opacity, then selecting pressure from the drop down and adjusting the curve to your preference.

For earlier versions of Krita, simply go to Settings → Configure Krita... Click on Tablet and then like in Inkscape and GIMP set stylus and any others' mode to screen.

### VirtualBox

まず、Arch でタブレットが問題なく動作しているか確認してください。それから、Wacom のウェブサイト からゲスト OS の最新ドライバーをダウンロード・インストールしてください。仮想マシンをシャットダウンして、Settings > USB を開いて下さい。Add Filter From Device を選択してあなたの使っているタブレットを選びます (例: WACOM CTE-440-U V4.0-3 [0403])。Edit Filter を選択して、最後のアイテム Remote を Any に変更してください。

### ウェブブラウザのプラグイン

公式の Wacom ウェブプラグインと同じような機能を提供するプラグインが AUR に wacomwebplugin としてあります。Chromium と Firefox で動くことが確認されています。

このプラグインを使うことで deviantART の Muro といったオンラインツールを利用することが可能です。プラグインの開発はまだ初期段階なので、上手く動くか保証はできません。

## 最新のタブレットとトラブルシューティング

Newer tablets's drivers might not be in the kernel yet, and additional manipulations might be needed. For example, for the Wacom Bamboo Connect CTL-470/k and Pen & Touch CTH670, follow the instructions in this thread. There seems to be a problem with the CTH670 that is fixed in the attachment found in this post To compile it use the same instructions as in this thread

## 参照

- Linux Wacom Project Wiki
- GIMP Talk - Community - Install Guide: Getting Wacom Drawing Tablets To Work In Gimp
- Ubuntu Help: Wacom
- Ubuntu Forums - Install a LinuxWacom Kernel Driver for Tablet PC's

Category:

- Graphics tablet (日本語)