如何关闭 Wacom Bamboo CTH-470 上的触摸功能?

如何关闭 Wacom Bamboo CTH-470 上的触摸功能?

我最近给女朋友买了一台 Wacom Bamboo CTH-470,在安装了 wacom-dkms 之后,它运行良好。现在我遇到了一个不知道如何解决的问题。平板电脑上的触摸功能无法关闭。我运行的是 Ubuntu 12.04 Beta 2。我尝试从设置菜单中的 wacom 设置关闭触摸功能。笔和触摸功能都运行良好,只是当她试图在 myPaint 中绘图时,触摸功能让她抓狂。

答案1

编辑

查看评论和其他答案后发现,有些人似乎仍在寻找使用平板电脑按钮切换触摸的方法。如果您只想这样做,则需要 3 件事(针对 Ubuntu/Unity 显示):

  1. 一个简单的命令(可以在终端或脚本文件中运行)

randompast 的解决方案使用一行命令,很好,并且可以转换为更方便的一行切换命令:

xsetwacom --list | grep --line-buffered "TOUCH" | awk '{system("echo "$8";xsetwacom --get "$8" TOUCH;")}' | tr "\n" " " | awk '$2 == "off" {system("xsetwacom --set "$1" TOUCH on")} $2 == "on" {system("xsetwacom --set "$1" TOUCH off")}'

当然,如果您已经有自己的脚本或命令行,那么您就不需要这样做,但这是一种在不知道平板电脑的名称或 ID 的情况下切换所连接平板电脑的触摸的便捷方式。

  1. 设置键盘快捷键

如果您想在没有终端的情况下运行此程序,则需要将脚本保存在文件中,使其可执行并为其创建键盘快捷键。这是因为您无法直接将命令分配给平板电脑的按钮(但您可以分配按键...)。

在 Unity 中打开系统设置 > 键盘 > 快捷键并创建新的快捷方式。避免极好的键,因为它可能并不总是在步骤 3 中起作用。

作为命令,输入脚本文件的名称(完整路径,在单引号之间,如果不确定,则将文件拖放到终端中并使用创建的命令)。

在此处输入图片描述

  1. 将快捷键的按键分配给您的按钮

打开系统设置 > Wacom 数位板 > 地图按钮...并将您选择的按键分配给您的按钮。

要知道哪个按钮是哪个,您可以先为它们分配不带修饰符的字母,选择一个文本字段,然后按下按钮以查看它们对应哪个字母。

在此处输入图片描述

这里要注意:并非所有按钮都能被识别(我的 Bamboo 4 个按钮中只有 3 个能识别),而且并非所有按键都能正常工作(我无法使用极好的键才能工作)。您必须尝试不同的组合。

原始答案(学习命令)

我在一年前就设置了我的 Pen & Touch,所以我可能错了。我通常在终端中运行:

xsetwacom --set "Wacom BambooPT 2FG 4x5 Finger touch" touch off

这不适用于你,因为你有另一台平板电脑,所以请先尝试

xsetwacom

它应该会为您提供要使用的参数。首先,您需要获取设备的名称(我们称之为 DEVICE_NAME),因此请尝试:

xsetwacom --list devices

这为我的 Pen & Touch 提供了:

Wacom BambooPT 2FG 4x5 笔式橡皮擦 编号:11 类型:橡皮擦
Wacom BambooPT 2FG 4x5 笔式触控笔 编号:12 类型:触控笔
Wacom BambooPT 2FG 4x5 指垫 编号:13 类型:触控板
Wacom BambooPT 2FG 4x5 手指触摸 ID:14 类型:触摸

显然,这里要禁用的是 TOUCH 类型的设备。这里的 DEVICE_NAME 应该是Wacom BambooPT 2FG 4x5 手指触控并且 DEVICE_ID 将是14然后您需要知道要禁用哪个参数,因此请尝试:

xsetwacom --list parameters

有大量参数可以启用/禁用,并且对于每个参数名称(我们称之为 PARAM_NAME),预期值的类型都有说明。在本例中,我们想要关闭 Touch 参数,您可以使用- 放选项。语法为:

xsetwacom --set "DEVICE_NAME"  PARAM_NAME  PARAM_VALUE

或者

xsetwacom --set DEVICE_ID  PARAM_NAME  PARAM_VALUE

如果您不确定用什么来代替 PARAM_VALUE,请尝试使用 --get 选项来查看当前值:

xsetwacom --get "DEVICE_NAME"  PARAM_NAME

答案2

以下是一行解决方案:

xsetwacom --list | grep --line-buffered "TOUCH" | awk '{system("xsetwacom --set "$8" touch off")}'

答案3

我编写此脚本是为了无论我将平板电脑插入哪台计算机(因为这些 ID 在不同机器之间会发生变化),我都可以控制触摸的打开/关闭。您可能也会发现它很有用。

#!/usr/bin/python

# kermit-internal-pytouch 0|1

import re, sys, subprocess
resp = subprocess.Popen(['xinput', '-list'], stdout = subprocess.PIPE)
out, err = resp.communicate()
WacomLine = re.compile('Wacom')
FingerLine = re.compile('Finger')
idExpr=re.compile('id=(?P<number>\d+)')
for line in out.split("\n"):
    if WacomLine.search(line) and FingerLine.search(line):
        identifier = idExpr.search(line)
        num = identifier.group("number")
        subprocess.call(['xinput', '-set-prop', num, "Device Enabled", sys.argv[1]])
resp = subprocess.Popen(['xinput', '-list'], stdout = subprocess.PIPE)
out, err = resp.communicate()
print(out)

我将此脚本与这两个简单的 bash 脚本一起放在 /usr/local/bin 中,以便调用它而不必记住参数......

kermit-hw-bamboo-untouch:

#!/bin/bash
kermit-internal-pytouch 0
exit

kermit-hw-bamboo-touch:

#!/bin/bash
kermit-internal-pytouch 1
exit

话虽如此,但我觉得 Ubuntu 没有为平板电脑提供更好的支持,这真的很遗憾。也许有一天 Wacom 也会关注我们的社区……

答案4

在批处理中又添加了一个脚本,我为自己编写了这个脚本。我将其放在我添加到环境路径的文件夹wacomtouch中的可执行文件中.scripts。因此,要禁用触摸,我只需运行wacomtouch off。它会自动检测所有参数,因此理论上它可以自动与任何 Wacom 平板电脑配合使用。

(这取决于pcregrep包。)

#!/bin/bash

STATUS="$1"

#Isolate the id of the touch device automatically.
rawID=`xsetwacom --list | pcregrep -M 'TOUCH' | pcregrep -o 'id\: \d*'`
#Trim further
device=`echo "$rawID" | grep -o "[0-9]\+"`

xsetwacom --set $device touch $1

case $1 in
    on)
        echo "Tablet touch is ENABLED."
        ;;
    off)
        echo "Tablet touch is DISABLED."
        ;;
    *)
        echo "Invalid option. Must be either on or off."
        ;;
esac

相关内容