Недавно я купил своей девушке Wacom Bamboo CTH-470, и она хорошо работает после установки wacom-dkms. Теперь я столкнулся со стеной, которую я не знаю, как обойти. Тач на планшете не выключится. Я использую Ubuntu 12.04 Beta 2. Я попытался отключить сенсорный экран из настроек wacom в меню настроек. Перо и касание прекрасно работают, просто прикосновение сводит ее с ума, когда я пытаюсь рисовать в myPaint.
Вот решение в одну строку:
xsetwacom --list | grep --line-buffered "TOUCH" | awk '{system("xsetwacom --set "$8" touch off")}'
Я записал этот сценарий так, чтобы я мог управлять превращением касания вкл\выкл, неважно, какой компьютер я включаю планшет (потому что эти идентификаторы изменяются между машинами). Вы могли бы найти это полезным также.
#!/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)
Я поместил этот сценарий в/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
Редактировать
Проверяя комментарии и другие ответы, похоже, что некоторые все еще ищут переключение касания с помощью кнопок планшета. Если вы просто хотите, чтобы вам понадобилось 3 вещи (показано для Ubuntu / Unity):
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")}'
Вам это не нужно, если у вас уже есть свой собственный скрипт или команда Конечно, но это удобный способ переключать касание подключенных планшетов, не зная их имени или идентификатора.
Если вы хотите запустить это без терминала, вам нужно сохранить сценарий в файле, сделать его исполняемым и создать клавиатуру ярлык для него. Это потому, что вы не можете назначить команду непосредственно кнопкам планшета (но вы можете назначить нажатие клавиши ...).
В Unity откройте Системные настройки> Клавиатура> Сочетания клавиш и создайте новый ярлык. Избегайте клавиши Super , так как она не всегда работает на шаге 3.
В качестве команды укажите имя файла скрипта (полный путь, между одинарными кавычками, если вы не уверены, перетащите файл в терминал и используйте созданную команду).
Открыть Системные настройки> Wacom Tablet> Кнопки карты ... и назначьте нажатие клавиши для вашей кнопки.
Чтобы узнать, какой кнопке вы можете назначить им буквы без модификатора, выделите текстовое поле и нажмите кнопки, чтобы увидеть, какой букве они соответствуют.
Здесь будьте осторожны: распознаются не все кнопки (3 из 4 для моего Bamboo) и не все нажатия клавиш будет работать (я не могу заставить любой с ключом Super работать). Вам придется попробовать разные комбинации.
Оригинальный ответ (для изучения команд)
Я настроил ручку и усилитель; Прикоснись больше года назад, поэтому я могу ошибаться здесь. Обычно я запускаю в терминале:
xsetwacom --set "Wacom BambooPT 2FG 4x5 Finger touch" touch off
Это не сработает для вас, так как у вас есть другой планшет, поэтому попробуйте сначала
xsetwacom
, который должен дать вам параметры для использовать. Сначала вам нужно получить имя вашего устройства (назовем его DEVICE_NAME), поэтому попробуйте:
xsetwacom --list devices
Это даст мне перо и усилитель; Сенсорный:
Идентификатор ластика пера Wacom BambooPT 2FG 4x5: 11 тип: ERASER
Идентификатор стилуса Wacom BambooPT 2FG 4x5: 12 тип: STYLUS
Подушка для пальцев Wacom BambooPT 2FG 4x5 id: 13 тип: PAD
Wacom BambooPT 2FG 4x5 идентификатор касания пальцем id: 14 type: TOUCH
Очевидно, что тот, который имеет тип TOUCH, является тем, который нужно отключить здесь , Здесь DEVICE_NAME будет Wacom BambooPT 2FG 4x5 Finger touch , а 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, чтобы увидеть текущее значение: [ 1146]
xsetwacom --get "DEVICE_NAME" PARAM_NAME