- Подключение графического планшета Wacom Pro в Linux или как bash помогает художникам
- Что такое не везет
- Минуты счастья
- Довольно продвинутая настройка
- Bash в помощь
- Хочу всплывающие подсказки и все тут!
- Wacom / LatestDriver
- Using A Package Archive
- Compiling it yourself
- Compiling the driver manually
- Reverting the driver to the Ubuntu version
Подключение графического планшета Wacom Pro в Linux или как bash помогает художникам
Если вы счастливый обладатель Intuos Pro и гордый пользователь Linux, то возможно вас постигла та же самая неудача, что и меня. Все дело в том, что на момент написания этой статьи, не было нормальной поддержки последних моделей графических планшетов фирмы Wacom. Однако благодаря проекту Linux Wacom и нескольких bash скриптов эту проблему можно решить.
Вся история началась с того, что мне для домашнего проекта нужно было много рисовать, а старый планшет Genius совсем для этого не подходил. И был куплен Wacom Intuos Pro Midlle. На компьютере с Win7 он очень легко поставился и настроился. Особенно порадовала возможность настройки профилей, чтобы присвоить клавишам на девайсе различные функции в зависимости от используемого приложения. Радости не было предела.
Попутно с этим я понял, что покупать Photoshop для проекта, который не приносит дохода — это совсем не интересно. Труд разработчиков, впрочем как и свою свободу, я ценю и потому ничем пиратским не пользуюсь. Взор был обращен в сторону свободного ПО.
Полазив по сайтам и форумам и недолюбливая Gimp, я остановился на программе Krita — очень удобном растровом редакторе, с богатыми настройками для кистей. Чтобы сразу избежать холивара, скажу, что Krita — это не замена Photoshop, но вот в плане рисования иногда более продвинут.
Что такое не везет
К этому времени мне пришлось полностью пересесть за компьютер с Ubuntu. Помня, что всегда видел в настройках раздел Wacom, я смело подключил провод планшета. И ничего… Тогда я подключил беспроводный адаптер. Никакого результата. Поиск и всякие советы — все тоже самое. В свое время я колдовал с настройками Genius и подумал, что где-то возник конфликт. Давно хотев попробовать Мяту и Cinnamon, я скачал и уставил ее. И снова ничего.
- Скачиваем последнюю версию драйвера ядра input-wacom отсюда:
http://sourceforge.net/projects/linuxwacom/files/latest/download - Если нужно, то устанавливаем зависимости:
sudo apt-get install build-essential libX11-dev libxi-dev x11proto-input-dev xserver-xorg-dev libxrandr-dev libncurses5-dev autoconf libtool
sudo apt-get install linux-headers-generic - Распаковываем
tar xjvf input-wacom-0.20.0.tar.bz2 - Переходим внутрь
cd input-wacom-0.20.0./configure —prefix=/usr
- Ставим сами драйвера из папки под свое ядро (у меня 3.7)
sudo cp ./3.7/wacom.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet/wacom.kosudo depmod -a
Минуты счастья
Я снова был счастлив, пока не понял, что работают только 2 кнопки, а тач не отключается при рисовании стилусом. Под KDE и Gnome были GUI, а под мой Cinnamon пришлось использовать консольную утилиту xsetwacom, что в последствии дало более гибкую настройку, а в связке с bash — дополнительные возможности.
На сайте проекта есть примеры скриптов с xsetwacom, но они не рассчитаны под версию Intuos Pro. Пришлось опытным путем определять номера кнопок (они несколько хаотично разбросаны). Плюс к этому в списке устройств планшет по разному определяется, когда подключен проводом\без провода.
Довольно продвинутая настройка
Я не программист, но понадеялся, что в языке сценариев смогу разобраться. При помощи вывода с xsetwacom и grep в переменную всегда подставляется нужное устройство, а notify-send выводит используемый профиль.
#Название устройств, независимо от того, проводное или беспроводное подключение для планшета DEVICE_STYLUS=`xsetwacom list dev | grep -E -o ".*stylus"` DEVICE_ERASER=`xsetwacom list dev | grep -E -o ".*eraser"` DEVICE_CURSOR=`xsetwacom list dev | grep -E -o ".*cursor"` DEVICE_PAD=`xsetwacom list dev | grep -E -o ".*pad"` DEVICE_TOUCH=`xsetwacom list dev | grep -E -o ".*touch"` #Всплывающее предупреждение об используемом профиле. notify-send "Using Krita profile" #Рабочая область для стилуса #Для двух мониторов просто ширину 2 монитора прибавить к 1: MapToOutput 3286x1080+0+0 xsetwacom set "$DEVICE_STYLUS" MapToOutput 1920x1080+0+0 ## Настройки для стилуса xsetwacom set "$DEVICE_STYLUS" RawSample "2" # кол-во исходных данных для фильтрации точек xsetwacom set "$DEVICE_STYLUS" Threshold "27" # порог чувствительности пера xsetwacom set "$DEVICE_STYLUS" PressureCurve "5 10 90 95" # Кривая безье давления xsetwacom set "$DEVICE_STYLUS" TabletPCButton "off" # кнопки стилуса работают рядом с экраном xsetwacom set "$DEVICE_STYLUS" Mode "Absolute" # абсолютная либо относительная привязка курсора к экрану xsetwacom set "$DEVICE_STYLUS" Button 1 "1" # левый клик xsetwacom set "$DEVICE_STYLUS" Button 2 "3" # правый клик xsetwacom set "$DEVICE_STYLUS" Button 3 "2" # средний клик ## Резинка xsetwacom set "$DEVICE_ERASER" RawSample "2" xsetwacom set "$DEVICE_ERASER" Threshold "27" xsetwacom set "$DEVICE_ERASER" PressureCurve "0 10 90 100" xsetwacom set "$DEVICE_ERASER" Mode "Absolute" xsetwacom set "$DEVICE_ERASER" Button 1 "1" ## Сам планшет xsetwacom set "$DEVICE_PAD" Button 2 "key shift" xsetwacom set "$DEVICE_PAD" Button 3 "key ctrl" xsetwacom set "$DEVICE_PAD" Button 8 "key ctrl Z" xsetwacom set "$DEVICE_PAD" Button 9 "key ctrl shift A" # Неизвестно, где находятся эти кнопки #xsetwacom set "$DEVICE_PAD" Button 4 "key D" #xsetwacom set "$DEVICE_PAD" Button 5 "key E" xsetwacom set "$DEVICE_PAD" AbsWheelDown "5" # тачринг по часовой xsetwacom set "$DEVICE_PAD" Button 1 "key E" # кнопка внутри тачринга xsetwacom set "$DEVICE_PAD" AbsWheelUp "4" # тачринг против часовой xsetwacom set "$DEVICE_PAD" Button 10 "key ctrl K" xsetwacom set "$DEVICE_PAD" Button 11 "key ctrl M" xsetwacom set "$DEVICE_PAD" Button 12 "key O" xsetwacom set "$DEVICE_PAD" Button 13 "key I" xsetwacom set "$DEVICE_PAD" ScrollDistance "10" xsetwacom set "$DEVICE_PAD" TapTime "50"
В принципе из комментариев понятно, за что отвечает каждый параметр. Обратите внимание, как связаны физические клавиши с их номерами внутри программы.
Следующим разочарованием было то, что отсутствовали профили для различных программ. В принципе, можно сделать несколько скриптов и настроить горячие клавиши для активации каждого. Однако при частом переключении между приложениями, это начинает доставлять некоторые неудобства.
Bash в помощь
- awk — для поиска ID окна в выводе. Можно было обойтись и cutом или grepом, но почитав обсуждения, решил реализовать на awk
- xprop — используется для получения текущего окна в фокусе
- wmctrl — для получения списка ID окон, в которых есть нужное ключевое слово, например, Firefox — для переназначения клавиш при переключении на браузер. Также бывают случаи, когда запущено несколько окон, например, с именем Terminal, ID у них разные, а профиль должен быть один
#!/bin/bash awk_string1="/" awk_string2="/" window_in_focus_old="" while true do #ID окна, которое в фокусе window_in_focus=`xprop -root |awk '/_NET_ACTIVE_WINDOW/ '` #Если фокус на окне не изменился, то ничего не происходит if [[ "$window_in_focus" -ne "$window_in_focus_old" ]] then window_in_focus_old=$window_in_focus #список программ из файла list_of_progr=$("` # просматриваю этот список и если окно в фокусе - # запуск одноименного скрипта for running_progr in $list_of_running_prog do if [[ "$running_progr" -eq "$window_in_focus" ]] then $HOME/xsetwacom/$name_of_progr fi done done fi sleep 1 done
- Копируем папку wacom-profile-switcher в свою домашнюю директорию.
- В файл programs вносим названия тех приложений, для которых нужны профили. Названия должны соответствовать надписям из окон приложений, например: gedit, LibreOffece и т. д.
- Для каждого такого названия создаем файл, в который вносим нужные нам настройки графического планшета. Имена файлов должны быть написаны также, как в файле programs.
- Далее можно либо запускать скрипт при надобности, либо кинуть его в автозагрузку. Пока пользователь не переключится с одного окна на другое, сценарий будет только раз в секунду проверять, не сменился ли ID окна в фокусе.
Весь этот спортивный двухколесный тренажер тестировался на Linux Mint Petra и Wacom Pro M. По идее, он будет работать и на других членах семьи этой версии. Для всех остальных придется править скрипт, потому что не будут совпадать кнопки.
Хочу всплывающие подсказки и все тут!
И я все же надеюсь, что Wacom обратит свой взор на Linux и начнет выпускать нормальные драйвера, потому что иногда очень не хватает всплывающих подсказок о назначении клавиши при легком касании на нее, некоторых жестов. И тут одним сценарием не отделаешься.
Wacom / LatestDriver
This page describes how to install a version of the latest wacom driver newer than that available in the ubuntu repositories.
Using A Package Archive
The simplest way is to add the wacom-plus package archive by first holding down [Ctrl] and [Alt] and then pressing the letter [T] you will summon a terminal to type the following commands in preparation:
sudo add-apt-repository ppa:doctormo/wacom-plus sudo apt-get update sudo apt-get dist-upgrade
Then, In order to install the updated kernel module for Bamboo Fun/Newer tablets:
sudo apt-get install wacom-dkms
Restart the computer for changes to take effect.
Compiling it yourself
Usually it is not necessary to compile the drivers, as they come pre-compiled. It is strongly discouraged to compile your own drivers and instead should seek a ppa with the updated driver from a trusted source. If one doesn’t exist, then please ask.
- Download the latest drivers from the Linux Wacom Project
- Extract the .tar.bz2 file to your desktop (you can safely delete these files later)
- Open a terminal (Accessories > Terminal)
- type the following, entering your password when prompted and replacing «linuxwacom-0.8.1-6» with the name of the folder created when you extracted the .tar.bz2 file:
cd Desktop/linuxwacom-0.8.8-6/prebuilt sudo ./uninstall sudo ./install
Compiling the driver manually
- Download the latest drivers from the Linux Wacom Project
- Extract the .tar.bz2 file to your desktop (you can safely delete these files later)
- Open a terminal (Accessories > Terminal)
- type the following, entering your password when prompted and replacing «linuxwacom-0.8.1-6» with the name of the folder created when you extracted the .tar.bz2 file:
sudo apt-get install build-essential sudo apt-get build-dep wacom-tools cd Desktop/linuxwacom-0.8.8-6 ./configure --prefix=/usr make sudo make uninstall sudo make install
Note: wacom-tools is not available from 10.04, replace with xserver-xorg-input-wacom instead.
You should make sure that «./configure» and «make» aren’t returning errors. If they are, you can try googling for the error text, or asking in the ubuntuforums support thread at http://ubuntuforums.org/showthread.php?t=967147
Note: if you have previously installed using the prebuilt drivers, you should clean these up before compiling:
cd Desktop/linuxwacom-0.8.8-6/prebuilt sudo ./uninstall
Note2: if you also want to install the wacom kernel module, you need to add —enable-wacom to the ./configure line. This usually isn’t necessary unless you are using an older kernel which does not support your tablet. In this case the line would be:
./configure --enable-wacom --prefix=/usr
Reverting the driver to the Ubuntu version
If for any reason you wish to revert to the version of the drivers provided by Ubuntu, you can do so by typing the following command in a terminal:
sudo aptitude reinstall xserver-xorg-input-wacom wacom-tools
Note: wacom-tools is not available from 10.04 so you can omit this.
Wacom/LatestDriver (последним исправлял пользователь c-73-4-133-108 2015-11-28 18:30:17)
The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details