From 9c5b3c3646d1a84dae03211c247a2d2f3fbccc31 Mon Sep 17 00:00:00 2001 From: h67ma Date: Tue, 10 Sep 2024 19:21:45 +0200 Subject: [PATCH] NumericTypeSplit: reorganize interpunction and symbols On *TypeSplit keyboards, the numeric keyboard is often the only way to input most special symbols. However, those symbols are poorly organized. The ones commonly found on the numeric row ('!', '@', '#', ...) are found on seemingly random digit keys, making it hard to localize them. Furthermore, the layout is cluttered, with many symbols packed on a single key (in some cases up to 7 symbols on one key). Move numeric row symbols to keys where the user would be expecting them: '!' to 1, '@' to 2, '#' to 3, etc., with the exception of '(', which is left on the side of the keyboard, so that the brackets lie in symmetrical places. Each of the 8 symbols is activated by swiping towards 5 (and '%' is swipe down). Move a few symbols to one of the currently empty spaces on the left side to declutter the numpad area. Remove ',' and '.' from numpad, as they are already available on the right side of the layout. Move a few other other symbols to be more evenly spaced out and easier to access. Signed-off-by: h67ma --- .../keyboards/NumericFrenchTypeSplit.kt | 229 +++++++++--------- .../thumbkey/keyboards/NumericTypeSplit.kt | 229 +++++++++--------- 2 files changed, 232 insertions(+), 226 deletions(-) diff --git a/app/src/main/java/com/dessalines/thumbkey/keyboards/NumericFrenchTypeSplit.kt b/app/src/main/java/com/dessalines/thumbkey/keyboards/NumericFrenchTypeSplit.kt index ea9068b54..05f9b58c5 100644 --- a/app/src/main/java/com/dessalines/thumbkey/keyboards/NumericFrenchTypeSplit.kt +++ b/app/src/main/java/com/dessalines/thumbkey/keyboards/NumericFrenchTypeSplit.kt @@ -34,10 +34,10 @@ val FRENCH_TYPESPLIT_NUMERIC_KEYBOARD = ), swipes = mapOf( - SwipeDirection.BOTTOM_LEFT to + SwipeDirection.BOTTOM_RIGHT to KeyC( - display = KeyDisplay.TextDisplay("$"), - action = KeyAction.CommitText("$"), + display = KeyDisplay.TextDisplay("!"), + action = KeyAction.CommitText("!"), ), SwipeDirection.TOP to KeyC( @@ -45,6 +45,16 @@ val FRENCH_TYPESPLIT_NUMERIC_KEYBOARD = action = KeyAction.CommitText("¯\\_(ツ)_/¯"), size = FontSizeVariant.SMALLEST, ), + SwipeDirection.BOTTOM to + KeyC( + display = KeyDisplay.TextDisplay("~"), + action = KeyAction.CommitText("~"), + ), + SwipeDirection.LEFT to + KeyC( + display = KeyDisplay.TextDisplay("{"), + action = KeyAction.CommitText("{"), + ), ), ), KeyItemC( @@ -57,41 +67,21 @@ val FRENCH_TYPESPLIT_NUMERIC_KEYBOARD = ), swipes = mapOf( + SwipeDirection.BOTTOM to + KeyC( + display = KeyDisplay.TextDisplay("@"), + action = KeyAction.CommitText("@"), + ), SwipeDirection.TOP_LEFT to KeyC( display = KeyDisplay.TextDisplay("`"), action = KeyAction.CommitText("`"), ), - SwipeDirection.TOP to - KeyC( - display = KeyDisplay.TextDisplay("^"), - action = KeyAction.CommitText("^"), - ), SwipeDirection.TOP_RIGHT to KeyC( display = KeyDisplay.TextDisplay("´"), action = KeyAction.CommitText("´"), ), - SwipeDirection.RIGHT to - KeyC( - display = KeyDisplay.TextDisplay("!"), - action = KeyAction.CommitText("!"), - ), - SwipeDirection.BOTTOM_RIGHT to - KeyC( - display = KeyDisplay.TextDisplay("\\"), - action = KeyAction.CommitText("\\"), - ), - SwipeDirection.BOTTOM_LEFT to - KeyC( - display = KeyDisplay.TextDisplay("/"), - action = KeyAction.CommitText("/"), - ), - SwipeDirection.LEFT to - KeyC( - display = KeyDisplay.TextDisplay("+"), - action = KeyAction.CommitText("+"), - ), ), ), KeyItemC( @@ -104,25 +94,20 @@ val FRENCH_TYPESPLIT_NUMERIC_KEYBOARD = ), swipes = mapOf( - SwipeDirection.LEFT to + SwipeDirection.RIGHT to KeyC( - display = KeyDisplay.TextDisplay("?"), - action = KeyAction.CommitText("?"), + display = KeyDisplay.TextDisplay("}"), + action = KeyAction.CommitText("}"), ), - SwipeDirection.BOTTOM_RIGHT to + SwipeDirection.TOP_RIGHT to KeyC( - display = KeyDisplay.TextDisplay("€"), - action = KeyAction.CommitText("€"), + display = KeyDisplay.TextDisplay("°"), + action = KeyAction.CommitText("°"), ), SwipeDirection.BOTTOM_LEFT to KeyC( - display = KeyDisplay.TextDisplay("£"), - action = KeyAction.CommitText("£"), - ), - SwipeDirection.BOTTOM to - KeyC( - display = KeyDisplay.TextDisplay("="), - action = KeyAction.CommitText("="), + display = KeyDisplay.TextDisplay("#"), + action = KeyAction.CommitText("#"), ), ), ), @@ -137,42 +122,67 @@ val FRENCH_TYPESPLIT_NUMERIC_KEYBOARD = ), ), listOf( - SPACEBAR_FRENCH_SKINNY_KEY_ITEM, KeyItemC( center = KeyC( - display = KeyDisplay.TextDisplay("4"), - action = KeyAction.CommitText("4"), - size = FontSizeVariant.LARGE, - color = ColorVariant.PRIMARY, + display = KeyDisplay.TextDisplay(" "), + action = KeyAction.CommitText(" "), ), swipes = mapOf( - SwipeDirection.TOP_LEFT to + SwipeDirection.TOP to KeyC( - display = KeyDisplay.TextDisplay("{"), - action = KeyAction.CommitText("{"), + display = KeyDisplay.TextDisplay("+"), + action = KeyAction.CommitText("+"), ), - SwipeDirection.TOP_RIGHT to + SwipeDirection.BOTTOM to KeyC( - display = KeyDisplay.TextDisplay("%"), - action = KeyAction.CommitText("%"), + display = KeyDisplay.TextDisplay("="), + action = KeyAction.CommitText("="), ), - SwipeDirection.BOTTOM_RIGHT to + SwipeDirection.LEFT to + KeyC( + display = KeyDisplay.TextDisplay("-"), + action = KeyAction.CommitText("-"), + ), + SwipeDirection.RIGHT to KeyC( display = KeyDisplay.TextDisplay("_"), action = KeyAction.CommitText("_"), ), - SwipeDirection.BOTTOM_LEFT to + ), + backgroundColor = ColorVariant.SURFACE_VARIANT, + ), + KeyItemC( + center = + KeyC( + display = KeyDisplay.TextDisplay("4"), + action = KeyAction.CommitText("4"), + size = FontSizeVariant.LARGE, + color = ColorVariant.PRIMARY, + ), + swipes = + mapOf( + SwipeDirection.TOP to KeyC( - display = KeyDisplay.TextDisplay("["), - action = KeyAction.CommitText("["), + display = KeyDisplay.TextDisplay("\""), + action = KeyAction.CommitText("\""), + ), + SwipeDirection.BOTTOM to + KeyC( + display = KeyDisplay.TextDisplay(":"), + action = KeyAction.CommitText(":"), ), SwipeDirection.LEFT to KeyC( display = KeyDisplay.TextDisplay("("), action = KeyAction.CommitText("("), ), + SwipeDirection.RIGHT to + KeyC( + display = KeyDisplay.TextDisplay("$"), + action = KeyAction.CommitText("$"), + ), ), ), KeyItemC( @@ -183,6 +193,24 @@ val FRENCH_TYPESPLIT_NUMERIC_KEYBOARD = size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), + swipes = + mapOf( + SwipeDirection.LEFT to + KeyC( + display = KeyDisplay.TextDisplay("€"), + action = KeyAction.CommitText("€"), + ), + SwipeDirection.RIGHT to + KeyC( + display = KeyDisplay.TextDisplay("£"), + action = KeyAction.CommitText("£"), + ), + SwipeDirection.BOTTOM to + KeyC( + display = KeyDisplay.TextDisplay("%"), + action = KeyAction.CommitText("%"), + ), + ), ), KeyItemC( center = @@ -194,31 +222,26 @@ val FRENCH_TYPESPLIT_NUMERIC_KEYBOARD = ), swipes = mapOf( - SwipeDirection.TOP_LEFT to + SwipeDirection.TOP to KeyC( - display = KeyDisplay.TextDisplay("|"), - action = KeyAction.CommitText("|"), + display = KeyDisplay.TextDisplay("'"), + action = KeyAction.CommitText("'"), ), - SwipeDirection.TOP_RIGHT to + SwipeDirection.BOTTOM to KeyC( - display = KeyDisplay.TextDisplay("}"), - action = KeyAction.CommitText("}"), + display = KeyDisplay.TextDisplay(";"), + action = KeyAction.CommitText(";"), + ), + SwipeDirection.LEFT to + KeyC( + display = KeyDisplay.TextDisplay("^"), + action = KeyAction.CommitText("^"), ), SwipeDirection.RIGHT to KeyC( display = KeyDisplay.TextDisplay(")"), action = KeyAction.CommitText(")"), ), - SwipeDirection.BOTTOM_RIGHT to - KeyC( - display = KeyDisplay.TextDisplay("]"), - action = KeyAction.CommitText("]"), - ), - SwipeDirection.BOTTOM_LEFT to - KeyC( - display = KeyDisplay.TextDisplay("@"), - action = KeyAction.CommitText("@"), - ), ), ), KeyItemC( @@ -245,13 +268,13 @@ val FRENCH_TYPESPLIT_NUMERIC_KEYBOARD = mapOf( SwipeDirection.TOP_LEFT to KeyC( - display = KeyDisplay.TextDisplay("~"), - action = KeyAction.CommitText("~"), + display = KeyDisplay.TextDisplay("["), + action = KeyAction.CommitText("["), ), - SwipeDirection.BOTTOM_RIGHT to + SwipeDirection.TOP_RIGHT to KeyC( - display = KeyDisplay.TextDisplay(":"), - action = KeyAction.CommitText(":"), + display = KeyDisplay.TextDisplay("&"), + action = KeyAction.CommitText("&"), ), SwipeDirection.BOTTOM_LEFT to KeyC( @@ -270,35 +293,25 @@ val FRENCH_TYPESPLIT_NUMERIC_KEYBOARD = ), swipes = mapOf( - SwipeDirection.TOP_LEFT to - KeyC( - display = KeyDisplay.TextDisplay("\""), - action = KeyAction.CommitText("\""), - ), - SwipeDirection.TOP_RIGHT to - KeyC( - display = KeyDisplay.TextDisplay("'"), - action = KeyAction.CommitText("'"), - ), - SwipeDirection.BOTTOM_RIGHT to + SwipeDirection.TOP to KeyC( - display = KeyDisplay.TextDisplay("-"), - action = KeyAction.CommitText("-"), + display = KeyDisplay.TextDisplay("*"), + action = KeyAction.CommitText("*"), ), SwipeDirection.BOTTOM to KeyC( - display = KeyDisplay.TextDisplay("."), - action = KeyAction.CommitText("."), + display = KeyDisplay.TextDisplay("?"), + action = KeyAction.CommitText("?"), ), - SwipeDirection.BOTTOM_LEFT to + SwipeDirection.LEFT to KeyC( - display = KeyDisplay.TextDisplay("*"), - action = KeyAction.CommitText("*"), + display = KeyDisplay.TextDisplay("/"), + action = KeyAction.CommitText("/"), ), - SwipeDirection.LEFT to + SwipeDirection.RIGHT to KeyC( - display = KeyDisplay.TextDisplay(","), - action = KeyAction.CommitText(","), + display = KeyDisplay.TextDisplay("\\"), + action = KeyAction.CommitText("\\"), ), ), ), @@ -312,31 +325,21 @@ val FRENCH_TYPESPLIT_NUMERIC_KEYBOARD = ), swipes = mapOf( - SwipeDirection.TOP to + SwipeDirection.LEFT to KeyC( - display = KeyDisplay.TextDisplay("&"), - action = KeyAction.CommitText("&"), + display = KeyDisplay.TextDisplay("|"), + action = KeyAction.CommitText("|"), ), SwipeDirection.TOP_RIGHT to KeyC( - display = KeyDisplay.TextDisplay("°"), - action = KeyAction.CommitText("°"), + display = KeyDisplay.TextDisplay("]"), + action = KeyAction.CommitText("]"), ), SwipeDirection.BOTTOM_RIGHT to KeyC( display = KeyDisplay.TextDisplay(">"), action = KeyAction.CommitText(">"), ), - SwipeDirection.BOTTOM_LEFT to - KeyC( - display = KeyDisplay.TextDisplay(";"), - action = KeyAction.CommitText(";"), - ), - SwipeDirection.LEFT to - KeyC( - display = KeyDisplay.TextDisplay("#"), - action = KeyAction.CommitText("#"), - ), ), ), KeyItemC( diff --git a/app/src/main/java/com/dessalines/thumbkey/keyboards/NumericTypeSplit.kt b/app/src/main/java/com/dessalines/thumbkey/keyboards/NumericTypeSplit.kt index c513e4896..53c1e1d4a 100644 --- a/app/src/main/java/com/dessalines/thumbkey/keyboards/NumericTypeSplit.kt +++ b/app/src/main/java/com/dessalines/thumbkey/keyboards/NumericTypeSplit.kt @@ -34,10 +34,10 @@ val TYPESPLIT_NUMERIC_KEYBOARD = ), swipes = mapOf( - SwipeDirection.BOTTOM_LEFT to + SwipeDirection.BOTTOM_RIGHT to KeyC( - display = KeyDisplay.TextDisplay("$"), - action = KeyAction.CommitText("$"), + display = KeyDisplay.TextDisplay("!"), + action = KeyAction.CommitText("!"), ), SwipeDirection.TOP to KeyC( @@ -45,6 +45,16 @@ val TYPESPLIT_NUMERIC_KEYBOARD = action = KeyAction.CommitText("¯\\_(ツ)_/¯"), size = FontSizeVariant.SMALLEST, ), + SwipeDirection.BOTTOM to + KeyC( + display = KeyDisplay.TextDisplay("~"), + action = KeyAction.CommitText("~"), + ), + SwipeDirection.LEFT to + KeyC( + display = KeyDisplay.TextDisplay("{"), + action = KeyAction.CommitText("{"), + ), ), ), KeyItemC( @@ -57,41 +67,21 @@ val TYPESPLIT_NUMERIC_KEYBOARD = ), swipes = mapOf( + SwipeDirection.BOTTOM to + KeyC( + display = KeyDisplay.TextDisplay("@"), + action = KeyAction.CommitText("@"), + ), SwipeDirection.TOP_LEFT to KeyC( display = KeyDisplay.TextDisplay("`"), action = KeyAction.CommitText("`"), ), - SwipeDirection.TOP to - KeyC( - display = KeyDisplay.TextDisplay("^"), - action = KeyAction.CommitText("^"), - ), SwipeDirection.TOP_RIGHT to KeyC( display = KeyDisplay.TextDisplay("´"), action = KeyAction.CommitText("´"), ), - SwipeDirection.RIGHT to - KeyC( - display = KeyDisplay.TextDisplay("!"), - action = KeyAction.CommitText("!"), - ), - SwipeDirection.BOTTOM_RIGHT to - KeyC( - display = KeyDisplay.TextDisplay("\\"), - action = KeyAction.CommitText("\\"), - ), - SwipeDirection.BOTTOM_LEFT to - KeyC( - display = KeyDisplay.TextDisplay("/"), - action = KeyAction.CommitText("/"), - ), - SwipeDirection.LEFT to - KeyC( - display = KeyDisplay.TextDisplay("+"), - action = KeyAction.CommitText("+"), - ), ), ), KeyItemC( @@ -104,25 +94,20 @@ val TYPESPLIT_NUMERIC_KEYBOARD = ), swipes = mapOf( - SwipeDirection.LEFT to + SwipeDirection.RIGHT to KeyC( - display = KeyDisplay.TextDisplay("?"), - action = KeyAction.CommitText("?"), + display = KeyDisplay.TextDisplay("}"), + action = KeyAction.CommitText("}"), ), - SwipeDirection.BOTTOM_RIGHT to + SwipeDirection.TOP_RIGHT to KeyC( - display = KeyDisplay.TextDisplay("€"), - action = KeyAction.CommitText("€"), + display = KeyDisplay.TextDisplay("°"), + action = KeyAction.CommitText("°"), ), SwipeDirection.BOTTOM_LEFT to KeyC( - display = KeyDisplay.TextDisplay("£"), - action = KeyAction.CommitText("£"), - ), - SwipeDirection.BOTTOM to - KeyC( - display = KeyDisplay.TextDisplay("="), - action = KeyAction.CommitText("="), + display = KeyDisplay.TextDisplay("#"), + action = KeyAction.CommitText("#"), ), ), ), @@ -137,42 +122,67 @@ val TYPESPLIT_NUMERIC_KEYBOARD = ), ), listOf( - SPACEBAR_SKINNY_KEY_ITEM, KeyItemC( center = KeyC( - display = KeyDisplay.TextDisplay("4"), - action = KeyAction.CommitText("4"), - size = FontSizeVariant.LARGE, - color = ColorVariant.PRIMARY, + display = KeyDisplay.TextDisplay(" "), + action = KeyAction.CommitText(" "), ), swipes = mapOf( - SwipeDirection.TOP_LEFT to + SwipeDirection.TOP to KeyC( - display = KeyDisplay.TextDisplay("{"), - action = KeyAction.CommitText("{"), + display = KeyDisplay.TextDisplay("+"), + action = KeyAction.CommitText("+"), ), - SwipeDirection.TOP_RIGHT to + SwipeDirection.BOTTOM to KeyC( - display = KeyDisplay.TextDisplay("%"), - action = KeyAction.CommitText("%"), + display = KeyDisplay.TextDisplay("="), + action = KeyAction.CommitText("="), ), - SwipeDirection.BOTTOM_RIGHT to + SwipeDirection.LEFT to + KeyC( + display = KeyDisplay.TextDisplay("-"), + action = KeyAction.CommitText("-"), + ), + SwipeDirection.RIGHT to KeyC( display = KeyDisplay.TextDisplay("_"), action = KeyAction.CommitText("_"), ), - SwipeDirection.BOTTOM_LEFT to + ), + backgroundColor = ColorVariant.SURFACE_VARIANT, + ), + KeyItemC( + center = + KeyC( + display = KeyDisplay.TextDisplay("4"), + action = KeyAction.CommitText("4"), + size = FontSizeVariant.LARGE, + color = ColorVariant.PRIMARY, + ), + swipes = + mapOf( + SwipeDirection.TOP to KeyC( - display = KeyDisplay.TextDisplay("["), - action = KeyAction.CommitText("["), + display = KeyDisplay.TextDisplay("\""), + action = KeyAction.CommitText("\""), + ), + SwipeDirection.BOTTOM to + KeyC( + display = KeyDisplay.TextDisplay(":"), + action = KeyAction.CommitText(":"), ), SwipeDirection.LEFT to KeyC( display = KeyDisplay.TextDisplay("("), action = KeyAction.CommitText("("), ), + SwipeDirection.RIGHT to + KeyC( + display = KeyDisplay.TextDisplay("$"), + action = KeyAction.CommitText("$"), + ), ), ), KeyItemC( @@ -183,6 +193,24 @@ val TYPESPLIT_NUMERIC_KEYBOARD = size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), + swipes = + mapOf( + SwipeDirection.LEFT to + KeyC( + display = KeyDisplay.TextDisplay("€"), + action = KeyAction.CommitText("€"), + ), + SwipeDirection.RIGHT to + KeyC( + display = KeyDisplay.TextDisplay("£"), + action = KeyAction.CommitText("£"), + ), + SwipeDirection.BOTTOM to + KeyC( + display = KeyDisplay.TextDisplay("%"), + action = KeyAction.CommitText("%"), + ), + ), ), KeyItemC( center = @@ -194,31 +222,26 @@ val TYPESPLIT_NUMERIC_KEYBOARD = ), swipes = mapOf( - SwipeDirection.TOP_LEFT to + SwipeDirection.TOP to KeyC( - display = KeyDisplay.TextDisplay("|"), - action = KeyAction.CommitText("|"), + display = KeyDisplay.TextDisplay("'"), + action = KeyAction.CommitText("'"), ), - SwipeDirection.TOP_RIGHT to + SwipeDirection.BOTTOM to KeyC( - display = KeyDisplay.TextDisplay("}"), - action = KeyAction.CommitText("}"), + display = KeyDisplay.TextDisplay(";"), + action = KeyAction.CommitText(";"), + ), + SwipeDirection.LEFT to + KeyC( + display = KeyDisplay.TextDisplay("^"), + action = KeyAction.CommitText("^"), ), SwipeDirection.RIGHT to KeyC( display = KeyDisplay.TextDisplay(")"), action = KeyAction.CommitText(")"), ), - SwipeDirection.BOTTOM_RIGHT to - KeyC( - display = KeyDisplay.TextDisplay("]"), - action = KeyAction.CommitText("]"), - ), - SwipeDirection.BOTTOM_LEFT to - KeyC( - display = KeyDisplay.TextDisplay("@"), - action = KeyAction.CommitText("@"), - ), ), ), KeyItemC( @@ -245,13 +268,13 @@ val TYPESPLIT_NUMERIC_KEYBOARD = mapOf( SwipeDirection.TOP_LEFT to KeyC( - display = KeyDisplay.TextDisplay("~"), - action = KeyAction.CommitText("~"), + display = KeyDisplay.TextDisplay("["), + action = KeyAction.CommitText("["), ), - SwipeDirection.BOTTOM_RIGHT to + SwipeDirection.TOP_RIGHT to KeyC( - display = KeyDisplay.TextDisplay(":"), - action = KeyAction.CommitText(":"), + display = KeyDisplay.TextDisplay("&"), + action = KeyAction.CommitText("&"), ), SwipeDirection.BOTTOM_LEFT to KeyC( @@ -270,35 +293,25 @@ val TYPESPLIT_NUMERIC_KEYBOARD = ), swipes = mapOf( - SwipeDirection.TOP_LEFT to - KeyC( - display = KeyDisplay.TextDisplay("\""), - action = KeyAction.CommitText("\""), - ), - SwipeDirection.TOP_RIGHT to - KeyC( - display = KeyDisplay.TextDisplay("'"), - action = KeyAction.CommitText("'"), - ), - SwipeDirection.BOTTOM_RIGHT to + SwipeDirection.TOP to KeyC( - display = KeyDisplay.TextDisplay("-"), - action = KeyAction.CommitText("-"), + display = KeyDisplay.TextDisplay("*"), + action = KeyAction.CommitText("*"), ), SwipeDirection.BOTTOM to KeyC( - display = KeyDisplay.TextDisplay("."), - action = KeyAction.CommitText("."), + display = KeyDisplay.TextDisplay("?"), + action = KeyAction.CommitText("?"), ), - SwipeDirection.BOTTOM_LEFT to + SwipeDirection.LEFT to KeyC( - display = KeyDisplay.TextDisplay("*"), - action = KeyAction.CommitText("*"), + display = KeyDisplay.TextDisplay("/"), + action = KeyAction.CommitText("/"), ), - SwipeDirection.LEFT to + SwipeDirection.RIGHT to KeyC( - display = KeyDisplay.TextDisplay(","), - action = KeyAction.CommitText(","), + display = KeyDisplay.TextDisplay("\\"), + action = KeyAction.CommitText("\\"), ), ), ), @@ -312,31 +325,21 @@ val TYPESPLIT_NUMERIC_KEYBOARD = ), swipes = mapOf( - SwipeDirection.TOP to + SwipeDirection.LEFT to KeyC( - display = KeyDisplay.TextDisplay("&"), - action = KeyAction.CommitText("&"), + display = KeyDisplay.TextDisplay("|"), + action = KeyAction.CommitText("|"), ), SwipeDirection.TOP_RIGHT to KeyC( - display = KeyDisplay.TextDisplay("°"), - action = KeyAction.CommitText("°"), + display = KeyDisplay.TextDisplay("]"), + action = KeyAction.CommitText("]"), ), SwipeDirection.BOTTOM_RIGHT to KeyC( display = KeyDisplay.TextDisplay(">"), action = KeyAction.CommitText(">"), ), - SwipeDirection.BOTTOM_LEFT to - KeyC( - display = KeyDisplay.TextDisplay(";"), - action = KeyAction.CommitText(";"), - ), - SwipeDirection.LEFT to - KeyC( - display = KeyDisplay.TextDisplay("#"), - action = KeyAction.CommitText("#"), - ), ), ), KeyItemC(