## Keyboard Shortcuts in Amaya

Keyboard shortcuts are useful to invoke menu commands directly from the keyboard. The Thot toolkit enables you accomplish this using application keyboard shortcuts files (one per paltform). These files define a list of associations between an invoked command and a keyboard sequence. They are located in the Amaya/config directory: `amaya.keyboard` (Linux), `amaya.kb` (Windows) and `amaya.kb-mac`

- List of default keyboard shortcuts for Linux
- List of default keyboard shortcuts for Windows
- List of default keyboard shortcuts for Mac OS X

These files can be modified to define your own shortcuts. The syntax used to define an association is:

`Directive = KeySeq ':' IdentCommand ;
KeysSeq = KeySet [ ',' KeySet ] ;
KeySet = [ Modifier ] [ 'Shift' ] Key ;
Key = '<Key>' KeyValue / '<Key>' SpecialKey ;
Modifier = 'Ctrl' / 'Alt' / 'Meta' ;
KeyValue = 'a' / 'b' / ... ;
SpecialKey = 'Escape' / 'Delete' / 'Space' / 'BackSpace' /
'Enter' / 'Up' / 'Down' / 'Left' / 'Right' /
'Home' / 'End' / 'F1' / ... / 'L1' / ... / 'R1' / ... ;
IdentCommand = 'TtcInsertChar(' Char ')' / NAME '()' ;
Char = KeyValue / OctalValue / Entity ;``
OctalValue = '\' NUMBER ;
Entity = DecEntity / HexaEntity ;
DecEntity = '&' '#' NUMBER ';' ;
HexaEntity = '&' '#' 'x' HEXADECIMAL ';' ;`

The list of available commands is (a more up to date list can be found in Amaya's sources : `Amaya/amaya/EDITOR.A`) :

- Moving commands:
  - Move character by character: `TtcNextChar`, `TtcPreviousChar`
  - Move word by word: `TtcNextWord`, `TtcPreviousWord`
  - Move to then beginning/end of the current line: `TtcStartOfLine`, `TtcEndOfLine`
  - Move line by line:`TtcNextLine`,`TtcPreviousLine`
  - Move element by element: `TtcNextElement`,`TtcPreviousElement`, `TtcChildElement`, `TtcParentElement`
  - Scroll from page to page: `TtcPageDown`, `TtcPageUp`,`TtcPageTop`,`TtcPageEnd`
  - Scroll one line up or one line down: `TtcLineUp`, `TtcLineDown`
- Selection extension commands:
  - Select character by character: `TtcNextSelChar`, `TtcPreviousSelChar`
  - Select word by word: `TtcNextSelWord`, `TtcPreviousSelWord`
  - Select to then beginning/end of the current line: `TtcStartOfLine`,`TtcSelStartOfLine`, `TtcSelEndOfLine`
  - Select line by line:`TtcNextSelLine`,`TtcPreviousSelLine`
- Follow a link or activate an HTML form element (menu, button, etc.): `DoAction`.
- Skip to the next (or the first if there is selection) link or HTML form element in the document: `NextLinkOrFormElement`.
- Skip to the previous link or HTML form element in the document: `PreviousLinkOrFormElement`.
- In File menu: `NewXHTML11`, `NewXHTMLTransitional`, `NewXHTMLStrict`, `NewXHTMLStrict`, `NewMathML`, `NewSVG`, `NewCss`, `NewTemplate`, `OpenDoc`, `Reload`, `GotoPreviousHTML`, `GotoNextHTML`, `GoToHome`, `SaveDocument`, `SaveDocumentAs`, `Synchronize`, `ShowLogFile`, `SetupAndPrint`, `PrintAs`, `CloseDocument`, `AmayaCloseTab`,`AmayaCloseWindow`, `AmayaClose`.
- In Edit menu: `TtcUndo`, `TtcRedo`, `TtcCutSelection`, `TtcCopySelection`, `TtcPaste`, `TtcDeleteSelection`, `SetBrowserEditor`, `TtcSearchText`, `SpellCheck`, `TransformType`, `ConfigAmaya`.
- In Types menus:
  - XHTML Menu: `ChangeTitle`, `CreateAddress` `CreateParagraph`, `CreateImage`, `CreateHorizontalRule`, `CreateBlockQuote`, `CreatePreformatted`, `CreateAddress`, `CreateDivision`, `CreateNOSCRIPT`, `CreateObject`, `CreateParameter`, `CreateIFrame`, `CreateBreak`,`MakeBook`, `CreateAreaRect`, `CreateAreaCircle`, `CreateAreaPoly`, `CreateForm`, `CreateFileInput`, `CreateImageInput`, `CreatePasswordInput`, `CreateHiddenInput`, `CreateLabel`, `CreateFieldset`, `CreateOptGroup`, `CreateToggle`, `CreateRadio`, `CreateOption`, `CreateTextInput`, `CreateTextArea`, `CreateSubmit`, `CreateReset`,`CreateHeading1`, `CreateHeading2`, `CreateHeading3`, `CreateHeading4`, `CreateHeading5`, `CreateHeading6``, CreateList`, `CreateNumberedList`, `CreateDefinitionList`, `CreateDefinitionTerm`, `CreateDefinitionDef`, `CreateObject`, `CreateParameter`
  - Table submenu: `CreateTable`, `CreateCaption`, `CreateTHead`, `CreateTBody`, `CreateTFoot`, `CreateRow`, `CreateDataCell`, `CreateHeadingCell`, `DeleteColumn`
  - In Structure submenu: `CreateBase`, `CreateMeta`, `CreateLinkInHead`, `CreateScript`, `CreateStyle`, `CreateComment.`
  - Information Types submenu: `SetOnOffEmphasis`, `SetOnOffStrong`, `SetOnOffCite`, `SetOnOffDefinition`, `SetOnOffCode`, `SetOnOffVariable`, `SetOnOffSample`, `SetOnOffKeyboard`, `SetOnOffAbbr`, `SetOnOffAcronym`, `SetOnOffINS`, `SetOnOffDEL`.
  - Character Element submenu: `SetOnOffItalic`, `SetOnOffBold`, `SetOnOffTeletype`, `SetOnOffBig`, `SetOnOffSmall`, `SetOnOffSub`, `SetOnOffSup`, `SetOnOffQuotation`, `SetOnOffBDO`.
  - Math submenu: `CreateInlineMath`, `CreateMath`, `CreateMROOT`, `CreateMSQRT`, `CreateMFRAC`, `CreateMSUBSUP`, `CreateMSUB`, `CreateMSUP`, `CreateMUNDEROVER`, `CreateMUNDER`, `CreateMOVER`, `CreateMROW`, `CreateMMULTISCRIPTS`, `CreateMTABLE`
- In Links menu: `LinkToPreviousTarget`, `CreateOrChangeLink`, `CreateTarget`, `DeleteAnchor`, `MakeID`.
- In Views menu: `ShowPanel`, `FullScreen`, `ShowMapAreas`, `ShowTargets`, `ZoomIn`, `ZoomOut`, `ShowFormatted`, `ShowStructure`, `ShowAlternate`, `ShowLinks`, `ShowToC`, `ShowSource`, `SplitHorizontally`, `SplitVerically`.
- In Style menu: `TtcChangeCharacters`, `TtcChangeColors`, `TtcChangeFormat`, `ChangeBackgroundImage`, `CreateClass`, `ApplyClass`, `LinkCSS`, `OpenCSS`, `DisableCSS`, `EnableCSS`, `RemoveCSS`, `DoLeftAlign`, `DoRightAlign`, `DoCenter`, `DoJustify`.
- In Annotations Menu: `AnnotateSelection`, `AnnotateDocument`, `LoadAnnotations`, `PostAnnotation`, `DeleteAnnotation`, `FilterAnnot`, `ConfigAnnot`.
- In Help Menu: `HelpAmaya`, `HelpAtW3C`, `HelpBrowsing`, `HelpSelecting`, `HelpSearching`, `HelpViews`, `HelpCreating`, `HelpLinks`, `HelpChanging`, `HelpTables`, `HelpMath`, `HelpSVG`, `HelpImageMaps`, `HelpStyleSheets`, `HelpAttributes`, `HelpPublishing`, `HelpPrinting`, `HelpNumbering`, `HelpMakeBook`, `HelpAnnotation`, `HelpConfigure`, `HelpShortCuts`, `HelpAccess`.