LINUX.ORG.RU

Движение курсора в области (Ubuntu) - XFixesCreatePointerBarrier

 , ,


0

1

Всем добрый день. Возникла необходимость запретить движение курсора в определенной области. Нашел решение здесь: Как запретить перемещение курсора на другие дисплеи?, где пользователь Zubok любезно предоставил, как он утверждает, рабочий код: Как запретить перемещение курсора на другие дисплеи? (комментарий).

Скомпилировал и запустил на ubuntu 18.04.2, но никакого эффекта не наблюдается. Кто-нибудь может пояснить с чем это может быть связано? Правильно ли я понимаю, что после запуска курсор должен двигаться только в заданной области?



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

Скомпилировал и запустил на ubuntu 18.04.2, но никакого эффекта не наблюдается.

Какой эффект ожидается? Там совершенно рафинированный код, который создает фиксированный вертикальный барьер с координатами (100, 0) до (100, высота дисплея). После запуска программы курсор по идее не должен заходить за эту область. Давно это было.

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

Курсор как ходил по всему экрану, так и ходит.

Я скомпилировал и проверил - у меня работает. У тебя точно не Wayland какой-нибудь?

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

у меня работает

Подтверждаю. В X-ах работает (блокирует 100 левых пикселей).

zvezdochiot

anonymous
()
Ответ на: комментарий от gpk

Это не то, что надо показывать.

1. Что пишет программа при запуске из терминала? Ничего не должна писать, но если ты запускаешь не из терминала, то программа может вылететь с ошибкой типа «Не могу открыть дисплей» и ничего не произойдет, а ты думаешь, что запустилась.

2. Не версию иксов нужно показывать, а убедиться, что у тебя вообще иксы запущены, а не Wayland, например.

Пока не знаю, что еще проверить. Пока это.

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

Знаю как выглядит сообщение о невозможности подключится к иксам. Его нет, собственно ничего не выводится. Программа не вылетает, следовательно к иксам подключается. Следовательно иксы имеют место быть. Wayland был в вроде 17.10 по умолчанию, в 18.04 вернули иксы. Я никаких настроек не менял.

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

Программа не вылетает, следовательно к иксам подключается.

Ну ты в процессах-то хотя бы проверь, что там у тебя запущено. Зачем угадывать? Может, у тебя XWayland автоматом запускаются. Тогда дисплей-то приложение найдет, но вот не факт (тут я не знаю), что барьер будет работать. Что в процессах?

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

ps afx | grep X

788 tty1 Sl+ 0:00 | \_ /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/121/gdm/Xauthority -background none -noreset -keeptty -verbose 3 1105 tty2 Sl+ 0:11 \_ /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3 4161 pts/0 S+ 0:00 \_ grep --color=auto X

xdpyinfo

name of display: :1 version number: 11.0 vendor string: The X.Org Foundation vendor release number: 12001000 X.Org version: 1.20.1 maximum request size: 16777212 bytes motion buffer size: 256 bitmap unit, bit order, padding: 32, LSBFirst, 32 image byte order: LSBFirst number of supported pixmap formats: 7 supported pixmap formats: depth 1, bits_per_pixel 1, scanline_pad 32 depth 4, bits_per_pixel 8, scanline_pad 32 depth 8, bits_per_pixel 8, scanline_pad 32 depth 15, bits_per_pixel 16, scanline_pad 32 depth 16, bits_per_pixel 16, scanline_pad 32 depth 24, bits_per_pixel 32, scanline_pad 32 depth 32, bits_per_pixel 32, scanline_pad 32 keycode range: minimum 8, maximum 255 focus: window 0x2e00007, revert to Parent number of extensions: 29 BIG-REQUESTS Composite DAMAGE DOUBLE-BUFFER DPMS DRI2 DRI3 GLX Generic Event Extension MIT-SCREEN-SAVER MIT-SHM Present RANDR RECORD RENDER SECURITY SHAPE SYNC VMWARE_CTRL X-Resource XC-MISC XFIXES XFree86-DGA XFree86-VidModeExtension XINERAMA XInputExtension XKEYBOARD XTEST XVideo default screen number: 0 number of screens: 1

screen #0: dimensions: 1680x1050 pixels (445x278 millimeters) resolution: 96x96 dots per inch depths (7): 24, 1, 4, 8, 15, 16, 32 root window id: 0x17d depth of root window: 24 planes number of colormaps: minimum 1, maximum 1 default colormap: 0x20 default number of colormap cells: 256 preallocated pixels: black 0, white 16777215 options: backing-store WHEN MAPPED, save-unders NO largest cursor: 64x64 current input event mask: 0xda0003 KeyPressMask KeyReleaseMask StructureNotifyMask SubstructureNotifyMask SubstructureRedirectMask PropertyChangeMask ColormapChangeMask number of visuals: 108 default visual id: 0x21 visual: visual id: 0x21 class: TrueColor depth: 24 planes available colormap entries: 256 per subfield red, green, blue masks: 0xff0000, 0xff00, 0xff significant bits in color specification: 8 bits visual: visual id: 0x22 class: DirectColor depth: 24 planes available colormap entries: 256 per subfield red, green, blue masks: 0xff0000, 0xff00, 0xff significant bits in color specification: 8 bits ...

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

ps afx | grep X

Приобщайся к www.linux.org.ru/help/lorcode.md. Пользуй [code]выхлоп[/code]. Пример:

ps afx | grep X

788 tty1 Sl+ 0:00 | \_ /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/121/gdm/Xauthority -background none -noreset -keeptty -verbose 3
1105 tty2 Sl+ 0:11 \_ /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
4161 pts/0 S+ 0:00 \_ grep --color=auto X

Не загружается после установки (комментарий)

zvezdochiot

anonymous
()
Ответ на: комментарий от gpk

name of display: :1

А вот этот момент надо бы разъяснить. Почему у тебя display: :1, а не :0?

zvezdochiot

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

Xwayland и правда был запущен.

Так это значит, что у тебя Wayland стоит. Тебе отключение XWayland не поможет. Тебе, чтобы работали барьеры из примера, надо Wayland на Xorg заменить. То есть вообще всю среду заменить, её бекэнд.

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

А если в ubuntu 19 по умолчанию в процессах нет wayland, то стоит xorg и все ок?

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

В ubuntu 19 - то же самое, курсор не блокируется. Попробую в ubuntu 16, где wayland точно быть не должно. Я использую виртуальную машину, но это ведь никак не должно влиять по идее?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.