Релиз Libinput 1.0, унифицированного стека для работы с устройствами ввода

Представлен первый полнофункциональный релиз библиотеки Libinput, развиваемой разработчиками Wayland с целью создания единого унифицированного стека ввода для различных графических систем и приложений, избавляя их разработчиков от необходимости повторной реализации типовых функций работы с устройствами ввода. В частности, Libinput даёт возможность использовать одни и те же средства обработки событий от устройств ввода в композитных серверах на базе Wayland и системах на основе X.Org. Код библиотеки поставляется под лицензией MIT.

В своё время библиотека ответвилась от кодовой базы композитного сервера Weston и продолжила развитие в качестве самостоятельного проекта. В настоящее время поддержка libinput реализована в GNOME, Xfce, Enlightenment, Clutter и других открытых проектах. Кроме обработки событий ввода, библиотека предоставляет средства для определения устройств и управления устройствами, абстрагируя данные операций от конкретных реализаций.

Для систем на базе X.org Libinput позволяет решить проблему обработки всех видов устройств ввода и их конфигураций без задействования специфичных для каждого устройства драйверов. Например, Libinput ограничивается одним драйвером xf86-input-libinput, выступающим в роли обвязки над Libinput, вместо отдельных драйверов evdev и synaptics, которые логически отделены друг от друга, в то время как модули Libinput образуют единую шину обработки событий от клавиатур, манипуляторов типа мышь, сенсорных экранов и тачпадов.

0_1440613754.png 0_1440613769.png

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

© OpenNet