dessalines / thumb-key

A privacy-conscious Android keyboard made for your thumbs
GNU Affero General Public License v3.0
993 stars 209 forks source link

New Portuguese layout #1095

Closed swfsql closed 59 minutes ago

swfsql commented 10 hours ago

Language

Português

Variant

based on english thumb-key

Kind of request

New Layout

More details

Hi, amazing keyboard app!

I suggest adding a new Portuguese keyboard, one which is based on the english thumb-key one. The layout from https://github.com/dessalines/thumb-key/issues/47, although is probably correct for portuguese-only, is confusing to those who frequently switch between both languages.

For reference, this is the english thumb-key:

------- ------- -------  ------- ------- ------- 
       | □ □ □ |       ||       | ` ^ ´ |       |
   s   | □ r □ | □ o   ||   1   | + 2 ! | ? 3   |
 □   w | □ g □ | u □ □ || $   □ | / □ \ | £ = € | 
------- ------- -------  ------- ------- -------
 □   □ | j q b | □ ■ □ || {   % | □ □ □ | | □ } |
 □ n m | k h p | l a □ || ( 4 □ | □ 5 □ | □ 6 ) |
 □   □ | v x y | □ ■ □ || [   _ | □ □ □ | @ □ ] |
------- ------- -------  ------- ------- -------
 □   c | □ f ' | d □ □ || ~   □ | " □ ' | □ & ° | 
   t   | □ i z | □ e   ||   7   | , 8 □ | # 9   |
 □   □ | * . - | □   □ || <   : | * . - | ;   > |
------- ------- -------  ------- ------- -------

denote places that has symbols on the other view (useful for ghost keys).

português thumb-key Also for reference, this is the currently available português thumb-key: ``` ------- ------- ------- ------- ------- ------- | | ó || | ` ^ ´ | | n | m | ç o ô || 1 | + 2 ! | ? 3 | v | h | c õ || $ | / \ | £ = € | ------- ------- ------- ------- ------- ------- | x w f | é || { % | | | } | r p | j d b | t e ê || ( 4 | 5 | 6 ) | | z k q | || [ _ | | @ ] | ------- ------- ------- ------- ------- ------- l | ' g í | u ú á || ~ | " ' | & ° | s | i y | a â || 7 | , 8 | # 9 | | , . - | ã à || < : | * . - | ; > | ------- ------- ------- ------- ------- ------- ```

And this is my suggestion for the (english-based) português thumb-key:

------- ------- -------  ------- ------- ------- 
       |       | ú õ ó ||       | ` ^ ´ | ù ü ũ |
   s   |   r   |   o   ||   1   | + 2 ! | ? 3 ò |
     w |   g   | u   ô || $     | /   \ | £ = € | 
------- ------- -------  ------- ------- -------
       | j q b | à ■ á || {   % |       | | ■ } |
   n m | k h p | l a   || ( 4   |   5   |   6 ) |
       | v x y | ã ■ â || [ @ _ |       | @ ■ ] |
------- ------- -------  ------- ------- -------
     c |   f í | d   é || ~     | " ì ' | è & ° | 
   t ç |   i z |   e   ||   7   | , 8 î | # 9   |
       | * . - |     ê || <   : | * . - | ;   > |
------- ------- -------  ------- ------- -------

For the later (the new suggestion)

It would be cool if we could combine symbols such as hitting ´ and then e to get é (and others, like how we normally type in the keyboard) - but I think this last request is out of the scope (as a layout request). But I think it would be nice to be ablel to combine one of the 6 symbols to their base letter ´`^~¸¨ (maybe not for ¸ and just have ç since it's the only letter that has it in portuguese).

Will try coming up with a PR soon, thanks!

Acknowledgements

swfsql commented 4 hours ago

Would it be ok to paste my suggestion here inline? I'm not sure about the file nomenclature.

Also, sorry that I messed-up some swipe ordering, only later I noted that the default ordering probably has a deeper meaning - it's currently confusing because I didn't re-arrange all of them..

PTENThumbKey.kt ```kotlin package com.dessalines.thumbkey.keyboards import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.ArrowDropDown import androidx.compose.material.icons.outlined.ArrowDropUp import androidx.compose.material.icons.outlined.Copyright import androidx.compose.material.icons.outlined.KeyboardCapslock import com.dessalines.thumbkey.utils.ColorVariant import com.dessalines.thumbkey.utils.FontSizeVariant import com.dessalines.thumbkey.utils.KeyAction import com.dessalines.thumbkey.utils.KeyC import com.dessalines.thumbkey.utils.KeyDisplay import com.dessalines.thumbkey.utils.KeyItemC import com.dessalines.thumbkey.utils.KeyboardC import com.dessalines.thumbkey.utils.KeyboardDefinition import com.dessalines.thumbkey.utils.KeyboardDefinitionModes import com.dessalines.thumbkey.utils.KeyboardDefinitionSettings import com.dessalines.thumbkey.utils.SwipeDirection import com.dessalines.thumbkey.utils.SwipeNWay import com.dessalines.thumbkey.utils.autoCapitalizeI import com.dessalines.thumbkey.utils.autoCapitalizeIApostrophe val KB_PTEN_THUMBKEY_MAIN = KeyboardC( listOf( listOf( KeyItemC( center = KeyC( action = KeyAction.CommitText("s"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipeType = SwipeNWay.FOUR_WAY_DIAGONAL, swipes = mapOf( SwipeDirection.BOTTOM_RIGHT to KeyC( action = KeyAction.CommitText("w"), ), ), ), KeyItemC( center = KeyC( action = KeyAction.CommitText("r"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipeType = SwipeNWay.TWO_WAY_VERTICAL, swipes = mapOf( SwipeDirection.BOTTOM to KeyC( action = KeyAction.CommitText("g"), ), ), ), KeyItemC( center = KeyC( action = KeyAction.CommitText("o"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP_LEFT to KeyC( action = KeyAction.CommitText("ú"), color = ColorVariant.MUTED, ), SwipeDirection.TOP to KeyC( action = KeyAction.CommitText("õ"), color = ColorVariant.MUTED, ), SwipeDirection.TOP_RIGHT to KeyC( action = KeyAction.CommitText("ó"), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM_LEFT to KeyC( action = KeyAction.CommitText("u"), ), SwipeDirection.BOTTOM_RIGHT to KeyC( action = KeyAction.CommitText("ô"), color = ColorVariant.MUTED, ), ), ), EMOJI_KEY_ITEM, ), listOf( KeyItemC( center = KeyC( action = KeyAction.CommitText("n"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipeType = SwipeNWay.TWO_WAY_HORIZONTAL, swipes = mapOf( SwipeDirection.RIGHT to KeyC( action = KeyAction.CommitText("m"), ), ), ), KeyItemC( center = KeyC( action = KeyAction.CommitText("h"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP_LEFT to KeyC( action = KeyAction.CommitText("j"), ), SwipeDirection.TOP to KeyC( action = KeyAction.CommitText("q"), ), SwipeDirection.TOP_RIGHT to KeyC( action = KeyAction.CommitText("b"), ), SwipeDirection.RIGHT to KeyC( action = KeyAction.CommitText("p"), ), SwipeDirection.BOTTOM_RIGHT to KeyC( action = KeyAction.CommitText("y"), ), SwipeDirection.BOTTOM to KeyC( action = KeyAction.CommitText("x"), ), SwipeDirection.BOTTOM_LEFT to KeyC( action = KeyAction.CommitText("v"), ), SwipeDirection.LEFT to KeyC( action = KeyAction.CommitText("k"), ), ), ), KeyItemC( center = KeyC( action = KeyAction.CommitText("a"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP_LEFT to KeyC( action = KeyAction.CommitText("à"), color = ColorVariant.MUTED, ), SwipeDirection.TOP to KeyC( display = KeyDisplay.IconDisplay(Icons.Outlined.ArrowDropUp), action = KeyAction.ToggleShiftMode(true), swipeReturnAction = KeyAction.ToggleCurrentWordCapitalization(true), color = ColorVariant.MUTED, ), SwipeDirection.TOP_RIGHT to KeyC( action = KeyAction.CommitText("á"), color = ColorVariant.MUTED, ), SwipeDirection.LEFT to KeyC( action = KeyAction.CommitText("l"), ), SwipeDirection.BOTTOM_LEFT to KeyC( action = KeyAction.CommitText("ã"), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM to KeyC( action = KeyAction.ToggleShiftMode(false), swipeReturnAction = KeyAction.ToggleCurrentWordCapitalization(false), ), SwipeDirection.BOTTOM_RIGHT to KeyC( action = KeyAction.CommitText("â"), color = ColorVariant.MUTED, ), ), ), NUMERIC_KEY_ITEM, ), listOf( KeyItemC( center = KeyC( action = KeyAction.CommitText("t"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP_RIGHT to KeyC( action = KeyAction.CommitText("c"), ), SwipeDirection.RIGHT to KeyC( action = KeyAction.CommitText("ç"), color = ColorVariant.MUTED, ), ), ), KeyItemC( center = KeyC( action = KeyAction.CommitText("i"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP to KeyC( action = KeyAction.CommitText("f"), ), SwipeDirection.TOP_RIGHT to KeyC( action = KeyAction.CommitText("í"), color = ColorVariant.MUTED, ), SwipeDirection.RIGHT to KeyC( action = KeyAction.CommitText("z"), ), SwipeDirection.BOTTOM_LEFT to KeyC( action = KeyAction.CommitText("*"), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM to KeyC( action = KeyAction.CommitText("."), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM_RIGHT to KeyC( action = KeyAction.CommitText("-"), color = ColorVariant.MUTED, ), ), ), KeyItemC( center = KeyC( action = KeyAction.CommitText("e"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipeType = SwipeNWay.FOUR_WAY_DIAGONAL, swipes = mapOf( SwipeDirection.TOP_LEFT to KeyC( action = KeyAction.CommitText("d"), ), SwipeDirection.TOP_RIGHT to KeyC( action = KeyAction.CommitText("é"), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM_RIGHT to KeyC( action = KeyAction.CommitText("ê"), color = ColorVariant.MUTED, ), ), ), BACKSPACE_KEY_ITEM, ), listOf( SPACEBAR_KEY_ITEM, RETURN_KEY_ITEM, ), ), ) val KB_PTEN_THUMBKEY_SHIFTED = KeyboardC( listOf( listOf( KeyItemC( center = KeyC( action = KeyAction.CommitText("S"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipeType = SwipeNWay.FOUR_WAY_DIAGONAL, swipes = mapOf( SwipeDirection.BOTTOM_RIGHT to KeyC( action = KeyAction.CommitText("W"), ), ), ), KeyItemC( center = KeyC( action = KeyAction.CommitText("R"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipeType = SwipeNWay.TWO_WAY_VERTICAL, swipes = mapOf( SwipeDirection.BOTTOM to KeyC( action = KeyAction.CommitText("G"), ), ), ), KeyItemC( center = KeyC( action = KeyAction.CommitText("O"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP_LEFT to KeyC( action = KeyAction.CommitText("Ú"), color = ColorVariant.MUTED, ), SwipeDirection.TOP to KeyC( action = KeyAction.CommitText("Õ"), color = ColorVariant.MUTED, ), SwipeDirection.TOP_RIGHT to KeyC( action = KeyAction.CommitText("Ó"), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM_LEFT to KeyC( action = KeyAction.CommitText("U"), ), SwipeDirection.BOTTOM_RIGHT to KeyC( action = KeyAction.CommitText("Ô"), color = ColorVariant.MUTED, ), ), ), EMOJI_KEY_ITEM, ), listOf( KeyItemC( center = KeyC( action = KeyAction.CommitText("N"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipeType = SwipeNWay.TWO_WAY_HORIZONTAL, swipes = mapOf( SwipeDirection.RIGHT to KeyC( action = KeyAction.CommitText("M"), ), ), ), KeyItemC( center = KeyC( action = KeyAction.CommitText("H"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP_LEFT to KeyC( action = KeyAction.CommitText("J"), ), SwipeDirection.TOP to KeyC( action = KeyAction.CommitText("Q"), ), SwipeDirection.TOP_RIGHT to KeyC( action = KeyAction.CommitText("B"), ), SwipeDirection.RIGHT to KeyC( action = KeyAction.CommitText("P"), ), SwipeDirection.BOTTOM_RIGHT to KeyC( action = KeyAction.CommitText("Y"), ), SwipeDirection.BOTTOM to KeyC( action = KeyAction.CommitText("X"), ), SwipeDirection.BOTTOM_LEFT to KeyC( action = KeyAction.CommitText("V"), ), SwipeDirection.LEFT to KeyC( action = KeyAction.CommitText("K"), ), ), ), KeyItemC( center = KeyC( action = KeyAction.CommitText("A"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP_LEFT to KeyC( action = KeyAction.CommitText("À"), color = ColorVariant.MUTED, ), SwipeDirection.TOP to KeyC( display = KeyDisplay.IconDisplay(Icons.Outlined.KeyboardCapslock), capsModeDisplay = KeyDisplay.IconDisplay(Icons.Outlined.Copyright), action = KeyAction.ToggleCapsLock, swipeReturnAction = KeyAction.ToggleCurrentWordCapitalization(true), color = ColorVariant.MUTED, ), SwipeDirection.TOP_RIGHT to KeyC( action = KeyAction.CommitText("Á"), color = ColorVariant.MUTED, ), SwipeDirection.LEFT to KeyC( action = KeyAction.CommitText("L"), ), SwipeDirection.BOTTOM_LEFT to KeyC( action = KeyAction.CommitText("Ã"), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM to KeyC( display = KeyDisplay.IconDisplay(Icons.Outlined.ArrowDropDown), action = KeyAction.ToggleShiftMode(false), swipeReturnAction = KeyAction.ToggleCurrentWordCapitalization(false), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM_RIGHT to KeyC( action = KeyAction.CommitText("Â"), color = ColorVariant.MUTED, ), ), ), NUMERIC_KEY_ITEM, ), listOf( KeyItemC( center = KeyC( action = KeyAction.CommitText("T"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP_RIGHT to KeyC( action = KeyAction.CommitText("C"), ), SwipeDirection.RIGHT to KeyC( action = KeyAction.CommitText("Ç"), color = ColorVariant.MUTED, ), ), ), KeyItemC( center = KeyC( action = KeyAction.CommitText("I"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP to KeyC( action = KeyAction.CommitText("F"), ), SwipeDirection.TOP_RIGHT to KeyC( action = KeyAction.CommitText("Í"), color = ColorVariant.MUTED, ), SwipeDirection.RIGHT to KeyC( action = KeyAction.CommitText("Z"), ), SwipeDirection.BOTTOM_RIGHT to KeyC( action = KeyAction.CommitText("-"), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM to KeyC( action = KeyAction.CommitText("."), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM_LEFT to KeyC( action = KeyAction.CommitText("*"), color = ColorVariant.MUTED, ), ), ), KeyItemC( center = KeyC( action = KeyAction.CommitText("E"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipeType = SwipeNWay.FOUR_WAY_DIAGONAL, swipes = mapOf( SwipeDirection.TOP_LEFT to KeyC( action = KeyAction.CommitText("D"), ), SwipeDirection.TOP_RIGHT to KeyC( action = KeyAction.CommitText("É"), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM_RIGHT to KeyC( action = KeyAction.CommitText("Ê"), color = ColorVariant.MUTED, ), ), ), BACKSPACE_KEY_ITEM, ), listOf( SPACEBAR_KEY_ITEM, RETURN_KEY_ITEM, ), ), ) val KB_PTEN_THUMBKEY: KeyboardDefinition = KeyboardDefinition( title = "português english thumb-key", modes = KeyboardDefinitionModes( main = KB_EN_THUMBKEY_MAIN, shifted = KB_EN_THUMBKEY_SHIFTED, numeric = NUMERIC_PTEN_KEYBOARD, ), settings = KeyboardDefinitionSettings( autoCapitalizers = arrayOf(::autoCapitalizeI, ::autoCapitalizeIApostrophe), ), ) ```
NumericPTEN.kt ```kotlin package com.dessalines.thumbkey.keyboards import com.dessalines.thumbkey.utils.ColorVariant import com.dessalines.thumbkey.utils.FontSizeVariant import com.dessalines.thumbkey.utils.KeyAction import com.dessalines.thumbkey.utils.KeyC import com.dessalines.thumbkey.utils.KeyDisplay import com.dessalines.thumbkey.utils.KeyItemC import com.dessalines.thumbkey.utils.KeyboardC import com.dessalines.thumbkey.utils.SwipeDirection import com.dessalines.thumbkey.utils.getLocalCurrency val NUMERIC_PTEN_KEYBOARD = KeyboardC( listOf( listOf( KeyItemC( center = KeyC( display = KeyDisplay.TextDisplay("1"), action = KeyAction.CommitText("1"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = buildMap { put( SwipeDirection.BOTTOM_LEFT, KeyC( display = KeyDisplay.TextDisplay("$"), action = KeyAction.CommitText("$"), ), ) getLocalCurrency()?.let { if (it !in setOf("$", "£", "€")) { put( SwipeDirection.BOTTOM_RIGHT, KeyC( display = KeyDisplay.TextDisplay(it), action = KeyAction.CommitText(it), ), ) } } }, ), KeyItemC( center = KeyC( display = KeyDisplay.TextDisplay("2"), action = KeyAction.CommitText("2"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( 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( center = KeyC( display = KeyDisplay.TextDisplay("3"), action = KeyAction.CommitText("3"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP_LEFT to KeyC( display = KeyDisplay.TextDisplay("ù"), action = KeyAction.CommitText("ù"), color = ColorVariant.MUTED, ), SwipeDirection.TOP to KeyC( display = KeyDisplay.TextDisplay("ü"), action = KeyAction.CommitText("ü"), color = ColorVariant.MUTED, ), SwipeDirection.TOP_RIGHT to KeyC( display = KeyDisplay.TextDisplay("ũ"), action = KeyAction.CommitText("ũ"), color = ColorVariant.MUTED, ), SwipeDirection.LEFT to KeyC( display = KeyDisplay.TextDisplay("?"), action = KeyAction.CommitText("?"), ), SwipeDirection.RIGHT to KeyC( display = KeyDisplay.TextDisplay("ò"), action = KeyAction.CommitText("ò"), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM_LEFT to KeyC( display = KeyDisplay.TextDisplay("£"), action = KeyAction.CommitText("£"), ), SwipeDirection.BOTTOM to KeyC( display = KeyDisplay.TextDisplay("="), action = KeyAction.CommitText("="), ), SwipeDirection.BOTTOM_RIGHT to KeyC( display = KeyDisplay.TextDisplay("€"), action = KeyAction.CommitText("€"), ), ), ), EMOJI_KEY_ITEM, ), listOf( KeyItemC( center = KeyC( display = KeyDisplay.TextDisplay("4"), action = KeyAction.CommitText("4"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), 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.LEFT to KeyC( 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("@"), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM_RIGHT to KeyC( display = KeyDisplay.TextDisplay("_"), action = KeyAction.CommitText("_"), ), ), ), KeyItemC( center = KeyC( display = KeyDisplay.TextDisplay("5"), action = KeyAction.CommitText("5"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), ), KeyItemC( center = KeyC( display = KeyDisplay.TextDisplay("6"), action = KeyAction.CommitText("6"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), 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.RIGHT to KeyC( display = KeyDisplay.TextDisplay(")"), action = KeyAction.CommitText(")"), ), SwipeDirection.BOTTOM_LEFT to KeyC( display = KeyDisplay.TextDisplay("@"), action = KeyAction.CommitText("@"), ), SwipeDirection.BOTTOM_RIGHT to KeyC( display = KeyDisplay.TextDisplay("]"), action = KeyAction.CommitText("]"), ), ), ), ABC_KEY_ITEM, ), listOf( KeyItemC( center = KeyC( display = KeyDisplay.TextDisplay("7"), action = KeyAction.CommitText("7"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP_LEFT 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( center = KeyC( display = KeyDisplay.TextDisplay("8"), action = KeyAction.CommitText("8"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP_LEFT to KeyC( display = KeyDisplay.TextDisplay("\""), action = KeyAction.CommitText("\""), ), SwipeDirection.TOP to KeyC( display = KeyDisplay.TextDisplay("ì"), action = KeyAction.CommitText("ì"), color = ColorVariant.MUTED, ), SwipeDirection.TOP_RIGHT 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("î"), color = ColorVariant.MUTED, ), SwipeDirection.BOTTOM_LEFT to KeyC( display = KeyDisplay.TextDisplay("*"), action = KeyAction.CommitText("*"), ), SwipeDirection.BOTTOM to KeyC( display = KeyDisplay.TextDisplay("."), action = KeyAction.CommitText("."), ), SwipeDirection.BOTTOM_RIGHT to KeyC( display = KeyDisplay.TextDisplay("-"), action = KeyAction.CommitText("-"), ), ), ), KeyItemC( center = KeyC( display = KeyDisplay.TextDisplay("9"), action = KeyAction.CommitText("9"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), swipes = mapOf( SwipeDirection.TOP_LEFT to KeyC( display = KeyDisplay.TextDisplay("è"), action = KeyAction.CommitText("è"), color = ColorVariant.MUTED, ), SwipeDirection.TOP to KeyC( display = KeyDisplay.TextDisplay("&"), action = KeyAction.CommitText("&"), ), SwipeDirection.TOP_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("#"), ), ), ), BACKSPACE_KEY_ITEM, ), listOf( KeyItemC( center = KeyC( display = KeyDisplay.TextDisplay("0"), action = KeyAction.CommitText("0"), size = FontSizeVariant.LARGE, color = ColorVariant.PRIMARY, ), widthMultiplier = 2, ), SPACEBAR_SKINNY_KEY_ITEM, RETURN_KEY_ITEM, ), ), ) ```

Thanks in advance!

dessalines commented 1 hour ago

No probs, thx for contributing this!