用于具有更改 ID 的 wacom 平板电脑的 udev 规则

用于具有更改 ID 的 wacom 平板电脑的 udev 规则

我在尝试在 Manjaro 安装上配置 wacom 平板电脑上的按钮时遇到了很多麻烦。

我最终使用了这个答案让它真正工作起来,但它只在某些时候有效,因为当我再次插入平板电脑时,手写笔和笔 ID 有时会发生变化。

以下是实际更改按钮设置的 shell 脚本的内容:

#!/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)

相关内容