Как разделить графический планшет и монитор
Перейти к содержимому

Как разделить графический планшет и монитор

  • автор:

графический планшет, два монитора, xinput и все дела

привет, лор!
дело такое: у меня два монитора, и есть графический планшет, на котором иногда рисую всякое убожество. все бы хорошо, только при подключении планшета его курсор по умолчанию бегает по всей доступной области, т.е. по обоим мониторам (ну, как и мышь, собственно). и рабочая область планшета как бы сжимается в ширину — проще говоря, чтобы нарисовать на экране круг, надо физически рисовать овал, как-то так.
собственно, лечится это привязкой устройства ввода к конкретному монитору, благо xinput это умеет. делаю xinput list:

(для первого девайса из списка). обычно помогает. если нет — то же самое для второго (15 в данном случае). в общем-то, можно сделать сразу для обоих, это сути не меняет.
VGA1 — имя монитора из xrandr.
после этого заклинания курсор планшета привязывается к указанному монитору, т.е. края планшета = края монитора.

а теперь, уважаемые знатоки, внимание, вопрос: как бы всю эту историю автоматизировать? чтобы при подключении оно там само соображало про все координаты и прочую мурню.
топорный вариант видится таким: станцевать с бубном вокруг udev, чтобы он при появлении нужного девайса вызывал некий скрипт, который будет парсить вывод xinput list, выдергивать из него эти самые id и далее по списку. скрипт я налабаю за 10 минут, а вот в udev совершенно не умею, последний раз ковырялся в его правилах фиг знает сколько лет назад, помню только, что они пишутся на каком-то инопланетном языке))
но что, если я чего-то не знаю и есть вариант получше? может, средствами самого xinput можно как-то нашаманить? конфиг там какой создать, прописав в нем привязки к координатам. там, вроде дофига и больше всякого наворочено в ентом xinput. или на уровне иксов что-то наколдовать?

планшет Genius какой-то там, определяется как UC-LOGIC Tablet WP5540U. драйвер в ведре начиная с 2.6.38 (так и называется, uc-logic), никаких сторонних приблуд нет. вот что пишет в dmesg:

Как разделить монитор и графический монитор?

Windows по дефолту не предназначена для независимой работы несколькими людьми, хотя инструменты в ее api такие имеются.

Есть приложение ibik aster, позволяет создать несколько рабочих мест и каждому привязать свои монитор/клавиатуру/мышь/планшет, причем мониторы могут быть подключены как к одной видеокарте так и к нескольким (легко с десяток рабочих мест реализовать), работать будут независимо как отдельные компьютеры (можно даже игры запускать), за исключении случаев, когда приложение специально следит, что его не запускают на одной и той же машине несколько раз (обычно хватает разных пользователей windows и даже установки в разные места на диске).

p.s. с точки зрения лицензии, майкрософт запрещает пользоваться одной лицензией (не серверные ревизии) одновременно нескольким пользователям, точно помню пояснение их представителя, что даже игры hot seat, когда экран разделен и два человека за одной клавиатурой — это нарушение лицензии (и не важно что технически возможность есть, т.е. можно завести нескольких пользователей и переключаться между ними, не останавливая работу приложений).

И да это абсурд, надеюсь народонаселене когда-нибудь сбросит с себя оковы этого пиздец-монополиста.

Ограничьте графический планшет одним монитором

Я запускаю Ubuntu 16.04 LTS, и я недавно получил свой Графический планшет HUION H420. У меня есть два монитора, и графический планшет охватывает их обоих однако, что я хотел бы иметь ограниченный только моим основным монитором. У меня нет подсказки, где запустить.Заранее спасибо!

5 ответов

Подробно останавливаясь на этом сообщении: планшет HUION H610

я предоставлю миленький сценарий HUION H420 внизу, который можно создать.

Для определения мониторов можно выполнить команду: xrandr

помещенный должен быть похожим:

DVI-I-1 соединенное основное устройство 1920×1080+0+0 является строкой, мы интересуемся, конкретно DVI-I-1

, Еще одно место информации необходимо, идентификационный номер стилуса. Это может быть найдено путем выполнения команды xinput

В моем случае, который она возвращает:

, Чтобы заставить планшет продолжать работать только, которые контролируют, можно выполнить команду:

Для обертывания этого в сценарий с кнопками можно создать файл с любимым текстовым редактором, tablet.sh , который похож:

теперь chmod +x tablet.sh и затем выполненный команда ./tablet.sh

При использовании сценария, MONITOR переменная должна быть заменена, и можно изменить то, что Вы хотите, чтобы кнопки сделали.

существует проект, который на самом деле имеет gui для установки монитора и графического планшета. http://wenhsinjen.github.io/ptxconf/

С 18,10 это может быть настроено в Настройках Ubuntu.

Открывают Settings через верхнее правое меню:

enter image description here

и переходят к «Устройствам». Выбрал запись «Wacom Tablet» в левом столбце, и выберите кнопку «Table» в верхнем ряду.

wacom tablet devices entry

Проверка флажок «Map to single monitor» и выбор монитор Вы хотите использовать в выпадающем поле. Здесь у меня есть 19-дюймовый монитор, подключенный с DisplayPort.

display mapping dialog box

Вышеупомянутое решение не работало на меня (но это было действительно близко). Я должен был изменить эту строку

, Который зафиксировал его.

сценарий также перестал работать, потому что мой монитор был VGA-2, когда я записал сценарий, но когда я перезапустил свою машину, тот же монитор был присвоен VGA-1. Я заменил это:

МОНИТОР = $ (xrandr | grep «VGA» | grep-w «соединенный» | сокращает-c 1-5)

Системные настройки не распознают мой планшет Wacom Intuos. Однако у меня сработали следующие командные строки

Найдите имя монитора, который вы хотите использовать для таблицы, используя xrandr

Найдите имя устройства вашего планшета Wacom, используя xsetwacom

Map все устройства Wacom на нужный монитор.

В моем случае это VGA-1.

Чтобы легко переключаться между экранами я придумал несколько строк кода, которые позволяют вам выбрать экран, который вы хотите использовать, просто написав команду (вы должны немного измените код, чтобы он работал на вашем компьютере):

Вам просто нужно скопировать эти строки в конец вашего файла

/.bashrc , чтобы псевдонимы всегда были доступны при перезагрузке компьютера. Чтобы он был доступен при первом копировании, просто запустите команду source

На двух моих экранах отображаются имена eDP и HDMI-A-0, когда я запускаю команду xrandr , поэтому вам нужно изменить эти имена на те, которые появляются на вашем компьютере при выполнении этой команды. Вы можете указать столько псевдонимов, сколько хотите, в зависимости от количества экранов.

Затем, чтобы переключаться между экранами, вам просто нужно написать имя псевдонима, который вы написали, например, чтобы перейти к моему экрану hdmi, я бы выполнил команду wacHDMI .

Перезагрузка компьютера приведет к повторной инициализации настроек wacom для одновременного использования всех дисплеев, поэтому вам придется запускать один из псевдонимов каждый раз при перезагрузке системы.

И снова о втором мониторе из планшета… ⁠ ⁠

Оказавшись обладателем большого планшета с нерабочим сенсором(старшенький сына постарался 😏) долго думал, куда приспособить. Гуглил, гуглил и нагуглил раз , два, Хакер №227, а так же много других рецептов с участием spacedesk, iDispla и некоторых других. Вот только незадача — у меня Linux. Погуглив еще я нашел несколько рецептов и путем несложного шаманства получил приемлемый результат.

И снова о втором мониторе из планшета… Гаджеты, Монитор, Linux, Длиннопост, Habr

А теперь мой способ.

Linux с установленными:

x11vnc (всякие tigervnc и прочие я откровенно недолюбливаю)

adb из комплекта android-tools

Планшет/смарт с включенным режимом отладки и установленными:

AndroidNVC (у меня именно он, т.к. нет рекламы)

Какой нибудь блокировщик гашения экрана(без рекламы не нашел)

Любой автозагрузчик(запускать VNC и блокировщик) — необязательно(об этом ниже).

1. Получаем Modeline для xorg.conf

$ cvt 1024 768 25 # Можно и gtf, но он не всегда дает корректный modeline.

2. Редактируем xorg.conf

Identifier «Xorg Configured»

Screen 0 «Monitor» 0 0

Screen 2 «Screen2» rightof «Screen0» # «Пустышка для VNC»

Option «Xinerama» «1»

# здесь все настройки оборудования, коли таковые есть

Modeline «1024×768@25» 23.77 1024 1056 1144 1176 768 785 789 807 # см. п. 1

Virtual 1024 748

Перезапускаем Х-сы и проверяем через arandr. Настраиваем расположение и ориентацию.Должно быть примерно так:

И снова о втором мониторе из планшета… Гаджеты, Монитор, Linux, Длиннопост, Habr

Сохраняем в файл — он нам пригодится.

3. Создаем файл для автозагрузки в WM/DE (у меня planshet.sh )

x11vnc -rfbport 5900 -display :0 -dontdisconnect -noxfixes -xdamage -shared -forever -clip 1024×768+1600+0 -scale 1024×768 -bg -cursor X -o /home/$USER/x11vnc.log -repeat

xrandr —addmode VIRTUAL1 1024×768 # необязательно

xrandr —output VIRTUAL1 —mode 1024×768 # необязательно

xrandr —output VIRTUAL2 —off —output HDMI1 —off —output VIRTUAL1 —mode 1024×768 —pos 1602×0 —rotate normal —output DP1 —off —output VGA1 —mode 1600×900 —pos 0x0 —rotate normal #вот эта строка заимствована из сохраненного файла arandr

$ xrandr |grep VIRTUAL1

VIRTUAL1 connected 1024×768+1600+0 (normal left inverted right x axis y axis) 0mm x 0mm

Так как в IceWM каталога автостарта нет, но есть файл

/.icewm/startup(который должен быть исполняемым), добавим в него следующее:

4. Отключим гашение мониторов:

А теперь самое интересное! Как получить координаты «тапов» для устройства без «метода проб и ошибок» истязая клавиатуру в консоли?!

Ради такого дела наваял я программулю. Если запускать ее из консоли, то получим искомое — вывод координат тапов.

И снова о втором мониторе из планшета… Гаджеты, Монитор, Linux, Длиннопост, Habr

6. Перепишем все это в planshet.sh

x11vnc -rfbport 5900 -display :0 -dontdisconnect -noxfixes -xdamage -shared -forever -clip 1024×768+1600+0 -scale 1024×768 -bg -cursor X -o /home/$USER/x11vnc.log -repeat

xrandr —addmode VIRTUAL1 1024×768 # необязательно

xrandr —output VIRTUAL1 —mode 1024×768 # необязательно

xrandr —output VIRTUAL2 —off —output HDMI1 —off —output VIRTUAL1 —mode 1024×768 —pos 1602×0 —rotate normal —output DP1 —off —output VGA1 —mode 1600×900 —pos 0x0 —rotate normal #вот эта строка заимствована из сохраненного файла arandr

adb connect 192.168.0.14:5555

sudo adb devices

adb shell input tap 1000 20 # тапаем по «квадратикам» в правом верхнем углу (не знаю, как нызавется) — скрин 3

adb shell input tap 392 138 # тапаем по AndroidVNC

adb shell input tap 20 65 # запускаем VNC предварительно прописав адрес и порт

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *