Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       04 Nov 2005  23:39:55
 To : All
 Subject : программное управление sysmouse
 -------------------------------------------------------------------------------- 
 
 Привет!
 
 Штатный moused умеет (посредством ядерных драйверов) виртуализировать
 различные физические мышиные манипуляторы, предоставляя ядру их манипуляции
 в обобщенном виде, а ядро уже прикладным программам передает через
 интерфейс sysmouse.
 
 К сожалению, штатный moused не умеет быть управляемым программно.
 Было бы очень удобно управлять понятием ядра об манипуляциях мыши,
 тогда оно через интерфейс sysmouse влияло бы и на консоль, и на X.
 Такое поведение дает патч softmouse. Патч предоставлен
 для 4.11-STABLE, 5.4-STABLE, 6.0-STABLE и 7.0-CURRENT, но протестирован
 только на 4.11.
 
 ftp://www.kuzbass.ru/pub/freebsd/patches/softmoused-0.1.tgz
 
 Патч вводит новый тип (-t) для мыши: software.
 Прикладывать так:
 
 cd /usr/src/usr.sbin/moused
 patch </path/to/patch
 make obj
 make depend
 make all install
 
 При запуске moused -t software флаг -p указывает объект файловой
 системы, из которого moused будет читать данные. Если этот объект
 существует, он открывается и используется без дальнейших проверок.
 
 Если он не существует, moused создаст по указанному пути FIFO,
 для которого права на запись есть только у группы. Имя группы для нового
 FIFO можно задать новым ключем -g. Вместо имени можно указать номер.
 
 Если ключ -g не задан, то группой будет mop (mouse operator), если
 такая группа есть в системе. Иначе группа operator, а если нет и ее,
 группа меняться не будет (по умолчанию это будет группа
 родительского каталога).
 
 Можно запускать управляемую программно копию moused одновременно
 с обычной копией, обслуживающей физическую мышь. В таком случае
 рекомендуется использовать флаг -I, чтобы вторая копия не затирала
 pid-файл первой:
 
 moused -t software -p /var/run/mfifo -I /var/run/softmoused.pid
 
 Любой процесс, имеющий права на запись в указанный флагом -p объект,
 может управлять системной мышью. Протокол обмена данными с moused
 однонаправленный, moused ожидает из файла восьмибайтовые последовательности
 следующего формата:
 
 байт 0:    0xbf (синхробайт)
 байт 1:    flags1 (кнопки 1-8)
 байт 2:    flags2 (кнопки 9-16)
 байт 3:    flags3 (кнопки 17-24)
 байт 4:    flags4 (кнопки 25-32)
 байт 5:    смещение по оси x
 байт 6:    смещение по оси y
 байт 7:    смещение по оси z
 
 Байт 0 всегда должен иметь значение 0xbf, по нему moused определяет
 начало последовательности.
 Байты 1-4 сообщают состояние кнопок. Младший бит байта 1 соответствует
 кнопке 1, старший бит байта 4 - кнопке 32. Если кнопка нажата, бит должен
 быть равен 0, если отпущена - 1. Левая кнопка мыши соответствует
 кнопке 1, средняя - кнопке 2, правая - кнопке 3.
 
 Байты 5-7 сообщают смещения указателя мыши, от -128 до 127
 по осям x, y и z соответственно.
 
 mtest.c - пример такой управляющей мышью программы.
 Компиляция: cc -o mtest mtest.c
 
 Запуск: mtest [-b] -p /path/to/mfifo
 Ключ -p должен совпадать с использованным при запуске moused.
 mtest хаотично сдвигает указатель мыши на небольшое смещение.
 Если указать -b, он также будет иногда нажимать/удерживать/отпускать
 первые три кнопки программной мыши, не прекращая двигать ее.
 
 Eugene
 -- 
 Устав от радостных пиров,
 Hе зная страхов и желаний
 --- slrn/0.9.8.0 (FreeBSD)
  * Origin: Svyaz Service JSC (2:5006/1@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 программное управление sysmouse   Eugene Grosbein   04 Nov 2005 23:39:55 
Архивное /ru.unix.bsd/260939328030e.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional