Toetsenbindingen

Hoe toetsenbindingen gebruikt

Inleiding
gebruikt *.keytab bestanden om toetscombinaties te vertalen in besturingstekens en escape sequences die verzonden worden naar de shell of naar interactieve programma's (typisch programma's die de Alternate Screen-buffer gebruiken, ⪚ vim, less, screen) die draaien in de shell.
Gebruikers kunnen de instellingen voor bindingen van toetsen aanpassen in door de toetsenbindingenbewerker te gebruiken. Een toetscombinatie kan geconfigureerd worden om een specifieke control of escape sequence naar de terminal te sturen.
U kunt de toetsenbindingenbewerker openen vanuit het menu-item Instellingen Huidig profiel bewerken en gaan naar het tabblad Toetsenbord. Hier zijn in een lijst de schema's van toetsenbindingen die met meekomen.

Toetscombinaties en modi
Toetscombinaties volgen het patroon:

Toets (+|-) modi

bijvoorbeeld:

Up+Shift+AppScreen
Down+Shift-AppScreen
Space+Ctrl

Toetsnamen zijn gedefinieerd in het bestand qnamespace.h header, met het voorvoegsel Qt::Key_ verwijderd, voor een lijst met toetsnamen bekijk de opsomming Qt::Key in de -documentatie.
Een + die aan een modusnaam vooraf gaat betekent dat modus is ingesteld; voor een modificatietoets, wat betekent dat het is ingedrukt, terwijl voor alle andere modi het betekent dat een specifieke modus actief is. Bijvoorbeeld +Ctrl dat de toestcombinatie alleen zal werken als de -toets is ingedrukt.
Een - die aan een modusnaam vooraf gaat betekent dat modus is gereset; in de basis betekent dit het tegenovergestelde van + vooraf aan een modusnaam, dus voor een modificatietoets betekent dat de toets niet is ingedrukt, terwijl voor alle andere modi het betekent dat de specifieke modus inactief is. Bijvoorbeeld -Ctrl betekent dat de toetscombinatie alleen zal werken als de -toets niet is ingedrukt.
Als een modusnaam niet aanwezig is in een toetscombinatie, wordt zijn status genegeerd.
De ondersteunde toetsenbindingsmodi staan hieronder in een lijst:
Alt, Ctrl, Shift 	 Eén of meer van deze modi kunnen gebruikt worden in een toetscombinatie, als elk van hen is gezet, gebruikt de toetscombinatie die modificatietoets, respectievelijk; en omgekeerd als het een reset is
AnyModifier 	 Als deze modus is gezet gebruikt de toetscombinatie elke modificatietoets (elk van de vorige drie modificatietoetsen); en omgekeerd als het een reset is
Ansi 	 Als deze modus is gezet zal ANSI escape- en controlsequences verzenden
Als deze modus gereset is zal VT52 escape en control sequences verzenden
AppScreen 	 Als deze modus is ingesteld zal de toetscombinatie alleen interactieve programma's beïnvloeden die de Alternate Screen-buffer gebruiken
Als deze modus is gereset zal de toetscombinatie alleen de terminal beïnvloeden wanneer het de normale schermbuffer gebruikt
maakt gebruik van twee schermbuffers:
De normale schermbuffer (standaard): stelt u in staat om terug te schuiven om vorige regels uitvoer te bekijken, dit is de standaard buffer die u gewoonlijk gebruikt om commando's uit te voeren...
De Alternate Screen-buffer: de terminal schakelt naar deze buffer wanneer u een interactief programma (⪚ less, vim, screen, tmux... ) gebruikt
Toetsenbordje 	 Als deze modus is ingesteld gebruikt de toetscombinatie een toets op het toetsenbordje (Nummertoetsenbordje). Deze modus is nuttig om te onderscheid te maken tussen toetsen op het toetsenbord en toetsen op het toetsenbordje. Wanneer bijvoorbeeld Num Lock aan is kunt u twee aparte toestcombinaties configureren, een die de toets met label 1 op het toetsenbord heeft (gewoonlijk onder de toets F1) en de ander die de toets met label 1 heeft op het toetsenbordje. Hetzelfde concept is van toepassing wanneer Num Lock is uit voor de toetsen End, Home, pijltjestoetsen ...etc oo het toetsenbordje
AppCursorKeys 	 Deze modus implementeert de VT100 Cursor Keys Mode (DECCKM). Het bestuurt de escape sequences die elke Cursor-toets (Omhoog, Omlaag, Rechts, Links) verstuurt, afhankelijk van of deze modus is gezet of gereset
Standaard volgt het XTerm-gedrag voor behandeling van de toetsen Home en End als cursor-toetsen met betrekking op DECCKM
AppKeyPad 	 Als deze modus is gezet zal de toetscombinatie alleen werken wanneer het toetsenbordje zich in Application Modus (DECKPAM) bevindt
Als deze modus gereset is zal de toetscombinatie alleen werken wanneer het toetsenbordje in numerieke modus (DECKPNM) is
Nieuwe regel 	 Als deze modus is gezet zal de toets Return (Enter) op het toetsenbord zowel Carriage Return "\r" als New Line "\n" stuurtekens verzenden
Als deze modus is gereset zal de toets Return alleen een Carriage Return "\r" verzenden
Hetzelfde is van toepassing op de toets Enter op het toetsenbordje
Deze modus emuleert de LNM - Line Feed/New Line Mode
Merk op dat elke combinatie van Toets en Modi (gezet/gereset) uniek moet zijn. Bekijk de volgende twee regels:
A+Shift : A
a : a
zal de kleine letter a regel niet accepteren, u moet een -Shift aan die regel toevoegen om deze te laten werken.

Het uitvoerveld
In het uitvoerveld kunt u de escape sequences of control tekens toevoegen die u wilt dat naar de terminal verzend wanneer de bijbehorende toetscombinatie wordt ingedrukt.
U kunt ook elke van de volgende sleutelwoorden gebruiken, elk van dezen heeft een speciale betekenis in :
scrollUpLine : schuif één regel omhoog in de schuifbuffer van de shell-geschiedenis
scrollUpPage : schuif één pagina omhoog in de schuifbuffer van de shell-geschiedenis
scrollDownLine : schuif één regel omlaag in de schuifbuffer van de shell-geschiedenis
scrollDownPage : schuif één pagina omlaag in de schuifbuffer van de shell-geschiedenis
scrollUpToTop : schuif omhoog naar het begin van de schuifbuffer van de shell-geschiedenis
scrollDownToBottom : schuif omlaag naar het eind van de schuifbuffer van de shell-geschiedenis
U kunt ook tekenreeksen gebruiken met C-string syntaxis; U zou de volgende escapes sequences kunnen gebruiken:
\E : Escape
\\ : Backslash
\" : Aanhalingsteken
\t : Tab
\r : Carriage Return
\n : Nieuwe-regel
\b : Backspace
\xHH : waar HH twee hex-tekens zijn
Dit kan gebruikt worden om control-tekens te verzenden, ⪚ \x00 wat het NUL-teken is

Andere systeembronnen
Er zijn andere systeembronnen die toetsenbindingen kunnen beïnvloeden:
Kijk ook in de database terminfo of termcap voor de verwachte escape sequences en control tekens die elke toetscombinatie verondersteld wordt te verzenden.
Het is waarschijnlijk dat uw systeem andere toetsenborddatabases heeft die ook gesynchroniseerd moeten worden, (⪚ /etc/inputrc en readline voor de BASH-shell) omdat ze de werking (interacties) binden aan toetscombinaties.

Verdere leesstof
Voor meer informatie over escape sequences en control tekens, bekijk de volgende documentatie:
De VT100 gebruikersgids
De VT102 gebruikersgids
De uitgebreide en onmisbare documentatie XTerm Control Sequences