Hacking Linux Keyboard med xkb

Den ydmyke maskinens tastatur støtter flere språk, oppsett og egendefinerte hurtigtaster, og Linux har verktøy til å hotrod det til hjertet ditt innhold.

Forskjellen mellom skrivemaskin og datamaskin tastatur er tastaturet er programmerbare. To forskjellige systemer kontrollerer keyboard input i Linux. Kjernen klarer konsollen keyboard input, og i X det er administrert av xkb, X Keyboard. pakka xkb kontroller keymapping, tastatur modeller, og oppsett. I dag skal vi lærte å lage tilpasninger med aksje xkb konfigurasjon. Messing med tastatur hacking er vanedannende, så i noen få uker vil vi se på å gjøre våre egne tilpasninger.

Tastatur og Wheels

Inntil strålende dag snakker datamaskiner kommer, og etter at jeg mener enkelt og universell stemmegjenkjenning og god tale å erstatte de rinky-Eagle hacks vi har nå som ikke har avansert siden tidlig på 2000-tallet, er vår viktigste grensesnittet med datamaskiner tastaturet. Tenk på dette for et øyeblikk. Tastaturet, nedstammet fra skrivemaskin. Konseptet med skrivemaskinen går tilbake til 1700-tallet, og kanskje enda lenger tilbake i tid. Skrivemaskiner har vært i tjeneste siden 1800-tallet. Gammel teknologi er ikke nødvendigvis dårlig teknologi; tross alt, vi fortsatt bruke rattet, og Linux er en libre Unix variant. Filosofiske digresjoner til side, god touch-skrive ferdigheter er fortsatt viktig å bruke en datamaskin.


Hvis du jobber på datamaskinen mye, en fin tastatur saker. Du kan få en anstendig gummi-dome tastatur for måten billig i disse dager. Du kan også få en fin mekanisk tastatur for ikke mye mer penger. En mekanisk tastatur har lett-utskiftbare taster og brytere, og alternativer for nøkkelbryter med ulik respons og clickiness. Mitt tastatur er en Cooler Master Storm Quickfire Rapid Tenkeyless Mechanical Keyboard med Cherry Brown brytere (figur 1). Som er et langt navn for et kompakt tastatur. Det koster under $ 100, og du har ditt valg av blå, brune, røde eller grønne Cherry MX brytere. Fargene representerer ulike nivåer av taktile og clicky tilbakemeldinger.

Røde brytere har et lavt aktiveringsnivå, slik at de er raske og responsive med en lett berøring, og de er stille. Disse er markedsført som gaming brytere.

Blå brytere er litt stivere enn røde brytere, og lage høye clickies.

Brune brytere er fin og taktile, ta en lett berøring, og er ganske stille, men du fortsatt få god clicky tilbakemeldinger.

Grønne bryterne er stiv og høyt. Noen produsenter bruker disse for taster som spacebars og Tilbake tastene.

Mekaniske tastaturer varierer i pris fra rundt $ 80 til flere hundre dollar. De varer evig, og noen leverandører tilbyr tilpasninger slik at du kan ha dem akkurat slik du ønsker.

Making Caps Lock Obey

Den beryktede Caps Lock-tasten er en pålitelig kilde til sorg, selv til fabelaktig touch-typists som meg. Min venstre lillefinger er min svakeste og mest villfarne finger, og det noen ganger presser Caps Lock i stedet for A-tasten. Emery Fletcher viste oss hvordan å temme den med xmodmap. Vi kommer til å bruke xkb. xmodmap er greit for enkle tilpasninger; xkb gir oss gode tastatur-hacking krefter.

Noen ganger har jeg behov for Caps Lock, så jeg ønsker ikke å deaktivere den helt. Så første jeg deaktivere det, og deretter slå begge Shift-tastene for å slå Caps Lock av og på. Min pinky kan pund Caps Lock alt den ønsker å, og ingenting vil skje. Brilliant, ja? Prøv det med setxkbmap kommando først. Dette er flott for testing, da den ikke overleve reboots:

 $ setxkbmap -Mulighet "caps: none" $ setxkbmap -Mulighet "shift: both_capslock" 

Nå trykke Caps Lock gjør ingenting, og trykke på begge Skift-tastene veksler Caps Lock, noe jeg ikke er sannsynlig å gjøre et uhell. Hurra! Vi har erobret Caps Lock og bøyde den til vår vilje. Nå hvordan du gjør disse innstillingene vedvarende? Ved å skape den /etc/X11/xorg.conf.d/10-keyboard.conf fil (/usr/share/X11/xorg.conf.d/10-keyboard.conf for Debian /Ubuntu-brukere), og legge inn våre tilpasninger i det. Dette er hva min ser slik ut:

 Section "InputClass" Identifier "system-tastatur" MatchIsKeyboard "på" Option "XkbLayout" "oss" Option "XkbModel" "PC104" Option "XkbOptions" "shift: both_capslock, caps: none "EndSection 

skift. both_capslock må komme først, eller ingenting vil skje

Option" XkbLayout "er din landskode. Option "XkbModel" velger tastaturmodell. xkb inkluderer oppsett for en rekke tastaturmodeller som Dell, Logitech, Apple og HP. Les mann xkeyboard-config for å se alle dine konfigurasjonsmuligheter, inkludert landskode, tastaturmodeller, oppsett, og viktige kartlegginger.

Killing X

ctrl + alt + backspace er den tradisjonelle tastetrykk kombinasjonen til stoppe X server, men en rekke distroer (hovedsakelig Ubuntu og dets derivater) har deaktivert det. Fordi vi dumme brukere kan gjøre noe forferdelig med det, antar jeg. Det er ikke den beste måten å stoppe X, så bruk den når ingenting annet fungerer. Jeg satte den tilbake på min Kubuntu system ved å legge det til Alternativ linje i the10-keyboard.conf fil. Dette må være på én linje:

 Option "XkbOptions" "opphøre: ctrl_alt_bksp, skift: both_capslock, caps: none" 

Avslutt din X økten og logge inn igjen for å aktivere endringene. Bekreft ved å teste dem, og setxkbmap viser innstillingene:

 $ setxkbmap -queryrules: evdevmodel: pc104layout: usoptions: Avslutt: ctrl_alt_bksp, skift: both_capslock, caps: none 

evdev er kjernen innspill driver. Du kan slette alle dine alternativer, inkludert de du har lagt til 10-keyboard.conf fil, ved å kjøre setxkbmap med en tom alternativ sett:

 $ setxkbmap -Mulighet "" 

Dette er nyttig mens du tester. Logge ut av X /logge inn igjen setter alternativene tilbake. Eller du kan bruke setxkbmap igjen:

 $ setxkbmap -Mulighet "opphøre: ctrl_alt_bksp, skift: both_capslock, caps: none" 
Making Caps Lock Nyttig

Kanskje du ikke vil at Caps Lock-tasten for å være ubrukelig. Du kan tilordne andre handlinger til det, for eksempel caps: swapescape. Dette bytter Caps Lock med ESC. Hvis du bruker Caps Lock mye, prøv caps: shift_nocancel, som deaktiverer Skift-tasten fra styrer Caps Lock. caps: shiftlock styrker alle nøkler til store bokstaver når Caps Lock trykkes. Den normale oppførsel er for Caps Lock å bare påvirke bokstavtastene, og ikke tall og tegnsettings. Du kan også overføre Caps Lock å opptre som Hyper, Super, eller slettetasten.

Tilpasninger

To flere gode tilpasninger du kan gjøre med xkb installerer og raskt bytte mellom flere oppsett, og gjør per bruker tilpasninger som ikke er i mennesket xkeyboard-config. Stay tuned for en fin how-to i nær fremtid.

Resources

man setxkbmap

man xkeyboard-config