diff --git a/docs/docs/codes/_applications.mdx b/docs/docs/codes/_applications.mdx new file mode 100644 index 00000000..099b701b --- /dev/null +++ b/docs/docs/codes/_applications.mdx @@ -0,0 +1,9 @@ +import Table from "@site/src/components/codes/Table"; + +## Application Controls + + + +## Applications (Launch) + +
diff --git a/docs/docs/codes/_editing.mdx b/docs/docs/codes/_editing.mdx new file mode 100644 index 00000000..2dd4d631 --- /dev/null +++ b/docs/docs/codes/_editing.mdx @@ -0,0 +1,9 @@ +import Table from "@site/src/components/codes/Table"; + +## Cut, Copy, Paste + +
+ +## Undo, Redo + +
diff --git a/docs/docs/codes/_footnotes/example.mdx b/docs/docs/codes/_footnotes/example.mdx new file mode 100644 index 00000000..2dcdb109 --- /dev/null +++ b/docs/docs/codes/_footnotes/example.mdx @@ -0,0 +1,13 @@ +This is an _example_ footnote for **code** tables. + +- Footnotes are supported per row by each operating system column. +- Footnotes support MDX syntax. +- A footnote's `id` is its filename by convention (i.e. `example`). +- Footnotes must be included and listed in `src/data/footnotes.js` because they're statically compiled. +- Footnotes are assigned within `src/data/hid.js` using `column-id: footnote-id(s)` `K`:`V` pairs (case-sensitive), where: + - `K` is the column's `id`. + - `V` is the footnote's `id`. + - `V` can also be an array of footnote ids (_optional_). +- The footnote system aims to prevent duplication of _sources_ (mdx). +- Footnotes are listed under each table, so try to avoid multiline notes unless it's necessary! +- Footnotes are automatically numbered. diff --git a/docs/docs/codes/_input-assist.mdx b/docs/docs/codes/_input-assist.mdx new file mode 100644 index 00000000..7dc432b4 --- /dev/null +++ b/docs/docs/codes/_input-assist.mdx @@ -0,0 +1,5 @@ +import Table from "@site/src/components/codes/Table"; + +## Input Assist + +
diff --git a/docs/docs/codes/_keyboard-keypad.mdx b/docs/docs/codes/_keyboard-keypad.mdx new file mode 100644 index 00000000..b1852d64 --- /dev/null +++ b/docs/docs/codes/_keyboard-keypad.mdx @@ -0,0 +1,59 @@ +import Table from "@site/src/components/codes/Table"; + +## Keyboard + +### Letters + +
+ +### Numbers + +
+ +### Symbols / Punctuation + +
+ +### Control & Whitespace + +
+ +### Navigation + +
+ +### Modifiers + +
+ +### Locks + +
+ +### F Keys + +
+ +### International + +
+ +### Language + +
+ +### Miscellaneous + +
+ +## Keypad + +
+ +### Numbers + +
+ +### Symbols / Operations + +
diff --git a/docs/docs/codes/_media.mdx b/docs/docs/codes/_media.mdx new file mode 100644 index 00000000..7be80ab9 --- /dev/null +++ b/docs/docs/codes/_media.mdx @@ -0,0 +1,21 @@ +import Table from "@site/src/components/codes/Table"; + +## Sound / Volume + +
+ +## Display + +
+ +## Media Controls + +
+ +## Consumer Menus + +
+ +## Consumer Controls + +
diff --git a/docs/docs/codes/_power.mdx b/docs/docs/codes/_power.mdx new file mode 100644 index 00000000..dd06e953 --- /dev/null +++ b/docs/docs/codes/_power.mdx @@ -0,0 +1,5 @@ +import Table from "@site/src/components/codes/Table"; + +## Power & Lock + +
diff --git a/docs/docs/codes/applications.mdx b/docs/docs/codes/applications.mdx new file mode 100644 index 00000000..0c9416f3 --- /dev/null +++ b/docs/docs/codes/applications.mdx @@ -0,0 +1,15 @@ +--- +title: Applications +sidebar_label: Applications +hide_title: true +--- + +import OsLegend from "@site/src/components/codes/OsLegend"; +import ToastyContainer from "@site/src/components/codes/ToastyContainer"; +import Content, { rightToc as contentToc } from "./_applications.mdx"; + +export const rightToc = contentToc; + + + + diff --git a/docs/docs/codes/editing.mdx b/docs/docs/codes/editing.mdx new file mode 100644 index 00000000..a65b8b6f --- /dev/null +++ b/docs/docs/codes/editing.mdx @@ -0,0 +1,15 @@ +--- +title: Editing +sidebar_label: Editing +hide_title: true +--- + +import OsLegend from "@site/src/components/codes/OsLegend"; +import ToastyContainer from "@site/src/components/codes/ToastyContainer"; +import Content, { rightToc as contentToc } from "./_editing.mdx"; + +export const rightToc = contentToc; + + + + diff --git a/docs/docs/codes/index.mdx b/docs/docs/codes/index.mdx new file mode 100644 index 00000000..a0c9df18 --- /dev/null +++ b/docs/docs/codes/index.mdx @@ -0,0 +1,33 @@ +--- +title: Codes +sidebar_label: Full List +hide_title: true +slug: ./ +--- + +import OsLegend from "@site/src/components/codes/OsLegend"; +import ToastyContainer from "@site/src/components/codes/ToastyContainer"; +import Key, { rightToc as keyToc } from "./_keyboard-keypad.mdx"; +import Editing, { rightToc as editingToc } from "./_editing.mdx"; +import Media, { rightToc as mediaToc } from "./_media.mdx"; +import Applications, { rightToc as applicationsToc } from "./_applications.mdx"; +import InputAssist, { rightToc as inputAssistToc } from "./_input-assist.mdx"; +import Power, { rightToc as powerToc } from "./_power.mdx"; + +export const rightToc = [ + ...keyToc, + ...editingToc, + ...mediaToc, + ...applicationsToc, + ...inputAssistToc, + ...powerToc, +]; + + + + + + + + + diff --git a/docs/docs/codes/input-assist.mdx b/docs/docs/codes/input-assist.mdx new file mode 100644 index 00000000..c8bae19e --- /dev/null +++ b/docs/docs/codes/input-assist.mdx @@ -0,0 +1,15 @@ +--- +title: Input Assist +sidebar_label: Input Assist +hide_title: true +--- + +import OsLegend from "@site/src/components/codes/OsLegend"; +import ToastyContainer from "@site/src/components/codes/ToastyContainer"; +import Content, { rightToc as contentToc } from "./_input-assist.mdx"; + +export const rightToc = contentToc; + + + + diff --git a/docs/docs/codes/keyboard-keypad.mdx b/docs/docs/codes/keyboard-keypad.mdx new file mode 100644 index 00000000..6a5e605d --- /dev/null +++ b/docs/docs/codes/keyboard-keypad.mdx @@ -0,0 +1,15 @@ +--- +title: Keyboard & Keypad +sidebar_label: Keyboard & Keypad +hide_title: true +--- + +import OsLegend from "@site/src/components/codes/OsLegend"; +import ToastyContainer from "@site/src/components/codes/ToastyContainer"; +import Content, { rightToc as contentToc } from "./_keyboard-keypad.mdx"; + +export const rightToc = contentToc; + + + + diff --git a/docs/docs/codes/media.mdx b/docs/docs/codes/media.mdx new file mode 100644 index 00000000..588bb4cb --- /dev/null +++ b/docs/docs/codes/media.mdx @@ -0,0 +1,15 @@ +--- +title: Media +sidebar_label: Media +hide_title: true +--- + +import OsLegend from "@site/src/components/codes/OsLegend"; +import ToastyContainer from "@site/src/components/codes/ToastyContainer"; +import Content, { rightToc as contentToc } from "./_media.mdx"; + +export const rightToc = contentToc; + + + + diff --git a/docs/docs/codes/power.mdx b/docs/docs/codes/power.mdx new file mode 100644 index 00000000..7e8ffd10 --- /dev/null +++ b/docs/docs/codes/power.mdx @@ -0,0 +1,15 @@ +--- +title: Power +sidebar_label: Power +hide_title: true +--- + +import OsLegend from "@site/src/components/codes/OsLegend"; +import ToastyContainer from "@site/src/components/codes/ToastyContainer"; +import Content, { rightToc as contentToc } from "./_power.mdx"; + +export const rightToc = contentToc; + + + + diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index b0906631..97548342 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -112,7 +112,10 @@ module.exports = { editUrl: "https://github.com/zmkfirmware/zmk/edit/main/docs/", }, theme: { - customCss: require.resolve("./src/css/custom.css"), + customCss: [ + require.resolve("./src/css/custom.css"), + require.resolve("./src/css/codes.css"), + ], }, }, ], diff --git a/docs/package-lock.json b/docs/package-lock.json index ad46d829..757beb04 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -9,9 +9,14 @@ "dependencies": { "@docusaurus/core": "^2.0.0-alpha.66", "@docusaurus/preset-classic": "^2.0.0-alpha.66", + "@fortawesome/fontawesome-svg-core": "^1.2.32", + "@fortawesome/free-solid-svg-icons": "^5.15.1", + "@fortawesome/react-fontawesome": "^0.1.12", "classnames": "^2.2.6", "react": "^16.8.4", - "react-dom": "^16.8.4" + "react-copy-to-clipboard": "^5.0.2", + "react-dom": "^16.8.4", + "react-toastify": "^6.0.9" }, "devDependencies": { "eslint": "^7.12.0", @@ -2025,6 +2030,51 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz", + "integrity": "sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "1.2.32", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz", + "integrity": "sha512-XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.32" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz", + "integrity": "sha512-EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.32" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/react-fontawesome": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.12.tgz", + "integrity": "sha512-kV6HtqotM3K4YIXlTVvomuIi6QgGCvYm++ImyEx2wwgmSppZ6kbbA29ASwjAUBD63j2OFU0yoxeXpZkjrrX0qQ==", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "^1.2.20", + "react": ">=16.x" + } + }, "node_modules/@francoischalifour/autocomplete-core": { "version": "1.0.0-alpha.28", "resolved": "https://registry.npmjs.org/@francoischalifour/autocomplete-core/-/autocomplete-core-1.0.0-alpha.28.tgz", @@ -4513,6 +4563,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, "node_modules/copy-webpack-plugin": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz", @@ -5282,6 +5340,15 @@ "utila": "0.4.0" } }, + "node_modules/dom-helpers": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", + "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "node_modules/dom-serializer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", @@ -11265,6 +11332,18 @@ "pure-color": "^1.2.0" } }, + "node_modules/react-copy-to-clipboard": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz", + "integrity": "sha512-/2t5mLMMPuN5GmdXo6TebFa8IoFxZ+KTDDqYhcDm0PhkgEzSxVvIX26G20s1EB02A4h2UZgwtfymZ3lGJm0OLg==", + "dependencies": { + "copy-to-clipboard": "^3", + "prop-types": "^15.5.8" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0" + } + }, "node_modules/react-dev-utils": { "version": "10.2.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz", @@ -11792,6 +11871,19 @@ "react": ">=0.14.0 <17.0.0" } }, + "node_modules/react-toastify": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-6.0.9.tgz", + "integrity": "sha512-StHXv+4kezHUnPyoILlvygSptQ79bxVuvKcC05yXP0FlqQgPA1ue+80BqxZZiCw2jWDGiY2MHyqBfFKf5YzZbA==", + "dependencies": { + "classnames": "^2.2.6", + "prop-types": "^15.7.2", + "react-transition-group": "^4.4.1" + }, + "peerDependencies": { + "react": ">=16" + } + }, "node_modules/react-toggle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/react-toggle/-/react-toggle-4.1.1.tgz", @@ -11805,6 +11897,21 @@ "react-dom": "^15.3.0 || ^16.0.0" } }, + "node_modules/react-transition-group": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", + "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -13891,6 +13998,11 @@ "is-plain-object": "2.0.4" } }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" + }, "node_modules/toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -17682,6 +17794,35 @@ } } }, + "@fortawesome/fontawesome-common-types": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz", + "integrity": "sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w==" + }, + "@fortawesome/fontawesome-svg-core": { + "version": "1.2.32", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz", + "integrity": "sha512-XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.32" + } + }, + "@fortawesome/free-solid-svg-icons": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz", + "integrity": "sha512-EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.32" + } + }, + "@fortawesome/react-fontawesome": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.12.tgz", + "integrity": "sha512-kV6HtqotM3K4YIXlTVvomuIi6QgGCvYm++ImyEx2wwgmSppZ6kbbA29ASwjAUBD63j2OFU0yoxeXpZkjrrX0qQ==", + "requires": { + "prop-types": "^15.7.2" + } + }, "@francoischalifour/autocomplete-core": { "version": "1.0.0-alpha.28", "resolved": "https://registry.npmjs.org/@francoischalifour/autocomplete-core/-/autocomplete-core-1.0.0-alpha.28.tgz", @@ -20118,6 +20259,14 @@ "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-2.2.0.tgz", "integrity": "sha512-WRvoIdnTs1rgPMkgA2pUOa/M4Enh2uzCwdKsOMYNAJiz/4ZvEJgmbF4OmninPmlFdAWisfeh0tH+Cpf7ni3RqQ==" }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "requires": { + "toggle-selection": "^1.0.6" + } + }, "copy-webpack-plugin": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz", @@ -20906,6 +21055,15 @@ "utila": "0.4.0" } }, + "dom-helpers": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", + "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "dom-serializer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", @@ -26753,6 +26911,15 @@ "pure-color": "^1.2.0" } }, + "react-copy-to-clipboard": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz", + "integrity": "sha512-/2t5mLMMPuN5GmdXo6TebFa8IoFxZ+KTDDqYhcDm0PhkgEzSxVvIX26G20s1EB02A4h2UZgwtfymZ3lGJm0OLg==", + "requires": { + "copy-to-clipboard": "^3", + "prop-types": "^15.5.8" + } + }, "react-dev-utils": { "version": "10.2.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz", @@ -27293,6 +27460,16 @@ "prop-types": "^15.6.0" } }, + "react-toastify": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-6.0.9.tgz", + "integrity": "sha512-StHXv+4kezHUnPyoILlvygSptQ79bxVuvKcC05yXP0FlqQgPA1ue+80BqxZZiCw2jWDGiY2MHyqBfFKf5YzZbA==", + "requires": { + "classnames": "^2.2.6", + "prop-types": "^15.7.2", + "react-transition-group": "^4.4.1" + } + }, "react-toggle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/react-toggle/-/react-toggle-4.1.1.tgz", @@ -27301,6 +27478,17 @@ "classnames": "^2.2.5" } }, + "react-transition-group": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", + "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -29358,6 +29546,11 @@ "is-number": "7.0.0" } }, + "toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" + }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", diff --git a/docs/package.json b/docs/package.json index cb425066..00dc6275 100644 --- a/docs/package.json +++ b/docs/package.json @@ -16,9 +16,14 @@ "dependencies": { "@docusaurus/core": "^2.0.0-alpha.66", "@docusaurus/preset-classic": "^2.0.0-alpha.66", + "@fortawesome/fontawesome-svg-core": "^1.2.32", + "@fortawesome/free-solid-svg-icons": "^5.15.1", + "@fortawesome/react-fontawesome": "^0.1.12", "classnames": "^2.2.6", "react": "^16.8.4", - "react-dom": "^16.8.4" + "react-copy-to-clipboard": "^5.0.2", + "react-dom": "^16.8.4", + "react-toastify": "^6.0.9" }, "browserslist": { "production": [ diff --git a/docs/sidebars.js b/docs/sidebars.js index c8dc79fc..f05cd056 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -26,6 +26,15 @@ module.exports = { "behavior/lighting", "behavior/power", ], + Codes: [ + "codes/index", + "codes/keyboard-keypad", + "codes/editing", + "codes/media", + "codes/applications", + "codes/input-assist", + "codes/power", + ], Development: [ "dev-clean-room", "dev-setup", diff --git a/docs/src/components/codes/Context.jsx b/docs/src/components/codes/Context.jsx new file mode 100644 index 00000000..4fdcbfc0 --- /dev/null +++ b/docs/src/components/codes/Context.jsx @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; + +export default function Context({ children }) { + return

{children}

; +} + +Context.propTypes = { + children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]) + .isRequired, +}; diff --git a/docs/src/components/codes/Description.jsx b/docs/src/components/codes/Description.jsx new file mode 100644 index 00000000..6d8c5f62 --- /dev/null +++ b/docs/src/components/codes/Description.jsx @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; + +const specialCharactersRegex = /(?:^|\s)((?:&(?:(?:\w+)|(?:#\d+));)|[_]|[^\w\s])(?:\s*\[([^[\]]+?)\])/g; + +function renderSpecialCharacters(description) { + const matches = Array.from(description.matchAll(specialCharactersRegex)); + if (matches.length == 0) return description; + let lastIndex = 0; + const parts = matches.reduce((acc, match, i) => { + const { index } = match; + const str = match[0]; + const chars = match[1]; + const meaning = match[2]; + if (index != lastIndex) { + acc.push(description.substring(lastIndex, index)); + } + const pos = str.indexOf(chars); + if (pos > 0) { + acc.push(description.substr(index, pos)); + } + acc.push( + + {description.substr(index + pos, chars.length)} + {meaning ? {meaning} : undefined} + + ); + lastIndex = index + str.length; + return acc; + }, []); + if (lastIndex < description.length) { + parts.push(description.substr(lastIndex)); + } + return parts; +} + +export default function Description({ description = "" }) { + return ( + {renderSpecialCharacters(description)} + ); +} + +Description.propTypes = { + description: PropTypes.string.isRequired, +}; diff --git a/docs/src/components/codes/Footnote.jsx b/docs/src/components/codes/Footnote.jsx new file mode 100644 index 00000000..c9396a30 --- /dev/null +++ b/docs/src/components/codes/Footnote.jsx @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; + +export default function Footnote({ children, symbol, id }) { + return ( +
+
{symbol}
+
{children}
+
+ ); +} + +Footnote.propTypes = { + children: PropTypes.element.isRequired, + symbol: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, + id: PropTypes.string.isRequired, +}; diff --git a/docs/src/components/codes/FootnoteRef.jsx b/docs/src/components/codes/FootnoteRef.jsx new file mode 100644 index 00000000..c7b11a7d --- /dev/null +++ b/docs/src/components/codes/FootnoteRef.jsx @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; + +export default function FootnoteRef({ children, anchor }) { + return ( + + {children} + + ); +} + +FootnoteRef.propTypes = { + children: PropTypes.oneOfType([PropTypes.string, PropTypes.number]) + .isRequired, + anchor: PropTypes.string.isRequired, +}; diff --git a/docs/src/components/codes/FootnoteRefs.jsx b/docs/src/components/codes/FootnoteRefs.jsx new file mode 100644 index 00000000..3782c13f --- /dev/null +++ b/docs/src/components/codes/FootnoteRefs.jsx @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; +import FootnoteRef from "./FootnoteRef"; + +function joinReactElements(arr, delimiter) { + return arr.reduce((acc, fragment) => { + if (acc === null) { + return fragment; + } + return ( + <> + {acc} + {delimiter} + {fragment} + + ); + }, null); +} + +export default function FootnoteRefs({ footnotes }) { + return ( + + {joinReactElements( + footnotes.map((footnote) => ( + + {footnote.symbol} + + )), + ", " + )} + + ); +} + +FootnoteRefs.propTypes = { + footnotes: PropTypes.array.isRequired, +}; diff --git a/docs/src/components/codes/Footnotes.jsx b/docs/src/components/codes/Footnotes.jsx new file mode 100644 index 00000000..b382141f --- /dev/null +++ b/docs/src/components/codes/Footnotes.jsx @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; +import Footnote from "./Footnote"; + +export default function Footnotes({ footnotes = [], id }) { + return ( + + ); +} + +Footnotes.propTypes = { + footnotes: PropTypes.array.isRequired, + id: PropTypes.string.isRequired, +}; diff --git a/docs/src/components/codes/LinkIcon.jsx b/docs/src/components/codes/LinkIcon.jsx new file mode 100644 index 00000000..5bfeebd4 --- /dev/null +++ b/docs/src/components/codes/LinkIcon.jsx @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faExternalLinkAlt } from "@fortawesome/free-solid-svg-icons"; +export default function LinkIcon() { + return ; +} + +LinkIcon.propTypes = {}; diff --git a/docs/src/components/codes/Name.jsx b/docs/src/components/codes/Name.jsx new file mode 100644 index 00000000..52dc7347 --- /dev/null +++ b/docs/src/components/codes/Name.jsx @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; +import ToastyCopyToClipboard from "./ToastyCopyToClipboard"; + +export default function Name({ children, name }) { + return ( + + + {children} + + + ); +} + +Name.propTypes = { + children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]) + .isRequired, + name: PropTypes.string.isRequired, +}; diff --git a/docs/src/components/codes/OsLegend.jsx b/docs/src/components/codes/OsLegend.jsx new file mode 100644 index 00000000..c53907fa --- /dev/null +++ b/docs/src/components/codes/OsLegend.jsx @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import operatingSystems from "@site/src/data/operating-systems"; + +export default function OsLegend() { + return ( +
+ {operatingSystems.map(({ key, className, heading, title }) => ( +
+ {heading} + {title} +
+ ))} +
+ ); +} + +OsLegend.propTypes = {}; diff --git a/docs/src/components/codes/OsSupport.jsx b/docs/src/components/codes/OsSupport.jsx new file mode 100644 index 00000000..2cb60c97 --- /dev/null +++ b/docs/src/components/codes/OsSupport.jsx @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; +import OsSupportIcon from "./OsSupportIcon"; +import FootnoteRefs from "./FootnoteRefs"; + +export default function OsSupport({ value, footnotes = [] }) { + return ( + <> + + {footnotes.length > 0 ? ( + + ) : undefined} + + ); +} + +OsSupport.propTypes = { + value: PropTypes.oneOf([true, false, null]), + footnotes: PropTypes.array.isRequired, +}; diff --git a/docs/src/components/codes/OsSupportIcon.jsx b/docs/src/components/codes/OsSupportIcon.jsx new file mode 100644 index 00000000..a518d62a --- /dev/null +++ b/docs/src/components/codes/OsSupportIcon.jsx @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; + +const Icon = ({ children, className, title }) => ( + + {children} + +); + +Icon.propTypes = { + children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]) + .isRequired, + className: PropTypes.string.isRequired, + title: PropTypes.string.isRequired, +}; + +export const Supported = () => ( + + ⭐ + +); +export const NotSupported = () => ( + + ❌ + +); +export const NotTested = () => ( + + ❔ + +); + +export default function OsSupportIcon({ value }) { + if (value === true) { + return ; + } + if (value === false) { + return ; + } + return ; +} + +OsSupportIcon.propTypes = { + value: PropTypes.oneOf([true, false, null]), +}; diff --git a/docs/src/components/codes/Table.jsx b/docs/src/components/codes/Table.jsx new file mode 100644 index 00000000..c7dd20c8 --- /dev/null +++ b/docs/src/components/codes/Table.jsx @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; +import TableRow from "./TableRow"; +import Footnotes from "./Footnotes"; +import LinkIcon from "./LinkIcon"; +import operatingSystems from "@site/src/data/operating-systems"; +import { getCodes } from "@site/src/hid"; +import { getGroup } from "@site/src/groups"; +import { getFootnote } from "@site/src/footnotes"; + +function extractFootnoteIds(codes) { + return Array.from( + new Set( + codes + .flatMap(({ footnotes }) => Object.values(footnotes)) + .map((refs) => (Array.isArray(refs) ? refs.flat() : refs)) + ) + ); +} + +export default function Table({ group }) { + const codes = getCodes(getGroup(group)); + + const footnotesAnchor = group + "-" + "footnotes"; + + const tableFootnotes = extractFootnoteIds(codes).map((id, i) => { + const Component = getFootnote(id); + return { + id, + anchor: footnotesAnchor, + symbol: i + 1, + value: Component ? : undefined, + }; + }); + + return ( +
+
+ + + + + + {operatingSystems.map(({ key, className, heading, title }) => ( + + ))} + + + + {Array.isArray(codes) + ? codes.map((code) => ( + + )) + : undefined} + +
NamesDescription + + + {heading} +
+ {tableFootnotes.length > 0 ? ( + + ) : undefined} + + ); +} + +Table.propTypes = { + group: PropTypes.string.isRequired, +}; diff --git a/docs/src/components/codes/TableRow.jsx b/docs/src/components/codes/TableRow.jsx new file mode 100644 index 00000000..a560911f --- /dev/null +++ b/docs/src/components/codes/TableRow.jsx @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; +import Name from "./Name"; +import Description from "./Description"; +import Context from "./Context"; +import LinkIcon from "./LinkIcon"; +import OsSupport from "./OsSupport"; +import operatingSystems from "@site/src/data/operating-systems"; + +export default function TableRow({ + names, + description, + context = "", + clarify = false, + documentation, + os, + footnotes, + tableFootnotes, +}) { + return ( + + + {names.map((name) => ( + + {name} + + ))} + + + + {clarify && context ? {context} : undefined} + + + + + + + {operatingSystems.map(({ key, className, title }) => ( + + + (Array.isArray(footnotes[key]) && + footnotes[key].includes(id)) || + footnotes[key] == id + )} + /> + + ))} + + ); +} + +TableRow.propTypes = { + names: PropTypes.array.isRequired, + description: PropTypes.string.isRequired, + context: PropTypes.string.isRequired, + clarify: PropTypes.bool, + documentation: PropTypes.string.isRequired, + os: PropTypes.object.isRequired, + footnotes: PropTypes.object.isRequired, + tableFootnotes: PropTypes.array.isRequired, +}; diff --git a/docs/src/components/codes/ToastyContainer.jsx b/docs/src/components/codes/ToastyContainer.jsx new file mode 100644 index 00000000..ee4e3bca --- /dev/null +++ b/docs/src/components/codes/ToastyContainer.jsx @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import { ToastContainer } from "react-toastify"; +import "react-toastify/dist/ReactToastify.css"; + +export default function ToastyContainer() { + return ( + + ); +} + +ToastyContainer.propTypes = {}; diff --git a/docs/src/components/codes/ToastyCopyToClipboard.jsx b/docs/src/components/codes/ToastyCopyToClipboard.jsx new file mode 100644 index 00000000..b0e98092 --- /dev/null +++ b/docs/src/components/codes/ToastyCopyToClipboard.jsx @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; +import { toast } from "react-toastify"; +import { CopyToClipboard } from "react-copy-to-clipboard"; + +export default function ToastyCopyToClipboard({ children, text }) { + const notify = () => + toast( + + 📋 Copied {text} + + ); + return ( +
+ {children} +
+ ); +} + +ToastyCopyToClipboard.propTypes = { + children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]) + .isRequired, + text: PropTypes.string.isRequired, +}; diff --git a/docs/src/css/codes.css b/docs/src/css/codes.css new file mode 100644 index 00000000..ce2c0efd --- /dev/null +++ b/docs/src/css/codes.css @@ -0,0 +1,220 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +.codes.os.legend { + position: sticky; + z-index: 1; + top: var(--ifm-navbar-height); + width: 100%; + padding-top: 0.5em; + padding-bottom: 0.5em; + background: var(--ifm-background-color); + display: flex; + justify-content: space-between; +} + +html[data-theme="light"] .codes.os.legend { + background: white; +} + +.codes.os.legend .os { + flex: 1; + margin-left: 0.2em; + margin-right: 0.2em; + padding: 0.1em; + border: 1px var(--ifm-table-border-color) solid; + border-radius: 0.5em; + text-align: center; +} + +.codes.os.legend .os .heading { + font-weight: bold; +} + +.codes.os.legend .os .heading::after { + content: " : "; + font-weight: normal; +} + +.codes .name { + cursor: copy; +} + +.codes .name:hover { + opacity: 0.8; +} + +.codes .name:active { + color: var(--ifm-font-color-base-inverse); + background: var(--ifm-font-color-base); +} + +.codes.os.legend, +.codes table { + font-size: 0.8em; +} + +.codes table { + display: table; + font-size: 0.8em; + margin-bottom: 0; +} + +.codes th, +.codes td { + padding: 0.2rem; +} + +.codes td { + position: relative; +} + +.codes th.names, +.codes th.description { + text-align: left; +} + +.codes td.names code { + display: block; + float: left; + clear: both; + margin-top: 1px; + margin-bottom: 1px; + font-size: 0.85em; +} + +.codes .context { + display: inline; + margin: 0 0 0 0.5em; + font-size: 0.85em; +} + +.codes .context::before { + content: "("; +} + +.codes .context::after { + content: ")"; +} + +.codes .symbol { + display: inline-flex; + flex-direction: column; +} + +.codes .symbol code { + align-self: flex-start; + width: auto; +} + +.codes .symbol .meaning { + flex: 1; + font-size: 0.8em; + text-transform: uppercase; +} + +.codes td.documentation, +.codes td.os { + width: 0.1%; + min-width: 1.9rem; + text-align: center; +} + +.codes td.documentation { + font-size: 0.8em; +} + +.codes td.documentation a { + cursor: help; +} + +.codes .os { + color: black; +} + +.codes td.os { + font-size: 0.8em; +} + +.codes .not-tested { + font-weight: bold; +} + +.codes .os.windows { + background: #caedfd; +} + +.codes .os.linux { + background: #fff2ca; +} + +.codes .os.android { + background: #d8eed9; +} + +.codes .os.macos { + background: #ececec; +} + +.codes .os.ios { + background: #ffffff; +} + +.codes .footnotes { + display: flex; + width: 100%; + margin-top: 0; + margin-bottom: 0.5rem; + padding: 0.2rem 0.5rem 0.2rem 0.5rem; + border: var(--ifm-table-border-width) dashed var(--ifm-table-border-color); + border-top: 0; + font-size: 0.8em; +} + +.codes .footnotes .label { + display: block; + margin-right: 1em; + font-style: italic; +} + +.codes .footnotes .label::after { + content: ":"; +} + +.codes .footnotes .anchor { + display: block; + position: relative; + top: calc(var(--ifm-navbar-height) * -1 - 6em); + visibility: hidden; +} + +.codes .footnote { + flex: 1; + display: flex; + margin-top: 0; + margin-bottom: 0; +} + +.codes .footnote .symbol { + flex: 0; + float: left; + margin-right: 0.4em; + font-size: 0.8em; +} + +.codes .footnote .content p { + margin-top: 0; + margin-bottom: 0; +} + +.codes .footnoteRefs { + float: right; + font-size: 0.8em; +} + +.codes .footnoteRefs a { + color: black; +} diff --git a/docs/src/data/footnotes.js b/docs/src/data/footnotes.js new file mode 100644 index 00000000..dabf98f5 --- /dev/null +++ b/docs/src/data/footnotes.js @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import example from "@site/docs/codes/_footnotes/example.mdx"; + +export default { + example, +}; diff --git a/docs/src/data/groups.js b/docs/src/data/groups.js new file mode 100644 index 00000000..f7ced161 --- /dev/null +++ b/docs/src/data/groups.js @@ -0,0 +1,414 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +export default { + "application-controls": [ + "K_MENU", + "C_AC_PROPERTIES", + "K_SELECT", + "C_AC_CANCEL", + "K_EXECUTE", + "C_AC_REFRESH", + "K_REFRESH", + "C_AC_STOP", + "K_STOP", + "C_AC_FORWARD", + "K_FORWARD", + "C_AC_BACK", + "K_BACK", + "C_AC_HOME", + "C_AC_BOOKMARKS", + "C_AC_NEW", + "C_AC_OPEN", + "C_AC_SAVE", + "C_AC_CLOSE", + "C_AC_EXIT", + "C_AC_PRINT", + "C_AC_FIND", + "K_FIND", + "K_FIND2", + "C_AC_SEARCH", + "C_AC_GOTO", + "C_AC_ZOOM", + "C_AC_ZOOM_IN", + "C_AC_ZOOM_OUT", + "C_AC_SCROLL_UP", + "K_SCROLL_UP", + "C_AC_SCROLL_DOWN", + "K_SCROLL_DOWN", + "C_AC_REPLY", + "C_AC_FORWARD_MAIL", + "C_AC_SEND", + "C_AC_EDIT", + "C_AC_INSERT", + "C_AC_DEL", + "C_AC_VIEW_TOGGLE", + "C_AC_DESKTOP_SHOW_ALL_WINDOWS", + "C_VOICE_COMMAND", + ], + applications: [ + "C_AL_NEXT_TASK", + "C_AL_PREVIOUS_TASK", + "C_AL_SELECT_TASK", + "C_AL_MY_COMPUTER", + "C_AL_DOCUMENTS", + "C_AL_FILE_BROWSER", + "C_AL_WWW", + "K_WWW", + "C_AL_EMAIL", + "C_AL_INSTANT_MESSAGING", + "C_AL_NETWORK_CHAT", + "C_AL_CONTACTS", + "C_AL_CALENDAR", + "C_AL_IMAGE_BROWSER", + "C_AL_AUDIO_BROWSER", + "C_AL_MOVIE_BROWSER", + "C_AL_TEXT_EDITOR", + "C_AL_WORD", + "C_AL_SPREADSHEET", + "C_AL_PRESENTATION", + "C_AL_GRAPHICS_EDITOR", + "C_AL_CALCULATOR", + "K_CALCULATOR", + "C_AL_NEWS", + "C_AL_DATABASE", + "C_AL_VOICEMAIL", + "C_AL_FINANCE", + "C_AL_TASK_MANAGER", + "C_AL_JOURNAL", + "C_AL_AV_CAPTURE_PLAYBACK", + "C_AL_SPELLCHECK", + "C_AL_SCREEN_SAVER", + "C_AL_KEYBOARD_LAYOUT", + "C_AL_CONTROL_PANEL", + "C_AL_HELP", + "K_HELP", + "C_AL_OEM_FEATURES", + "C_AL_CCC", + ], + "consumer-controls": [ + "C_CHANNEL_INC", + "C_CHANNEL_DEC", + "C_RECALL_LAST", + "C_MEDIA_VCR_PLUS", + "C_MEDIA_GUIDE", + "C_MEDIA_STEP", + "C_MEDIA_HOME", + "C_MEDIA_TV", + "C_MEDIA_CABLE", + "C_MEDIA_TUNER", + "C_MEDIA_DVD", + "C_MEDIA_CD", + "C_MEDIA_SATELLITE", + "C_MEDIA_VCR", + "C_MEDIA_TAPE", + "C_MEDIA_COMPUTER", + "C_MEDIA_WWW", + "C_MEDIA_GAMES", + "C_MEDIA_PHONE", + "C_MEDIA_VIDEOPHONE", + "C_MEDIA_MESSAGES", + "C_QUIT", + "C_HELP", + ], + "consumer-menus": [ + "C_MENU", + "C_MENU_PICK", + "C_MENU_UP", + "C_MENU_DOWN", + "C_MENU_LEFT", + "C_MENU_RIGHT", + "C_MENU_ESCAPE", + "C_MENU_INCREASE", + "C_MENU_DECREASE", + "C_RED_BUTTON", + "C_GREEN_BUTTON", + "C_BLUE_BUTTON", + "C_YELLOW_BUTTON", + ], + "cut-copy-paste": [ + "C_AC_CUT", + "K_CUT", + "C_AC_COPY", + "K_COPY", + "C_AC_PASTE", + "K_PASTE", + ], + display: [ + "C_BRIGHTNESS_INC", + "C_BRIGHTNESS_DEC", + "C_BRIGHTNESS_MINIMUM", + "C_BRIGHTNESS_MAXIMUM", + "C_BRIGHTNESS_AUTO", + "C_BACKLIGHT_TOGGLE", + "C_ASPECT", + "C_PIP", + ], + "input-assist": [ + "C_KEYBOARD_INPUT_ASSIST_NEXT", + "C_KEYBOARD_INPUT_ASSIST_PREVIOUS", + "C_KEYBOARD_INPUT_ASSIST_NEXT_GROUP", + "C_KEYBOARD_INPUT_ASSIST_PREVIOUS_GROUP", + "C_KEYBOARD_INPUT_ASSIST_ACCEPT", + "C_KEYBOARD_INPUT_ASSIST_CANCEL", + ], + "keyboard-control-whitespace": [ + "ESCAPE", + "RETURN", + "RETURN2", + "SPACE", + "TAB", + "BACKSPACE", + "DELETE", + "INSERT", + ], + "keyboard-fkeys": [ + "F1", + "F2", + "F3", + "F4", + "F5", + "F6", + "F7", + "F8", + "F9", + "F10", + "F11", + "F12", + "F13", + "F14", + "F15", + "F16", + "F17", + "F18", + "F19", + "F20", + "F21", + "F22", + "F23", + "F24", + ], + "keyboard-international": [ + "INTERNATIONAL_1", + "INTERNATIONAL_2", + "INTERNATIONAL_3", + "INTERNATIONAL_4", + "INTERNATIONAL_5", + "INTERNATIONAL_6", + "INTERNATIONAL_7", + "INTERNATIONAL_8", + "INTERNATIONAL_9", + ], + "keyboard-language": [ + "LANGUAGE_1", + "LANGUAGE_2", + "LANGUAGE_3", + "LANGUAGE_4", + "LANGUAGE_5", + "LANGUAGE_6", + "LANGUAGE_7", + "LANGUAGE_8", + "LANGUAGE_9", + ], + "keyboard-letters": [ + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + ], + "keyboard-locks": [ + "CAPSLOCK", + "LOCKING_CAPS", + "SCROLLLOCK", + "LOCKING_SCROLL", + "LOCKING_NUM", + ], + "keyboard-miscellaneous": [ + "PRINTSCREEN", + "PAUSE_BREAK", + "ALT_ERASE", + "SYSREQ", + "K_CANCEL", + "CLEAR", + "CLEAR_AGAIN", + "CRSEL", + "PRIOR", + "SEPARATOR", + "OUT", + "OPER", + "EXSEL", + "K_EDIT", + ], + "keyboard-modifiers": [ + "LEFT_SHIFT", + "RIGHT_SHIFT", + "LEFT_CONTROL", + "RIGHT_CONTROL", + "LEFT_ALT", + "RIGHT_ALT", + "LEFT_GUI", + "RIGHT_GUI", + ], + "keyboard-navigation": [ + "HOME", + "END", + "PAGE_UP", + "PAGE_DOWN", + "UP_ARROW", + "DOWN_ARROW", + "LEFT_ARROW", + "RIGHT_ARROW", + "K_APPLICATION", + ], + "keyboard-numbers": [ + "NUMBER_1", + "NUMBER_2", + "NUMBER_3", + "NUMBER_4", + "NUMBER_5", + "NUMBER_6", + "NUMBER_7", + "NUMBER_8", + "NUMBER_9", + "NUMBER_0", + ], + "keyboard-symbols": [ + "EXCLAMATION", + "AT_SIGN", + "HASH", + "DOLLAR", + "PERCENT", + "CARET", + "AMPERSAND", + "ASTERISK", + "LEFT_PARENTHESIS", + "RIGHT_PARENTHESIS", + "EQUAL", + "PLUS", + "MINUS", + "UNDERSCORE", + "SLASH", + "QUESTION", + "BACKSLASH", + "PIPE", + "NON_US_BACKSLASH", + "PIPE2", + "SEMICOLON", + "COLON", + "SINGLE_QUOTE", + "DOUBLE_QUOTES", + "COMMA", + "LESS_THAN", + "PERIOD", + "GREATER_THAN", + "LEFT_BRACKET", + "LEFT_BRACE", + "RIGHT_BRACKET", + "RIGHT_BRACE", + "GRAVE", + "TILDE", + "NON_US_HASH", + "TILDE2", + ], + keypad: ["KP_NUMLOCK", "KP_CLEAR", "CLEAR2", "KP_ENTER"], + "keypad-numbers": [ + "KP_NUMBER_1", + "KP_NUMBER_2", + "KP_NUMBER_3", + "KP_NUMBER_4", + "KP_NUMBER_5", + "KP_NUMBER_6", + "KP_NUMBER_7", + "KP_NUMBER_8", + "KP_NUMBER_9", + "KP_NUMBER_0", + ], + "keypad-operations": [ + "KP_PLUS", + "KP_MINUS", + "KP_MULTIPLY", + "KP_DIVIDE", + "KP_EQUAL", + "KP_EQUAL_AS400", + "KP_DOT", + "KP_COMMA", + "KP_LEFT_PARENTHESIS", + "KP_RIGHT_PARENTHESIS", + ], + "media-controls": [ + "C_RECORD", + "C_PLAY", + "C_PLAY_PAUSE", + "K_PLAY_PAUSE", + "C_PAUSE", + "C_STOP", + "K_STOP2", + "K_STOP3", + "C_STOP_EJECT", + "C_EJECT", + "K_EJECT", + "C_NEXT", + "K_NEXT", + "C_PREVIOUS", + "K_PREVIOUS", + "C_FAST_FORWARD", + "C_REWIND", + "C_SLOW", + "C_SLOW_TRACKING", + "C_REPEAT", + "C_RANDOM_PLAY", + "C_CAPTIONS", + "C_DATA_ON_SCREEN", + "C_SNAPSHOT", + ], + power: [ + "C_POWER", + "K_POWER", + "C_RESET", + "C_SLEEP", + "K_SLEEP", + "C_SLEEP_MODE", + "C_AL_LOGOFF", + "C_AL_LOCK", + "K_LOCK", + ], + sound: [ + "C_VOLUME_UP", + "K_VOLUME_UP", + "K_VOLUME_UP2", + "C_VOLUME_DOWN", + "K_VOLUME_DOWN", + "K_VOLUME_DOWN2", + "C_MUTE", + "K_MUTE", + "K_MUTE2", + "C_ALTERNATE_AUDIO_INCREMENT", + "C_BASS_BOOST", + ], + "undo-redo": ["C_AC_UNDO", "K_UNDO", "C_AC_REDO", "K_AGAIN"], +}; diff --git a/docs/src/data/hid-applications.js b/docs/src/data/hid-applications.js new file mode 100644 index 00000000..7cb7eda4 --- /dev/null +++ b/docs/src/data/hid-applications.js @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import usage from "../hid-usage"; +import * as pages from "./hid-usage-pages"; + +export const keyboard = usage(pages.genericDesktop, 0x06); +export const consumer = usage(pages.consumer, 0x01); diff --git a/docs/src/data/hid-usage-pages.js b/docs/src/data/hid-usage-pages.js new file mode 100644 index 00000000..ae11bc3b --- /dev/null +++ b/docs/src/data/hid-usage-pages.js @@ -0,0 +1,9 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +export const genericDesktop = 0x01; +export const key = 0x07; +export const consumer = 0x0c; diff --git a/docs/src/data/hid.js b/docs/src/data/hid.js new file mode 100644 index 00000000..1f7daa7c --- /dev/null +++ b/docs/src/data/hid.js @@ -0,0 +1,7837 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import { + keyboard as keyboardApplication, + consumer as consumerApplication, +} from "./hid-applications"; + +import { key as keyPage, consumer as consumerPage } from "./hid-usage-pages"; + +import usage from "../hid-usage"; + +export default [ + { + names: ["A"], + description: "a and A", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x04), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["B"], + description: "b and B", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x05), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["C"], + description: "c and C", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x06), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["D"], + description: "d and D", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x07), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["E"], + description: "e and E", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x08), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F"], + description: "f and F", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x09), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["G"], + description: "g and G", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x0a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["H"], + description: "h and H", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x0b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["I"], + description: "i and I", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x0c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["J"], + description: "j and J", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x0d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["K"], + description: "k and K", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x0e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["L"], + description: "l and L", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x0f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["M"], + description: "m and M", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x10), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["N"], + description: "n and N", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x11), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["O"], + description: "o and O", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x12), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["P"], + description: "p and P", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x13), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["Q"], + description: "q and Q", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x14), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["R"], + description: "r and R", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x15), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["S"], + description: "s and S", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x16), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["T"], + description: "t and T", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x17), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["U"], + description: "u and U", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x18), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=83", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["V"], + description: "v and V", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x19), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["W"], + description: "w and W", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x1a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["X"], + description: "x and X", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x1b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["Y"], + description: "y and Y", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x1c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["Z"], + description: "z and Z", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x1d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["NUMBER_1", "N1"], + description: "1 and ! [Exclamation]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x1e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["EXCLAMATION", "EXCL"], + description: "! [Exclamation]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x1e), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["NUMBER_2", "N2"], + description: "2 and @ [At Sign]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x1f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["AT_SIGN", "AT"], + description: "@ [At Sign]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x1f), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["NUMBER_3", "N3"], + description: "3 and # [Hash / Pound]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x20), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["HASH", "POUND"], + description: "# [Hash / Pound]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x20), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["NUMBER_4", "N4"], + description: "4 and $ [Dollar]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x21), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["DOLLAR", "DLLR"], + description: "$ [Dollar]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x21), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["NUMBER_5", "N5"], + description: "5 and % [Percent]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x22), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["PERCENT", "PRCNT"], + description: "% [Percent]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x22), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["NUMBER_6", "N6"], + description: "6 and ^ [Caret]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x23), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["CARET"], + description: "^ [Caret]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x23), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["NUMBER_7", "N7"], + description: "7 and & [Ampersand]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x24), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["AMPERSAND", "AMPS"], + description: "& [Ampersand]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x24), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["NUMBER_8", "N8"], + description: "8 and * [Asterisk / Star]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x25), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["ASTERISK", "ASTRK", "STAR"], + description: "* [Asterisk / Star]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x25), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["NUMBER_9", "N9"], + description: "9 and ( [Left Parenthesis]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x26), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["LEFT_PARENTHESIS", "LPAR"], + description: "( [Left Parenthesis]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x26), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["NUMBER_0", "N0"], + description: "0 and ) [Right Parenthesis]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x27), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["RIGHT_PARENTHESIS", "RPAR"], + description: ") [Right Parenthesis]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x27), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["RETURN", "ENTER", "RET"], + description: "Return (Enter)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x28), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["ESCAPE", "ESC"], + description: "Escape", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x29), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["BACKSPACE", "BSPC"], + description: "Backspace", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x2a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["TAB"], + description: "Tab", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x2b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["SPACE"], + description: "Space", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x2c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["MINUS"], + description: "- [Minus] and _ [Underscore]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x2d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["UNDERSCORE", "UNDER"], + description: "_ [Underscore]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x2d), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["EQUAL"], + description: "= [Equal] and + [Plus]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x2e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["PLUS"], + description: "+ [Plus]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x2e), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["LEFT_BRACKET", "LBKT"], + description: "[ [Left Bracket] and { [Left Brace]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x2f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["LEFT_BRACE", "LBRC"], + description: "{ [Left Brace]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x2f), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["RIGHT_BRACKET", "RBKT"], + description: "] [Right Bracket] and } [Right Brace]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x30), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["RIGHT_BRACE", "RBRC"], + description: "} [Right Brace]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x30), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["BACKSLASH", "BSLH"], + description: "\\ [Backslash] and | [Pipe]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x31), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["PIPE"], + description: "| [Pipe]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x31), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["NON_US_HASH"], + description: "Non-US # [Hash/Pound] and ~ [Tilde]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x32), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["TILDE2"], + description: "~ [Tilde]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x32), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["SEMICOLON", "SEMI"], + description: "; [Semicolon] and : [Colon]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x33), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["COLON"], + description: ": [Colon]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x33), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["SINGLE_QUOTE", "SQT", "APOSTROPHE", "APOS"], + description: "' [Apostrophe] and \" [Quote (Double)]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x34), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["DOUBLE_QUOTES", "DQT"], + description: '" [Quote (Double)]', + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x34), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["GRAVE"], + description: "` [Grave Accent] and ~ [Tilde]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x35), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["TILDE"], + description: "~ [Tilde]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x35), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["COMMA"], + description: ", [Comma] and < [Less Than]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x36), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["LESS_THAN", "LT"], + description: "< [Less Than]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x36), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["PERIOD", "DOT"], + description: ". [Period] and > [Greater Than]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x37), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["GREATER_THAN", "GT"], + description: "> [Greater Than]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x37), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["SLASH", "FSLH"], + description: "/ [Forward Slash] and ? [Question Mark]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x38), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["QUESTION", "QMARK"], + description: "? [Question Mark]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x38), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["CAPSLOCK", "CAPS", "CLCK"], + description: "Caps Lock", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x39), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F1"], + description: "F1", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x3a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F2"], + description: "F2", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x3b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F3"], + description: "F3", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x3c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F4"], + description: "F4", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x3d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=84", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F5"], + description: "F5", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x3e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F6"], + description: "F6", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x3f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F7"], + description: "F7", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x40), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F8"], + description: "F8", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x41), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F9"], + description: "F9", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x42), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F10"], + description: "F10", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x43), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F11"], + description: "F11", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x44), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["F12"], + description: "F12", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x45), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["PRINTSCREEN", "PSCRN"], + description: "Print Screen", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x46), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["SCROLLLOCK", "SLCK"], + description: "Scroll Lock", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x47), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["PAUSE_BREAK"], + description: "Pause / Break", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x48), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["INSERT", "INS"], + description: "Insert", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x49), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["HOME"], + description: "Home", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x4a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["PAGE_UP", "PG_UP"], + description: "Page Up", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x4b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["DELETE", "DEL"], + description: "Delete", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x4c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["END"], + description: "End", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x4d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["PAGE_DOWN", "PG_DN"], + description: "Page Down", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x4e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["RIGHT_ARROW", "RIGHT"], + description: "⮕ [Right Arrow]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x4f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["LEFT_ARROW", "LEFT"], + description: "⬅ [Left Arrow]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x50), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["DOWN_ARROW", "DOWN"], + description: "⬇ [Down Arrow]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x51), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["UP_ARROW", "UP"], + description: "⬆ [Up Arrow]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x52), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["KP_NUMLOCK", "KP_NUM", "KP_NLCK"], + description: "Numlock and Clear", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x53), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["CLEAR2"], + description: "Clear", + context: "Keypad", + clarify: null, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x53), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_DIVIDE", "KP_SLASH"], + description: "/ [Divide]", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x54), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_MULTIPLY", "KP_ASTERISK"], + description: "* [Multiply]", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x55), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_MINUS", "KP_SUBTRACT"], + description: "- [Minus]", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x56), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_PLUS"], + description: "+ [Plus]", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x57), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_ENTER"], + description: "Enter", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x58), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_NUMBER_1", "KP_N1"], + description: "1", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x59), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_NUMBER_2", "KP_N2"], + description: "2", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x5a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_NUMBER_3", "KP_N3"], + description: "3", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x5b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_NUMBER_4", "KP_N4"], + description: "4", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x5c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_NUMBER_5", "KP_N5"], + description: "5", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x5d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_NUMBER_6", "KP_N6"], + description: "6", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x5e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_NUMBER_7", "KP_N7"], + description: "7", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x5f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_NUMBER_8", "KP_N8"], + description: "8", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x60), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_NUMBER_9", "KP_N9"], + description: "9", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x61), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_NUMBER_0", "KP_N0"], + description: "0", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x62), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=85", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_DOT"], + description: ". [Dot]", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x63), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: null, + }, + footnotes: {}, + }, + { + names: ["NON_US_BACKSLASH", "NON_US_BSLH"], + description: "Non-US \\ [Backslash] and | [Pipe]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x64), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["PIPE2"], + description: "| [Pipe]", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x64), + }, + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["K_APPLICATION", "K_APP", "K_CONTEXT_MENU", "K_CMENU"], + description: "Application (Context Menu)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x65), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_POWER", "K_PWR"], + description: "Power", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x66), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: false, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_EQUAL"], + description: "= [Equal]", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x67), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["F13"], + description: "F13", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x68), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["F14"], + description: "F14", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x69), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["F15"], + description: "F15", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x6a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["F16"], + description: "F16", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x6b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["F17"], + description: "F17", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x6c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["F18"], + description: "F18", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x6d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["F19"], + description: "F19", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x6e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["F20"], + description: "F20", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x6f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["F21"], + description: "F21", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x70), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["F22"], + description: "F22", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x71), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["F23"], + description: "F23", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x72), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["F24"], + description: "F24", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x73), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_EXECUTE", "K_EXEC"], + description: "Execute", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x74), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_HELP"], + description: "Help", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x75), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_MENU"], + description: "Menu", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x76), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_SELECT"], + description: "Select", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x77), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_STOP"], + description: "Stop", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x78), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_AGAIN", "K_REDO"], + description: "Again", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x79), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_UNDO"], + description: "Undo", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x7a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_CUT"], + description: "Cut", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x7b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_COPY"], + description: "Copy", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x7c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_PASTE"], + description: "Paste", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x7d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_FIND"], + description: "Find", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x7e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_MUTE"], + description: "Mute", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x7f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_VOLUME_UP", "K_VOL_UP"], + description: "Volume Up", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x80), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_VOLUME_DOWN", "K_VOL_DN"], + description: "Volume Down", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x81), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LOCKING_CAPS", "LCAPS"], + description: "Locking Caps Lock", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x82), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LOCKING_NUM", "LNLCK"], + description: "Locking Num Lock", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x83), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LOCKING_SCROLL", "LSLCK"], + description: "Locking Scroll Lock", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x84), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_COMMA"], + description: ", [Comma]", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x85), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_EQUAL_AS400"], + description: "= [Equal] (AS/400 keyboards)", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x86), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["INTERNATIONAL_1", "INT1", "INT_RO"], + description: "ろ (International 1)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x87), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["INTERNATIONAL_2", "INT2", "INT_KATAKANAHIRAGANA", "INT_KANA"], + description: "かな (International 2)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x88), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["INTERNATIONAL_3", "INT3", "INT_YEN"], + description: "¥ (International 3)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x89), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["INTERNATIONAL_4", "INT4", "INT_HENKAN"], + description: "変換 (International 4)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x8a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=86", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["INTERNATIONAL_5", "INT5", "INT_MUHENKAN"], + description: "無変換 (International 5)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x8b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["INTERNATIONAL_6", "INT6", "INT_KPJPCOMMA"], + description: ", [カソマ] (International 6)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x8c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["INTERNATIONAL_7", "INT7"], + description: "International 7", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x8d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["INTERNATIONAL_8", "INT8"], + description: "International 8", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x8e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["INTERNATIONAL_9", "INT9"], + description: "International 9", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x8f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LANGUAGE_1", "LANG1", "LANG_HANGEUL"], + description: "한/영 (Language 1)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x90), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LANGUAGE_2", "LANG2", "LANG_HANJA"], + description: "한자 (Language 2)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x91), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LANGUAGE_3", "LANG3", "LANG_KATAKANA"], + description: "カタカナ (Language 3)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x92), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LANGUAGE_4", "LANG4", "LANG_HIRAGANA"], + description: "ひらがな (Language 4)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x93), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LANGUAGE_5", "LANG5", "LANG_ZENKAKUHANKAKU"], + description: "半角/全角 (Language 5)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x94), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LANGUAGE_6", "LANG6"], + description: "Language 6", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x95), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LANGUAGE_7", "LANG7"], + description: "Language 7", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x96), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LANGUAGE_8", "LANG8"], + description: "Language 8", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x97), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LANGUAGE_9", "LANG9"], + description: "Language 9", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x98), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["ALT_ERASE"], + description: "Alternate Erase", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x99), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["SYSREQ", "ATTENTION"], + description: "SysReq / Attention", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x9a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_CANCEL"], + description: "Cancel", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x9b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["CLEAR"], + description: "Clear", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x9c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["PRIOR"], + description: "Prior", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x9d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["RETURN2", "RET2"], + description: "Return", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x9e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["SEPARATOR"], + description: "Separator", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0x9f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["OUT"], + description: "Out", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xa0), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["OPER"], + description: "Oper", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xa1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["CLEAR_AGAIN"], + description: "Clear / Again", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xa2), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["CRSEL"], + description: "CrSel / Props", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xa3), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["EXSEL"], + description: "ExSel", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xa4), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_LEFT_PARENTHESIS", "KP_LPAR"], + description: "( [Left Parenthesis]", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xb6), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_RIGHT_PARENTHESIS", "KP_RPAR"], + description: ") [Right Parenthesis]", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xb7), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=87", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["KP_CLEAR"], + description: "Clear", + context: "Keypad", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xd8), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=88", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["LEFT_CONTROL", "LCTRL"], + description: "Left Control", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xe0), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=88", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["LEFT_SHIFT", "LSHFT"], + description: "Left Shift ⇧", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xe1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=88", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["LEFT_ALT", "LALT"], + description: "Left Alt", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xe2), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=88", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: [ + "LEFT_GUI", + "LGUI", + "LEFT_WIN", + "LWIN", + "LEFT_COMMAND", + "LCMD", + "LEFT_META", + "LMETA", + ], + description: "Left GUI (Windows / Command / Meta)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xe3), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=88", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["RIGHT_CONTROL", "RCTRL"], + description: "Right Control", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xe4), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=88", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["RIGHT_SHIFT", "RSHFT"], + description: "Right Shift ⇧", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xe5), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=89", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["RIGHT_ALT", "RALT"], + description: "Right Alt", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xe6), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=89", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: [ + "RIGHT_GUI", + "RGUI", + "RIGHT_WIN", + "RWIN", + "RIGHT_COMMAND", + "RCMD", + "RIGHT_META", + "RMETA", + ], + description: "Right GUI (Windows / Command / Meta)", + context: "Keyboard", + clarify: false, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xe7), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=89", + os: { + windows: true, + linux: true, + android: true, + macos: true, + ios: true, + }, + footnotes: {}, + }, + { + names: ["K_PLAY_PAUSE", "K_PP"], + description: "Play / Pause", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xe8), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_STOP2"], + description: "Stop", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xe9), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_PREVIOUS", "K_PREV"], + description: "Previous", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xea), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_NEXT"], + description: "Next", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xeb), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_EJECT"], + description: "Eject", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xec), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_VOLUME_UP2", "K_VOL_UP2"], + description: "Volume Up", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xed), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_VOLUME_DOWN2", "K_VOL_DN2"], + description: "Volume Down", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xee), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_MUTE2"], + description: "Mute", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xef), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_WWW"], + description: "Internet Browser", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xf0), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_BACK"], + description: "Back", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xf1), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_FORWARD"], + description: "Forward", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xf2), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_STOP3"], + description: "Stop", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xf3), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_FIND2"], + description: "Find", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xf4), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_SCROLL_UP"], + description: "Scroll Up", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xf5), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_SCROLL_DOWN"], + description: "Scroll Down", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xf6), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_EDIT"], + description: "Edit", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xf7), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_SLEEP"], + description: "Sleep", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xf8), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_LOCK", "K_SCREENSAVER", "K_COFFEE"], + description: "Lock", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xf9), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_REFRESH"], + description: "Refresh", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xfa), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["K_CALCULATOR", "K_CALC"], + description: "Calculator", + context: "Keyboard", + clarify: true, + usages: [ + { + application: keyboardApplication, + item: usage(keyPage, 0xfb), + }, + ], + documentation: + "https://source.android.com/devices/input/keyboard-devices#hid-keyboard-and-keypad-page-0x07", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_POWER", "C_PWR"], + description: "Power", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x30), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=132", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_RESET"], + description: "Reset", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x31), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=132", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_SLEEP"], + description: "Sleep", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x32), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=132", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_SLEEP_MODE"], + description: "Sleep Mode", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x34), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=132", + os: { + windows: null, + linux: false, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MENU"], + description: "Menu", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x40), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MENU_PICK", "C_MENU_SELECT"], + description: "Pick", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x41), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MENU_UP"], + description: "Up", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x42), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MENU_DOWN"], + description: "Down", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x43), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MENU_LEFT"], + description: "Left", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x44), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MENU_RIGHT"], + description: "Right", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x45), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MENU_ESCAPE", "C_MENU_ESC"], + description: "Escape", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x46), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MENU_INCREASE", "C_MENU_INC"], + description: "Value Increase", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x47), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MENU_DECREASE", "C_MENU_DEC"], + description: "Value Decrease", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x48), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_DATA_ON_SCREEN"], + description: "Data On Screen", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x60), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_CAPTIONS", "C_SUBTITILES"], + description: "Closed Caption", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x61), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_SNAPSHOT"], + description: "Snapshot", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x65), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_PIP"], + description: "Picture-in-Picture Toggle", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x67), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", + os: { + windows: null, + linux: false, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_RED_BUTTON", "C_RED"], + description: "Red Button", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x69), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_GREEN_BUTTON", "C_GREEN"], + description: "Green Button", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x6a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_BLUE_BUTTON", "C_BLUE"], + description: "Blue Button", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x6b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_YELLOW_BUTTON", "C_YELLOW"], + description: "Yellow Button", + context: "Consumer Menu", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x6c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=133", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_ASPECT"], + description: "Aspect", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x6d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_BRIGHTNESS_INC", "C_BRI_INC", "C_BRI_UP"], + description: "Increase Brightness", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x6f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_BRIGHTNESS_DEC", "C_BRI_DEC", "C_BRI_DN"], + description: "Decrease Brightness", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x70), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_BACKLIGHT_TOGGLE", "C_BKLT_TOG"], + description: "Backlight Toggle", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x72), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_BRIGHTNESS_MINIMUM", "C_BRI_MIN"], + description: "Minimum Brightness", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x73), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_BRIGHTNESS_MAXIMUM", "C_BRI_MAX"], + description: "Maximum Brightness", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x74), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_BRIGHTNESS_AUTO", "C_BRI_AUTO"], + description: "Auto Brightness", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x75), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=134", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_STEP", "C_MODE_STEP"], + description: "Mode Step", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x82), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_RECALL_LAST", "C_CHAN_LAST"], + description: "Recall Last", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x83), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_COMPUTER"], + description: "Computer", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x88), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_TV"], + description: "TV", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x89), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_WWW"], + description: "WWW", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x8a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_DVD"], + description: "DVD", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x8b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_PHONE"], + description: "Telephone", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x8c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_GUIDE"], + description: "Program Guide", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x8d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_VIDEOPHONE"], + description: "Video Phone", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x8e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_GAMES"], + description: "Games", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x8f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_MESSAGES"], + description: "Messages", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x90), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_CD"], + description: "CD", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x91), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_VCR"], + description: "VCR", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x92), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_TUNER"], + description: "Tuner", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x93), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_QUIT"], + description: "Quit", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x94), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_HELP"], + description: "Help", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x95), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_TAPE"], + description: "Tape", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x96), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_CABLE"], + description: "Cable", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x97), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_SATELLITE"], + description: "Satellite", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x98), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_HOME"], + description: "Home", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x9a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=136", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_CHANNEL_INC", "C_CHAN_INC"], + description: "Channel Increment", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x9c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=136", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_CHANNEL_DEC", "C_CHAN_DEC"], + description: "Channel Decrement", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x9d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=136", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MEDIA_VCR_PLUS"], + description: "VCR Plus", + context: "Consumer Media", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xa0), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=135", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_PLAY"], + description: "Play", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xb0), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_PAUSE"], + description: "Pause", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xb1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_RECORD", "C_REC"], + description: "Record", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xb2), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_FAST_FORWARD", "C_FF"], + description: "Fast Forward", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xb3), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_REWIND", "C_RW"], + description: "Rewind", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xb4), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_NEXT"], + description: "Next", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xb5), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_PREVIOUS", "C_PREV"], + description: "Previous", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xb6), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_STOP"], + description: "Stop", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xb7), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_EJECT"], + description: "Eject", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xb8), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_RANDOM_PLAY", "C_SHUFFLE"], + description: "Random Play", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xb9), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_REPEAT"], + description: "Repeat", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xbc), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_SLOW_TRACKING", "C_SLOW2"], + description: "Slow Tracking", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xbf), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_STOP_EJECT"], + description: "Stop / Eject", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xcc), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: false, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_PLAY_PAUSE", "C_PP"], + description: "Play / Pause", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xcd), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=137", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_VOICE_COMMAND"], + description: "Voice Command", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xcf), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=132", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_MUTE"], + description: "Mute", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xe2), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=139", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_BASS_BOOST"], + description: "Bass Boost", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xe5), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=139", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_VOLUME_UP", "C_VOL_UP"], + description: "Volume Up", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xe9), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=139", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_VOLUME_DOWN", "C_VOL_DN"], + description: "Volume Down", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xea), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=139", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_SLOW"], + description: "Slow", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0xf5), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=141", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_ALTERNATE_AUDIO_INCREMENT", "C_ALT_AUDIO_INC"], + description: "Alternate Audio Increment", + context: "Consumer", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x173), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf", + os: { + windows: null, + linux: false, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_CCC"], + description: "Consumer Control Configuration", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x183), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_WORD"], + description: "Word Processor", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x184), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_TEXT_EDITOR"], + description: "Text Editor", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x185), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_SPREADSHEET", "C_AL_SHEET"], + description: "Spreadsheet", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x186), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_GRAPHICS_EDITOR"], + description: "Graphics Editor", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x187), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_PRESENTATION"], + description: "Presentation", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x188), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_DATABASE", "C_AL_DB"], + description: "Database App", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x189), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_EMAIL", "C_AL_MAIL"], + description: "Email Reader", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x18a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_NEWS"], + description: "Newsreader", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x18b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_VOICEMAIL"], + description: "Voicemail", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x18c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_CONTACTS", "C_AL_ADDRESS_BOOK"], + description: "Contacts / Address Book", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x18d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_CALENDAR", "C_AL_CAL"], + description: "Calendar / Schedule", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x18e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_TASK_MANAGER"], + description: "Task / Project Manager", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x18f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_JOURNAL"], + description: "Log / Journal / Timecard", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x190), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_FINANCE"], + description: "Checkbook / Finance", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x191), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_CALCULATOR", "C_AL_CALC"], + description: "Calculator", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x192), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_AV_CAPTURE_PLAYBACK"], + description: "A/V Capture / Playback", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x193), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_MY_COMPUTER"], + description: "Local Machine Browser", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x194), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_WWW"], + description: "Internet Browser", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x196), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=147", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_NETWORK_CHAT", "C_AL_CHAT"], + description: "Network Chat", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x199), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_LOGOFF"], + description: "Logoff", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x19c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_LOCK", "C_AL_SCREENSAVER", "C_AL_COFFEE"], + description: "Terminal Lock / Screensaver", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x19e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_CONTROL_PANEL"], + description: "Control Panel", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x19f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_SELECT_TASK"], + description: "Select Task / Application", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1a2), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_NEXT_TASK"], + description: "Next Task / Application", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1a3), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_PREVIOUS_TASK", "C_AL_PREV_TASK"], + description: "Previous Task / Application", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1a4), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_HELP"], + description: "Integrated Help Center", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1a6), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_DOCUMENTS", "C_AL_DOCS"], + description: "Documents", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1a7), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_SPELLCHECK", "C_AL_SPELL"], + description: "Spell Check", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1ab), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_KEYBOARD_LAYOUT"], + description: "Keyboard Layout", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1ae), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_SCREEN_SAVER"], + description: "Screen Saver", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1b1), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_FILE_BROWSER", "C_AL_FILES"], + description: "File Browser", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1b4), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_IMAGE_BROWSER", "C_AL_IMAGES"], + description: "Image Browser", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1b6), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_AUDIO_BROWSER", "C_AL_AUDIO", "C_AL_MUSIC"], + description: "Audio Browser", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1b7), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_MOVIE_BROWSER", "C_AL_MOVIES"], + description: "Movie Browser", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1b8), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=148", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_INSTANT_MESSAGING", "C_AL_IM"], + description: "Instant Messaging", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1bc), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=149", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AL_OEM_FEATURES", "C_AL_TIPS", "C_AL_TUTORIAL"], + description: "OEM Features / Tips / Tutorial Browser", + context: "Consumer AL", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x1bd), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=149", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_NEW"], + description: "New", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x201), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_OPEN"], + description: "Open", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x202), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_CLOSE"], + description: "Close", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x203), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_EXIT"], + description: "Exit", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x204), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_SAVE"], + description: "Save", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x207), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_PRINT"], + description: "Print", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x208), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_PROPERTIES", "C_AC_PROPS"], + description: "Properties", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x209), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_UNDO"], + description: "Undo", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x21a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_COPY"], + description: "Copy", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x21b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_CUT"], + description: "Cut", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x21c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_PASTE"], + description: "Paste", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x21d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_FIND"], + description: "Find", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x21f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_SEARCH"], + description: "Search", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x221), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_GOTO"], + description: "Go To", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x222), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_HOME"], + description: "Home", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x223), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_BACK"], + description: "Back", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x224), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_FORWARD"], + description: "Forward", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x225), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_STOP"], + description: "Stop", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x226), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_REFRESH"], + description: "Refresh", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x227), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_BOOKMARKS", "C_AC_FAVORITES", "C_AC_FAVOURITES"], + description: "Bookmarks", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x22a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_ZOOM_IN"], + description: "Zoom In", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x22d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_ZOOM_OUT"], + description: "Zoom Out", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x22e), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_ZOOM"], + description: "Zoom", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x22f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=150", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_VIEW_TOGGLE"], + description: "View Toggle", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x232), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=151", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_SCROLL_UP"], + description: "Scroll Up", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x233), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=151", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_SCROLL_DOWN"], + description: "Scroll Down", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x234), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=151", + os: { + windows: null, + linux: true, + android: true, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_EDIT"], + description: "Edit", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x23d), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=151", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_CANCEL"], + description: "Cancel", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x25f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=152", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_INSERT", "C_AC_INS"], + description: "Insert Mode", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x269), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=152", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_DEL"], + description: "Delete", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x26a), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=152", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_REDO"], + description: "Redo / Repeat", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x279), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=152", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_REPLY"], + description: "Reply", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x289), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=153", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_FORWARD_MAIL"], + description: "Forward", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x28b), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=153", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_SEND"], + description: "Send", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x28c), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=153", + os: { + windows: null, + linux: true, + android: false, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_AC_DESKTOP_SHOW_ALL_WINDOWS"], + description: "Desktop Show All Windows", + context: "Consumer AC", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x29f), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=153", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_KEYBOARD_INPUT_ASSIST_PREVIOUS", "C_KBIA_PREV"], + description: "Previous", + context: "Consumer KBIA", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x2c7), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=157", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_KEYBOARD_INPUT_ASSIST_NEXT", "C_KBIA_NEXT"], + description: "Next", + context: "Consumer KBIA", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x2c8), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=157", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_KEYBOARD_INPUT_ASSIST_PREVIOUS_GROUP", "C_KBIA_PREV_GRP"], + description: "Previous Group", + context: "Consumer KBIA", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x2c9), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=157", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_KEYBOARD_INPUT_ASSIST_NEXT_GROUP", "C_KBIA_NEXT_GRP"], + description: "Next Group", + context: "Consumer KBIA", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x2ca), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=157", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_KEYBOARD_INPUT_ASSIST_ACCEPT", "C_KBIA_ACCEPT"], + description: "Accept", + context: "Consumer KBIA", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x2cb), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=157", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, + { + names: ["C_KEYBOARD_INPUT_ASSIST_CANCEL", "C_KBIA_CANCEL"], + description: "Cancel", + context: "Consumer KBIA", + clarify: true, + usages: [ + { + application: consumerApplication, + item: usage(consumerPage, 0x2cc), + }, + ], + documentation: "https://usb.org/sites/default/files/hut1_2.pdf#page=157", + os: { + windows: null, + linux: true, + android: null, + macos: null, + ios: null, + }, + footnotes: {}, + }, +]; diff --git a/docs/src/data/operating-systems.js b/docs/src/data/operating-systems.js new file mode 100644 index 00000000..0631766d --- /dev/null +++ b/docs/src/data/operating-systems.js @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +export default [ + { + key: "windows", + className: "windows", + heading: "W", + title: "Windows", + }, + { + key: "linux", + className: "linux", + heading: "L", + title: "Linux", + }, + { + key: "android", + className: "android", + heading: "A", + title: "Android", + }, + { + key: "macos", + className: "macos", + heading: "m", + title: "macOS", + }, + { + key: "ios", + className: "ios", + heading: "i", + title: "iOS", + }, +]; diff --git a/docs/src/footnotes.js b/docs/src/footnotes.js new file mode 100644 index 00000000..c6fdbaa7 --- /dev/null +++ b/docs/src/footnotes.js @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import footnotes from "./data/footnotes"; + +export function getFootnote(id) { + const footnote = footnotes[id]; + if (typeof footnote != "undefined") { + return footnote; + } +} diff --git a/docs/src/groups.js b/docs/src/groups.js new file mode 100644 index 00000000..a5ea294f --- /dev/null +++ b/docs/src/groups.js @@ -0,0 +1,11 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import groups from "./data/groups.js"; + +export function getGroup(id) { + return groups[id] ?? null; +} diff --git a/docs/src/hid-usage.js b/docs/src/hid-usage.js new file mode 100644 index 00000000..d6423589 --- /dev/null +++ b/docs/src/hid-usage.js @@ -0,0 +1,9 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +export default function usage(page, id) { + return (page << 16) | id; +} diff --git a/docs/src/hid.js b/docs/src/hid.js new file mode 100644 index 00000000..583ce7a5 --- /dev/null +++ b/docs/src/hid.js @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: CC-BY-NC-SA-4.0 + */ + +import codes from "./data/hid"; + +export const map = codes.reduce((map, item) => { + item.names.forEach((name) => (map[name] = item)); + return map; +}, {}); + +export function getCode(id) { + return map[id] ?? null; +} + +export function getCodes(ids) { + return ids.reduce((result, id) => [...result, map[id]], []); +}