Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Keyboards/KeyboardsBase/InterfaceVariables.swift
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ let languagesStringDict = [
"German": NSLocalizedString("app._global.german", value: "German", comment: ""),
"Indonesian": NSLocalizedString("app._global.indonesian", value: "Indonesian", comment: ""),
"Italian": NSLocalizedString("app._global.italian", value: "Italian", comment: ""),
"Norwegian": NSLocalizedString("app._global.norwegian", value: "Norwegian", comment: ""),
"Portuguese": NSLocalizedString("app._global.portuguese", value: "Portuguese", comment: ""),
"Russian": NSLocalizedString("app._global.russian", value: "Russian", comment: ""),
"Spanish": NSLocalizedString("app._global.spanish", value: "Spanish", comment: ""),
Expand Down Expand Up @@ -200,6 +201,7 @@ let keyboardLayoutDict: [String: () -> Void] = [
"German": setDEKeyboardLayout,
"Indonesian": setIDKeyboardLayout,
"Italian": setITKeyboardLayout,
"Norwegian": setNBKeyboardLayout,
"Portuguese": setPTKeyboardLayout,
"Russian": setRUKeyboardLayout,
"Spanish": setESKeyboardLayout,
Expand Down
6 changes: 6 additions & 0 deletions Keyboards/KeyboardsBase/KeyAltChars.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ func setKeyboardAlternateKeys() {
"u": uAlternateKeys,
"ä": äAlternateKeys,
"ö": öAlternateKeys,
"å": åAlternateKeys,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

praise: Thanks for expanding these out, @priyankaforu!

"æ": æAlternateKeys,
"ø": øAlternateKeys,
"y": yAlternateKeys,
"s": sAlternateKeys,
"l": lAlternateKeys,
Expand Down Expand Up @@ -98,6 +101,9 @@ var dAlternateKeys = [String]()
var cAlternateKeys = [String]()
var nAlternateKeys = [String]()
var ьAlternateKeys = [String]()
var åAlternateKeys = [String]()
var æAlternateKeys = [String]()
var øAlternateKeys = [String]()

/// Creates the shape that allows left most buttons to pop up after being pressed.
///
Expand Down
6 changes: 3 additions & 3 deletions Keyboards/KeyboardsBase/KeyboardViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1737,7 +1737,7 @@ class KeyboardViewController: UIInputViewController {
)
) || (
commandState == .translate
&& ["en", "in", "it", "pt"].contains(getControllerTranslateLangCode())
&& ["en", "id", "it", "pt"].contains(getControllerTranslateLangCode())
)) {
leftPadding = keyWidth / 4
addPadding(to: stackView1, width: leftPadding, key: "a")
Expand All @@ -1751,7 +1751,7 @@ class KeyboardViewController: UIInputViewController {
&& ["English", "Indonesian", "Italian", "Portuguese"].contains(controllerLanguage)
) || (
commandState == .translate
&& ["en", "in", "it", "pt"].contains(getControllerTranslateLangCode())
&& ["en", "id", "it", "pt"].contains(getControllerTranslateLangCode())
)) {
leftPadding = keyWidth / 3
addPadding(to: stackView1, width: leftPadding, key: "a")
Expand Down Expand Up @@ -1894,7 +1894,7 @@ class KeyboardViewController: UIInputViewController {
)
) || (
commandState == .translate
&& ["en", "in", "it", "pt"].contains(getControllerTranslateLangCode())
&& ["en", "id", "it", "pt"].contains(getControllerTranslateLangCode())
)) {
rightPadding = keyWidth / 4
addPadding(to: stackView1, width: rightPadding, key: "l")
Expand Down
20 changes: 10 additions & 10 deletions Keyboards/LanguageKeyboards/Danish/DAInterfaceVariables.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol {
.addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "å"])
.addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "æ", "ø"])
.addRow(["shift", "z", "x", "c", "v", "b", "n", "m", "delete"])
.addRow(["123", "selectKeyboard", "space", "return"]) // "undo"
.addRow(["123", "selectKeyboard", "space", "return"])
.build()
}

Expand All @@ -48,7 +48,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol {
.addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"])
.addRow(["-", "/", ":", ";", "(", ")", "kr", "&", "@", "\""])
.addRow( ["#+=", ".", ",", "?", "!", "'", "delete"])
.addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo"
.addRow(["ABC", "selectKeyboard", "space", "return"])
.replaceKey(row: 1, column: 6, to: currencyKey)
.build()
}
Expand All @@ -58,7 +58,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol {
.addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="])
.addRow(["_", "\\", "|", "~", "<", ">", "€", "£", "¥", "·"])
.addRow(["123", ".", ",", "?", "!", "'", "delete"])
.addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo"
.addRow(["ABC", "selectKeyboard", "space", "return"])

if currencyKeys.count < 3 {
return keyboardBuilder.build()
Expand All @@ -79,7 +79,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol {
.addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "æ", "ø", "delete"])
.addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "ö", "ä", "return"])
.addRow(["shift", "z", "x", "c", "v", "b", "n", "m", ",", ".", "-", "shift"])
.addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo"
.addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"])
.build()
}

Expand All @@ -88,7 +88,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol {
.addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "`", "delete"])
.addRow(["@", "#", "kr", "&", "*", "(", ")", "'", "\"", "+", "·", "return"])
.addRow(["#+=", "%", "_", "-", "=", "/", ";", ":", ",", ".", "?", "#+="])
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo"
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"])
.replaceKey(row: 1, column: 2, to: currencyKey)
.build()
}
Expand All @@ -98,7 +98,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol {
.addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "'", "delete"])
.addRow(["€", "$", "£", "^", "[", "]", "{", "}", "―", "ᵒ", "...", "return"])
.addRow(["123", "§", "|", "~", "≠", "≈", "\\", "<", ">", "!", "?", "123"])
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo"
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"])

if currencyKeys.count < 3 {
return keyboardBuilder.build()
Expand All @@ -119,17 +119,17 @@ struct DAKeyboardProvider: KeyboardProviderProtocol {
.addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "å", "@", "¨"])
.addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", "æ", "ø", "'", "return"])
.addRow(["shift", "*", "z", "x", "c", "v", "b", "n", "m", ",", ".", "-", "shift"])
.addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble"
.addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"])
.build()
}

static func genPadExpandedSymbolKeys() -> [[String]] {
return KeyboardBuilder()
.addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"])
.addRow([SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "\"", "|", "—"])
.addRow([SpecialKeys.capsLock, "°", "/", ":", ";", "(", ")", "$", "&", "@", "£", "¥", "~", "return"]) // "undo"
.addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", ",", ".", "-", "shift"]) // "redo"
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble"
.addRow([SpecialKeys.capsLock, "°", "/", ":", ";", "(", ")", "$", "&", "@", "£", "¥", "~", "return"])
.addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", ",", ".", "-", "shift"])
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"])
.build()
}
}
Expand Down
20 changes: 10 additions & 10 deletions Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol {
.addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"])
.addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l"])
.addRow(["shift", "z", "x", "c", "v", "b", "n", "m", "delete"])
.addRow(["123", "selectKeyboard", "space", "return"]) // "undo"
.addRow(["123", "selectKeyboard", "space", "return"])
.build()
}

Expand All @@ -46,7 +46,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol {
.addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"])
.addRow(["-", "/", ":", ";", "(", ")", "$", "&", "@", "\""])
.addRow(["#+=", ".", ",", "?", "!", "'", "delete"])
.addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo"
.addRow(["ABC", "selectKeyboard", "space", "return"])
.replaceKey(row: 1, column: 6, to: currencyKey)
.build()
}
Expand All @@ -56,7 +56,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol {
.addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="])
.addRow(["_", "\\", "|", "~", "<", ">", "€", "£", "¥", "·"])
.addRow(["123", ".", ",", "?", "!", "'", "delete"])
.addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo"
.addRow(["ABC", "selectKeyboard", "space", "return"])

if currencyKeys.count < 3 {
return keyboardBuilder.build()
Expand All @@ -77,7 +77,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol {
.addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "delete"])
.addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "return"])
.addRow(["shift", "w", "x", "c", "v", "b", "n", "m", ",", ".", "shift"])
.addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo"
.addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"])
.build()
}

Expand All @@ -86,7 +86,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol {
.addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"])
.addRow(["@", "#", "$", "&", "*", "(", ")", "'", "\"", "return"])
.addRow(["#+=", "%", "_", "+", "=", "/", ";", ":", ",", ".", "#+="])
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo"
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"])
.replaceKey(row: 1, column: 2, to: currencyKey)
.build()
}
Expand All @@ -96,7 +96,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol {
.addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"])
.addRow(["€", "£", "¥", "_", "^", "[", "]", "{", "}", "return"])
.addRow(["123", "§", "|", "~", "...", "\\", "<", ">", "!", "?", "123"])
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo"
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"])

if currencyKeys.count < 3 {
return keyboardBuilder.build()
Expand All @@ -115,17 +115,17 @@ struct ENKeyboardProvider: KeyboardProviderProtocol {
.addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "[", "]", "\\"])
.addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", ":", ";", "'", "return"])
.addRow(["shift", "-", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", "shift"])
.addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble"
.addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"])
.build()
}

static func genPadExpandedSymbolKeys() -> [[String]] {
return KeyboardBuilder()
.addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"])
.addRow([SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "—", "~", "°"])
.addRow([SpecialKeys.capsLock, "-", "\\", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "€", "return"]) // "undo"
.addRow(["shift", "…", "?", "!", "≠", "'", "\"", "|", "_", ".", ",", "/", "shift"]) // "redo"
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble"
.addRow([SpecialKeys.capsLock, "-", "\\", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "€", "return"])
.addRow(["shift", "…", "?", "!", "≠", "'", "\"", "|", "_", ".", ",", "/", "shift"])
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"])
.build()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol {
.addRow(["a", "z", "e", "r", "t", "y", "u", "i", "o", "p"])
.addRow(["q", "s", "d", "f", "g", "h", "j", "k", "l", "m"])
.addRow(["shift", "w", "x", "c", "v", "b", "n", "´", "delete"])
.addRow(["123", "selectKeyboard", "space", "return"]) // "undo"
.addRow(["123", "selectKeyboard", "space", "return"])
.build()
}

Expand All @@ -44,7 +44,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol {
.addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"])
.addRow(["-", "/", ":", ";", "(", ")", "€", "&", "@", "\""])
.addRow(["#+=", ".", ",", "?", "!", "'", "delete"])
.addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo"
.addRow(["ABC", "selectKeyboard", "space", "return"])
.replaceKey(row: 1, column: 6, to: currencyKey)
.build()
}
Expand All @@ -54,7 +54,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol {
.addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="])
.addRow(["_", "\\", "|", "~", "<", ">", "$", "£", "¥", "·"])
.addRow(["123", ".", ",", "?", "!", "'", "delete"])
.addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo"
.addRow(["ABC", "selectKeyboard", "space", "return"])

if currencyKeys.count < 3 {
return keyboardBuilder.build()
Expand All @@ -75,7 +75,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol {
.addRow(["a", "z", "e", "r", "t", "y", "u", "i", "o", "p", "delete"])
.addRow(["q", "s", "d", "f", "g", "h", "j", "k", "l", "m", "return"])
.addRow(["shift", "w", "x", "c", "v", "b", "n", "´", ",", ".", "shift"])
.addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo"
.addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"])
.build()
}

Expand All @@ -84,7 +84,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol {
.addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"])
.addRow(["@", "#", "&", "\"", "€", "(", "!", ")", "-", "*", "return"])
.addRow(["#+=", "%", "_", "+", "=", "/", ";", ":", ",", ".", "#+="])
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo"
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"])
.replaceKey(row: 1, column: 4, to: currencyKey)
.build()
}
Expand All @@ -94,7 +94,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol {
.addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"])
.addRow(["~", "ᵒ", "[", "]", "{", "}", "^", "$", "£", "¥", "return"])
.addRow(["123", "§", "<", ">", "|", "\\", "...", "·", "?", "'", "123"])
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo"
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"])

if currencyKeys.count < 3 {
return keyboardBuilder.build()
Expand All @@ -115,17 +115,17 @@ struct FRKeyboardProvider: KeyboardProviderProtocol {
.addRow([SpecialKeys.indent, "a", "z", "e", "r", "t", "y", "u", "i", "o", "p", "^", "+", "*"])
.addRow([SpecialKeys.capsLock, "q", "s", "d", "f", "g", "h", "j", "k", "l", "m", "ù", "#", "return"])
.addRow(["shift", "/", "w", "x", "c", "v", "b", "n", ":", "-", ",", ".", "shift"])
.addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble"
.addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"])
.build()
}

static func genPadExpandedSymbolKeys() -> [[String]] {
return KeyboardBuilder()
.addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"])
.addRow([SpecialKeys.indent, "\"", "|", "§", "[", "]", "{", "}", "-", "%", "=", "^", "+", "*"])
.addRow([SpecialKeys.capsLock, "/", "…", "_", "(", ")", "&", "$", "£", "¥", "€", "@", "#", "return"]) // "undo"
.addRow(["shift", "'", "?", "!", "~", "≠", "°", ";", ":", "-", ",", ".", "shift"]) // "redo"
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble"
.addRow([SpecialKeys.capsLock, "/", "…", "_", "(", ")", "&", "$", "£", "¥", "€", "@", "#", "return"])
.addRow(["shift", "'", "?", "!", "~", "≠", "°", ";", ":", "-", ",", ".", "shift"])
.addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"])
.build()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,21 @@ public enum FRQWERTYKeyboardConstants {
["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"],
["a", "s", "d", "f", "g", "h", "j", "k", "l", "´"],
["shift", "z", "x", "c", "v", "b", "n", "m", "delete"],
["123", "selectKeyboard", "space", "return"] // "undo"
["123", "selectKeyboard", "space", "return"]
]

static let numberKeysPhone = [
["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"],
["-", "/", ":", ";", "(", ")", "$", "&", "@", "\""],
["#+=", ".", ",", "?", "!", "'", "delete"],
["ABC", "selectKeyboard", "space", "return"] // "undo"
["ABC", "selectKeyboard", "space", "return"]
]

static let symbolKeysPhone = [
["[", "]", "{", "}", "#", "%", "^", "*", "+", "="],
["_", "\\", "|", "~", "<", ">", "€", "£", "¥", "·"],
["123", ".", ",", "?", "!", "'", "delete"],
["ABC", "selectKeyboard", "space", "return"] // "undo"
["ABC", "selectKeyboard", "space", "return"]
]

// MARK: iPad Layouts
Expand All @@ -34,21 +34,21 @@ public enum FRQWERTYKeyboardConstants {
["a", "z", "e", "r", "t", "y", "u", "i", "o", "p", "delete"],
["q", "s", "d", "f", "g", "h", "j", "k", "l", "m", "return"],
["shift", "w", "x", "c", "v", "b", "n", "´", ",", ".", "shift"],
["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"] // "undo"
["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]
]

static let numberKeysPad = [
["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"],
["@", "#", "&", "\"", "€", "(", "!", ")", "-", "*", "return"],
["#+=", "%", "_", "+", "=", "/", ";", ":", ",", ".", "#+="],
["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"] // "undo"
["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]
]

static let symbolKeysPad = [
["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"],
["~", "ᵒ", "[", "]", "{", "}", "^", "$", "£", "¥", "return"],
["123", "§", "<", ">", "|", "\\", "...", "·", "?", "'", "123"],
["ABC", "selectKeyboard", "space", "ABC", "hideKeyboard"] // "undo"
["ABC", "selectKeyboard", "space", "ABC", "hideKeyboard"]
]

// MARK: Expanded iPad Layouts
Expand All @@ -58,15 +58,15 @@ public enum FRQWERTYKeyboardConstants {
[SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "^", "ç", ":"],
[SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "è", "à", "return"],
["shift", "ù", "z", "x", "c", "v", "b", "n", "m", ",", ".", "é", "shift"],
["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"] // "microphone", "scribble"
["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]
]

static let symbolKeysPadExpanded = [
["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"],
[SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "\"", "|", "~"],
[SpecialKeys.capsLock, "-", "/", ":", ";", "(", ")", "$", "&", "@", "£", "¥", "~", "return"], // "undo"
["shift", "…", "?", "!", "≠", "°", "'", "\"", "_", ",", ".", "€", "shift"], // "redo"
["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"] // "microphone", "scribble"
[SpecialKeys.capsLock, "-", "/", ":", ";", "(", ")", "$", "&", "@", "£", "¥", "~", "return"],
["shift", "…", "?", "!", "≠", "°", "'", "\"", "_", ",", ".", "€", "shift"],
["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]
]

// Alternate key vars.
Expand Down
Loading
Loading