Answers:
编辑
检查注释和其他答案似乎有些人仍在寻找使用数位板按钮的切换触摸。如果只需要三件事(针对Ubuntu / Unity,则显示):
使用1行命令的randompast解决方案很好,可以将其转换为更方便的1行切换命令:
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的情况下切换连接的数位板触摸的便捷方法。
如果要在没有终端的情况下运行此脚本,则需要将脚本保存在文件中,使其可执行并为它创建键盘快捷键。这是因为您不能直接将命令分配给平板电脑的按钮(但是可以分配击键...)。
在Unity中,打开系统设置>键盘>快捷方式,然后创建一个新的快捷方式。避免使用超级键,因为它在步骤3中可能并不总是起作用。
作为命令,输入脚本文件的名称(如果不确定,请在单引号之间使用完整路径,然后将其拖放到终端中并使用创建的命令)。
打开系统设置> Wacom数位板>地图按钮...,然后将您选择的按键分配给按钮。
要知道哪个按钮是您可以先给它们分配没有修饰符的字母,请选择一个文本字段,然后按按钮以查看它们对应的字母。
请注意:并不是所有的按钮都能被识别(我的Bamboo笔下4个中的3个),并非所有的按键都可以使用(使用Super键无法正常工作)。您将不得不尝试不同的组合。
原始答案(学习命令)
一年多以前,我设置了Pen&Touch,所以在这里可能错了。我通常在终端中运行:
xsetwacom --set "Wacom BambooPT 2FG 4x5 Finger touch" touch off
这对您不起作用,因为您有其他平板电脑,请先尝试
xsetwacom
应该给你使用的参数。首先,您需要获取设备的名称(我们将其命名为DEVICE_NAME),因此请尝试:
xsetwacom --list devices
这给了我笔和触感:
Wacom BambooPT 2FG 4x5笔橡皮ID:11类型:
ERASER Wacom BambooPT 2FG 4x5笔触控笔ID:12类型:STYLUS
Wacom BambooPT 2FG 4x5指尖ID:13类型:PAD
Wacom BambooPT 2FG 4x5手指触摸ID:14类型:触摸
显然,TOUCH类型的是此处要禁用的一种。此处的DEVICE_NAME为Wacom BambooPT 2FG 4x5手指触摸,而DEVICE_ID为14。那么您需要知道要禁用的参数,因此请尝试:
xsetwacom --list parameters
有很多参数可以启用/禁用,对于每个参数名称(我们称其为PARAM_NAME),都说明了期望值的类型。在这种情况下,我们要关闭“ Touch”参数,您可以使用--set选项。语法为:
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
我编写此脚本的目的是,无论将平板电脑插入哪台计算机,我都可以控制打开/关闭触摸(因为这些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也会向我们的社区展示一些关注...
在批处理中抛出了另一个脚本,我为自己编写了一个脚本。我将其保存在添加到环境路径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