Raspberry Pi で Cintiq を使う(X11)

作成:

Raspberry Pi で Cintiq を使う(X11)

注意: Waylandでも動作確認済み(Ubuntu 23.10)

Raspberry Pi では /boot/firmware/cmdline.txt の mousepoll の値を0にしないとドライバが正常に入っていてもペン先のカーソルがまともに動かないために以下を追記する。

/boot/firmware/cmdline.txt を編集

sudo vi /boot/firmware/cmdline.txt

# 末尾に usbhid.mousepoll=0 を追加

console=serial0,115200 console=tty1 root=PARTUUID=f84fc793-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=JP usbhid.mousepoll=0

wacomドライバを入れる

sudo apt install xserver-xorg-input-wacom

この後再起動する

ペン(Stylus)のデバイスIDを調べてマッピング画面を設定する

# 以下のコマンドでデバイスのIDがわかる
xsetwacom --list

# 例
# Wacom Cintiq 13HD Pen stylus    	id: 6	type: STYLUS    
# Wacom Cintiq 13HD Pad pad       	id: 7	type: PAD       
# Wacom Cintiq 13HD Pen eraser    	id: 11	type: ERASER 

# ペンのマッピング先ディスプレイを指定する
# HDMI-1 はマッピング先のディスプレイ名
xsetwacom --set 6 MapToOutput "HDMI-1"

自動マッピングスクリプト

再起動ごとに上記を手作業でしていても面倒なのでデバイスidを調べて一度にマッピングするようにスクリプトを書いた。

これを自動起動するようにしておく。

#!/bin/sh
# デバイスのID番号を取り出してペンと消しゴムをディスプレイにマッピングする
STYLUSID=$(xsetwacom --list | grep stylus | awk -F'type' '{print $1}' | rev | cut -c 1-3 | rev)
ERASERID=$(xsetwacom --list | grep eraser | awk -F'type' '{print $1}' | rev | cut -c 1-3 | rev)
xsetwacom --set $STYLUSID MapToOutput "HDMI-1"
xsetwacom --set $ERASERID MapToOutput "HDMI-1"