Toetsenbord-aanpassingen onder Windows
Het is al talloze keren voorspeld dat een toetsenbord binnenkort overbodig zal zijn en vervangen zal worden door alternatieve bedieningsmethodes zoals spraak, touch of met gebaren, zonder iets aan te raken. Tot nu toe is geen van die voorspellingen uitgekomen – integendeel: power-users, ontwikkelaars en de meeste tekstschrijvers laten de muis zelfs met rust en bedienen hun pc bijna uitsluitend met het toetsenbord.
Perfect is dat toetsenbord echter niet. Een van de ergernissen die je vaak hoort is dat er op veel toetsenborden 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 hoofdletters tot je het merkt en je de tekst vervolgens weer moet corrigeren. Ook als je per ongeluk de menutoets activeert (ook wel snelmenutoets genoemd, op de meeste toetsenborden zit die tussen de rechter Windows- en Ctrl-toets of tussen de rechter Alt- en Ctrl-toets) kan flinke gevolgen hebben: afhankelijk van wat er op het moment dat je hem indrukt in het zogenaamde snelmenu staat, kun je door blindelings door te blijven typen allerlei commando’s oproepen. Met een beetje pech verwijder je zelfs waardevolle bestanden.
De ScrollLock-toets leidt een nogal treurig bestaan. Die zit op de meeste toetsenborden, maar eigenlijk weet niemand echt waar die goed voor is. Met een aantal van de onderstaande tips kun je die en andere ongebruikte toetsen een handige functie geven.
ONTMANTELING
De eenvoudigste, 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 verwijderen 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. Afhankelijk 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 waarschuwing instellen voor als je de CapsLock-toets per ongeluk indrukt. Ga daarvoor naar de Instellingen en naar het item Toegankelijkheid. Bij Toetsenbord staat als je omlaag scrolt onder ‘Wisseltoetsen 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 geluidssignaal telkens wanneer je een van die functies met het toetsenbord in- of uitschakelt.
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 softwarematig uitschakelen. 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 waarschijnlijk nuttig als je belangrijkste 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 toetsencombinatie Shift+F3. Als er al ergens in de selectie een hoofdletter staat, wordt alles in kapitalen geschreven. Als de hele selectie alleen kleine letters bevat, krijgen met eenmaal drukken alle beginletters van de selectie hoofdletters, 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 deactiveren. Daarvoor hoef je alleen maar in het register bij HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\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 ingewikkeld. Het handmatig daarvan invoeren is behoorlijk foutgevoelig. Bovendien is de officiële documentatie daarvoor inmiddels van de servers van Microsoft verdwenen. Waarschijnlijk is het een overblijfsel 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 gespecialiseerd programma. Er zijn voor dat doel tal van tools op internet te vinden, zoals Ctrl2Cap, CapsLock Goodbye en CapsLockOff. 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 toetsencombinaties. Je kunt bijvoorbeeld de CapsLock-toets omzetten zodat die functioneert als een tweede Windows-toets, maar je kunt hem dan niet in een toetsencombinatie 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 toepassingen een selectie knippen.
SharpKeys is gratis beschikbaar op GitHub (zie link op de volgende pagina). De ontwikkelaar biedt het programma aan als ZIP- of MSI-bestand. In principe is het eerste voldoende. Je hoeft de tool niet te installeren, 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 automatisch een startmenu-item, een bureaubladpictogram en een verwijderingsroutine geïnstalleerd. Omdat de tool wijzigingen in de HKEY_LOCAL_MACHINE- tak van het register moet schrijven, moet je het met administratorrechten 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 Amerikaanse toetsenbordindeling. Als je een Belgisch azerty-toetsenbord gebruikt, kan de tool bijvoorbeeld de M-toets als ‘%-ù’ interpreteren. 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 afzonderlijke toetsen die door de taal-specifieke toetsenborddrivers 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 specificatie 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 toetsenbord zitten: je kunt je toetsenbord bijvoorbeeld voorzien van een toets om een mediaspeler 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 omgedraaide rollen aan.
Als je alles naar tevredenheid hebt geconfigureerd, kun je met de knop ‘Write to Registry’ de instellingen opslaan in het register. De wijzigingen worden echter pas geactiveerd wanneer je je opnieuw op het systeem aanmeldt. Klik op ‘Delete all’, gevolgd door ‘Write to Registry’, om alle wijzigingen te verwijderen. Als alternatief kun je ook de eerder genoemde entry gewoon uit het register verwijderen.
AUTOHOTKEY
Als de mogelijkheden 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 veelgebruikte tekst laten intypen of programma's starten.
Het opensource programma is gratis te downloaden op de AutoHotkey-website (zie de link). Het installeren is snel voor elkaar. Als je het programma direct daarna opstart, doet het nog niets nuttigs – het toont alleen zijn helpbestand. Om dat te veranderen, moet je een script schrijven. Dat doe je met een normaal tekstbestand, maar sla je op met de extensie .ahk in plaats van .txt. Je kunt het met elke teksteditor maken. Bij de helpfunctie van AutoHotkey kun je bij de index-item Edit een pagina vinden die enkele editors noemt waarmee je dat makkelijker kunt doen dan met Kladblok van Windows. We hebben goede ervaringen met het programma SciTE4AutoHotkey, dat ook een scriptdebugger bevat (zie de link).
Een ‘script’ – je kunt het nauwelijks zo noemen – dat de CapsLock-toets uitschakelt heeft de volgende inhoud:
CapsLock:: return
Een AutoHotkey-script kan reageren op verschillende toetsen of toetsencombinaties. Het moet een of meer delen bevatten die altijd beginnen met een regel volgens hetzelfde patroon: de beschrijving van de toets gevolgd door twee dubbele punten. De normale cijfers en letters worden eenvoudigweg aangeduid met hun naam, de laatste als kleine letters. De namen van de functie- en speciale toetsen, de muisknoppen en toetsen van het numerieke toetsenblok staan vermeld in het AutoHotkey-help artikel ‘List of Keys’. Toetsencombinaties definieer je door bepaalde speciale tekens ervoor te zetten: ^a:: representeert Ctrl+A, !b:: representeert Alt+B, #c:: representeert Windows+C en +F12:: representeert Shift+F12. Combinaties zijn ook mogelijk. Je kunt bijvoorbeeld met +^x:: de toetsencombinatie Shift+Ctrl+X definiëren.
Met het woord return sluit je de sectie van een toetsencombinatie af. Daarvoor kun je nog allerlei commando's invoegen. In het bovenstaande 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, vergelijkbaar 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 combinaties met Ctrl, Shift, et cetera. Aparte toetsencombinaties simuleer je volgens het patroon: F9::
SendInput ^{Home} return
Met dat scriptfragment zorg je ervoor dat wanneer je op de F9-toets drukt, de toetsencombinatie Ctrl+Home op het momenteel actieve venster toegepast wordt. Dezelfde voorvoegsels gelden als hierboven beschreven bij de Hotkeys. Speciale toetsen moet je daarbij tussen accolades zetten. Het commando SendInput kan niet alleen aparte toetsen(combinaties) versturen, maar ook langere teksten. Je kunt bijvoorbeeld 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 terechtkomen.
MEER DAN TOETSEN
De mogelijkheden van AutoHotkey zijn met het simuleren van toetsaanslagen nog lang niet uitgeput. Je kunt er onder andere ook bestandsoperaties mee verwerken, rekenen en andere programma's mee starten. Dat laatste is handig om je favoriete programma’s aan bepaalde toetsencombinaties te koppelen. Met de volgende instructies zorg je er bijvoorbeeld voor dat je de Windows-rekenmachine start met de toetsencombinatie Windows+C:
#c::
Run calc.exe return
Je kunt je voltooide script op elke gewenste locatie opslaan, alleen de bestandsextensie .ahk is vereist. Als je wilt dat AutoHotkey je script automatisch uitvoert wanneer je het programma start, noem je het AutoHotkey.ahk en sla je het op in je Documenten-map. Je kunt dan een snelkoppeling naar AutoHotkey.exe maken in je Autostartmap, zodat je de toetsencombinaties 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 toetsenbord in de gaten. Als je met de rechtermuisknop op het pictogram klikt, verschijnt onder andere de optie Suspend Hotkeys, waarmee je de hotkeys tijdelijk kunt onderbreken. Vooral bij het ontwikkelen 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 snelkoppelingen dermate ingewikkeld zijn geworden dat je je computer niet meer kunt bedienen, kun je daar AutoHotkey ook uitschakelen. In tegenstelling tot het scancode-mappen is het op die manier ook mogelijk om, afhankelijk van de taak, snelkoppelingen in of uit te schakelen, zonder de Windows-sessie tussentijds 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 uitgebreider 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 automatiseren met AutoHotkey, c't 7-8/2019, p.100