From 1826948886cdf83076206daf655bde773932ef8d Mon Sep 17 00:00:00 2001 From: siilyg <149881151+siily-g@users.noreply.github.com> Date: Mon, 26 May 2025 21:03:25 +0700 Subject: [PATCH] feat(layout): add Tarmak layouts (@siily-g) (#6574) ### Description The tarmak layout(s) is a set of transition layouts for qwerty user switching to colemak, it changes only about 3-4 keys for every stage. [More about tarmak](https://dreymar.colemak.org/tarmak-intro.html) ### Checks - [ ] Adding quotes? - [ ] Make sure to include translations for the quotes in the description (or another comment) so we can verify their content. - [ ] Adding a language? - Make sure to follow the [languages documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md) - [ ] Add language to `packages/contracts/src/schemas/languages.ts` - [ ] Add language to exactly one group in `frontend/src/ts/constants/languages.ts` - [ ] Add language json file to `frontend/static/languages` - [ ] Adding a theme? - Make sure to follow the [themes documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/THEMES.md) - [ ] Add theme to `packages/contracts/src/schemas/themes.ts` - [ ] Add theme to `frontend/src/ts/constants/themes.ts` - [ ] Add theme css file to `frontend/static/themes` - [x] Adding a layout? - [x] Make sure to follow the [layouts documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md) - [x] Add layout to `packages/contracts/src/schemas/layouts.ts` - [x] Add layout json file to `frontend/static/layouts` - [x] Check if any open issues are related to this PR; if so, be sure to tag them below. - [x] Make sure the PR title follows the Conventional Commits standard. (https://www.conventionalcommits.org for more info) - [x] Make sure to include your GitHub username prefixed with @ inside parentheses at the end of the PR title. --- frontend/static/layouts/tarmak_1.json | 39 +++++++++++++++++++++++ frontend/static/layouts/tarmak_2.json | 39 +++++++++++++++++++++++ frontend/static/layouts/tarmak_3.json | 39 +++++++++++++++++++++++ frontend/static/layouts/tarmak_4.json | 39 +++++++++++++++++++++++ packages/contracts/src/schemas/layouts.ts | 6 +++- 5 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 frontend/static/layouts/tarmak_1.json create mode 100644 frontend/static/layouts/tarmak_2.json create mode 100644 frontend/static/layouts/tarmak_3.json create mode 100644 frontend/static/layouts/tarmak_4.json diff --git a/frontend/static/layouts/tarmak_1.json b/frontend/static/layouts/tarmak_1.json new file mode 100644 index 000000000..a636b2a37 --- /dev/null +++ b/frontend/static/layouts/tarmak_1.json @@ -0,0 +1,39 @@ +{ + "keymapShowTopRow": false, + "type": "ansi", + "keys": { + "row1": [ + "`~", + "1!", + "2@", + "3#", + "4$", + "5%", + "6^", + "7&", + "8*", + "9(", + "0)", + "-_", + "=+" + ], + "row2": [ + "qQ", + "wW", + "jJ", + "rR", + "tT", + "yY", + "uU", + "iI", + "oO", + "pP", + "[{", + "]}", + "\\|" + ], + "row3": ["aA", "sS", "dD", "fF", "gG", "hH", "nN", "eE", "lL", ";:", "'\""], + "row4": ["zZ", "xX", "cC", "vV", "bB", "kK", "mM", ",<", ".>", "/?"], + "row5": [" "] + } +} diff --git a/frontend/static/layouts/tarmak_2.json b/frontend/static/layouts/tarmak_2.json new file mode 100644 index 000000000..aa971229c --- /dev/null +++ b/frontend/static/layouts/tarmak_2.json @@ -0,0 +1,39 @@ +{ + "keymapShowTopRow": false, + "type": "ansi", + "keys": { + "row1": [ + "`~", + "1!", + "2@", + "3#", + "4$", + "5%", + "6^", + "7&", + "8*", + "9(", + "0)", + "-_", + "=+" + ], + "row2": [ + "qQ", + "wW", + "fF", + "rR", + "gG", + "yY", + "uU", + "iI", + "oO", + "pP", + "[{", + "]}", + "\\|" + ], + "row3": ["aA", "sS", "dD", "tT", "jJ", "hH", "nN", "eE", "lL", ";:", "'\""], + "row4": ["zZ", "xX", "cC", "vV", "bB", "kK", "mM", ",<", ".>", "/?"], + "row5": [" "] + } +} diff --git a/frontend/static/layouts/tarmak_3.json b/frontend/static/layouts/tarmak_3.json new file mode 100644 index 000000000..99fa56d5c --- /dev/null +++ b/frontend/static/layouts/tarmak_3.json @@ -0,0 +1,39 @@ +{ + "keymapShowTopRow": false, + "type": "ansi", + "keys": { + "row1": [ + "`~", + "1!", + "2@", + "3#", + "4$", + "5%", + "6^", + "7&", + "8*", + "9(", + "0)", + "-_", + "=+" + ], + "row2": [ + "qQ", + "wW", + "fF", + "jJ", + "gG", + "yY", + "uU", + "iI", + "oO", + "pP", + "[{", + "]}", + "\\|" + ], + "row3": ["aA", "rR", "sS", "tT", "dD", "hH", "nN", "eE", "lL", ";:", "'\""], + "row4": ["zZ", "xX", "cC", "vV", "bB", "kK", "mM", ",<", ".>", "/?"], + "row5": [" "] + } +} diff --git a/frontend/static/layouts/tarmak_4.json b/frontend/static/layouts/tarmak_4.json new file mode 100644 index 000000000..00fba9420 --- /dev/null +++ b/frontend/static/layouts/tarmak_4.json @@ -0,0 +1,39 @@ +{ + "keymapShowTopRow": false, + "type": "ansi", + "keys": { + "row1": [ + "`~", + "1!", + "2@", + "3#", + "4$", + "5%", + "6^", + "7&", + "8*", + "9(", + "0)", + "-_", + "=+" + ], + "row2": [ + "qQ", + "wW", + "fF", + "pP", + "gG", + "jJ", + "uU", + "iI", + "yY", + ";:", + "[{", + "]}", + "\\|" + ], + "row3": ["aA", "rR", "sS", "tT", "dD", "hH", "nN", "eE", "lL", "oO", "'\""], + "row4": ["zZ", "xX", "cC", "vV", "bB", "kK", "mM", ",<", ".>", "/?"], + "row5": [" "] + } +} diff --git a/packages/contracts/src/schemas/layouts.ts b/packages/contracts/src/schemas/layouts.ts index 70d24b553..cf448f9ac 100644 --- a/packages/contracts/src/schemas/layouts.ts +++ b/packages/contracts/src/schemas/layouts.ts @@ -213,7 +213,11 @@ export const LayoutNameSchema = z.enum([ "ergopti", "sword", "opy", + "tarmak_1", + "tarmak_2", + "tarmak_3", + "tarmak_4", ] ); -export type LayoutName = z.infer; \ No newline at end of file +export type LayoutName = z.infer;