LINUX.ORG.RU

Реально не могу найти решение как залочить курсор на одном из мониторов

 , , ,


0

1

У меня два монитора сконфигурированы через /etc/X11/xorg.conf.d/10-monitor.conf

Section "Monitor"
    Identifier  "DVI-D-0"
    Option      "PreferredMode" "1920x1080"
EndSection
Section "Monitor"
    Identifier  "HDMI-A-0"
    Option      "RightOf"       "DVI-D-0"
    Option      "PreferredMode" "1920x1080"
EndSection
Подскажите пожалуйста, как залочить курсор мышки (на самом деле стилуса граф.планшета) на одном из них?

Первые 20 результатов в гугле не помогают, дальше виндозный мусор.

Есть некие два архива с файлами, которые советуют то там то здесь, но во-первых один из них уже не скачать, а второй не компилируется, там 2007 год.

Спасибо.

// драйвер radeon/amdgpu/amdgpu-pro — никаких гуёвин для конфигурации нет. Только настройка через иксы.



Последнее исправление: slon (всего исправлений: 2)

Ответ на: комментарий от ZenitharChampion

Спасибо, попробую.

до всяких там Systemd.

попробовал один раз — не понравилось, не использую (openrc на генте, runit на воиде).

slon
() автор топика

Option «RightOf» «DVI-D-0»

Пропиши в секции ServerLayout раположение мониторов, но так, что бы они не касались друг друга (не «RightOf», а с указание конкретных координат)

Хотя кажется это работало только если мониторы были разными screen-ами (:0.0, :0.1), не помню уже.

arson ★★★★★
()
Последнее исправление: arson (всего исправлений: 1)
Ответ на: комментарий от arson

Проблема не в этом, как сделать непересекающиеся мониторы таким или другим способом мне известно, проблема в том, что планшет воспринимает оба монитора как одно поле и получается, что я работаю на планшете в одном только углу (четверть планшета), а не по всему планшету. Это гробит его поверхность, т.е. используется только 25% планшета, а не все 100.

Мне нужно, чтобы мышка или любой input device строго работал только на одном мониторе и воспринимал его как максимальную возможную площадь перемещения.

slon
() автор топика
Последнее исправление: slon (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

В этой статье нет решения проблемы из сабжа, к сожалению, там про multiseat, а у меня — multihead, один Х сервак на все устройства.

Я вот еще вычитал, что проблема заключается в том, что:

Input (and output) devices are assigned per X server, not per screen.

Все без исключения вопросы на эту тему на всех стека-оверфловах и форумах — остаются без ответа начиная с середины прошлого десятилетия.

slon
() автор топика
Ответ на: комментарий от arson

У тебя один указательный input device?

У меня: один X-сервер, к нему подключены два монитора (конфиг ты видел), и 3шт. input devices подключены: клавиатура, мышка и wacom-планшет.

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

Эта проблема общеизвестна и по всей видимости нерешенный недостаток иксов.

slon
() автор топика
Последнее исправление: slon (всего исправлений: 1)
Ответ на: комментарий от slon

Эта проблема общеизвестна и по всей видимости нерешенный недостаток иксов.

Чем тогда тебе не подходит вариант сконфигурировать X-ы, как два раздельных sceen-а (:0.0, :0.1)?!

Что у тебя работает на втором мониторе?

arson ★★★★★
()
Последнее исправление: arson (всего исправлений: 1)
Ответ на: комментарий от arson

Что у тебя работает на втором мониторе?

одни приложения открыты на одном мониторе, остальные на другом

Чем тогда тебе не подходит вариант сконфигурировать X-ы, как два раздельных sceen-а (:0.0, :0.1)?!

Сейчас попробую.

slon
() автор топика
Ответ на: комментарий от slon

остальные на другом

Остальным не нужна мышь? Раздельные screen-ы это практически, как раздельные X-ы. Ты не сможешь таскать окна между ними, например.

arson ★★★★★
()
Ответ на: комментарий от slon

одни приложения открыты на одном мониторе, остальные на другом

А как ты полагаешь перебрасывать указатель мыши на соседний монитор? Нет, я знаю, как это можно сделать, но ты-то как предполагал?

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

У меня есть несколько уже работающих средств: внутренние средства wm (awesome) и программка xwinmosaic (но она перебрасывает фокус, а не курсор — что для меня отлично).

И еще точно было что-то, если постараться вспомнить, то это можно найти.

Но мне подошел бы вариант невозможности переброски курсора вообще, второй монитор используется для просмотра материалов, видео, управление просмотрщиками реализовано через хоткеи, я и сейчас не хожу на соседний монитор для управления, а делаю всё из первого.

Всё, что мне нужно, это чтобы wacom-планшет (или для примера пусть это будет мышь) — не знали о доступной площади, а четко и намертво были зафиксированы на одном, главном мониторе.

slon
() автор топика
Ответ на: комментарий от slon

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

Тогда два screen-а, то что тебе надо. Для запуска на втором мониторе придеться указывать DISPLAY=:0.1 (ну или :0.0, в зависимости от их порядка)

arson ★★★★★
()
Последнее исправление: arson (всего исправлений: 1)
Ответ на: комментарий от slon

И еще точно было что-то, если постараться вспомнить, то это можно найти.

xdotool.

Но мне подошел бы вариант невозможности переброски курсора вообще, второй монитор используется для просмотра материалов, видео, управление просмотрщиками реализовано через хоткеи, я и сейчас не хожу на соседний монитор для управления, а делаю всё из первого.

Тогда вариант с двумя независимыми экранами :0.0, :0.1 тебе подойдет, как мне думается. Смотри в сети - там полно рассказов, как настраивать такое.

Всё, что мне нужно, это чтобы wacom-планшет (или для примера пусть это будет мышь) — не знали о доступной площади, а четко и намертво были зафиксированы на одном, главном мониторе.

Так и должно получиться. Расскажешь потом. Наверное, wacom-планшет можно конфигурировать так, чтобы скалинг был. То есть ты коэффициенты подбираешь, чтобы весь планшет к одному экрану только был привязан. Но в данном случае может и не понадобиться.

Еще есть довольно специфичный способ, но говорю тебе про него, как про некую опцию. Как-то мы решали тут такую задачку. Называется Pointer barriers. Вот код, а тред примерно о том же, но человек хотел именно ограничить мышь на одном мониторе, при этом имея виртуальный скрин на оба монитора.

Как запретить перемещение курсора на другие дисплеи? (комментарий)

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от Zubok

Так и должно получиться. Расскажешь потом. Наверное, wacom-планшет можно конфигурировать так, чтобы скалинг был. То есть ты коэффициенты подбираешь, чтобы весь планшет к одному экрану только был привязан. Но в данном случае может и не понадобиться.

Ой-йо-йой! Я об этом совсем забыл! Это действительно 95%, что есть, я даже видео что-то подобное через xinput, меня наверное бы это полностью устроило.

Но за вышеуказанные советы тебе и arson большое спасибо, возможно кому-то другому это пригодится.

Я сейчас попробую настроить чисто планшет, если заработает — то настраивать мониторы уже не буду, если не заработает, то что же, придется освоить технологию.

Спасибо.

slon
() автор топика
Ответ на: комментарий от Zubok

Называется Pointer barriers.

Причем можно делать и наклонные барьеры (баловство, но просто прикольно :) А можно сделать барьер, скажем, на несколько пикселей не доходящий до низа экрана и тогда образуется как бы «лазейка» на другой монитор. В самый угол указатель помещаешь и он проскакивает через границу. :)

Или можно барьер убирать, удерживая какую-нибудь комбинацию на клавитуре и продвигая мышь на второй моник. В общем, есть варианты. Но как-то я не припомню программ, которые такие возможности предлагают, хотя механизм вот есть. По рассказам его автора, предполагалось, что этим будут активно пользваться оконные менеджеры, так как эти pointer barriers позволяют создавать активные области по всему экрану. Довел мышку туда, посылается сообщение в X-клиент, он там сверкнет, что-то сделает, что-то покажет. Или если пересекаешь какую-то невидимую границу, то он тебе сигналит.

Zubok ★★★★★
()
Ответ на: комментарий от slon

Я сейчас попробую настроить чисто планшет, если заработает — то настраивать мониторы уже не буду, если не заработает, то что же, придется освоить технологию.

Ну это тебя спасет частично, так как у тебя указатель может за границу экрана уходить. Это имей в виду. И тебе придется его возвращать.

Zubok ★★★★★
()
Ответ на: комментарий от slon

Еще есть в xinput такое:

       --map-to-output device crtc
               Restricts  the  movements  of  the absolute device to the RandR
               crtc. The output name must match a currently  connected  output
               (see  xrandr(1)).  If  the  NVIDIA binary driver is detected or
               RandR 1.2 or later is not available, a Xinerama output  may  be
               specified as "HEAD-N", with N being the Xinerama screen number.
               This option has no effect on relative devices.

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Да, да.

Всем спасибо, проблема решается очень просто, всё, что нужно, это запамить стилус на монитор, название которого берём из xrandr, например:

xsetwacom set "Wacom Intuos PT S 2 Pen stylus" MapToOutput DVI-D-0
Точное название стилуса смотрим через xinput list , не путаем его с finger или pad.

Для перманентной настройки можно добавить в автозагрузку куда-нибудь, например .xinitrc, т.к. через /etc/X11/xorg.conf.d/* почему-то не настраивается.

В общем всё есть по двум вышеуказанным ссылкам. Я добавил тег wacom, может кому пригодится.

slon
() автор топика
Ответ на: комментарий от slon

Ну, да. Это одно и то же. Один и тот же механизм. Он только на мышку не подействует, а на дигитайзер - да.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

Мышка в такой конфигурации прозрачно переезжает между мониторами. Предположу, что по этой причине не выход для автора.

П.С. впрочем, пробоема решена.

Jurik_Phys ★★★★★
()
Последнее исправление: Jurik_Phys (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.