Определение абсолютных положений пальцев на трекпаде

Я на 13" MacBook Pro (модель 7,1. Середина 2010 года), и я недавно установил Ubuntu 12.04 LTS. По сути, я пытаюсь сделать программу, которая вызывает меню, вызываемое правой кнопкой мыши, когда пользователь нажимает нижний правый угол трекпада Mac.

Основной проблемой здесь является определение того, где именно находится позиция пользователя на трекпаде. Конечно, это довольно легко сделать в OSX, используя NSTouch:

- (void)touchesBeganWithEvent:(NSEvent *)event {
    NSSet *touches = [event touchesMatchingPhase:NSTouchPhaseBegan inView:self];
    for(NSTouch *touch in touches) {
        NSPoint normalizedPosition = touch.normalizedPosition;

        //points inside `normalizedPosition`
        //top center: (.5, 1), bottom left: (1, 0)
    }
}

Однако проблема заключается в том, что в Ubuntu происходит то же самое (если честно, любой язык программирования хорош). Теперь я видел подобные сообщения, потому что, поскольку я уже понял, как это сделать в OSX, я не считаю этот вопрос актуальным. Я также видел этот пост, однако я не ищу универсального, стандартизированного способа определения абсолютного положения пальцев. Честно говоря, я был бы рад, если бы Ubuntu определяла положение пальцев только для трекпадов Mac. Видел также этот пост AskUbuntu, но отвечающий (в то время как он делает большое резюме), кажется, говорит более универсально.

Кто-нибудь знает, как получить что-то вроде normalizedPosition атрибут на NSTouch в Ubuntu (или язык программирования, который компилируется в Ubuntu)?

1 ответ

Решение

Вы можете сделать это с помощью библиотеки mtdev. Начните с evtest, чтобы выяснить, какое устройство ввода и информацию с устройства ввода вам нужно, затем используйте библиотеку mtdev для доступа к ней из C.

Другой замечательной библиотекой, которая делает то, что я изначально пытался сделать (например, создаю зону на трекпаде, которая вызывала бы меню, вызываемое правой кнопкой мыши вверх), является библиотека mtrack (чтобы сохранить некоторую работу). В нем также есть примеры доступа к информации из mtdev, если вы хотите заняться поиском кода.

Другие вопросы по тегам