Helg prosjekt: Zap dine kollegaer Minds med Multi-Pointer X

Pleie å revurdere din desktop brukeropplevelse? Det kan være enklere enn du tror. Sjansen er at du eier mer enn én pekeenhet, men i mange år du aldri har vært i stand til å dra full nytte av det hardware, fordi når du koblet til et annet maskinvare mus, det rett og slett delt kontroll av samme markøren. Men med X, det trenger ikke å: kan du ha noen mange forskjellige, uavhengige pekere på skjermen som du har enheter for å kontrollere dem. Så ta en reservedel fra deler boks i skapet, og gjør deg klar for OL 'en til to slag.

Hva, har du ikke en ekstra mus? Det en god sjanse du gjør
har en annen pekeenhet, skjønt – selv om det er en mus og den innebygde styreflaten på den bærbare. Men denne prosessen vil fungere for alle peke hardware anerkjent av X, inkludert en trackball og en mus, eller til og med en mus og et tegnebrett. Til X, de er alle like. Du må sørge for at du kjører den X.org X server 1.7 eller nyere for å bruke funksjonen i spørsmål, Multi-Pointer X (MPX). Du nesten helt sikkert allerede er — X.org 1.7 ble ferdigstilt i 2009, og alle ordinære distribusjoner følger X.org nøye. Ta opp distribusjonens pakkebehandler og installere libxi og libxcursor utvikling pakker i tillegg; de vil komme til nytte senere.

Hva er MPX?

Så hvorfor ikke vi bruker MPX hele tiden? For det første, er det meste av tiden en markør på skjermen alt det vi trenger, fordi det er svært få programmer som drar nytte av flere pekere. Men det er flere. Den enkleste bruk tilfellet er for multi-head oppsett, der to eller flere separate påloggingsøkter kjøres på samme maskin, ved hjelp av ulike videoutganger og separat tastatur /mus kombinasjoner. Du ser ofte denne typen konfigurasjon i klasserom og datarom.

Men jo mer uvanlig og spennende alternativ er å kjøre flere tips i en enkelt økt, noe som kan forenkle oppgaver som involverer mange manipulere objekter på skjermen. Hvis du maler med en trykkfølsom tablet bruker Krita eller MyPaint, for eksempel, kan en andre markør tillate deg å holde tavlepennen på lerretet og endre maleinnstillinger eller penseldynamikk uten hopping back-og-tilbake hele tiden. Det samme gjelder for andre kreative jobber som animasjon og 3D-modellering: jo mer kontroll, jo lettere blir det. Plus, la oss være ærlige, det er alltid den wow-faktor – eksperimentere og vise frem hva Linux kan gjøre det mindre operativsystemer kan ikke.

Det grunnleggende

MPX er implementert i XInput2 forlengelse, som håndterer tastatur og pekeenheter. Pakken er en sentral forutsetning for alle stasjonære systemer, men de fleste brukerne ikke vet at den kommer med en hendig kommandolinjeverktøy for å inspisere og endre X session innsats innstillinger. Verktøyet heter xinput
, og hvis du kjører xinput listen, vil den skrive ut en nestet liste over alle systemets aktive inndataenheter. Mine ser slik ut:


 ⎡ Virtual kjernepekeren id = 2 [mester pekeren (3)] ⎜ ↳ Virtual kjerne XTEST pekeren id = 4 [slave pekeren (2)] ⎜ ↳ Microsoft Microsoft Trackball Explorer ® id = 9 [slave pekeren (2)] ⎣ Virtual kjerne tastatur id = 3 [mester tastaturet (2)] ↳ Virtual kjerne XTEST tastatur id = 5 [slave tastatur (3)] ↳ Strømknapp id = 6 [slave tastatur (3 )] ↳ Strømknapp id = 7 [slave tastatur (3)] ↳ Mitsumi Electric Goldtouch USB Keyboard id = 8 [slave tastatur (3)] 


Som du kan se, har jeg en " virtuell " kjerne pekeren og en tilsvarende " virtuell " kjernen tastatur, som begge er " mester " enheter som ekte maskinvare (styrekulen og USB-tastatur) er vedlagt som slaver. Normalt, når du kobler til en ny inngangsenhet, legger X det som en annen slave til den eksisterende (og bare
) master, slik at alle mus kontrollere den samme pekeren. For å kunne bruke dem hver for seg, må vi opprette en ny virtuell pekerenhet, deretter legge vår nye maskinvaren og tilordne den som en slave til andre virtuelle pekeren.

Fra en konsoll, kjøre xinput opprette-mester Secondary å opprette en ny virtuell enhet. Kommandoen som er skrevet vil kalle det " Sekundær " men du kan velge det navnet du ønsker. Nå kobler til andre pekeenhet (med mindre det allerede er koblet til, selvfølgelig), og kjøre xinput listen igjen. Jeg plugget i min Wacom tablet, som legges tre linjer på listen:


 ⎜ ↳ Wacom Graphire3 6x8 viskelær id = 16 [slave pekeren (2)] ⎜ ↳ Wacom Graphire3 6x8 markøren id = 17 [slave pekeren (2)] ⎜ ↳ Wacom Graphire3 6x8 stylus id = 18 [slave pekeren (2)] 


Den nye virtuelle Enheten viser også opp, som matchet peker /keyboard pair:

 ⎡ Sekundær pekeren id = 10 [mester pekeren (11)] ⎜ ↳ Sekundær XTEST pekeren id = 12 [slave pekeren (10)] ⎣ Sekundær tastatur id = 11 [mester tastatur (10)] ↳ Sekundær XTEST tastatur id = 15 [slave tastatur (11)] 


Det er fordi så langt, betyr X ikke om vi er interessert i tastaturet eller pekeren. Du vil også merke seg at hver oppføring har en unik id
, inkludert den nye maskinvaren og de nye virtuelle enheter. &Quot; markøren " oppføring for Wacom tablet er den eneste av de tre vi bryr oss om, og dens id er 17. Running xinput feste 17 " Sekundær pekeren " tildeler den som en slave til Secondary virtuelle pekeren enhet, og voila – en andre markøren vises på skjermen umiddelbart.

Du kan begynne å bruke begge pekere umiddelbart (gitt at din hånd-øye-koordinasjon er opp til oppgaven). Grab to ikoner på skrivebordet på en gang, omorganisere vinduer med begge hender, klikk på menyene i to programmer som kjører samtidig.

Markører, Foiled Again

Hva vil du snart finne ut, skjønt, er at livet på blødning kanten kommer med noen komplikasjoner. Først av alt, musepekere ser akkurat det samme, noe som kan være forvirrende. For det andre, selv om GTK + 3 i seg selv er fullt klar over XInput2 og kan takle MPX, individuelle programmer er kanskje ikke. Det betyr at du kan avdekke en rekke feil bare ved hjelp av både pekere på en gang.

Du kan takle utvisket-pekere problemet ved å tildele en annen X pekertemaet til andre pekeren. De vanlige skrivebordsmiljøer støtter ikke dette i sine grafiske preferanser verktøy, men utvikleren Antonio Ospite skrev en rask verktøy kalt xicursorset Hotell som fyller gapet. Kompilere det krever libxi og libxcursor utvikling pakker nevnt tidligere, men det krever ikke noen tunge avhengigheter, heller ikke du engang trenger å installere det som root – det går ganske lykkelig i ditt hjemmeområde.

Hvis du vil tilordne et tema til den nye markøren, bare løpe ./xicursorset 10 left_ptr noen-markør-tema-navn
. I denne samtalen, er 10
id av vår " Sekundær pekeren " entry ovenfra, og left_ptr
er standard markøren form (X, endres pekeren til en tekstinnsettingspunktet, endre størrelse-verktøy, og " vente " symbol, blant andre alternativer etter behov). X.org markøren tema pakkene er gitt av hver Linux-distribusjon; " DMZ " Temaet er GNOME standard og bruker en hvit pil

Det enkleste alternativ kan være å bruke DMZ-Black variant. ./xicursorset 10 left_ptr DMZ-Black, men det er langt flere, inkludert multi-fargealternativer. Jeg personlig grep DMZ-Red tema fra gnome-look.org sin X markøren delen, for å gjøre hjelpe markøren skiller seg ut mer.

En ting du vil legge merke til om disse instruksjonene er at de ikke vedvare mellom reboots eller login økter. Foreløpig er det ingen måte å konfigurere X.org å huske vill og gal markør oppsett. Jeg spurte MPX forfatteren Peter Hutterer hva begrunnelsen var, og han sa det rett og slett ikke hadde blitt bedt om ennå. Fordi MPX bruk er begrenset til noen få programmer og bruksscenarioer, de fleste bare bruker den i en dynamisk følelse – plugge inn en annen enhet når de trenger det for en bestemt oppgave

På den annen side, en av Ospite lesere (en MPX bruker som heter Vicente) skrev en liten Bash skript for å automatisere prosessen.; hvis du bruker MPX mye, kan det spare deg noen tastetrykk.

Multi-tasking

Men, som Hutterer sagt, apps med eksplisitt støtte for MPX ganske begrenset på dette stadiet. Det er en multi-markøren maleri program som følger med Vinput, og den populære multiplayer spillet World of Goo kan bruke MPX å aktivere samtidig spille. Det var en dedikert stående maleri program som heter mpx-maling vert på GitHub, men utvikleren konto ser ut til å ha stengt ned.

Mainstreams søknader har vært tregere til å plukke opp på MPX støtte. Inkscape er en sannsynlig kandidat, hvor manipulere to eller flere kontrollpunkter på en gang vil åpne opp nye muligheter. Utvikler Jon Cruz sier at det er " på den korte listen " sammen med Inkscape voksende støtte for inndataeiningar. Når programmet fullfører sin port til GTK + 3, vil MPX support følge.

Blender har også diskutert MPX, men så langt prosjektets hovedfokus har vært på seks-akse 3D-kontrollere (som er forståelig nok en høyere prioritet). Men for bredere adopsjon må vi kanskje vente. Hutterer selv jobbet på å bringe MPX støtte til Compiz vindusbehandleren, men sa at den virkelige stikke punktet er å takle " uløste spørsmål " om vinduet ledelse – som er noe skrivebordsmiljøet må takle. Heldigvis, den siste X.org utgivelsen inkluderer multi-touch-støtte – en relatert teknologi nyttig for gester. Som Linux på tabletter fortsetter å vokse, gester blitt et stadig mer etterspurt alternativ. Som programmer er tilpasset for å støtte multi-touch-bevegelser, bør MPX støtte vokse også.

Implikasjonene er interessant for en rekke oppgaver, blant annet spill og kreative programmer allerede diskutert. Når du kaster i muligheten for flere tastaturer, mulighetene bli enda bredere. Tross alt, takket være nettverks klar tekst redaktører som Gobby og Etherpad, vi får mer komfortabel med flere redigeringspunktene i våre dokument redaktører. Forestill deg hva du kan gjøre med en IDE som tillater deg å redigere koden i ett vindu mens du samhandlet med runtime samtidig. I kan være vanskelig å forstå implikasjonene – men du trenger ikke å drømme dem opp; med MPX kan du eksperimentere i dag. Anmeldelser