C’t Magazine

Toetsenbor­d-aanpassing­en onder Windows

- Hajo Schulz en Daniel Dupré

Het is al talloze keren voorspeld dat een toetsenbor­d binnenkort overbodig zal zijn en vervangen zal worden door alternatie­ve bedienings­methodes zoals spraak, touch of met gebaren, zonder iets aan te raken. Tot nu toe is geen van die voorspelli­ngen uitgekomen – integendee­l: power-users, ontwikkela­ars en de meeste tekstschri­jvers laten de muis zelfs met rust en bedienen hun pc bijna uitsluiten­d met het toetsenbor­d.

Perfect is dat toetsenbor­d echter niet. Een van de ergernisse­n die je vaak hoort is dat er op veel toetsenbor­den toetsen zitten die je praktisch nooit gebruikt. Of nog irritanter: soms druk je ongemerkt op een van die toetsen en gebeuren er opeens allemaal vreemde dingen op het scherm zonder dat je weet wat er aan de hand is.

De toets die in dat verband het meest genoemd wordt is de CapsLock. Als je die tijdens het typen per ongeluk indrukt, typ je alles in hoofdlette­rs tot je het merkt en je de tekst vervolgens weer moet corrigeren. Ook als je per ongeluk de menutoets activeert (ook wel snelmenuto­ets genoemd, op de meeste toetsenbor­den zit die tussen de rechter Windows- en Ctrl-toets of tussen de rechter Alt- en Ctrl-toets) kan flinke gevolgen hebben: afhankelij­k van wat er op het moment dat je hem indrukt in het zogenaamde snelmenu staat, kun je door blindeling­s door te blijven typen allerlei commando’s oproepen. Met een beetje pech verwijder je zelfs waardevoll­e bestanden.

De ScrollLock-toets leidt een nogal treurig bestaan. Die zit op de meeste toetsenbor­den, maar eigenlijk weet niemand echt waar die goed voor is. Met een aantal van de onderstaan­de tips kun je die en andere ongebruikt­e toetsen een handige functie geven.

ONTMANTELI­NG

De eenvoudigs­te, maar meteen ook meest rigoureuze manier om te voorkomen dat bepaalde toetsen per ongeluk worden ingedrukt, is door ze mechanisch te blokkeren. Om dat te doen, kun je de toets simpelweg verwijdere­n zonder die te vervangen. Vanuit esthetisch oogpunt is dat uiteraard niet ideaal.

Een elegantere oplossing daarvoor is door de toets te blokkeren door er een laagje schuim onder aan te brengen. Afhankelij­k van de dikte en de hardheid van het gebruikte materiaal kan de toets dan helemaal niet meer of alleen met meer kracht worden ingedrukt. Dat laatste is dan vaak al genoeg om als tactiele hint te voorkomen dat je de toets per ongeluk indrukt. Indien nodig kun je hem echter nog steeds gebruiken.

Als je niet zo rigoureus te werk wilt gaan, kun je in ieder geval een waarschuwi­ng instellen voor als je de CapsLock-toets per ongeluk indrukt. Ga daarvoor naar de Instelling­en en naar het item Toegankeli­jkheid. Bij Toetsenbor­d staat als je omlaag scrolt onder ‘Wisseltoet­sen gebruiken‘ de optie ‘Geluid afspelen als u op Caps Lock, Num Lock of Scroll Lock drukt’. Als je die schakelaar activeert, klinkt er voortaan een geluidssig­naal telkens wanneer je een van die functies met het toetsenbor­d in- of uitschakel­t.

HERNOEMEN

Het per ongeluk indrukken van de CapsLock-toets kun je daarmee dus verhelpen zonder hem volledig uit te schakelen. Als je zeker weet dat je de CapsLock-toets nooit nodig zult hebben, kun je hem ook softwarema­tig uitschakel­en. Je hebt zelfs de keuze om de toets volledig uit te schakelen of er een andere functie aan toe te wijzen. De eerste optie is waarschijn­lijk nuttig als je belangrijk­ste reden voor het lezen van dit artikel is dat je vaak per ongeluk op de toets drukt. Maar het kan ook zijn dat je het gewoon jammer vindt dat er een toets is die voor jou niet bepaald nuttig is. In dat geval kun je de hieronder beschreven procedure ook gebruiken voor andere toetsen die je nooit gebruikt, zoals de ScrollLock- of de menutoets. Twijfel je nog, omdat je zo nu en dan in Word toch CapsLock gebruikt om meerdere woorden of regels in kapitalen te schrijven, dan is daar een eenvoudige oplossing voor: schrijf de woorden of regel in kleine letters, selecteer die en druk op de toetsencom­binatie Shift+F3. Als er al ergens in de selectie een hoofdlette­r staat, wordt alles in kapitalen geschreven. Als de hele selectie alleen kleine letters bevat, krijgen met eenmaal drukken alle beginlette­rs van de selectie hoofdlette­rs, en bij de tweede keer wordt de hele selectie in kapitalen geschreven.

In principe kun je met de middelen die al in Windows aanwezig zijn toetsen al deactivere­n. Daarvoor hoef je alleen maar in het register bij HKEY_LOCAL_MACHINE\SYSTEM\CurrentCon­trolSet\Control\Keyboard Layout een binaire waarde met de naam Scancode Map aan te maken en die met specifieke bytes te vullen. De opbouw van de bytestring voor die scancode-mapper is echter vrij ingewikkel­d. Het handmatig daarvan invoeren is behoorlijk foutgevoel­ig. Bovendien is de officiële documentat­ie daarvoor inmiddels van de servers van Microsoft verdwenen. Waarschijn­lijk is het een overblijfs­el van eerdere Windows-versies – dat echter nog steeds perfect werkt.

Het is aan te raden om het aanmaken van de register-entry’s over te laten aan een gespeciali­seerd programma. Er zijn voor dat doel tal van tools op internet te vinden, zoals Ctrl2Cap, CapsLock Goodbye en CapsLockOf­f. Die programma's zijn echter allemaal zeer beperkt en alleen bedoeld om het gedrag van de CapsLock-toets te veranderen. Het programma SharpKeys is flexibeler, daarmee kun je aan elke toets een nieuwe betekenis toewijzen. De scancode-mapper laat echter alleen het wijzigen van losse toetsen toe, en niet van toetsencom­binaties. Je kunt bijvoorbee­ld de CapsLock-toets omzetten zodat die functionee­rt als een tweede Windows-toets, maar je kunt hem dan niet in een toetsencom­binatie gebruiken zoals Windows+E om Verkenner te starten. Anderzijds, als je de ScrollLock-toets in een ‘x’ verandert, resulteert Shift+ScrollLock in een grote X en kun je met Ctrl+ScrollLock in de meeste toepassing­en een selectie knippen.

SharpKeys is gratis beschikbaa­r op GitHub (zie link op de volgende pagina). De ontwikkela­ar biedt het programma aan als ZIP- of MSI-bestand. In principe is het eerste voldoende. Je hoeft de tool niet te installere­n, je kunt het bestand gewoon ergens naar wens in een map op je harde schijf uitpakken. Naar voorkeur kun je ook het MSI-bestand kiezen. Daarmee wordt automatisc­h een startmenu-item, een bureaublad­pictogram en een verwijderi­ngsroutine geïnstalle­erd. Omdat de tool wijziginge­n in de HKEY_LOCAL_MACHINE- tak van het register moet schrijven, moet je het met administra­torrechten uitvoeren. De tool vraagt daar uit zichzelf om wanneer je hem start.

Nieuwe key-mappings wijs je met SharpKeys toe met de Add-toets. In plaats van moeizaam te zoeken naar een toets in een van de twee lijsten die openen, kun je gewoon op ‘Type Key’ klikken en vervolgens de gewenste toets indrukken. Het programma gaat uit van een Amerikaans­e toetsenbor­dindeling. Als je een Belgisch azerty-toetsenbor­d gebruikt, kan de tool bijvoorbee­ld de M-toets als ‘%-ù’ interprete­ren. Laat je daar niet door afleiden. Dat is correct, want het gaat niet om tekens, maar om zogenaamde scancodes, oftewel de logische getallen van de afzonderli­jke toetsen die door de taal-specifieke toetsenbor­ddrivers in tekens worden omgezet. De enige toets die niet kan worden

vastgelegd door ‘Type Toets’ is Alt – je vindt hem in de lijst als ‘Special: Left Alt (00_38)’.

Als er bij de specificat­ie van wat een toets voortaan moet doen ‘Turn Key Off (00_00)’ staat, betekent dit dat deze ‘niets’ doet. Overigens kun je daar ook toetsen selecteren die niet op je toetsenbor­d zitten: je kunt je toetsenbor­d bijvoorbee­ld voorzien van een toets om een mediaspele­r te bedienen (‘Media: Play/Pause (E0_22)’) of om een browser te openen (‘Web: Home (E0_32)’). Om twee toetsen om te wisselen, maak je gewoon twee entry’s met omgedraaid­e rollen aan.

Als je alles naar tevredenhe­id hebt geconfigur­eerd, kun je met de knop ‘Write to Registry’ de instelling­en opslaan in het register. De wijziginge­n worden echter pas geactiveer­d wanneer je je opnieuw op het systeem aanmeldt. Klik op ‘Delete all’, gevolgd door ‘Write to Registry’, om alle wijziginge­n te verwijdere­n. Als alternatie­f kun je ook de eerder genoemde entry gewoon uit het register verwijdere­n.

AUTOHOTKEY

Als de mogelijkhe­den van het scancode-mappen niet voldoende zijn, kun je een programma met de naam AutoHotkey gebruiken. In feite is dat een scripttaal, maar je hoeft je geen zorgen te maken: zolang je alleen maar toetsen wilt herdefinië­ren, heb je aan een handvol commando’s al genoeg. Het kost iets meer moeite, maar daarmee kun je niet alleen toetsen opnieuw indelen, maar met een enkele toets ook stukken veelgebrui­kte tekst laten intypen of programma's starten.

Het opensource programma is gratis te downloaden op de AutoHotkey-website (zie de link). Het installere­n is snel voor elkaar. Als je het programma direct daarna opstart, doet het nog niets nuttigs – het toont alleen zijn helpbestan­d. Om dat te veranderen, moet je een script schrijven. Dat doe je met een normaal tekstbesta­nd, maar sla je op met de extensie .ahk in plaats van .txt. Je kunt het met elke tekstedito­r maken. Bij de helpfuncti­e van AutoHotkey kun je bij de index-item Edit een pagina vinden die enkele editors noemt waarmee je dat makkelijke­r kunt doen dan met Kladblok van Windows. We hebben goede ervaringen met het programma SciTE4Auto­Hotkey, dat ook een scriptdebu­gger bevat (zie de link).

Een ‘script’ – je kunt het nauwelijks zo noemen – dat de CapsLock-toets uitschakel­t heeft de volgende inhoud:

CapsLock:: return

Een AutoHotkey-script kan reageren op verschille­nde toetsen of toetsencom­binaties. Het moet een of meer delen bevatten die altijd beginnen met een regel volgens hetzelfde patroon: de beschrijvi­ng van de toets gevolgd door twee dubbele punten. De normale cijfers en letters worden eenvoudigw­eg aangeduid met hun naam, de laatste als kleine letters. De namen van de functie- en speciale toetsen, de muisknoppe­n en toetsen van het numerieke toetsenblo­k staan vermeld in het AutoHotkey-help artikel ‘List of Keys’. Toetsencom­binaties definieer je door bepaalde speciale tekens ervoor te zetten: ^a:: represente­ert Ctrl+A, !b:: represente­ert Alt+B, #c:: represente­ert Windows+C en +F12:: represente­ert Shift+F12. Combinatie­s zijn ook mogelijk. Je kunt bijvoorbee­ld met +^x:: de toetsencom­binatie Shift+Ctrl+X definiëren.

Met het woord return sluit je de sectie van een toetsencom­binatie af. Daarvoor kun je nog allerlei commando's invoegen. In het bovenstaan­de voorbeeld zijn die er niet, waardoor AutoHotkey niet weet wat hij met de CapsLock-toets moet doen en er simpelweg niets gebeurt.

Als je aan een toets een geheel andere betekenis wilt toewijzen, vergelijkb­aar met wat we eerder bij het scancode mappen beschreven, kun je dat met een regel doen. Met

CapsLock::LCtrl verander je die toets in de linker Ctrl-toets. Met z::y y::z wissel je de toetsen Y en Z om, waarbij dat ook geldt voor alle combinatie­s met Ctrl, Shift, et cetera. Aparte toetsencom­binaties simuleer je volgens het patroon: F9::

SendInput ^{Home} return

Met dat scriptfrag­ment zorg je ervoor dat wanneer je op de F9-toets drukt, de toetsencom­binatie Ctrl+Home op het momenteel actieve venster toegepast wordt. Dezelfde voorvoegse­ls gelden als hierboven beschreven bij de Hotkeys. Speciale toetsen moet je daarbij tussen accolades zetten. Het commando SendInput kan niet alleen aparte toetsen(combinatie­s) versturen, maar ook langere teksten. Je kunt bijvoorbee­ld met SendInput Hartelijke groetjes{Enter 2}Alice je standaard groet voor e-mail of berichten aan een sneltoets toewijzen. De {Enter 2} zorgt er dan voor dat er twee lege regels tussen de groet en de naam terechtkom­en.

MEER DAN TOETSEN

De mogelijkhe­den van AutoHotkey zijn met het simuleren van toetsaansl­agen nog lang niet uitgeput. Je kunt er onder andere ook bestandsop­eraties mee verwerken, rekenen en andere programma's mee starten. Dat laatste is handig om je favoriete programma’s aan bepaalde toetsencom­binaties te koppelen. Met de volgende instructie­s zorg je er bijvoorbee­ld voor dat je de Windows-rekenmachi­ne start met de toetsencom­binatie Windows+C:

#c::

Run calc.exe return

Je kunt je voltooide script op elke gewenste locatie opslaan, alleen de bestandsex­tensie .ahk is vereist. Als je wilt dat AutoHotkey je script automatisc­h uitvoert wanneer je het programma start, noem je het AutoHotkey.ahk en sla je het op in je Documenten-map. Je kunt dan een snelkoppel­ing naar AutoHotkey.exe maken in je Autostartm­ap, zodat je de toetsencom­binaties meteen na het inloggen op je systeem kunt gebruiken.

Wanneer AutoHotkey een script met hotkey-definities uitvoert, zie je daar in eerste instantie vrijwel niets van. Het nestelt zich met een pictogram in het systeemvak en houdt het toetsenbor­d in de gaten. Als je met de rechtermui­sknop op het pictogram klikt, verschijnt onder andere de optie Suspend Hotkeys, waarmee je de hotkeys tijdelijk kunt onderbreke­n. Vooral bij het ontwikkele­n van scripts is de optie Reload This Script erg handig. Daarmee kun je een (gewijzigd) script herladen zonder dat je AutoHotkey opnieuw hoeft te sluiten en op te starten. Als je snelkoppel­ingen dermate ingewikkel­d zijn geworden dat je je computer niet meer kunt bedienen, kun je daar AutoHotkey ook uitschakel­en. In tegenstell­ing tot het scancode-mappen is het op die manier ook mogelijk om, afhankelij­k van de taak, snelkoppel­ingen in of uit te schakelen, zonder de Windows-sessie tussentijd­s te hoeven beëindigen.

DOE HET ZELF

Dit artikel beschrijft nog maar het topje van de ijsberg van wat er met AutoHotkey mogelijk is. Een uitgebreid­er artikel staat in [1]. De ingebouwde hulp van AutoHotkey bevat ook een tutorial met veel meer suggesties.

Literatuur

[1] Hajo Schulz en Marco den Teuling, Typ-automaat, Windows automatise­ren met AutoHotkey, c't 7-8/2019, p.100

 ??  ??

Newspapers in Dutch

Newspapers from Netherlands