Категории раздела |
|
Автомобильные гаджеты, ремонт...
[144]
|
Безопасность IT
[404]
|
Блоки питания, Power Banks, зарядки...
[512]
|
Видеорегистраторы
[188]
|
Гаджеты для спорта и здоровья...
[191]
|
Гаджеты, аксессуары...
[627]
|
Измерительная техника, инструменты
[446]
|
Накопители данных
[233]
|
Нетбуки, Ноутбуки, Ультрабуки
[691]
|
Мультиварки, блендеры и не только...
[164]
|
Планшеты
[764]
|
Радар-детекторы
[26]
|
Роботы-пылесосы
[40]
|
Своими руками
[366]
|
Сети, сетевые технологии, оборудование...
[273]
|
Смартфоны
[4963]
|
Фотокамеры, объективы, искусство фотографии..
[541]
|
Умный дом
[53]
|
Электронные книги
[102]
|
CB, LPD, PMR- связь...
[170]
|
DECT, IP-телефоны
[18]
|
Drones, boats, cars...
[109]
|
electric cars
[35]
|
GPS-навигаторы, трекеры...
[51]
|
Linux и не только
[3983]
|
mini computers и не только...
[412]
|
News IT, Это интересно, ликбез...
[1121]
|
Smart TV, UltraHD, приставки, проекторы...
[416]
|
Smart Watch
[269]
|
Sound: наушники, плееры, усилители...
[619]
|
Windows 10...
[301]
|
Windows 11
[37]
|
| |
|
|
| | |
| Главная » 2014 » Февраль » 13 » Подключение графического планшета Wacom Pro в Linux или как bash помогает художникам
13:44 Подключение графического планшета Wacom Pro в Linux или как bash помогает художникам |
Подключение графического планшета 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, я скачал и уставил ее. И снова ничего.
На выручку пришел Linux Wacom Tablet Project,
одним из основных авторов которого является сотрудник Red Hat Питер
Хаттерер. Не скажу, что все с первого раза стало гладко, но вот такая
последовательность действий с askubuntu мне помогла:
- Скачиваем последнюю версию драйвера ядра 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.ko
sudo depmod -a
В зависимости от того, был ли подключен планшет, может потребоваться перезагрузка.
Минуты счастья
Я снова был счастлив, пока не понял, что работают только 2 кнопки, а тач
не отключается при рисовании стилусом. Под KDE и Gnome были GUI,
а под мой Cinnamon пришлось использовать консольную утилиту xsetwacom,
что в последствии дало более гибкую настройку, а в связке с bash —
дополнительные возможности.
На сайте проекта есть примеры скриптов с xsetwacom, но они не рассчитаны
под версию Intuos Pro. Пришлось опытным путем определять номера кнопок
(они несколько хаотично разбросаны). Плюс к этому в списке устройств
планшет по разному определяется, когда подключен проводом\без провода.
Довольно продвинутая настройка
Я не программист, но понадеялся, что в языке сценариев смогу разобраться. При помощи вывода с xsetwacom и grep в переменную всегда подставляется нужное устройство, а notify-send выводит используемый профиль.
Пример скрипта для Krita
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"
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" 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="/{print \$1}"
window_in_focus_old=""
while true
do
window_in_focus=`xprop -root |awk '/_NET_ACTIVE_WINDOW/ {print $5; exit;}'`
if [[ "$window_in_focus" -ne "$window_in_focus_old" ]]
then
window_in_focus_old=$window_in_focus
list_of_progr=$(<$HOME/xsetwacom/programs)
for name_of_progr in $list_of_progr
do
awk_string_result="$awk_string1$name_of_progr$awk_string2"
list_of_running_prog=`wmctrl -l | awk "${awk_string_result}"`
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 и начнет
выпускать нормальные драйвера, потому что иногда очень не хватает
всплывающих подсказок о назначении клавиши при легком касании на нее,
некоторых жестов. И тут одним сценарием не отделаешься.
Для удобства разместил все скрипты на гитхабе
http://habrahabr.ru/post/212449/
|
Категория: Linux и не только |
Просмотров: 935 |
Добавил: laptop
| Рейтинг: 4.0/1 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
| |
| | |
|
Волк слабее льва и тигра, но в цирке волк не выступает!
Волк - единственный из зверей, который может пойти в бой на более сильного противника.
Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...
Внимание! |
|
Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
| |
|
|