---
tags: zeta-dom
---
Zeta DOM » [Events](/UoWLMJmFREyF6wtAwfN7xw)
# Keyboard events
Instead of checking key combination during `keydown` or `keyup` events, Zeta additionally fires two types of keyboard events.
### `metakeychange` event
Fired when user starts or stops pressing one of the meta keys, i.e. `ctrl`, `shift` and `alt`.
### `keystroke` event
A `keystroke` event happens when user is pressing a combination of meta keys `ctrl`, `shift` and `alt`, and a normal character.
```typescript
zeta.dom.on(textarea, 'keystroke', (e) => {
// printing the key combination, e.g. 'ctrlZ'
console.log(e.data);
});
```
It can also happens when user is pressing a single character key without focusing an input.
```typescript
zeta.dom.on(document.body, 'keystroke', (e) => {
// e.data may also be a single character, e.g. 'a'
console.log(e.data);
});
```
In addition to `keystroke` event and putting lots of checking what shortcut key user is pressing, all combinations of regconized keys can be listened directly.
```typescript
zeta.dom.on('ctrlZ', (e) => {
// undo something
});
```
#### Name of keystroke
A listenable keystoke event can be one of the non-alphanumeric keys listed below or the combination of one or more modifier keys (`Ctrl`, `Alt` and `Shift`) with alphanumeric and non-alphanumeric keys.
| Event | Represented Keystroke |
| ----------- | ------------------------------------------------------------------------------------- |
| `upArrow` | <kbd>↑</kbd> |
| `backspace` | <kbd>⌫</kbd> |
| `ctrlA` | <kbd>⌘</kbd>+<kbd>A</kbd> or <kbd>Ctrl</kbd>+<kbd>A</kbd> |
| `ctrlAltA` | <kbd>⌘</kbd>+<kbd>⌥</kbd>+<kbd>A</kbd> or <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>A</kbd> |
Below is the list or recognized keys:
| Name | ASCII Code | Name | ASCII Code | Name | ASCII Code |
| ---------------- | ---------- | -------------- | ---------- | -------------- | ---------- |
| `backspace` | 8 | `numpad1` | 97 | `f7` | 118 |
| `tab` | 9 | `numpad2` | 98 | `f8` | 119 |
| `enter` | 13 | `numpad3` | 99 | `f9` | 120 |
| `pause` | 19 | `numpad4` | 100 | `f10` | 121 |
| `capsLock` | 20 | `numpad5` | 101 | `f11` | 122 |
| `escape` | 27 | `numpad6` | 102 | `f12` | 123 |
| `pageUp` | 33 | `numpad7` | 103 | `numLock` | 144 |
| `pageDown` | 34 | `numpad8` | 104 | `scrollLock` | 145 |
| `end` | 35 | `numpad9` | 105 | `semiColon` | 186 |
| `home` | 36 | `multiply` | 106 | `equalSign` | 187 |
| `leftArrow` | 37 | `add` | 107 | `comma` | 188 |
| `upArrow` | 38 | `subtract` | 109 | `dash` | 189 |
| `rightArrow` | 39 | `decimalPoint` | 110 | `period` | 190 |
| `downArrow` | 40 | `divide` | 111 | `forwardSlash` | 191 |
| `insert` | 45 | `f1` | 112 | `backtick` | 192 |
| `delete` | 46 | `f2` | 113 | `openBracket` | 219 |
| `leftWindow` | 91 | `f3` | 114 | `backSlash` | 220 |
| `rightWindowKey` | 92 | `f4` | 115 | `closeBracket` | 221 |
| `select` | 93 | `f5` | 116 | `singleQuote` | 222 |
| `numpad0` | 96 | `f6` | 117 | | |
## Shortcuts