Multi-touch support in Ubuntu

Video thumbnail (Frame 0) Video thumbnail (Frame 526) Video thumbnail (Frame 3476) Video thumbnail (Frame 4239) Video thumbnail (Frame 5389) Video thumbnail (Frame 6714) Video thumbnail (Frame 8478) Video thumbnail (Frame 9113) Video thumbnail (Frame 10531) Video thumbnail (Frame 14876) Video thumbnail (Frame 15853) Video thumbnail (Frame 16929)
Video in TIB AV-Portal: Multi-touch support in Ubuntu

Formal Metadata

Multi-touch support in Ubuntu
Title of Series
Part Number
Number of Parts
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
A quick presentation about the current state of multi-touch support in Ubuntu, and the road map for the next release.
Keywords Libre Graphics Meeting (LGM)
User interface Prototype Kernel (computing) Computer animation Kernel (computing) Computer hardware Energy level Quicksort Product (business)
Axiom of choice Slide rule Trail Server (computing) Group action Installation art Computer file Link (knot theory) Device driver Design by contract Entire function Event horizon Kernel (computing) Touch typing Energy level Series (mathematics) Multiplication Descriptive statistics Trigonometry Multiplication Distribution (mathematics) Demo (music) Software developer Projective plane Bit Device driver Cartesian coordinate system Tablet computer Kernel (computing) Event horizon Computer animation Touch typing Universe (mathematics) Right angle Table (information)
Slide rule Touchscreen Service (economics) Computer file Orientation (vector space) Device driver Plastikkarte Raw image format Event horizon Tablet computer Cache (computing) Computer configuration String (computer science) Touch typing Series (mathematics) Multiplication Data type Wrapper (data mining) Interface (computing) Cartesian coordinate system Ellipse Tablet computer Type theory Process (computing) Event horizon Computer animation Touch typing Interface (computing) output Pressure Oracle
Ocean current Point (geometry) Trail Game controller Service (economics) Software developer State of matter INTEGRAL Direction (geometry) Control flow Device driver Design by contract Graph coloring Mathematics Canonical ensemble Touch typing Information Category of being Multiplication Email Information Demo (music) Interface (computing) Electronic mailing list Cartesian coordinate system Kernel (computing) Computer animation Touch typing Interface (computing) Quicksort Pressure Table (information) Electric current
Web page Slide rule Scripting language Link (knot theory) Demo (music) Virtual machine Device driver IP address Pauli exclusion principle Kernel (computing) output Multiplication Demo (music) Software developer Web page Core dump Device driver Entire function Word Pointer (computer programming) Kernel (computing) Computer animation Touch typing File archiver output Quicksort Figurate number Catastrophism
Point (geometry) Trail Computer file Device driver Online help Raw image format Event horizon Graph coloring Mathematics Touch typing Energy level Circle Task (computing) Multiplication Touchscreen Demo (music) Surface Sampling (statistics) Cartesian coordinate system Cursor (computers) System call Kernel (computing) Computer animation Blog output Pattern language Wireless LAN
Multiplication Computer animation Whiteboard
mother Steve got the money went to kernel team
I were very close to the hardware I don't that it's usually a mistake when I I get up to the high-level user interface and our work sort of things that my my final product ends up being someone else's prototype but I'm here to talk about very low level things which is his supporters just been added to the kernel
for the 1st steps for multi touch multi-touch support is beginning to come the Linux it's come through the interest of the manufacturers of the chip sets that are making devices and the over the next I'd say a year or 18 months or 2 years and will move up to the stack and there be a API eyes and accent and applications will be able to take advantage of that if you wanna play with the right now there is an API at a very low level kernel API and I'll show you that if you follow that the links this description drivers all their they the to distribution which there were some free CDs out on the table has kernel support for multi touch it's a little bit broken for the apple of magic mouse which is what I'm going to be using today for the demo so there's a driver of the required in their later in the slides if you go below sciences instructions for exactly how to do that the kernel driver supports that we get events which is a series of events that come up from a low-level driver to anyone who is listening anyone who's is reading the file and the highly higher-level API Server beginning to be defined I I know the explored people and I like them but they are mostly just a fix broken things in the kernel for them I don't work on on API and the API server quite complicated the X level because they have when they deal with the multi touch and gesture there are a lot of a lot of things you have to deal with like deciding whether the event that you just got is a disconnected track from the same touch that you've been following up get to that in a minute but we economical and want to have a very good relationship with this university project we I encourage you follow the link there did some very exciting things both the x application level and and at the driver level well initially will
concentrated on the entry devices a manufacturer that happens to be in a lot of devices that Nelson walk on tablets the chase Douglas is a kernel engineered in our group did most of the work that we took from another developer who is under contract so if you have questions Chase probably a better choice but I'll take there's an upgraded driver which you follow the steps you don't need it would only stop here but the
steps you take to install it that touch events arrive through this the the deadly interface I wrote that there was a stable low-level API wrote the slides early last week and by the end of last week that had changed and so this is stable for now but it's going to change and it's going to change in a way that can break so that you need to be aware and I'll tell you why in a 2nd so these devices have been tested and and they work on the the walk on bamboo tablets I'm told they work but there's there's an issue I'm told also with file ownership of a multiple readers apparently won the war come processes owns file that can be shared I've had all have like an investigator any answer which can
take raw EV devices can use this now I don't think there are already but you could write 1 tomorrow there's a Python wrapper for these events that shows you how they how they work and what they look like and the API is pretty well defined you can looking user include Linux input that h for the capital and the string and you'll see that what comes up from the driver is a series of ellipses related to individual fingers of stylized touching that the tablet or the work service and they have some minor axis of the ellipse size and orientation and and that type is this 4 or handles the 2 options right now and they tend to group these bunch packets is 1 blob of work then there is a unique ID for a contact the amount of pressure now that contact you would be surprised at how much fingers
actually stutter over control service so that contact ID tends to changes in the demo because it's color coded this discussion of a new interface right now the current interface recency all data for every point anytime anything changes and that includes finger pressure or direction or anything so there's a huge amount of data and especially if you get multi five-finger and then more touches and there's no way the data is not associated with any particular touch points so it's up to the application actually maintained some sort of table or a status status and state for each touch new interface will and upper touch information touch ideas and I don't know if they're going to track touches across short breaks or not this is also under discussion right now on the multi-touch mailing list but it can result in a lot less traffic for the application to deal with the changes will not landing in this fall's release over to and like I think will consider back them but I don't know what the last 1 on the slides so that
the kernel drivers were primarily written by arresting relevant end up under contract I would canonical for the movement to community chase Douglas is the guy who did most of the kernel integration for that In brace Harrington a lot of the people who Bryce packed on the little Python demo that that I have to show the resources that providing a just enough to get you
playing with this I have found that a page appear that collects pointers to the the PEP is a personal package archive for downloading custom-built things in this sort of the link to world and that's where you can get the latest kernel driver it does replace the entire HIT stack it's been stable for me that's like the famous last words describe words for it works for me but I think the kernel developers take for granted you might want to do that is to make sure you have an open has this age so running on a machine and you know what the IP addresses so that when your entire user input stack goes away you have a awaiting research machine without any catastrophe but I haven't had a single problem with that other my Bluetooth adapter gone away only for the demo 1st so that the demo you can look like
this is for people who want to go back to the slides and figure out what happened there's a command called Ellis input
that comes you can run it and tell you which packages in and then you can start I don't remember I now it shows you all the event input files in the device subsystems in kernel you can see that the sample wireless mouse Bluetooth now assuming a Bluetooth adapter and that is the apple magic mouse that's still alive because they can't see the cursor in the back of this magic mouse of is a multitouch surfaces so the events of these they're going to come in on this event 16 file and you have to actually open the raw file to rebuild now that you get not is of thank you is a file that will let you view the role of events the raw data coming up from the from the device and then it's also is used by Python files as a plug-in with call social signal Cindy those events what was going to see that so this is what the events of like when you scroll the mouse you can see that the events come and related to the movement of the mouse 1 touch the touch screen you can see the the multi-touch tracking 1 transferred actually don't quite touch it which is cool and never saw before so you can see the tracking values and the major or minor axis and then the the touch coming down so this is this data that is passed on to your application you can process not anyway you want be the yeah yeah the I have to remember you will find that this yes of our task help does not match the reality of which have to be on the command line and if you get a red blob in a green circle unless you click buttons and trace the patterns then it's running in the wrong mode and you're not actually looking multi all this demo does is
demonstrated a colored blog that represents the touch points 18 as I press harder it's fatter and as I let my finger up cancel there then since I'm a little sweaty appear it's not actually my fear is not actually stuttering but it's very common to have a change color in the middle of the stroke and that's something higher level dropped drivers to have to track to keep track of those points now this is multi-touch so you can see that draw 2 fingers and from the actually restart that
so it's nice and clean and see if I can get free closely spaced fingers would naturally do something terrible this is what so you can see the multi-touch there is no support for gestures or anything you know people please go right but but I think the future's great and this is the beginning of this is what's going to enable us over the next 18 months or or shorter to begin having some real multi supported on Linux it's across the board with a usable API and if you have questioned that we went to thank