From 3121bd58168b26276a7952dc557a92726a6b7244 Mon Sep 17 00:00:00 2001 From: Helium314 Date: Mon, 4 Dec 2023 13:26:02 +0100 Subject: [PATCH] add pcqwerty layout (functional keys are a bit different now) --- app/src/main/assets/layouts/pcqwerty.json | 120 ++++++++++++++++++ .../keyboard/internal/KeyboardBuilder.kt | 7 - .../keyboard_parser/KeyboardParser.kt | 1 + 3 files changed, 121 insertions(+), 7 deletions(-) create mode 100644 app/src/main/assets/layouts/pcqwerty.json diff --git a/app/src/main/assets/layouts/pcqwerty.json b/app/src/main/assets/layouts/pcqwerty.json new file mode 100644 index 000000000..b9d6a17b5 --- /dev/null +++ b/app/src/main/assets/layouts/pcqwerty.json @@ -0,0 +1,120 @@ +[ + [ + { "$": "shift_state_selector", + "manualOrLocked": { "label": "~" }, + "default": { "label": "`", "popup": { "main": { "label": "~" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "!" }, + "default": { "label": "1", "popup": { "relevant": [ { "label": "!" }, { "label": "¡" } ] } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "\\@" }, + "default": { "label": "2", "popup": { "main": { "label": "\\@" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "\\#" }, + "default": { "label": "3", "popup": { "main": { "label": "\\#" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "$" }, + "default": { "label": "4", "popup": { "main": { "label": "$" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "\\%" }, + "default": { "label": "5", "popup": { "main": { "label": "\\%" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "^" }, + "default": { "label": "6", "popup": { "main": { "label": "^" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "&" }, + "default": { "label": "7", "popup": { "main": { "label": "&" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "*" }, + "default": { "label": "8", "popup": { "main": { "label": "*" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "(" }, + "default": { "label": "9", "popup": { "main": { "label": "(" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": ")" }, + "default": { "label": "0", "popup": { "main": { "label": ")" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "_" }, + "default": { "label": "-", "popup": { "relevant": [ { "label": "_" }, { "label": "–" }, { "label": "—" }, { "label": "·" } ] } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "+", "popup": { "relevant": [ { "label": "×" }, { "label": "÷" }, { "label": "√" } ] } }, + "default": { "label": "=", "popup": { "relevant": [ { "label": "+" }, { "label": "∞" }, { "label": "≠" }, { "label": "≈" } ] } } + } + ], + [ + { "label": "q", "popup": { "main": { "label": "%" } } }, + { "label": "w", "popup": { "main": { "label": "\\" } } }, + { "label": "e", "popup": { "main": { "label": "|" } } }, + { "label": "r", "popup": { "main": { "label": "=" } } }, + { "label": "t", "popup": { "main": { "label": "[" } } }, + { "label": "y", "popup": { "main": { "label": "]" } } }, + { "label": "u", "popup": { "main": { "label": "<" } } }, + { "label": "i", "popup": { "main": { "label": ">" } } }, + { "label": "o", "popup": { "main": { "label": "{" } } }, + { "label": "p", "popup": { "main": { "label": "}" } } }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "{" }, + "default": { "label": "[", "popup": { "main": { "label": "{" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "}" }, + "default": { "label": "]", "popup": { "main": { "label": "}" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "|" }, + "default": { "label": "\\", "popup": { "main": { "label": "\\|" } } } + } + ], + [ + { "label": "a", "popup": { "main": { "label": "@" } } }, + { "label": "s", "popup": { "main": { "label": "#" } } }, + { "label": "d", "popup": { "main": { "label": "$$$" } } }, + { "label": "f", "popup": { "main": { "label": "_" } } }, + { "label": "g", "popup": { "main": { "label": "&" } } }, + { "label": "h", "popup": { "main": { "label": "-" } } }, + { "label": "j", "popup": { "main": { "label": "+" } } }, + { "label": "k", "popup": { "main": { "label": "(" } } }, + { "label": "l", "popup": { "main": { "label": ")" } } }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": ":" }, + "default": { "label": ";", "popup": { "main": { "label": ":" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "\"" }, + "default": { "label": "'", "popup": { "main": { "label": "\"" } } } + } + ], + [ + { "label": "z", "popup": { "main": { "label": "*" } } }, + { "label": "x", "popup": { "main": { "label": "\"" } } }, + { "label": "c", "popup": { "main": { "label": "'" } } }, + { "label": "v", "popup": { "main": { "label": ":" } } }, + { "label": "b", "popup": { "main": { "label": ";" } } }, + { "label": "n", "popup": { "main": { "label": "!" } } }, + { "label": "m", "popup": { "main": { "label": "?" } } }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "<", "popup": { "relevant": [ { "label": "‹" }, { "label": "≤" }, { "label": "«" } ] } }, + "default": { "label": ",", "popup": { "main": { "label": "<" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": ">", "popup": { "relevant": [ { "label": "›" }, { "label": "›" }, { "label": "»" } ] } }, + "default": { "label": ".", "popup": { "main": { "label": ">" } } } + }, + { "$": "shift_state_selector", + "manualOrLocked": { "label": "\\?" }, + "default": { "label": "/", "popup": { "main": { "label": "\\?" }, "relevant": [ { "label": "¿" } ] } } + } + ] +] diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardBuilder.kt b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardBuilder.kt index ec84e7510..ea88b513f 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardBuilder.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardBuilder.kt @@ -63,13 +63,6 @@ open class KeyboardBuilder(protected val mContext: Context, return this // todo: further plan - // migrate pcqwerty to this style - // this will be more complicated... - // linked shift keys might be easy - // distance below number row with high row, but reduced key height? - // consider settings key needs to disappear if device is locked - // ignore number row setting to avoid duplicate number row? - // and test tablet layout! // do the moreKeys thing (only now, because pc layout may change stuff) // migrate keypad layouts to this style // will need more configurable layout definition -> another parser, or do it with compatible jsons diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/keyboard_parser/KeyboardParser.kt b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/keyboard_parser/KeyboardParser.kt index 9c46393cc..e405c5351 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/keyboard_parser/KeyboardParser.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/keyboard_parser/KeyboardParser.kt @@ -64,6 +64,7 @@ abstract class KeyboardParser(private val params: KeyboardParams, private val co && params.mId.locale.language != "ko" && params.mId.locale.language != "th" && params.mId.locale.language != "lo" + && params.mId.mSubtype.keyboardLayoutSetName != "pcqwerty" ) { // add number to the first 10 keys in first row // setting the correct moreKeys is handled in PopupSet