IDが変更されたwacomタブレットのudevルール

IDが変更されたwacomタブレットのudevルール

Manjaroのインストール時にWacomタブレットのボタンを設定する際に多くの問題があります。

結局使ったこの回答実際に動作していることが確認されていますが、タブレットを再接続すると、スタイラスとペンIDが時々変わるため、一部の時間にのみ機能します。

実際にボタン設定を変更するシェルスクリプトの内容は次のとおりです。

#!/usr/bin/env bash

sleep 1
export XAUTHORITY=/home/mashpoe/.Xauthority
export DISPLAY=:0

# the IDs will randomly change so the next commands won't work

# sets button 3 for the stylus
xsetwacom set 15 Button 3 "key e"

# sets each button for the pad
xsetwacom set 16 Button 1 "key +ctrl z -ctrl"
xsetwacom set 16 Button 2 "key +ctrl +shift z -ctrl -shift"
xsetwacom set 16 Button 3 "key +ctrl - -ctrl"
xsetwacom set 16 Button 8 "key +ctrl +shift + -ctrl -shift"

答え1

将来の読者にはこれが効果があります。

xsetwacom --set "Wacom One by Wacom M Pen stylus" TabletPCButton on

答え2

xsetwacom list devices最後に、正しいIDを取得するために出力を解析して問題を解決しました。

#!/usr/bin/env bash

sleep 1
export XAUTHORITY=/home/mashpoe/.Xauthority
export DISPLAY=:0

parse_result(){
  local id

  while read line; do
    if [[ "${line}" =~ ([[:digit:]]+) ]]; then
      id="${BASH_REMATCH[1]}"
      if [[ "${line}" =~ STYLUS$ ]]; then
        # this runs if the ID is a stylus
        xsetwacom set "$id" Button 3 "key e"
      elif [[ "${line}" =~ PAD$ ]]; then
        # this runs if the ID is a pad
        xsetwacom set "$id" Button 1 "key +ctrl z -ctrl"
        xsetwacom set "$id" Button 2 "key +ctrl +shift z -ctrl -shift"
        xsetwacom set "$id" Button 3 "key +ctrl - -ctrl"
        xsetwacom set "$id" Button 8 "key +ctrl +shift + -ctrl -shift"
      fi
    fi
  done
}

parse_result < <(xsetwacom list devices)

関連情報