diff --git a/squeekboard/data/keyboards/be.yaml b/squeekboard/data/keyboards/be.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ab43116fc575c8cd7cfd359f2239c6cbfe710fc3
--- /dev/null
+++ b/squeekboard/data/keyboards/be.yaml
@@ -0,0 +1,89 @@
+---
+outlines:
+    default:   { width: 35.33, height: 52 }
+    altline:   { width: 52.67, height: 52 }
+    wide:      { width: 59,    height: 52 }
+    spaceline: { width: 140,   height: 52 }
+    special:   { width: 44,    height: 52 }
+
+views:
+    base:
+        - "a z e r t y u i o p"
+        - "q s d f g h j k l m"
+        - "Shift_L   w x c v b n .   BackSpace"
+        - "show_numbers preferences         space        show_eschars Return"
+    upper:
+        - "A Z E R T Y U I O P"
+        - "Q S D F G H J K L M"
+        - "Shift_L   W X C V B N ,  BackSpace"
+        - "show_numbers preferences         space        show_eschars Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+    eschars:
+        - "à â ç é è ê î ô ù û"
+        - "À Â Ç É È Ê Î Ô Ù Û"
+        - "show_numbers_from_symbols  æ œ ä ë ï ö ü  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "âÂ"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    "\"":
+        keysym: "quotedbl"
diff --git a/squeekboard/data/keyboards/be_wide+terminal.yaml b/squeekboard/data/keyboards/be_wide+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f8858954fc7d7c94f9f82260b29f9405f9ea9eec
--- /dev/null
+++ b/squeekboard/data/keyboards/be_wide+terminal.yaml
@@ -0,0 +1,89 @@
+---
+outlines:
+    default:   { width: 54,  height: 42 }
+    altline:   { width: 81,  height: 42 }
+    wide:      { width: 100, height: 42 }
+    spaceline: { width: 205, height: 42 }
+    special:   { width: 54,  height: 42 }
+
+views:
+    base:
+        - "a z e r t y u i o p"
+        - "q s d f g h j k l m"
+        - "Shift_L   w x c v b n .   BackSpace"
+        - "show_numbers preferences         space        show_eschars Return"
+    upper:
+        - "A Z E R T Y U I O P"
+        - "Q S D F G H J K L M"
+        - "Shift_L   W X C V B N ,  BackSpace"
+        - "show_numbers preferences         space        show_eschars Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+    eschars:
+        - "à â ç é è ê î ô ù û"
+        - "À Â Ç É È Ê Î Ô Ù Û"
+        - "show_numbers_from_symbols  æ œ ä ë ï ö ü  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "âÂ"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    "\"":
+        keysym: "quotedbl"
diff --git a/squeekboard/data/keyboards/be_wide.yaml b/squeekboard/data/keyboards/be_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f8858954fc7d7c94f9f82260b29f9405f9ea9eec
--- /dev/null
+++ b/squeekboard/data/keyboards/be_wide.yaml
@@ -0,0 +1,89 @@
+---
+outlines:
+    default:   { width: 54,  height: 42 }
+    altline:   { width: 81,  height: 42 }
+    wide:      { width: 100, height: 42 }
+    spaceline: { width: 205, height: 42 }
+    special:   { width: 54,  height: 42 }
+
+views:
+    base:
+        - "a z e r t y u i o p"
+        - "q s d f g h j k l m"
+        - "Shift_L   w x c v b n .   BackSpace"
+        - "show_numbers preferences         space        show_eschars Return"
+    upper:
+        - "A Z E R T Y U I O P"
+        - "Q S D F G H J K L M"
+        - "Shift_L   W X C V B N ,  BackSpace"
+        - "show_numbers preferences         space        show_eschars Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+    eschars:
+        - "à â ç é è ê î ô ù û"
+        - "À Â Ç É È Ê Î Ô Ù Û"
+        - "show_numbers_from_symbols  æ œ ä ë ï ö ü  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "âÂ"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    "\"":
+        keysym: "quotedbl"
diff --git a/squeekboard/data/keyboards/bg+terminal.yaml b/squeekboard/data/keyboards/bg+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..93e14987b075829bde32b7b9050f80a23903e7a7
--- /dev/null
+++ b/squeekboard/data/keyboards/bg+terminal.yaml
@@ -0,0 +1,78 @@
+---
+outlines:
+    default: { width: 32.72, height: 52 }
+    altline: { width: 47, height: 52 }
+    wide: { width: 49.09, height: 52 }
+    spaceline: { width: 185, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "я в е р т ъ у и о п ю"
+        - "а с д ф г х й к л ш щ"
+        - "Shift_L з ь ц ж б н м ч BackSpace"
+        - "show_numbers preferences         space   .    Return"
+    upper:
+        - "Я В Е Р Т Ъ У И О П Ю"
+        - "А С Д Ф Г Х Й К Л Ш Щ"
+        - "Shift_L З Ь Ц Ж Б Н М Ч BackSpace"
+        - "show_numbers preferences         space   ,    Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        Return"
+
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    "\"":
+        keysym: "quotedbl"
diff --git a/squeekboard/data/keyboards/bg.yaml b/squeekboard/data/keyboards/bg.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..93e14987b075829bde32b7b9050f80a23903e7a7
--- /dev/null
+++ b/squeekboard/data/keyboards/bg.yaml
@@ -0,0 +1,78 @@
+---
+outlines:
+    default: { width: 32.72, height: 52 }
+    altline: { width: 47, height: 52 }
+    wide: { width: 49.09, height: 52 }
+    spaceline: { width: 185, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "я в е р т ъ у и о п ю"
+        - "а с д ф г х й к л ш щ"
+        - "Shift_L з ь ц ж б н м ч BackSpace"
+        - "show_numbers preferences         space   .    Return"
+    upper:
+        - "Я В Е Р Т Ъ У И О П Ю"
+        - "А С Д Ф Г Х Й К Л Ш Щ"
+        - "Shift_L З Ь Ц Ж Б Н М Ч BackSpace"
+        - "show_numbers preferences         space   ,    Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        Return"
+
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    "\"":
+        keysym: "quotedbl"
diff --git a/squeekboard/data/keyboards/br+terminal.yaml b/squeekboard/data/keyboards/br+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b3ae1ac09252144b48f5328d5ae69cd4b2b522cc
--- /dev/null
+++ b/squeekboard/data/keyboards/br+terminal.yaml
@@ -0,0 +1,78 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l ç"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space     , Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L Ç"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space     period Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "à À á Á ã Ã â Â é É"
+        - "show_symbols   ê Ê í Í ó Ó ô Ô"
+        - "show_letters        õ Õ ú Ú ü Ü period BackSpace"
+    symbols:
+        - "@ # $ % - + ÷ × = ≠"
+        - "( ) § & < > / * { }"
+        - "show_numbers_from_symbols     º \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "1ã"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "1ã"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/br.yaml b/squeekboard/data/keyboards/br.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b3ae1ac09252144b48f5328d5ae69cd4b2b522cc
--- /dev/null
+++ b/squeekboard/data/keyboards/br.yaml
@@ -0,0 +1,78 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l ç"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space     , Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L Ç"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space     period Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "à À á Á ã Ã â Â é É"
+        - "show_symbols   ê Ê í Í ó Ó ô Ô"
+        - "show_letters        õ Õ ú Ú ü Ü period BackSpace"
+    symbols:
+        - "@ # $ % - + ÷ × = ≠"
+        - "( ) § & < > / * { }"
+        - "show_numbers_from_symbols     º \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "1ã"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "1ã"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/cz+qwerty.yaml b/squeekboard/data/keyboards/cz+qwerty.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a9040af970a8592d37432464115e7f1f5b0ed853
--- /dev/null
+++ b/squeekboard/data/keyboards/cz+qwerty.yaml
@@ -0,0 +1,106 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 52.67, height: 52 }
+    spaceline: { width: 106, height: 52 }
+    special: { width: 35.33, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L    z x c v b n m    BackSpace"
+        - "show_numbers preferences show_accents    space    , . Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L    Z X C V B N M    BackSpace"
+        - "show_numbers preferences show_upper_accents    space    ! ? Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols    , \" ' colon ; ! ?    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols    \\ / < > = [ ]    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    accents:
+        - "ä ě é ř ť ý ů í ó ö"
+        - "á š ď ë ŕ ú ü ô ľ"
+        - "accents_Shift_L    ž ß č ç ñ ň ĺ    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    upper_accents:
+        - "Ä Ě É Ř Ť Ý Ů Í Ó Ö"
+        - "Á Š Ď Ë Ŕ Ú Ü Ô Ľ"
+        - "accents_Shift_L    Ž ẞ Č Ç Ñ Ň Ĺ    BackSpace"
+        - "show_letters preferences show_upper_accents    space    , . Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    accents_Shift_L:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_accents:
+        action:
+            locking:
+                lock_view: "accents"
+                unlock_view: "base"
+        outline: "special"
+        label: "á"
+    show_upper_accents:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "base"
+        outline: "special"
+        label: "Á"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/cz+qwerty_wide.yaml b/squeekboard/data/keyboards/cz+qwerty_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..78fd042d40621c9892ded97c3d7289110a4d3264
--- /dev/null
+++ b/squeekboard/data/keyboards/cz+qwerty_wide.yaml
@@ -0,0 +1,106 @@
+---
+outlines:
+    default: { width: 54, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 81, height: 42 }
+    spaceline: { width: 162, height: 42 }
+    special: { width: 54, height: 42 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L    z x c v b n m    BackSpace"
+        - "show_numbers preferences show_accents    space    , . Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L    Z X C V B N M    BackSpace"
+        - "show_numbers preferences show_upper_accents    space    ! ? Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols    , \" ' colon ; ! ?    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols    \\ / < > = [ ]    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    accents:
+        - "ä ě é ř ť ý ů í ó ö"
+        - "á š ď ë ŕ ú ü ô ľ"
+        - "accents_Shift_L    ž ß č ç ñ ň ĺ    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    upper_accents:
+        - "Ä Ě É Ř Ť Ý Ů Í Ó Ö"
+        - "Á Š Ď Ë Ŕ Ú Ü Ô Ľ"
+        - "accents_Shift_L    Ž ẞ Č Ç Ñ Ň Ĺ    BackSpace"
+        - "show_letters preferences show_upper_accents    space    , . Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    accents_Shift_L:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_accents:
+        action:
+            locking:
+                lock_view: "accents"
+                unlock_view: "base"
+        outline: "special"
+        label: "á"
+    show_upper_accents:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "base"
+        outline: "special"
+        label: "Á"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/cz.yaml b/squeekboard/data/keyboards/cz.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..889b9674cb198f17b879d4c7231e03d4e30d6999
--- /dev/null
+++ b/squeekboard/data/keyboards/cz.yaml
@@ -0,0 +1,106 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 52.67, height: 52 }
+    spaceline: { width: 106, height: 52 }
+    special: { width: 35.33, height: 52 }
+
+views:
+    base:
+        - "q w e r t z u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L    y x c v b n m    BackSpace"
+        - "show_numbers preferences show_accents    space    , . Return"
+    upper:
+        - "Q W E R T Z U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L    Y X C V B N M    BackSpace"
+        - "show_numbers preferences show_upper_accents    space    ! ? Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols    , \" ' colon ; ! ?    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols    \\ / < > = [ ]    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    accents:
+        - "ä ě é ř ť ž ů í ó ö"
+        - "á š ď ë ŕ ú ü ô ľ"
+        - "accents_Shift_L    ý ß č ç ñ ň ĺ    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    upper_accents:
+        - "Ä Ě É Ř Ť Ž Ů Í Ó Ö"
+        - "Á Š Ď Ë Ŕ Ú Ü Ô Ľ"
+        - "accents_Shift_L    Ý ẞ Č Ç Ñ Ň Ĺ    BackSpace"
+        - "show_letters preferences show_upper_accents    space    , . Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    accents_Shift_L:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_accents:
+        action:
+            locking:
+                lock_view: "accents"
+                unlock_view: "base"
+        outline: "special"
+        label: "á"
+    show_upper_accents:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "base"
+        outline: "special"
+        label: "Á"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/cz_wide+terminal.yaml b/squeekboard/data/keyboards/cz_wide+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1ea6275813ba69cc4f51ee220e4db6671b6b7a6a
--- /dev/null
+++ b/squeekboard/data/keyboards/cz_wide+terminal.yaml
@@ -0,0 +1,106 @@
+---
+outlines:
+    default: { width: 54, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 81, height: 42 }
+    spaceline: { width: 162, height: 42 }
+    special: { width: 54, height: 42 }
+
+views:
+    base:
+        - "q w e r t z u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L    y x c v b n m    BackSpace"
+        - "show_numbers preferences show_accents    space    , . Return"
+    upper:
+        - "Q W E R T Z U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L    Y X C V B N M    BackSpace"
+        - "show_numbers preferences show_upper_accents    space    ! ? Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols    , \" ' colon ; ! ?    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols    \\ / < > = [ ]    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    accents:
+        - "ä ě é ř ť ž ů í ó ö"
+        - "á š ď ë ŕ ú ü ô ľ"
+        - "accents_Shift_L    ý ß č ç ñ ň ĺ    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    upper_accents:
+        - "Ä Ě É Ř Ť Ž Ů Í Ó Ö"
+        - "Á Š Ď Ë Ŕ Ú Ü Ô Ľ"
+        - "accents_Shift_L    Ý ẞ Č Ç Ñ Ň Ĺ    BackSpace"
+        - "show_letters preferences show_upper_accents    space    , . Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    accents_Shift_L:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_accents:
+        action:
+            locking:
+                lock_view: "accents"
+                unlock_view: "base"
+        outline: "special"
+        label: "á"
+    show_upper_accents:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "base"
+        outline: "special"
+        label: "Á"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/cz_wide.yaml b/squeekboard/data/keyboards/cz_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1ea6275813ba69cc4f51ee220e4db6671b6b7a6a
--- /dev/null
+++ b/squeekboard/data/keyboards/cz_wide.yaml
@@ -0,0 +1,106 @@
+---
+outlines:
+    default: { width: 54, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 81, height: 42 }
+    spaceline: { width: 162, height: 42 }
+    special: { width: 54, height: 42 }
+
+views:
+    base:
+        - "q w e r t z u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L    y x c v b n m    BackSpace"
+        - "show_numbers preferences show_accents    space    , . Return"
+    upper:
+        - "Q W E R T Z U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L    Y X C V B N M    BackSpace"
+        - "show_numbers preferences show_upper_accents    space    ! ? Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols    , \" ' colon ; ! ?    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols    \\ / < > = [ ]    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    accents:
+        - "ä ě é ř ť ž ů í ó ö"
+        - "á š ď ë ŕ ú ü ô ľ"
+        - "accents_Shift_L    ý ß č ç ñ ň ĺ    BackSpace"
+        - "show_letters preferences show_accents    space    , . Return"
+    upper_accents:
+        - "Ä Ě É Ř Ť Ž Ů Í Ó Ö"
+        - "Á Š Ď Ë Ŕ Ú Ü Ô Ľ"
+        - "accents_Shift_L    Ý ẞ Č Ç Ñ Ň Ĺ    BackSpace"
+        - "show_letters preferences show_upper_accents    space    , . Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    accents_Shift_L:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_accents:
+        action:
+            locking:
+                lock_view: "accents"
+                unlock_view: "base"
+        outline: "special"
+        label: "á"
+    show_upper_accents:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "base"
+        outline: "special"
+        label: "Á"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/de.yaml b/squeekboard/data/keyboards/de.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..51f9ea0af5124c216a05c57fb422913280b55338
--- /dev/null
+++ b/squeekboard/data/keyboards/de.yaml
@@ -0,0 +1,82 @@
+# Maintained by: Mark Müller <markmueller86@gmail.com>
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 99.67, height: 52 }
+    special: { width: 35.33, height: 52 }
+
+views:
+    base:
+        - "q w e r t z u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   y x c v b n m  BackSpace"
+        - "show_numbers show_eschars preferences         space        , . Return"
+    upper:
+        - "Q W E R T Z U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Y X C V B N M  BackSpace"
+        - "show_numbers show_eschars preferences         space        ! ? Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   ; \" ' : = < >  BackSpace"
+        - "show_letters show_eschars preferences         space        , . Return"
+    symbols:
+        - "~ ` ´ | · √ µ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers   \\ / § π τ [ ]  BackSpace"
+        - "show_letters show_eschars preferences         space        , . Return"
+    eschars:
+        - "ä è é ö ü Ä È É Ö Ü"
+        - "à â ê î ô À Â È Î Ô"
+        - "show_numbers  « » ç Ç æ œ ß  BackSpace"
+        - "show_letters show_eschars preferences         space        „ “ Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "äÄ"
+    space:
+        outline: "spaceline"
+        label: " "
+        text: " "
+    Return:
+        outline: "altline"
+        icon: "key-enter"
+        keysym: "Return"
diff --git a/squeekboard/data/keyboards/de_wide+terminal.yaml b/squeekboard/data/keyboards/de_wide+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b03af5f7655a41b1396b15f0ea750fa484b259d9
--- /dev/null
+++ b/squeekboard/data/keyboards/de_wide+terminal.yaml
@@ -0,0 +1,81 @@
+# Maintained by: Mark Müller <markmueller86@gmail.com>
+---
+outlines:
+    default: { width: 48, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 108, height: 42 }
+    spaceline: { width: 216, height: 42 }
+    special: { width: 48, height: 42 }
+
+views:
+    base:
+        - "q w e r t z u i o p ü"
+        - "a s d f g h j k l ö ä"
+        - "Shift_L   y x c v b n m  BackSpace"
+        - "show_numbers preferences         space        , . Return"
+    upper:
+        - "Q W E R T Z U I O P Ü"
+        - "A S D F G H J K L Ö Ä"
+        - "Shift_L   Y X C V B N M  BackSpace"
+        - "show_numbers preferences         space        ! ? Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # % & - _ + ( ) ß"
+        - "show_symbols   ; \" ' : = < >  BackSpace"
+        - "show_letters preferences         space        , . Return"
+    symbols:
+        - "~ ` ´  · © ® ÷ × ¶"
+        - "€ £ $ ¥ ^ ° * { } |"
+        - "show_numbers   \\ / § π τ [ ]  BackSpace"
+        - "show_letters preferences         space        , . Return"
+    eschars:
+        - "ä è é ö ü Ä È É Ö Ü"
+        - "à â ê î ô À Â È Î Ô"
+        - "show_numbers  « » ç Ç æ œ ß  BackSpace"
+        - "show_letters preferences         space        „ “ Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "äÄ"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "altline"
+        icon: "key-enter"
+        keysym: "Return"
diff --git a/squeekboard/data/keyboards/de_wide.yaml b/squeekboard/data/keyboards/de_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b03af5f7655a41b1396b15f0ea750fa484b259d9
--- /dev/null
+++ b/squeekboard/data/keyboards/de_wide.yaml
@@ -0,0 +1,81 @@
+# Maintained by: Mark Müller <markmueller86@gmail.com>
+---
+outlines:
+    default: { width: 48, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 108, height: 42 }
+    spaceline: { width: 216, height: 42 }
+    special: { width: 48, height: 42 }
+
+views:
+    base:
+        - "q w e r t z u i o p ü"
+        - "a s d f g h j k l ö ä"
+        - "Shift_L   y x c v b n m  BackSpace"
+        - "show_numbers preferences         space        , . Return"
+    upper:
+        - "Q W E R T Z U I O P Ü"
+        - "A S D F G H J K L Ö Ä"
+        - "Shift_L   Y X C V B N M  BackSpace"
+        - "show_numbers preferences         space        ! ? Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # % & - _ + ( ) ß"
+        - "show_symbols   ; \" ' : = < >  BackSpace"
+        - "show_letters preferences         space        , . Return"
+    symbols:
+        - "~ ` ´  · © ® ÷ × ¶"
+        - "€ £ $ ¥ ^ ° * { } |"
+        - "show_numbers   \\ / § π τ [ ]  BackSpace"
+        - "show_letters preferences         space        , . Return"
+    eschars:
+        - "ä è é ö ü Ä È É Ö Ü"
+        - "à â ê î ô À Â È Î Ô"
+        - "show_numbers  « » ç Ç æ œ ß  BackSpace"
+        - "show_letters preferences         space        „ “ Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "äÄ"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "altline"
+        icon: "key-enter"
+        keysym: "Return"
diff --git a/squeekboard/data/keyboards/dk+terminal.yaml b/squeekboard/data/keyboards/dk+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a484375bd05430b23488705c350c699fc7a2ebe4
--- /dev/null
+++ b/squeekboard/data/keyboards/dk+terminal.yaml
@@ -0,0 +1,98 @@
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 48.39024, height: 52 }
+    wide: { width: 62, height: 52 }
+    outline7: { width: 88.97561, height: 52 }
+    spaceline: { width: 150.5853, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p å"
+        - "a s d f g h j k l ø æ"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    upper:
+        - "Q W E R T Y U I O P Ã…"
+        - "A S D F G H J K L Ø Æ"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' : ; ! ?  BackSpace"
+        - "show_letters preferences         space        .    Return"
+    symbols:
+        - "~ ` | U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
+        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree * { }"
+        - "show_numbers   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        .    Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "altline"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: altline
+    space:
+        outline: spaceline
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    U00B7:
+        text: "·"
+    squareroot:
+        text: "√"
+    Greek_pi:
+        text: "Ï€"
+    division:
+        text: "÷"
+    multiply:
+        text: "×"
+    paragraph:
+        text: "¶"
+    Greek_tau:
+        text: "Ï„"
+    copyright:
+        text: "©"
+    U00AE:
+        text: "®"
+    U00A3:
+        text: "£"
+    EuroSign:
+        text: "€"
+    U00A5:
+        text: "Â¥"
+    asciicircum:
+        text: "^"
+    degree:
+        text: "°"
diff --git a/squeekboard/data/keyboards/dk.yaml b/squeekboard/data/keyboards/dk.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a484375bd05430b23488705c350c699fc7a2ebe4
--- /dev/null
+++ b/squeekboard/data/keyboards/dk.yaml
@@ -0,0 +1,98 @@
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 48.39024, height: 52 }
+    wide: { width: 62, height: 52 }
+    outline7: { width: 88.97561, height: 52 }
+    spaceline: { width: 150.5853, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p å"
+        - "a s d f g h j k l ø æ"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    upper:
+        - "Q W E R T Y U I O P Ã…"
+        - "A S D F G H J K L Ø Æ"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' : ; ! ?  BackSpace"
+        - "show_letters preferences         space        .    Return"
+    symbols:
+        - "~ ` | U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
+        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree * { }"
+        - "show_numbers   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        .    Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "altline"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: altline
+    space:
+        outline: spaceline
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    U00B7:
+        text: "·"
+    squareroot:
+        text: "√"
+    Greek_pi:
+        text: "Ï€"
+    division:
+        text: "÷"
+    multiply:
+        text: "×"
+    paragraph:
+        text: "¶"
+    Greek_tau:
+        text: "Ï„"
+    copyright:
+        text: "©"
+    U00AE:
+        text: "®"
+    U00A3:
+        text: "£"
+    EuroSign:
+        text: "€"
+    U00A5:
+        text: "Â¥"
+    asciicircum:
+        text: "^"
+    degree:
+        text: "°"
diff --git a/squeekboard/data/keyboards/emoji+terminal.yaml b/squeekboard/data/keyboards/emoji+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3d314766cca699f5e3e1981d48038fb0d0f675c6
--- /dev/null
+++ b/squeekboard/data/keyboards/emoji+terminal.yaml
@@ -0,0 +1,80 @@
+---
+outlines:
+    default: { width: 52, height: 52 }
+    altline: { width: 40, height: 52 }
+    narrow: { width: 22, height: 52 }
+
+views:
+    base:
+        - "😀 😁 😅 😂 😊 😇 🙃"
+        - "😍 😘 😋 😜 😎 🥳 😔"
+        - "😢 😭 😡 😱 🤔 😬 🙄"
+        - "preferences blank 1 2 3 4 5 6 blank BackSpace"
+    two:
+        - "🤩 🤨 🤓 😴 🤢 🤮 😈"
+        - "💩 🙌 👏 👍 👎 👌 👋"
+        - "💪 🖕 🙏 💋 🤦‍♀️ 🤷‍♀️ 💃"
+        - "preferences blank 1 2 3 4 5 6 blank BackSpace"
+    three:
+        - "🐶 🐱 🐯 🙈 🐴 🦄 🌳"
+        - "🍀 🌹 💫 ⭐️ ✨ 💥 🔥"
+        - "🌈 ☀️ 🌤 🌧 ⛄️ ☂️ 🌊"
+        - "preferences blank 1 2 3 4 5 6 blank BackSpace"
+    four:
+        - "🍎 🍓 🍑 🍍 🍆 🥑 🥦"
+        - "🍕 🎂 🍫 🍿 🍻 🍾 🍽"
+        - "⚽️ 🏀 🏓 🏆 🎹 🎸 🎯"
+        - "preferences blank 1 2 3 4 5 6 blank BackSpace"
+    five:
+        - "🚗 🚌 🚲 🚄 🚂 ✈️ 🛰"
+        - "🚀 🛸 🚁 🚦 🏝 🏔 ⛺️"
+        - "🏠 🏢 🏥 🏛 🛤 🌅 🎇"
+        - "preferences blank 1 2 3 4 5 6 blank BackSpace"
+    six:
+        - "⌚️ 📱 💻 🖥 🖨 🕹 ✉️"
+        - "📞 ☎️ ⏰ ⏳ 📈 📉 📌"
+        - "🎁 ❤️ 💕 💯 ✅ ❎ 📢"
+        - "preferences blank 1 2 3 4 5 6 blank BackSpace"
+
+buttons:
+    1:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "1"
+    2:
+        action:
+            set_view: "two"
+        outline: "altline"
+        label: "2"
+    3:
+        action:
+            set_view: "three"
+        outline: "altline"
+        label: "3"
+    4:
+        action:
+            set_view: "four"
+        outline: "altline"
+        label: "4"
+    5:
+        action:
+            set_view: "five"
+        outline: "altline"
+        label: "5"
+    6:
+        action:
+            set_view: "six"
+        outline: "altline"
+        label: "6"
+    preferences:
+        action: "show_prefs"
+        outline: "altline"
+        icon: "keyboard-mode-symbolic"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        keysym: BackSpace
+    blank:
+        outline: "narrow"
+        text: ""
diff --git a/squeekboard/data/keyboards/emoji.yaml b/squeekboard/data/keyboards/emoji.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3d314766cca699f5e3e1981d48038fb0d0f675c6
--- /dev/null
+++ b/squeekboard/data/keyboards/emoji.yaml
@@ -0,0 +1,80 @@
+---
+outlines:
+    default: { width: 52, height: 52 }
+    altline: { width: 40, height: 52 }
+    narrow: { width: 22, height: 52 }
+
+views:
+    base:
+        - "😀 😁 😅 😂 😊 😇 🙃"
+        - "😍 😘 😋 😜 😎 🥳 😔"
+        - "😢 😭 😡 😱 🤔 😬 🙄"
+        - "preferences blank 1 2 3 4 5 6 blank BackSpace"
+    two:
+        - "🤩 🤨 🤓 😴 🤢 🤮 😈"
+        - "💩 🙌 👏 👍 👎 👌 👋"
+        - "💪 🖕 🙏 💋 🤦‍♀️ 🤷‍♀️ 💃"
+        - "preferences blank 1 2 3 4 5 6 blank BackSpace"
+    three:
+        - "🐶 🐱 🐯 🙈 🐴 🦄 🌳"
+        - "🍀 🌹 💫 ⭐️ ✨ 💥 🔥"
+        - "🌈 ☀️ 🌤 🌧 ⛄️ ☂️ 🌊"
+        - "preferences blank 1 2 3 4 5 6 blank BackSpace"
+    four:
+        - "🍎 🍓 🍑 🍍 🍆 🥑 🥦"
+        - "🍕 🎂 🍫 🍿 🍻 🍾 🍽"
+        - "⚽️ 🏀 🏓 🏆 🎹 🎸 🎯"
+        - "preferences blank 1 2 3 4 5 6 blank BackSpace"
+    five:
+        - "🚗 🚌 🚲 🚄 🚂 ✈️ 🛰"
+        - "🚀 🛸 🚁 🚦 🏝 🏔 ⛺️"
+        - "🏠 🏢 🏥 🏛 🛤 🌅 🎇"
+        - "preferences blank 1 2 3 4 5 6 blank BackSpace"
+    six:
+        - "⌚️ 📱 💻 🖥 🖨 🕹 ✉️"
+        - "📞 ☎️ ⏰ ⏳ 📈 📉 📌"
+        - "🎁 ❤️ 💕 💯 ✅ ❎ 📢"
+        - "preferences blank 1 2 3 4 5 6 blank BackSpace"
+
+buttons:
+    1:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "1"
+    2:
+        action:
+            set_view: "two"
+        outline: "altline"
+        label: "2"
+    3:
+        action:
+            set_view: "three"
+        outline: "altline"
+        label: "3"
+    4:
+        action:
+            set_view: "four"
+        outline: "altline"
+        label: "4"
+    5:
+        action:
+            set_view: "five"
+        outline: "altline"
+        label: "5"
+    6:
+        action:
+            set_view: "six"
+        outline: "altline"
+        label: "6"
+    preferences:
+        action: "show_prefs"
+        outline: "altline"
+        icon: "keyboard-mode-symbolic"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        keysym: BackSpace
+    blank:
+        outline: "narrow"
+        text: ""
diff --git a/squeekboard/data/keyboards/epo+terminal.yaml b/squeekboard/data/keyboards/epo+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ef4705e161f83292c4c83c0661bdcbd87c84469d
--- /dev/null
+++ b/squeekboard/data/keyboards/epo+terminal.yaml
@@ -0,0 +1,81 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 99.67, height: 52 }
+    special: { width: 35.33, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers show_eschars preferences         space        , . Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers show_eschars preferences         space        ! ? Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' : ; ! ?  BackSpace"
+        - "show_letters preferences         space        . Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        . Return"
+    eschars:
+        - "ĉ ĝ ĥ ĵ ŝ ŭ ?"
+        - "Ĉ Ĝ Ĥ Ĵ Ŝ Ŭ !"
+        - "show_numbers ' - 🐊 💚 🌐 . BackSpace"
+        - "show_letters show_eschars preferences         space        „ “ Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "ŭŜ"
+    space:
+        outline: "spaceline"
+        label: " "
+        text: " "
+    Return:
+        outline: "altline"
+        icon: "key-enter"
+        keysym: "Return"
diff --git a/squeekboard/data/keyboards/epo.yaml b/squeekboard/data/keyboards/epo.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ef4705e161f83292c4c83c0661bdcbd87c84469d
--- /dev/null
+++ b/squeekboard/data/keyboards/epo.yaml
@@ -0,0 +1,81 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 99.67, height: 52 }
+    special: { width: 35.33, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers show_eschars preferences         space        , . Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers show_eschars preferences         space        ! ? Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' : ; ! ?  BackSpace"
+        - "show_letters preferences         space        . Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        . Return"
+    eschars:
+        - "ĉ ĝ ĥ ĵ ŝ ŭ ?"
+        - "Ĉ Ĝ Ĥ Ĵ Ŝ Ŭ !"
+        - "show_numbers ' - 🐊 💚 🌐 . BackSpace"
+        - "show_letters show_eschars preferences         space        „ “ Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "ŭŜ"
+    space:
+        outline: "spaceline"
+        label: " "
+        text: " "
+    Return:
+        outline: "altline"
+        icon: "key-enter"
+        keysym: "Return"
diff --git a/squeekboard/data/keyboards/es+cat.yaml b/squeekboard/data/keyboards/es+cat.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9be5325808a8466b6a725567028216b4e04c238f
--- /dev/null
+++ b/squeekboard/data/keyboards/es+cat.yaml
@@ -0,0 +1,87 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 99.67, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l ç"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers show_eschars preferences         space        ? period Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L Ç"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers show_eschars preferences         space        ¿ period Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! = BackSpace"
+        - "show_letters show_eschars preferences         space        ? period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers   \\ / < > = [ ]  BackSpace"
+        - "show_letters show_eschars preferences         space        ? period Return"
+    eschars:
+        - "á é í ó ú Á É Í Ó Ú"
+        - "à è ì ò ù À È Ì Ò Ù"
+        - "show_numbers ü ç ï Ü Ç Ï ¡  BackSpace"
+        - "show_letters show_eschars preferences         space        « » Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "default"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "àÀ"
+
+    period:
+        outline: "default"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "altline"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+
diff --git a/squeekboard/data/keyboards/es.yaml b/squeekboard/data/keyboards/es.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7343e7b349a11b6022d7c0b183a8445c757c9601
--- /dev/null
+++ b/squeekboard/data/keyboards/es.yaml
@@ -0,0 +1,87 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 99.67, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l ñ"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers show_eschars preferences         space        ? period Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L Ñ"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers show_eschars preferences         space        ¿ period Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! = BackSpace"
+        - "show_letters show_eschars preferences         space        ? period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers   \\ / < > = [ ]  BackSpace"
+        - "show_letters show_eschars preferences         space        ? period Return"
+    eschars:
+        - "á é í ó ú Á É Í Ó Ú"
+        - "à è ì ò ù À È Ì Ò Ù"
+        - "show_numbers ü ç ï Ü Ç Ï ¡  BackSpace"
+        - "show_letters show_eschars preferences         space        « » Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "default"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "áÁ"
+
+    period:
+        outline: "default"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "altline"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+
diff --git a/squeekboard/data/keyboards/fi+terminal.yaml b/squeekboard/data/keyboards/fi+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..25493d705ce7ae3cdafd57124b98363ca1767ca3
--- /dev/null
+++ b/squeekboard/data/keyboards/fi+terminal.yaml
@@ -0,0 +1,171 @@
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 48.39024, height: 52 }
+    wide: { width: 62, height: 52 }
+    outline7: { width: 88.97561, height: 52 }
+    spaceline: { width: 150.5853, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p å"
+        - "a s d f g h j k l ö ä"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    upper:
+        - "Q W E R T Y U I O P Ã…"
+        - "A S D F G H J K L Ö Ä"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "at numbersign dollar percent ampersand minus underscore plus parenleft parenright"
+        - "show_symbols   comma quotedbl quoteright colon semicolon exclam question  BackSpace"
+        - "show_letters preferences         space        .    Return"
+    symbols:
+        - "asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
+        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright"
+        - "show_numbers   backslash slash less greater equal bracketleft bracketright  BackSpace"
+        - "show_letters preferences         space        .    Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "altline"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: altline
+    space:
+        outline: spaceline
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    aring:
+        text: "Ã¥"
+    Aring:
+        text: "Ã…"
+    ouml:
+        text: "ö"
+    Ouml:
+        text: "Ö"
+    auml:
+        text: "ä"
+    Auml:
+        text: "Ä"
+    asterisk:
+        text: "*"
+    asciitilde:
+        text: "~"
+    quoteleft:
+        text: "`"
+    bar:
+        text: "|"
+    U00B7:
+        text: "·"
+    squareroot:
+        text: "√"
+    Greek_pi:
+        text: "Ï€"
+    division:
+        text: "÷"
+    multiply:
+        text: "×"
+    paragraph:
+        text: "¶"
+    Greek_tau:
+        text: "Ï„"
+    copyright:
+        text: "©"
+    numbersign:
+        text: "#"
+    U00AE:
+        text: "®"
+    at:
+        text: "@"
+    dollar:
+        text: "$"
+    U00A3:
+        text: "£"
+    percent:
+        text: "%"
+    EuroSign:
+        text: "€"
+    ampersand:
+        text: "&"
+    U00A5:
+        text: "Â¥"
+    minus:
+        text: "-"
+    asciicircum:
+        text: "^"
+    underscore:
+        text: "_"
+    degree:
+        text: "°"
+    plus:
+        text: "+"
+    equal:
+        text: "="
+    parenleft:
+        text: "("
+    parenright:
+        text: ")"
+    braceleft:
+        text: "{"
+    braceright:
+        text: "}"
+    comma:
+        text: ","
+    backslash:
+        text: "\\"
+    slash:
+        text: "/"
+    quotedbl:
+        text: "\""
+    quoteright:
+        text: "'"
+    less:
+        text: "<"
+    greater:
+        text: ">"
+    colon:
+        text: ":"
+    semicolon:
+        text: ";"
+    exclam:
+        text: "!"
+    question:
+        text: "?"
+    bracketleft:
+        text: "["
+    bracketright:
+        text: "]"
+
diff --git a/squeekboard/data/keyboards/fi.yaml b/squeekboard/data/keyboards/fi.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..25493d705ce7ae3cdafd57124b98363ca1767ca3
--- /dev/null
+++ b/squeekboard/data/keyboards/fi.yaml
@@ -0,0 +1,171 @@
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 48.39024, height: 52 }
+    wide: { width: 62, height: 52 }
+    outline7: { width: 88.97561, height: 52 }
+    spaceline: { width: 150.5853, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p å"
+        - "a s d f g h j k l ö ä"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    upper:
+        - "Q W E R T Y U I O P Ã…"
+        - "A S D F G H J K L Ö Ä"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "at numbersign dollar percent ampersand minus underscore plus parenleft parenright"
+        - "show_symbols   comma quotedbl quoteright colon semicolon exclam question  BackSpace"
+        - "show_letters preferences         space        .    Return"
+    symbols:
+        - "asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
+        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright"
+        - "show_numbers   backslash slash less greater equal bracketleft bracketright  BackSpace"
+        - "show_letters preferences         space        .    Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "altline"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: altline
+    space:
+        outline: spaceline
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    aring:
+        text: "Ã¥"
+    Aring:
+        text: "Ã…"
+    ouml:
+        text: "ö"
+    Ouml:
+        text: "Ö"
+    auml:
+        text: "ä"
+    Auml:
+        text: "Ä"
+    asterisk:
+        text: "*"
+    asciitilde:
+        text: "~"
+    quoteleft:
+        text: "`"
+    bar:
+        text: "|"
+    U00B7:
+        text: "·"
+    squareroot:
+        text: "√"
+    Greek_pi:
+        text: "Ï€"
+    division:
+        text: "÷"
+    multiply:
+        text: "×"
+    paragraph:
+        text: "¶"
+    Greek_tau:
+        text: "Ï„"
+    copyright:
+        text: "©"
+    numbersign:
+        text: "#"
+    U00AE:
+        text: "®"
+    at:
+        text: "@"
+    dollar:
+        text: "$"
+    U00A3:
+        text: "£"
+    percent:
+        text: "%"
+    EuroSign:
+        text: "€"
+    ampersand:
+        text: "&"
+    U00A5:
+        text: "Â¥"
+    minus:
+        text: "-"
+    asciicircum:
+        text: "^"
+    underscore:
+        text: "_"
+    degree:
+        text: "°"
+    plus:
+        text: "+"
+    equal:
+        text: "="
+    parenleft:
+        text: "("
+    parenright:
+        text: ")"
+    braceleft:
+        text: "{"
+    braceright:
+        text: "}"
+    comma:
+        text: ","
+    backslash:
+        text: "\\"
+    slash:
+        text: "/"
+    quotedbl:
+        text: "\""
+    quoteright:
+        text: "'"
+    less:
+        text: "<"
+    greater:
+        text: ">"
+    colon:
+        text: ":"
+    semicolon:
+        text: ";"
+    exclam:
+        text: "!"
+    question:
+        text: "?"
+    bracketleft:
+        text: "["
+    bracketright:
+        text: "]"
+
diff --git a/squeekboard/data/keyboards/fr+terminal.yaml b/squeekboard/data/keyboards/fr+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3bf43be0b644988cee3b977582ec2814f5722b3c
--- /dev/null
+++ b/squeekboard/data/keyboards/fr+terminal.yaml
@@ -0,0 +1,207 @@
+---
+outlines:
+    default: { width: 35.33, height: 46 }
+    action:  { width: 59,    height: 46 }
+    altline: { width: 52.67, height: 46 }
+    wide: { width: 59, height: 46 }
+    spaceline: { width: 140, height: 46 }
+    special: { width: 44, height: 46 }
+    small: { width: 59, height: 22 }
+
+views:
+    base:
+        - "Ctrl TabSmall ↑ ↓ ← →"
+        - "a z e r t y u i o p"
+        - "q s d f g h j k l m"
+        - "Shift_L w x c v b n period BackSpace"
+        - "show_numbers preferences      space        show_actions Return"
+    upper:
+        - "Ctrl TabSmall PgUp PgDn Home End"
+        - "A Z E R T Y U I O P"
+        - "Q S D F G H J K L M"
+        - "Shift_L W X C V B N period BackSpace"
+        - "show_numbers preferences      space        show_actions Return"
+    numbers:
+        - "Ctrl TabSmall ↑ ↓ ← →"
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "* # $ / & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "Ctrl TabSmall ↑ ↓ ← →"
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° @ { }"
+        - "show_numbers_from_symbols   \\ % < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+    actions:
+        - "Ctrl Alt PgUp PgDn Home End"
+        - "F1  F2  F3  F4  F5  F6"
+        - "F7  F8  F9  F10 F11 F12"
+        - "Esc Tab Pause Insert Up Del"
+        - "show_letters Menu Break Left Down Right"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "special"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "special"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "Ï„=\\"
+    show_actions:
+        action:
+            set_view: "actions"
+        outline: "special"
+        label: ">_"
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    F1:
+        outline: "action"
+        keysym: "F1"
+    F2:
+        outline: "action"
+        keysym: "F2"
+    F3:
+        outline: "action"
+        keysym: "F3"
+    F4:
+        outline: "action"
+        keysym: "F4"
+    F5:
+        outline: "action"
+        keysym: "F5"
+    F6:
+        outline: "action"
+        keysym: "F6"
+    F7:
+        outline: "action"
+        keysym: "F7"
+    F8:
+        outline: "action"
+        keysym: "F8"
+    F9:
+        outline: "action"
+        keysym: "F9"
+    F10:
+        outline: "action"
+        keysym: "F10"
+    F11:
+        outline: "action"
+        keysym: "F11"
+    F12:
+        outline: "action"
+        keysym: "F12"
+    Esc:
+        outline: "action"
+        keysym: "Escape"
+    Tab:
+        outline: "action"
+        keysym: "Tab"
+    Del:
+        outline: "action"
+        keysym: "Delete"
+    Insert:
+        outline: "action"
+        keysym: "Insert"
+    Menu:
+        outline: "action"
+        keysym: "Menu"
+    Pause:
+        outline: "action"
+        keysym: "Pause"
+    Menu:
+        outline: "action"
+        keysym: "Menu"
+    Break:
+        outline: "action"
+        keysym: "Break"
+    Home:
+        outline: "small"
+        keysym: "Home"
+    End:
+        outline: "small"
+        keysym: "End"
+    PgUp:
+        outline: "small"
+        keysym: "Page_Up"
+    PgDn:
+        outline: "small"
+        keysym: "Page_Down"
+    "↑":
+        outline: "small"
+        keysym: "Up"
+    "↓":
+        outline: "small"
+        keysym: "Down"
+    "←":
+        outline: "small"
+        keysym: "Left"
+    "→":
+        outline: "small"
+        keysym: "Right"
+    Up:
+        label: "↑"
+        outline: "action"
+        keysym: "Up"
+    Left:
+        label: "←"
+        outline: "action"
+        keysym: "Left"
+    Down:
+        label: "↓"
+        outline: "action"
+        keysym: "Down"
+    Right:
+        label: "→"
+        outline: "action"
+        keysym: "Right"
+    Ctrl:
+        modifier: "Control"
+        outline: "small"
+        label: "Ctrl"
+    Alt:
+        modifier: "Alt"
+        outline: "small"
+        label: "Alt"
+    TabSmall:
+        outline: "small"
+        keysym: "Tab"
+        label: "Tab"
diff --git a/squeekboard/data/keyboards/fr+terminal_wide.yaml b/squeekboard/data/keyboards/fr+terminal_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3bebfa0dc6cc3714771d11d548c010707320495b
--- /dev/null
+++ b/squeekboard/data/keyboards/fr+terminal_wide.yaml
@@ -0,0 +1,211 @@
+---
+outlines:
+    default:   { width: 54,   height: 37 }
+    action:    { width: 90,   height: 37 }
+    altline:   { width: 81,   height: 37 }
+    wide:      { width: 90,   height: 37 }
+    spaceline: { width: 225,  height: 37 }
+    special:   { width: 54,   height: 37 }
+    small:     { width: 67.4, height: 22 }
+
+views:
+    base:
+        - "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
+        - "a z e r t y u i o p"
+        - "q s d f g h j k l m"
+        - "Shift_L   w x c v b n   period BackSpace"
+        - "show_numbers preferences      space        show_actions Return"
+    upper:
+        - "EscSmall TabSmall Ctrl Alt PgUp PgDn Home End"
+        - "A Z E R T Y U I O P"
+        - "Q S D F G H J K L M"
+        - "Shift_L   W X C V B N   period BackSpace"
+        - "show_numbers preferences      space        show_actions Return"
+    numbers:
+        - "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "* # $ / & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° @ { }"
+        - "show_numbers_from_symbols   \\ % < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+    actions:
+        - "EscSmall TabSmall Ctrl Alt PgUp PgDn Home End"
+        - "F1  F2  F3  F4  F5  F6"
+        - "F7  F8  F9  F10 F11 F12"
+        - "Esc Tab Pause Insert Up Del"
+        - "show_letters Menu Break Left Down Right"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "Ï„=\\"
+    show_actions:
+        action:
+            set_view: "actions"
+        outline: "altline"
+        label: ">_"
+    period:
+        outline: "altline"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    F1:
+        outline: "action"
+        keysym: "F1"
+    F2:
+        outline: "action"
+        keysym: "F2"
+    F3:
+        outline: "action"
+        keysym: "F3"
+    F4:
+        outline: "action"
+        keysym: "F4"
+    F5:
+        outline: "action"
+        keysym: "F5"
+    F6:
+        outline: "action"
+        keysym: "F6"
+    F7:
+        outline: "action"
+        keysym: "F7"
+    F8:
+        outline: "action"
+        keysym: "F8"
+    F9:
+        outline: "action"
+        keysym: "F9"
+    F10:
+        outline: "action"
+        keysym: "F10"
+    F11:
+        outline: "action"
+        keysym: "F11"
+    F12:
+        outline: "action"
+        keysym: "F12"
+    Esc:
+        outline: "action"
+        keysym: "Escape"
+    EscSmall:
+        outline: "small"
+        keysym: "Escape"
+        label: "Esc"
+    Tab:
+        outline: "action"
+        keysym: "Tab"
+    TabSmall:
+        outline: "small"
+        keysym: "Tab"
+        label: "Tab"
+    Del:
+        outline: "action"
+        keysym: "Delete"
+    Insert:
+        outline: "action"
+        keysym: "Insert"
+    Menu:
+        outline: "action"
+        keysym: "Menu"
+    Pause:
+        outline: "action"
+        keysym: "Pause"
+    Menu:
+        outline: "action"
+        keysym: "Menu"
+    Break:
+        outline: "action"
+        keysym: "Break"
+    Home:
+        outline: "small"
+        keysym: "Home"
+    End:
+        outline: "small"
+        keysym: "End"
+    PgUp:
+        outline: "small"
+        keysym: "Page_Up"
+    PgDn:
+        outline: "small"
+        keysym: "Page_Down"
+    "↑":
+        outline: "small"
+        keysym: "Up"
+    "↓":
+        outline: "small"
+        keysym: "Down"
+    "←":
+        outline: "small"
+        keysym: "Left"
+    "→":
+        outline: "small"
+        keysym: "Right"
+    Up:
+        label: "↑"
+        outline: "action"
+        keysym: "Up"
+    Left:
+        label: "←"
+        outline: "action"
+        keysym: "Left"
+    Down:
+        label: "↓"
+        outline: "action"
+        keysym: "Down"
+    Right:
+        label: "→"
+        outline: "action"
+        keysym: "Right"
+    Ctrl:
+        modifier: "Control"
+        outline: "small"
+        label: "Ctrl"
+    Alt:
+        modifier: "Alt"
+        outline: "small"
+        label: "Alt"
diff --git a/squeekboard/data/keyboards/fr.yaml b/squeekboard/data/keyboards/fr.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ab43116fc575c8cd7cfd359f2239c6cbfe710fc3
--- /dev/null
+++ b/squeekboard/data/keyboards/fr.yaml
@@ -0,0 +1,89 @@
+---
+outlines:
+    default:   { width: 35.33, height: 52 }
+    altline:   { width: 52.67, height: 52 }
+    wide:      { width: 59,    height: 52 }
+    spaceline: { width: 140,   height: 52 }
+    special:   { width: 44,    height: 52 }
+
+views:
+    base:
+        - "a z e r t y u i o p"
+        - "q s d f g h j k l m"
+        - "Shift_L   w x c v b n .   BackSpace"
+        - "show_numbers preferences         space        show_eschars Return"
+    upper:
+        - "A Z E R T Y U I O P"
+        - "Q S D F G H J K L M"
+        - "Shift_L   W X C V B N ,  BackSpace"
+        - "show_numbers preferences         space        show_eschars Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+    eschars:
+        - "à â ç é è ê î ô ù û"
+        - "À Â Ç É È Ê Î Ô Ù Û"
+        - "show_numbers_from_symbols  æ œ ä ë ï ö ü  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "âÂ"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    "\"":
+        keysym: "quotedbl"
diff --git a/squeekboard/data/keyboards/fr_wide+terminal.yaml b/squeekboard/data/keyboards/fr_wide+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f8858954fc7d7c94f9f82260b29f9405f9ea9eec
--- /dev/null
+++ b/squeekboard/data/keyboards/fr_wide+terminal.yaml
@@ -0,0 +1,89 @@
+---
+outlines:
+    default:   { width: 54,  height: 42 }
+    altline:   { width: 81,  height: 42 }
+    wide:      { width: 100, height: 42 }
+    spaceline: { width: 205, height: 42 }
+    special:   { width: 54,  height: 42 }
+
+views:
+    base:
+        - "a z e r t y u i o p"
+        - "q s d f g h j k l m"
+        - "Shift_L   w x c v b n .   BackSpace"
+        - "show_numbers preferences         space        show_eschars Return"
+    upper:
+        - "A Z E R T Y U I O P"
+        - "Q S D F G H J K L M"
+        - "Shift_L   W X C V B N ,  BackSpace"
+        - "show_numbers preferences         space        show_eschars Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+    eschars:
+        - "à â ç é è ê î ô ù û"
+        - "À Â Ç É È Ê Î Ô Ù Û"
+        - "show_numbers_from_symbols  æ œ ä ë ï ö ü  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "âÂ"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    "\"":
+        keysym: "quotedbl"
diff --git a/squeekboard/data/keyboards/fr_wide.yaml b/squeekboard/data/keyboards/fr_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f8858954fc7d7c94f9f82260b29f9405f9ea9eec
--- /dev/null
+++ b/squeekboard/data/keyboards/fr_wide.yaml
@@ -0,0 +1,89 @@
+---
+outlines:
+    default:   { width: 54,  height: 42 }
+    altline:   { width: 81,  height: 42 }
+    wide:      { width: 100, height: 42 }
+    spaceline: { width: 205, height: 42 }
+    special:   { width: 54,  height: 42 }
+
+views:
+    base:
+        - "a z e r t y u i o p"
+        - "q s d f g h j k l m"
+        - "Shift_L   w x c v b n .   BackSpace"
+        - "show_numbers preferences         space        show_eschars Return"
+    upper:
+        - "A Z E R T Y U I O P"
+        - "Q S D F G H J K L M"
+        - "Shift_L   W X C V B N ,  BackSpace"
+        - "show_numbers preferences         space        show_eschars Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+    eschars:
+        - "à â ç é è ê î ô ù û"
+        - "À Â Ç É È Ê Î Ô Ù Û"
+        - "show_numbers_from_symbols  æ œ ä ë ï ö ü  BackSpace"
+        - "show_letters preferences         space        show_eschars Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "âÂ"
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    "\"":
+        keysym: "quotedbl"
diff --git a/squeekboard/data/keyboards/gr+terminal.yaml b/squeekboard/data/keyboards/gr+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6279f75be87873d8bde0712194fa2d2e43844f4e
--- /dev/null
+++ b/squeekboard/data/keyboards/gr+terminal.yaml
@@ -0,0 +1,191 @@
+# Greek layout created by Antonis Tsolomitis
+# University of the Aegean, Department of Mathematics, atsol@aegean.gr
+# Sep 2019
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 48.39024, height: 52 }
+    wide: { width: 62, height: 52 }
+    outline7: { width: 88.97561, height: 52 }
+    spaceline: { width: 150.5853, height: 52 }
+
+views:
+    base:
+        - "; ς ε ρ τ υ θ ι ο π !"
+        - "α σ δ φ γ η ξ κ λ show_accented"
+        - "Shift_L ζ χ ψ ω β ν μ , BackSpace"
+        - "show_numbers preferences space period Return"
+    upper:
+        - ": EuroSign Ε Ρ Τ Υ Θ Ι Ο Π"
+        - "Α Σ Δ Φ Γ Η Ξ Κ Λ show_accented"
+        - "Shift_L Ζ Χ Ψ Ω Β Ν Μ · BackSpace"
+        - "show_numbers preferences space « » Return"
+    accented:
+        - "ά έ ή ί ό ύ ώ ϊ ϋ ΐ"
+        - "ΰ Ά Έ Ή Ί Ό Ύ Ώ Ϊ show_base"
+        - "Ϋ Ϗ ϐ ϑ ϕ ϖ ϗ – — BackSpace"
+        - "show_numbers preferences space quoteleft quoteright Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "at numbersign dollar percent ampersand minus underscore plus parenleft parenright"
+        - "show_symbols comma quotedbl quoteright colon semicolon exclam question BackSpace"
+        - "show_letters preferences space period Return"
+    symbols:
+        - "asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
+        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright"
+        - "show_numbers backslash slash less greater equal bracketleft bracketright  BackSpace"
+        - "show_letters preferences space period Return"
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "altline"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "ΑΒΓ"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_accented:
+        action:
+            locking:
+                lock_view: "accented"
+                unlock_view: "base"
+        outline: "altline"
+        label: "άΐ"
+    show_base:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "αι"
+    period:
+        outline: "altline"
+        text: "."
+    space:
+        outline: spaceline
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    aring:
+        text: "Ã¥"
+    Aring:
+        text: "Ã…"
+    oslash:
+        text: "ø"
+    Oslash:
+        text: "Ø"
+    ae:
+        text: "æ"
+    AE:
+        text: "Æ"
+    asterisk:
+        text: "*"
+    asciitilde:
+        text: "~"
+    quoteleft:
+        text: "`"
+    bar:
+        text: "|"
+    U00B7:
+        text: "·"
+    squareroot:
+        text: "√"
+    Greek_pi:
+        text: "Ï€"
+    division:
+        text: "÷"
+    multiply:
+        text: "×"
+    paragraph:
+        text: "¶"
+    Greek_tau:
+        text: "Ï„"
+    copyright:
+        text: "©"
+    numbersign:
+        text: "#"
+    U00AE:
+        text: "®"
+    at:
+        text: "@"
+    dollar:
+        text: "$"
+    U00A3:
+        text: "£"
+    percent:
+        text: "%"
+    EuroSign:
+        text: "€"
+    ampersand:
+        text: "&"
+    U00A5:
+        text: "Â¥"
+    minus:
+        text: "-"
+    asciicircum:
+        text: "^"
+    underscore:
+        text: "_"
+    degree:
+        text: "°"
+    plus:
+        text: "+"
+    equal:
+        text: "="
+    parenleft:
+        text: "("
+    parenright:
+        text: ")"
+    braceleft:
+        text: "{"
+    braceright:
+        text: "}"
+    comma:
+        text: ","
+    backslash:
+        text: "\\"
+    slash:
+        text: "/"
+    quotedbl:
+        text: "\""
+    quoteright:
+        text: "'"
+    less:
+        text: "<"
+    greater:
+        text: ">"
+    colon:
+        text: ":"
+    semicolon:
+        text: ";"
+    exclam:
+        text: "!"
+    question:
+        text: "?"
+    bracketleft:
+        text: "["
+    bracketright:
+        text: "]"
+
diff --git a/squeekboard/data/keyboards/gr.yaml b/squeekboard/data/keyboards/gr.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6279f75be87873d8bde0712194fa2d2e43844f4e
--- /dev/null
+++ b/squeekboard/data/keyboards/gr.yaml
@@ -0,0 +1,191 @@
+# Greek layout created by Antonis Tsolomitis
+# University of the Aegean, Department of Mathematics, atsol@aegean.gr
+# Sep 2019
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 48.39024, height: 52 }
+    wide: { width: 62, height: 52 }
+    outline7: { width: 88.97561, height: 52 }
+    spaceline: { width: 150.5853, height: 52 }
+
+views:
+    base:
+        - "; ς ε ρ τ υ θ ι ο π !"
+        - "α σ δ φ γ η ξ κ λ show_accented"
+        - "Shift_L ζ χ ψ ω β ν μ , BackSpace"
+        - "show_numbers preferences space period Return"
+    upper:
+        - ": EuroSign Ε Ρ Τ Υ Θ Ι Ο Π"
+        - "Α Σ Δ Φ Γ Η Ξ Κ Λ show_accented"
+        - "Shift_L Ζ Χ Ψ Ω Β Ν Μ · BackSpace"
+        - "show_numbers preferences space « » Return"
+    accented:
+        - "ά έ ή ί ό ύ ώ ϊ ϋ ΐ"
+        - "ΰ Ά Έ Ή Ί Ό Ύ Ώ Ϊ show_base"
+        - "Ϋ Ϗ ϐ ϑ ϕ ϖ ϗ – — BackSpace"
+        - "show_numbers preferences space quoteleft quoteright Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "at numbersign dollar percent ampersand minus underscore plus parenleft parenright"
+        - "show_symbols comma quotedbl quoteright colon semicolon exclam question BackSpace"
+        - "show_letters preferences space period Return"
+    symbols:
+        - "asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
+        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright"
+        - "show_numbers backslash slash less greater equal bracketleft bracketright  BackSpace"
+        - "show_letters preferences space period Return"
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "altline"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "ΑΒΓ"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_accented:
+        action:
+            locking:
+                lock_view: "accented"
+                unlock_view: "base"
+        outline: "altline"
+        label: "άΐ"
+    show_base:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "αι"
+    period:
+        outline: "altline"
+        text: "."
+    space:
+        outline: spaceline
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    aring:
+        text: "Ã¥"
+    Aring:
+        text: "Ã…"
+    oslash:
+        text: "ø"
+    Oslash:
+        text: "Ø"
+    ae:
+        text: "æ"
+    AE:
+        text: "Æ"
+    asterisk:
+        text: "*"
+    asciitilde:
+        text: "~"
+    quoteleft:
+        text: "`"
+    bar:
+        text: "|"
+    U00B7:
+        text: "·"
+    squareroot:
+        text: "√"
+    Greek_pi:
+        text: "Ï€"
+    division:
+        text: "÷"
+    multiply:
+        text: "×"
+    paragraph:
+        text: "¶"
+    Greek_tau:
+        text: "Ï„"
+    copyright:
+        text: "©"
+    numbersign:
+        text: "#"
+    U00AE:
+        text: "®"
+    at:
+        text: "@"
+    dollar:
+        text: "$"
+    U00A3:
+        text: "£"
+    percent:
+        text: "%"
+    EuroSign:
+        text: "€"
+    ampersand:
+        text: "&"
+    U00A5:
+        text: "Â¥"
+    minus:
+        text: "-"
+    asciicircum:
+        text: "^"
+    underscore:
+        text: "_"
+    degree:
+        text: "°"
+    plus:
+        text: "+"
+    equal:
+        text: "="
+    parenleft:
+        text: "("
+    parenright:
+        text: ")"
+    braceleft:
+        text: "{"
+    braceright:
+        text: "}"
+    comma:
+        text: ","
+    backslash:
+        text: "\\"
+    slash:
+        text: "/"
+    quotedbl:
+        text: "\""
+    quoteright:
+        text: "'"
+    less:
+        text: "<"
+    greater:
+        text: ">"
+    colon:
+        text: ":"
+    semicolon:
+        text: ";"
+    exclam:
+        text: "!"
+    question:
+        text: "?"
+    bracketleft:
+        text: "["
+    bracketright:
+        text: "]"
+
diff --git a/squeekboard/data/keyboards/il+terminal.yaml b/squeekboard/data/keyboards/il+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..68b34daac656b236fe5b8c5f7d03243820877294
--- /dev/null
+++ b/squeekboard/data/keyboards/il+terminal.yaml
@@ -0,0 +1,79 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "ך ף ק ר א ט ו ן ם פ"
+        - "ץ ת ש ד ג כ ע י ח ל"
+        - "Shift_L   ז ס ב ה נ מ צ  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+
diff --git a/squeekboard/data/keyboards/il.yaml b/squeekboard/data/keyboards/il.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..68b34daac656b236fe5b8c5f7d03243820877294
--- /dev/null
+++ b/squeekboard/data/keyboards/il.yaml
@@ -0,0 +1,79 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "ך ף ק ר א ט ו ן ם פ"
+        - "ץ ת ש ד ג כ ע י ח ל"
+        - "Shift_L   ז ס ב ה נ מ צ  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+
diff --git a/squeekboard/data/keyboards/ir.yaml b/squeekboard/data/keyboards/ir.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..310e07891f95d3948e68a97d69736f7b1ad5ff89
--- /dev/null
+++ b/squeekboard/data/keyboards/ir.yaml
@@ -0,0 +1,78 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "ض ص ق ف غ ع ه خ ح ج"
+        - "ش س ی ب ل ا ت ن م ک"
+        - "Shift_L   ظ ط ز ر ذ د و  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    upper:
+        - "پ { } [ ] ّ   َ   ِ  ُ چ"
+        - "ؤ‌ ئ ي‌ إ أ آ ة‌ » « گ"
+        - "Shift_L  Ùƒ Ù“ Ú˜ Ø¡ > < ØŸ  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    numbers:
+        - "Û± Û² Û³ Û´ Ûµ Û¶ Û· Û¸ Û¹ Û°"
+        - "@ # ï·¼ % & - _ + ( )"
+        - "show_symbols   , \" ' colon Ø› ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/ir_wide+terminal.yaml b/squeekboard/data/keyboards/ir_wide+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e9df053299eb7d16dd5edcfd128c4e9f545b4de6
--- /dev/null
+++ b/squeekboard/data/keyboards/ir_wide+terminal.yaml
@@ -0,0 +1,78 @@
+---
+outlines:
+    default: { width: 54, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 108, height: 42 }
+    spaceline: { width: 216, height: 42 }
+    special: { width: 54, height: 42 }
+
+views:
+    base:
+        - "ض ص ق ف غ ع ه خ ح ج"
+        - "ش س ی ب ل ا ت ن م ک"
+        - "Shift_L   ظ ط ز ر ذ د و  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    upper:
+        - "پ { } [ ] ّ   َ   ِ  ُ چ"
+        - "ؤ‌ ئ ي‌ إ أ آ ة‌ » « گ"
+        - "Shift_L  Ùƒ Ù“ Ú˜ Ø¡ > < ØŸ  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    numbers:
+        - "Û± Û² Û³ Û´ Ûµ Û¶ Û· Û¸ Û¹ Û°"
+        - "@ # ï·¼ % & - _ + ( )"
+        - "show_symbols   , \" ' colon Ø› ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/ir_wide.yaml b/squeekboard/data/keyboards/ir_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e9df053299eb7d16dd5edcfd128c4e9f545b4de6
--- /dev/null
+++ b/squeekboard/data/keyboards/ir_wide.yaml
@@ -0,0 +1,78 @@
+---
+outlines:
+    default: { width: 54, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 108, height: 42 }
+    spaceline: { width: 216, height: 42 }
+    special: { width: 54, height: 42 }
+
+views:
+    base:
+        - "ض ص ق ف غ ع ه خ ح ج"
+        - "ش س ی ب ل ا ت ن م ک"
+        - "Shift_L   ظ ط ز ر ذ د و  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    upper:
+        - "پ { } [ ] ّ   َ   ِ  ُ چ"
+        - "ؤ‌ ئ ي‌ إ أ آ ة‌ » « گ"
+        - "Shift_L  Ùƒ Ù“ Ú˜ Ø¡ > < ØŸ  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    numbers:
+        - "Û± Û² Û³ Û´ Ûµ Û¶ Û· Û¸ Û¹ Û°"
+        - "@ # ï·¼ % & - _ + ( )"
+        - "show_symbols   , \" ' colon Ø› ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/it+fur.yaml b/squeekboard/data/keyboards/it+fur.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..cc34b1d5fc10f3edec579230de4b0cc16c2c789c
--- /dev/null
+++ b/squeekboard/data/keyboards/it+fur.yaml
@@ -0,0 +1,89 @@
+# Friulian layout created by Fabio Tomat
+# 14 october 2020
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 99.67, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers show_eschars preferences         space        , . Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers show_eschars preferences         space        “ ” Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   , \" ' : ; ! =  BackSpace"
+        - "show_letters show_eschars preferences         space        ? . Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers   \\ / < > = [ ]  BackSpace"
+        - "show_letters show_eschars preferences         space        ? . Return"
+    eschars:
+        - "â ê î ô û Â Ê Î Ô Û"
+        - "à è ì ò ù À È Ì Ò Ù"
+        - "show_numbers   ç Ç ᶜ ᵐ ⁿ ᵉ ᵗ  BackSpace"
+        - "show_letters show_eschars preferences         space        á¶  . Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            locking:
+                lock_view: "eschars"
+                unlock_view: "base"
+        outline: "altline"
+        label: "àê"
+    space:
+        outline: "spaceline"
+        label: " "
+        text: " "
+    Return:
+        outline: "altline"
+        icon: "key-enter"
+        keysym: "Return"
+
diff --git a/squeekboard/data/keyboards/it.yaml b/squeekboard/data/keyboards/it.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..09093fdfdd03189cdb38ed3f192e419f065076c0
--- /dev/null
+++ b/squeekboard/data/keyboards/it.yaml
@@ -0,0 +1,87 @@
+# Italian layout created by Antonio Pandolfo
+# 03 october 2019
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 99.67, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers show_eschars preferences         space        , . Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers show_eschars preferences         space        ? . Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # € % & - _ + ( )"
+        - "show_symbols   , \" ' : ; ! ?  BackSpace"
+        - "show_letters show_eschars preferences         space        ? . Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ $ ¥ ^ ° * { }"
+        - "show_numbers   \\ / < > = [ ]  BackSpace"
+        - "show_letters show_eschars preferences         space        ? . Return"
+    eschars:
+        - "á é í ó ú Á É Í Ó Ú"
+        - "à è ì ò « » ù ! { }"
+        - "show_numbers   \\ / < > = [ ]  BackSpace"
+        - "show_letters show_eschars preferences         space        « » Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "default"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: "abc"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_eschars:
+        action:
+            set_view: "eschars"
+        outline: "altline"
+        label: "àè"
+    space:
+        outline: "spaceline"
+        label: " "
+        text: " "
+    Return:
+        outline: "altline"
+        icon: "key-enter"
+        keysym: "Return"
+
diff --git a/squeekboard/data/keyboards/jp+kana.yaml b/squeekboard/data/keyboards/jp+kana.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b129d3d745b2e1180aee24abf5df4eba90f52c7b
--- /dev/null
+++ b/squeekboard/data/keyboards/jp+kana.yaml
@@ -0,0 +1,525 @@
+# Maintained by: Mark Müller <markmueller86@gmail.com>
+---
+outlines:
+    default: { width: 62, height: 52 }
+    default-wide: { width: 62, height: 52 }
+    altline: { width: 62, height: 52 }
+    wide: { width: 62, height: 52 }
+    special: { width: 62, height: 52 }
+
+views:
+    base: # hiragana
+        - "preferences _a ka sa BackSpace"
+        - "Left ta na ha Right"
+        - "カタカナ ma ya ra space"
+        - "switch2roman symbols wa punct Return"
+    _a:
+        - "preferences dummykey _a dummykey BackSpace"
+        - "あ い う え お"
+        - "ぁ ぃ ぅ ぇ ぉ" # 2 code points each
+        - "dummykey dummykey ã‚” dummykey dummykey"
+    ka:
+        - "preferences dummykey ka dummykey BackSpace"
+        - "か き く け こ"
+        - "が ぎ ぐ げ ご"
+        - "ã‚• dummykey dummykey ã‚– dummykey"
+    sa:
+        - "preferences dummykey sa dummykey BackSpace"
+        - "さ し す せ そ"
+        - "ざ じ ず ぜ ぞ"
+    ta:
+        - "preferences dummykey ta dummykey BackSpace"
+        - "た ち つ て と"
+        - "だ ぢ づ で ど"
+        - "dummykey dummykey っ dummykey dummykey"
+    na:
+        - "preferences dummykey na dummykey BackSpace"
+        - "な に ぬ ね の"
+    ha:
+        - "preferences dummykey ha dummykey BackSpace"
+        - "は ひ ふ へ ほ"
+        - "ば び ぶ べ ぼ"
+        - "ぱ ぴ ぷ ぺ ぽ"
+    ma:
+        - "preferences dummykey ma dummykey BackSpace"
+        - "ま み む め も"
+    ya:
+        - "preferences dummykey ya dummykey BackSpace"
+        - "や dummykey ゆ dummykey よ"
+        - "ゃ dummykey ゅ dummykey ょ"
+    ra:
+        - "preferences dummykey ra dummykey BackSpace"
+        - "ら り る れ ろ"
+    wa:
+        - "preferences dummykey wa dummykey BackSpace"
+        - "わ ゐ dummykey ゑ を"
+        - "ゎ dummykey ん dummykey dummykey"
+    symbols:
+        - "preferences dummykey symbols dummykey BackSpace"
+        - "「 」 ( ) §"
+        - "【 】 < > ="
+        - "+ * & % $ "
+    punct:
+        - "preferences dummykey punct dummykey BackSpace"
+        - "。 、 ? ! ー"
+
+        - ": ; ・ 〜 …"
+        - "♪ ” ’ ゙ ゚"
+        
+#a 	あア 	かカ 	さサ 	たタ 	なナ 	はハ 	まマ 	やヤ 	らラ 	わワ
+#i 	いイ 	きキ 	しシ 	ちチ 	にニ 	ひヒ 	みミ 	※      りリ 	ゐヰ
+#u 	うウ 	くク 	すス 	つツ 	ぬヌ 	ふフ 	むム 	ゆユ 	るル 	※
+#e 	えエ 	けケ 	せセ 	てテ 	ねネ 	へヘ 	めメ 	※      れレ 	ゑヱ
+#o 	おオ 	こコ 	そソ 	とト 	のノ 	ほホ 	もモ 	よヨ 	ろロ 	をヲ
+
+#      g       z       d       b       p      n
+#a 	が ガ 	ざ ザ 	だ ダ 	ば バ 	ぱ パ   ん ン
+#i 	ぎ ギ 	じ ジ 	ぢ ヂ 	び ビ 	ぴ ピ 
+#u 	ぐ グ 	ず ズ 	づ ヅ 	ぶ ブ 	ぷ プ 
+#e 	げ ゲ 	ぜ ゼ 	で デ 	べ ベ 	ぺ ペ 
+#o 	ご ゴ 	ぞ ゾ 	ど ド 	ぼ ボ 	ぽ ポ 
+
+    カタカナ: # katakana
+        - "preferences _A KA SA BackSpace"
+        - "Left TA NA HA Right"
+        - "ひらがな MA YA RA space"
+        - "switch2roman SYMBOLS WA PUNCT Return"
+    _A:
+        - "preferences DUMMYKEY _A DUMMYKEY BackSpace"
+        - "ア イ ウ エ オ"
+        - "ã‚¡ ã‚£ ã‚¥ ã‚§ ã‚©"
+        - "DUMMYKEY DUMMYKEY ヴ DUMMYKEY DUMMYKEY"
+    KA:
+        - "preferences DUMMYKEY KA DUMMYKEY BackSpace"
+        - "カ キ ク ケ コ"
+        - "ガ ギ グ ゲ ゴ"
+        - "ヵ DUMMYKEY ㇰ ヶ DUMMYKEY"
+    SA:
+        - "preferences DUMMYKEY SA DUMMYKEY BackSpace"
+        - "サ シ ス セ ソ"
+        - "ザ ジ ズ ゼ ゾ"
+        - "DUMMYKEY ㇱ ㇲ DUMMYKEY DUMMYKEY"
+    TA:
+        - "preferences DUMMYKEY TA DUMMYKEY BackSpace"
+        - "タ チ ツ テ ト"
+        - "ダ ヂ ヅ デ ド"
+        - "DUMMYKEY DUMMYKEY ッ DUMMYKEY ㇳ"
+    NA: 
+        - "preferences DUMMYKEY NA DUMMYKEY BackSpace"
+        - "ナ ニ ヌ ネ ノ"
+        - "DUMMYKEY DUMMYKEY ㇴ DUMMYKEY DUMMYKEY"
+    HA:
+        - "preferences DUMMYKEY HA DUMMYKEY BackSpace"
+        - "ハ ヒ フ ヘ ホ"
+        - "バ ビ ブ ベ ボ"
+        - "パ ピ プ ペ ポ"
+    MA:
+        - "preferences DUMMYKEY MA DUMMYKEY BackSpace"
+        - "マ ミ ム メ モ"
+        - "DUMMYKEY DUMMYKEY ㇺ DUMMYKEY DUMMYKEY"
+    YA:
+        - "preferences DUMMYKEY YA DUMMYKEY BackSpace"
+        - "ヤ DUMMYKEY ユ DUMMYKEY ヨ"
+        - "ャ DUMMYKEY ュ DUMMYKEY ョ"
+    RA:
+        - "preferences DUMMYKEY RA DUMMYKEY BackSpace"
+        - "ラ リ ル レ ロ"
+        - "ㇻ ㇼ ㇽ ㇾ ㇿ"
+    WA:
+        - "preferences DUMMYKEY WA DUMMYKEY BackSpace"
+        - "ワ ヰ DUMMYKEY ヱ ヲ"
+        - "ヮ ヸ ン ヹ ヺ"
+    # numbers view
+    numbers:
+        - "preferences 1 2 3 BackSpace"
+        - "Left 4 5 6 Right"
+        - "roman 7 8 9 space"
+        - "switch2kana * 0 # Return"
+    # Roman alphabet view
+    roman:
+        - "preferences RSYM1 ABC DEF BackSpace"
+        - "Left GHI JKL MNO Right"
+        - "ひらがな PQRS TUV WXYZ space"
+        - "switch2num RSYM2 RSYM3 RSYM4 Return"
+    RSYM1:
+        - "preferences dummykey RSYM1 dummykey BackSpace"
+        - "@ # $ § :"
+        - "| € ¥ £ 1"
+    ABC:
+        - "preferences dummykey ABC dummykey BackSpace"
+        - "A B C Ä ç"
+        - "a b c ä 2"
+    DEF:
+        - "preferences dummykey DEF dummykey BackSpace"
+        - "D E F dummykey"
+        - "d e f 3"
+    GHI:
+        - "preferences dummykey GHI dummykey BackSpace"
+        - "G H I dummykey"
+        - "g h i 4"
+    JKL:
+        - "preferences dummykey JKL dummykey BackSpace"
+        - "J K L dummykey"
+        - "j k l 5"
+    MNO:
+        - "preferences dummykey MNO dummykey BackSpace"
+        - "M N O Ö dummykey"
+        - "m n o ö 6"
+    PQRS:
+        - "preferences dummykey PQRS dummykey BackSpace"
+        - "P Q R S ß"
+        - "p q r s 7"
+    TUV:
+        - "preferences dummykey TUV dummykey BackSpace"
+        - "T U V Ü dummykey"
+        - "t u v ü 8"
+    WXYZ:
+        - "preferences dummykey WXYZ dummykey BackSpace"
+        - "W X Y Z dummykey"
+        - "w x y z 9"
+    RSYM2:
+        - "preferences dummykey RSYM2 dummykey BackSpace"
+        - "( ) ' \" ~"
+        - "[ ] { } _"
+    RSYM3:
+        - "preferences dummykey RSYM3 dummykey BackSpace"
+        - "+ - * / ="
+        - "< > ^ ° 0"
+    RSYM4:
+        - "preferences dummykey RSYM4 dummykey BackSpace"
+        - ", . ? ! ;"
+        - "\\ ´ ` · ¶" 
+
+buttons:
+    # following 4 buttons use the corresponding xkb name as keysym
+    BackSpace:
+        outline: "wide"
+        icon: "edit-clear-symbolic"
+        action: erase
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    Left:
+        outline: "wide"
+        label: "←"
+        keysym: "Left"
+    Right:
+        outline: "wide"
+        label: "→"
+        keysym: "Right"
+    # special button "preferences" is handled in the code
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    # space button using text tag for ideographic space
+    space:
+        outline: "default-wide"
+        label: "␣"
+        text: " "
+    # switch to number view
+    numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    # switch to latin characters
+    roman:
+        action:
+            set_view: "roman"
+        outline: "wide"
+        label: "ᴀʙᴄ"
+    # toggle button with 3 different states
+    switch2roman: # switch from kana to latin characters view
+        action:
+            set_view: "roman"
+        outline: "wide"
+        label: "あᴀ₁"
+    switch2num: # switch from latin characters to numbers view
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "ぁA₁"
+    switch2kana: # switch from numbers to hiragana view
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ぁᴀ1"
+    # Buttons for katakana and symbols
+    ひらがな:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "あさ"
+    _a:
+        action:
+            locking:
+                lock_view: "_a"
+                unlock_view: "base"
+        outline: "altline"
+        label: "あ"
+    ka:
+        action:
+            locking:
+                lock_view: "ka"
+                unlock_view: "base"
+        outline: "altline"
+        label: "か"
+    sa:
+        action:
+            locking:
+                lock_view: "sa"
+                unlock_view: "base"
+        outline: "altline"
+        label: "さ"
+    ta:
+        action:
+            locking:
+                lock_view: "ta"
+                unlock_view: "base"
+        outline: "altline"
+        label: "た"
+    na:
+        action:
+            locking:
+                lock_view: "na"
+                unlock_view: "base"
+        outline: "altline"
+        label: "な"
+    ha:
+        action:
+            locking:
+                lock_view: "ha"
+                unlock_view: "base"
+        outline: "altline"
+        label: "は"
+    ma:
+        action:
+            locking:
+                lock_view: "ma"
+                unlock_view: "base"
+        outline: "altline"
+        label: "ま"
+    ya:
+        action:
+            locking:
+                lock_view: "ya"
+                unlock_view: "base"
+        outline: "altline"
+        label: "ã‚„"
+    ra:
+        action:
+            locking:
+                lock_view: "ra"
+                unlock_view: "base"
+        outline: "altline"
+        label: "ら"
+    wa:
+        action:
+            locking:
+                lock_view: "wa"
+                unlock_view: "base"
+        outline: "altline"
+        label: "わ"
+    dummykey:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: ""
+    # buttons available on different views like symbols and punct should go
+    # back to their corresponding view
+    symbols:
+        action:
+            locking:
+                lock_view: "symbols"
+                unlock_view: "base"
+        outline: "altline"
+        label: "()"
+    punct:
+        action:
+            locking:
+                lock_view: "punct"
+                unlock_view: "base"
+        outline: "altline"
+        label: "。"
+    # Buttons for katakana and symbols
+    カタカナ:
+        action:
+            set_view: "カタカナ"
+        outline: "wide"
+        label: "アサ"
+    _A:
+        action:
+            locking:
+                lock_view: "_A"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ã‚¢"
+    KA:
+        action:
+            locking:
+                lock_view: "KA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ã‚«"
+    SA:
+        action:
+            locking:
+                lock_view: "SA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "サ"
+    TA:
+        action:
+            locking:
+                lock_view: "TA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ã‚¿"
+    NA:
+        action:
+            locking:
+                lock_view: "NA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ナ"
+    HA:
+        action:
+            locking:
+                lock_view: "HA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ハ"
+    MA:
+        action:
+            locking:
+                lock_view: "MA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "マ"
+    YA:
+        action:
+            locking:
+                lock_view: "YA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ヤ"
+    RA:
+        action:
+            locking:
+                lock_view: "RA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ラ"
+    WA:
+        action:
+            locking:
+                lock_view: "WA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ワ"
+    DUMMYKEY:
+        action:
+            set_view: "カタカナ"
+        outline: "altline"
+        label: ""
+    SYMBOLS:
+        action:
+            locking:
+                lock_view: "symbols"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "()"
+    PUNCT:
+        action:
+            locking:
+                lock_view: "punct"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "。"
+    # Buttons for Latin charachters
+    RSYM1:
+        action:
+            locking:
+                lock_view: "RSYM1"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "@#"
+    ABC:
+        action:
+            locking:
+                lock_view: "ABC"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ᴀʙᴄ"
+    DEF:
+        action:
+            locking:
+                lock_view: "DEF"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ᴅᴇꜰ"
+    GHI:
+        action:
+            locking:
+                lock_view: "GHI"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ɢʜɪ"
+    JKL:
+        action:
+            locking:
+                lock_view: "JKL"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "á´Šá´‹ÊŸ"
+    MNO:
+        action:
+            locking:
+                lock_view: "MNO"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ᴍɴᴏ"
+    PQRS:
+        action:
+            locking:
+                lock_view: "PQRS"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ᴘǫʀs"
+    TUV:
+        action:
+            locking:
+                lock_view: "TUV"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ᴛᴜᴠ"
+    WXYZ:
+        action:
+            locking:
+                lock_view: "WXYZ"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ᴡxʏᴢ"
+    RSYM2:
+        action:
+            locking:
+                lock_view: "RSYM2"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "()"
+    RSYM3:
+        action:
+            locking:
+                lock_view: "RSYM3"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "+-"
+    RSYM4:
+        action:
+            locking:
+                lock_view: "RSYM4"
+                unlock_view: "roman"
+        outline: "altline"
+        label: ",.?"
diff --git a/squeekboard/data/keyboards/jp+kana_wide.yaml b/squeekboard/data/keyboards/jp+kana_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8f0c536e5381aafce58de34714ef460e03b6c847
--- /dev/null
+++ b/squeekboard/data/keyboards/jp+kana_wide.yaml
@@ -0,0 +1,525 @@
+# Maintained by: Mark Müller <markmueller86@gmail.com>
+---
+outlines:
+    default: { width: 62, height: 42 }
+    default-wide: { width: 62, height: 42 }
+    altline: { width: 62, height: 42 }
+    wide: { width: 62, height: 42 }
+    special: { width: 62, height: 42 }
+
+views:
+    base: # hiragana
+        - "preferences _a ka sa BackSpace"
+        - "Left ta na ha Right"
+        - "カタカナ ma ya ra space"
+        - "switch2roman symbols wa punct Return"
+    _a:
+        - "preferences dummykey _a dummykey BackSpace"
+        - "あ い う え お"
+        - "ぁ ぃ ぅ ぇ ぉ" # 2 code points each
+        - "dummykey dummykey ã‚” dummykey dummykey"
+    ka:
+        - "preferences dummykey ka dummykey BackSpace"
+        - "か き く け こ"
+        - "が ぎ ぐ げ ご"
+        - "ã‚• dummykey dummykey ã‚– dummykey"
+    sa:
+        - "preferences dummykey sa dummykey BackSpace"
+        - "さ し す せ そ"
+        - "ざ じ ず ぜ ぞ"
+    ta:
+        - "preferences dummykey ta dummykey BackSpace"
+        - "た ち つ て と"
+        - "だ ぢ づ で ど"
+        - "dummykey dummykey っ dummykey dummykey"
+    na:
+        - "preferences dummykey na dummykey BackSpace"
+        - "な に ぬ ね の"
+    ha:
+        - "preferences dummykey ha dummykey BackSpace"
+        - "は ひ ふ へ ほ"
+        - "ば び ぶ べ ぼ"
+        - "ぱ ぴ ぷ ぺ ぽ"
+    ma:
+        - "preferences dummykey ma dummykey BackSpace"
+        - "ま み む め も"
+    ya:
+        - "preferences dummykey ya dummykey BackSpace"
+        - "や dummykey ゆ dummykey よ"
+        - "ゃ dummykey ゅ dummykey ょ"
+    ra:
+        - "preferences dummykey ra dummykey BackSpace"
+        - "ら り る れ ろ"
+    wa:
+        - "preferences dummykey wa dummykey BackSpace"
+        - "わ ゐ dummykey ゑ を"
+        - "ゎ dummykey ん dummykey dummykey"
+    symbols:
+        - "preferences dummykey symbols dummykey BackSpace"
+        - "「 」 ( ) §"
+        - "【 】 < > ="
+        - "+ * & % $ "
+    punct:
+        - "preferences dummykey punct dummykey BackSpace"
+        - "。 、 ? ! ー"
+
+        - ": ; ・ 〜 …"
+        - "♪ ” ’ ゙ ゚"
+        
+#a 	あア 	かカ 	さサ 	たタ 	なナ 	はハ 	まマ 	やヤ 	らラ 	わワ
+#i 	いイ 	きキ 	しシ 	ちチ 	にニ 	ひヒ 	みミ 	※      りリ 	ゐヰ
+#u 	うウ 	くク 	すス 	つツ 	ぬヌ 	ふフ 	むム 	ゆユ 	るル 	※
+#e 	えエ 	けケ 	せセ 	てテ 	ねネ 	へヘ 	めメ 	※      れレ 	ゑヱ
+#o 	おオ 	こコ 	そソ 	とト 	のノ 	ほホ 	もモ 	よヨ 	ろロ 	をヲ
+
+#      g       z       d       b       p      n
+#a 	が ガ 	ざ ザ 	だ ダ 	ば バ 	ぱ パ   ん ン
+#i 	ぎ ギ 	じ ジ 	ぢ ヂ 	び ビ 	ぴ ピ 
+#u 	ぐ グ 	ず ズ 	づ ヅ 	ぶ ブ 	ぷ プ 
+#e 	げ ゲ 	ぜ ゼ 	で デ 	べ ベ 	ぺ ペ 
+#o 	ご ゴ 	ぞ ゾ 	ど ド 	ぼ ボ 	ぽ ポ 
+
+    カタカナ: # katakana
+        - "preferences _A KA SA BackSpace"
+        - "Left TA NA HA Right"
+        - "ひらがな MA YA RA space"
+        - "switch2roman SYMBOLS WA PUNCT Return"
+    _A:
+        - "preferences DUMMYKEY _A DUMMYKEY BackSpace"
+        - "ア イ ウ エ オ"
+        - "ã‚¡ ã‚£ ã‚¥ ã‚§ ã‚©"
+        - "DUMMYKEY DUMMYKEY ヴ DUMMYKEY DUMMYKEY"
+    KA:
+        - "preferences DUMMYKEY KA DUMMYKEY BackSpace"
+        - "カ キ ク ケ コ"
+        - "ガ ギ グ ゲ ゴ"
+        - "ヵ DUMMYKEY ㇰ ヶ DUMMYKEY"
+    SA:
+        - "preferences DUMMYKEY SA DUMMYKEY BackSpace"
+        - "サ シ ス セ ソ"
+        - "ザ ジ ズ ゼ ゾ"
+        - "DUMMYKEY ㇱ ㇲ DUMMYKEY DUMMYKEY"
+    TA:
+        - "preferences DUMMYKEY TA DUMMYKEY BackSpace"
+        - "タ チ ツ テ ト"
+        - "ダ ヂ ヅ デ ド"
+        - "DUMMYKEY DUMMYKEY ッ DUMMYKEY ㇳ"
+    NA: 
+        - "preferences DUMMYKEY NA DUMMYKEY BackSpace"
+        - "ナ ニ ヌ ネ ノ"
+        - "DUMMYKEY DUMMYKEY ㇴ DUMMYKEY DUMMYKEY"
+    HA:
+        - "preferences DUMMYKEY HA DUMMYKEY BackSpace"
+        - "ハ ヒ フ ヘ ホ"
+        - "バ ビ ブ ベ ボ"
+        - "パ ピ プ ペ ポ"
+    MA:
+        - "preferences DUMMYKEY MA DUMMYKEY BackSpace"
+        - "マ ミ ム メ モ"
+        - "DUMMYKEY DUMMYKEY ㇺ DUMMYKEY DUMMYKEY"
+    YA:
+        - "preferences DUMMYKEY YA DUMMYKEY BackSpace"
+        - "ヤ DUMMYKEY ユ DUMMYKEY ヨ"
+        - "ャ DUMMYKEY ュ DUMMYKEY ョ"
+    RA:
+        - "preferences DUMMYKEY RA DUMMYKEY BackSpace"
+        - "ラ リ ル レ ロ"
+        - "ㇻ ㇼ ㇽ ㇾ ㇿ"
+    WA:
+        - "preferences DUMMYKEY WA DUMMYKEY BackSpace"
+        - "ワ ヰ DUMMYKEY ヱ ヲ"
+        - "ヮ ヸ ン ヹ ヺ"
+    # numbers view
+    numbers:
+        - "preferences 1 2 3 BackSpace"
+        - "Left 4 5 6 Right"
+        - "roman 7 8 9 space"
+        - "switch2kana * 0 # Return"
+    # Roman alphabet view
+    roman:
+        - "preferences RSYM1 ABC DEF BackSpace"
+        - "Left GHI JKL MNO Right"
+        - "ひらがな PQRS TUV WXYZ space"
+        - "switch2num RSYM2 RSYM3 RSYM4 Return"
+    RSYM1:
+        - "preferences dummykey RSYM1 dummykey BackSpace"
+        - "@ # $ § :"
+        - "| € ¥ £ 1"
+    ABC:
+        - "preferences dummykey ABC dummykey BackSpace"
+        - "A B C Ä ç"
+        - "a b c ä 2"
+    DEF:
+        - "preferences dummykey DEF dummykey BackSpace"
+        - "D E F dummykey"
+        - "d e f 3"
+    GHI:
+        - "preferences dummykey GHI dummykey BackSpace"
+        - "G H I dummykey"
+        - "g h i 4"
+    JKL:
+        - "preferences dummykey JKL dummykey BackSpace"
+        - "J K L dummykey"
+        - "j k l 5"
+    MNO:
+        - "preferences dummykey MNO dummykey BackSpace"
+        - "M N O Ö dummykey"
+        - "m n o ö 6"
+    PQRS:
+        - "preferences dummykey PQRS dummykey BackSpace"
+        - "P Q R S ß"
+        - "p q r s 7"
+    TUV:
+        - "preferences dummykey TUV dummykey BackSpace"
+        - "T U V Ü dummykey"
+        - "t u v ü 8"
+    WXYZ:
+        - "preferences dummykey WXYZ dummykey BackSpace"
+        - "W X Y Z dummykey"
+        - "w x y z 9"
+    RSYM2:
+        - "preferences dummykey RSYM2 dummykey BackSpace"
+        - "( ) ' \" ~"
+        - "[ ] { } _"
+    RSYM3:
+        - "preferences dummykey RSYM3 dummykey BackSpace"
+        - "+ - * / ="
+        - "< > ^ ° 0"
+    RSYM4:
+        - "preferences dummykey RSYM4 dummykey BackSpace"
+        - ", . ? ! ;"
+        - "\\ ´ ` · ¶" 
+
+buttons:
+    # following 4 buttons use the corresponding xkb name as keysym
+    BackSpace:
+        outline: "wide"
+        icon: "edit-clear-symbolic"
+        action: erase
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    Left:
+        outline: "wide"
+        label: "←"
+        keysym: "Left"
+    Right:
+        outline: "wide"
+        label: "→"
+        keysym: "Right"
+    # special button "preferences" is handled in the code
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    # space button using text tag for ideographic space
+    space:
+        outline: "default-wide"
+        label: "␣"
+        text: " "
+    # switch to number view
+    numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    # switch to latin characters
+    roman:
+        action:
+            set_view: "roman"
+        outline: "wide"
+        label: "ᴀʙᴄ"
+    # toggle button with 3 different states
+    switch2roman: # switch from kana to latin characters view
+        action:
+            set_view: "roman"
+        outline: "wide"
+        label: "あᴀ₁"
+    switch2num: # switch from latin characters to numbers view
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "ぁA₁"
+    switch2kana: # switch from numbers to hiragana view
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ぁᴀ1"
+    # Buttons for katakana and symbols
+    ひらがな:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "あさ"
+    _a:
+        action:
+            locking:
+                lock_view: "_a"
+                unlock_view: "base"
+        outline: "altline"
+        label: "あ"
+    ka:
+        action:
+            locking:
+                lock_view: "ka"
+                unlock_view: "base"
+        outline: "altline"
+        label: "か"
+    sa:
+        action:
+            locking:
+                lock_view: "sa"
+                unlock_view: "base"
+        outline: "altline"
+        label: "さ"
+    ta:
+        action:
+            locking:
+                lock_view: "ta"
+                unlock_view: "base"
+        outline: "altline"
+        label: "た"
+    na:
+        action:
+            locking:
+                lock_view: "na"
+                unlock_view: "base"
+        outline: "altline"
+        label: "な"
+    ha:
+        action:
+            locking:
+                lock_view: "ha"
+                unlock_view: "base"
+        outline: "altline"
+        label: "は"
+    ma:
+        action:
+            locking:
+                lock_view: "ma"
+                unlock_view: "base"
+        outline: "altline"
+        label: "ま"
+    ya:
+        action:
+            locking:
+                lock_view: "ya"
+                unlock_view: "base"
+        outline: "altline"
+        label: "ã‚„"
+    ra:
+        action:
+            locking:
+                lock_view: "ra"
+                unlock_view: "base"
+        outline: "altline"
+        label: "ら"
+    wa:
+        action:
+            locking:
+                lock_view: "wa"
+                unlock_view: "base"
+        outline: "altline"
+        label: "わ"
+    dummykey:
+        action:
+            set_view: "base"
+        outline: "altline"
+        label: ""
+    # buttons available on different views like symbols and punct should go
+    # back to their corresponding view
+    symbols:
+        action:
+            locking:
+                lock_view: "symbols"
+                unlock_view: "base"
+        outline: "altline"
+        label: "()"
+    punct:
+        action:
+            locking:
+                lock_view: "punct"
+                unlock_view: "base"
+        outline: "altline"
+        label: "。"
+    # Buttons for katakana and symbols
+    カタカナ:
+        action:
+            set_view: "カタカナ"
+        outline: "wide"
+        label: "アサ"
+    _A:
+        action:
+            locking:
+                lock_view: "_A"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ã‚¢"
+    KA:
+        action:
+            locking:
+                lock_view: "KA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ã‚«"
+    SA:
+        action:
+            locking:
+                lock_view: "SA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "サ"
+    TA:
+        action:
+            locking:
+                lock_view: "TA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ã‚¿"
+    NA:
+        action:
+            locking:
+                lock_view: "NA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ナ"
+    HA:
+        action:
+            locking:
+                lock_view: "HA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ハ"
+    MA:
+        action:
+            locking:
+                lock_view: "MA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "マ"
+    YA:
+        action:
+            locking:
+                lock_view: "YA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ヤ"
+    RA:
+        action:
+            locking:
+                lock_view: "RA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ラ"
+    WA:
+        action:
+            locking:
+                lock_view: "WA"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "ワ"
+    DUMMYKEY:
+        action:
+            set_view: "カタカナ"
+        outline: "altline"
+        label: ""
+    SYMBOLS:
+        action:
+            locking:
+                lock_view: "symbols"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "()"
+    PUNCT:
+        action:
+            locking:
+                lock_view: "punct"
+                unlock_view: "カタカナ"
+        outline: "altline"
+        label: "。"
+    # Buttons for Latin charachters
+    RSYM1:
+        action:
+            locking:
+                lock_view: "RSYM1"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "@#"
+    ABC:
+        action:
+            locking:
+                lock_view: "ABC"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ᴀʙᴄ"
+    DEF:
+        action:
+            locking:
+                lock_view: "DEF"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ᴅᴇꜰ"
+    GHI:
+        action:
+            locking:
+                lock_view: "GHI"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ɢʜɪ"
+    JKL:
+        action:
+            locking:
+                lock_view: "JKL"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "á´Šá´‹ÊŸ"
+    MNO:
+        action:
+            locking:
+                lock_view: "MNO"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ᴍɴᴏ"
+    PQRS:
+        action:
+            locking:
+                lock_view: "PQRS"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ᴘǫʀs"
+    TUV:
+        action:
+            locking:
+                lock_view: "TUV"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ᴛᴜᴠ"
+    WXYZ:
+        action:
+            locking:
+                lock_view: "WXYZ"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "ᴡxʏᴢ"
+    RSYM2:
+        action:
+            locking:
+                lock_view: "RSYM2"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "()"
+    RSYM3:
+        action:
+            locking:
+                lock_view: "RSYM3"
+                unlock_view: "roman"
+        outline: "altline"
+        label: "+-"
+    RSYM4:
+        action:
+            locking:
+                lock_view: "RSYM4"
+                unlock_view: "roman"
+        outline: "altline"
+        label: ",.?"
diff --git a/squeekboard/data/keyboards/no+terminal.yaml b/squeekboard/data/keyboards/no+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0248356bd510c8ece23888b8dc7d726bff36fd9d
--- /dev/null
+++ b/squeekboard/data/keyboards/no+terminal.yaml
@@ -0,0 +1,104 @@
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 48.39024, height: 52 }
+    wide: { width: 64, height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p å"
+        - "a s d f g h j k l ø æ"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    upper:
+        - "Q W E R T Y U I O P Ã…"
+        - "A S D F G H J K L Ø Æ"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' : ; ! ?  BackSpace"
+        - "show_letters preferences         space        .    Return"
+    symbols:
+        - "~ ` | U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
+        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        .    Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: altline
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: "special"
+    space:
+        outline: spaceline
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    U00B7:
+        text: "·"
+    squareroot:
+        text: "√"
+    Greek_pi:
+        text: "Ï€"
+    division:
+        text: "÷"
+    multiply:
+        text: "×"
+    paragraph:
+        text: "¶"
+    Greek_tau:
+        text: "Ï„"
+    copyright:
+        text: "©"
+    U00AE:
+        text: "®"
+    U00A3:
+        text: "£"
+    EuroSign:
+        text: "€"
+    U00A5:
+        text: "Â¥"
+    asciicircum:
+        text: "^"
+    degree:
+        text: "°"
+
diff --git a/squeekboard/data/keyboards/no.yaml b/squeekboard/data/keyboards/no.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0248356bd510c8ece23888b8dc7d726bff36fd9d
--- /dev/null
+++ b/squeekboard/data/keyboards/no.yaml
@@ -0,0 +1,104 @@
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 48.39024, height: 52 }
+    wide: { width: 64, height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p å"
+        - "a s d f g h j k l ø æ"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    upper:
+        - "Q W E R T Y U I O P Ã…"
+        - "A S D F G H J K L Ø Æ"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' : ; ! ?  BackSpace"
+        - "show_letters preferences         space        .    Return"
+    symbols:
+        - "~ ` | U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
+        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        .    Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: altline
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: "special"
+    space:
+        outline: spaceline
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    U00B7:
+        text: "·"
+    squareroot:
+        text: "√"
+    Greek_pi:
+        text: "Ï€"
+    division:
+        text: "÷"
+    multiply:
+        text: "×"
+    paragraph:
+        text: "¶"
+    Greek_tau:
+        text: "Ï„"
+    copyright:
+        text: "©"
+    U00AE:
+        text: "®"
+    U00A3:
+        text: "£"
+    EuroSign:
+        text: "€"
+    U00A5:
+        text: "Â¥"
+    asciicircum:
+        text: "^"
+    degree:
+        text: "°"
+
diff --git a/squeekboard/data/keyboards/number+terminal.yaml b/squeekboard/data/keyboards/number+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8b42ebb2fa2bc97c975d1505153c0ba02087b71e
--- /dev/null
+++ b/squeekboard/data/keyboards/number+terminal.yaml
@@ -0,0 +1,39 @@
+---
+outlines:
+    default: { width: 37.46341, height: 52 }
+    altline: { width: 48.39024, height: 52 }
+    outline7: { width: 88.97561, height: 52 }
+    spaceline: { width: 120.5853, height: 52 }
+
+views:
+    base:
+        - "1 2 3 parenleft parenright"
+        - "4 5 6 numbersign asterisk"
+        - "7 8 9 plus minus"
+        - "BackSpace 0 space Return"
+
+buttons:
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    space:
+        outline: spaceline
+        text: " "
+    Return:
+        outline: outline7
+        icon: "key-enter"
+        keysym: "Return"
+    asterisk:
+        text: "*"
+    numbersign:
+        text: "#"
+    minus:
+        text: "-"
+    plus:
+        text: "+"
+    parenleft:
+        text: "("
+    parenright:
+        text: ")"
+
diff --git a/squeekboard/data/keyboards/number.yaml b/squeekboard/data/keyboards/number.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8b42ebb2fa2bc97c975d1505153c0ba02087b71e
--- /dev/null
+++ b/squeekboard/data/keyboards/number.yaml
@@ -0,0 +1,39 @@
+---
+outlines:
+    default: { width: 37.46341, height: 52 }
+    altline: { width: 48.39024, height: 52 }
+    outline7: { width: 88.97561, height: 52 }
+    spaceline: { width: 120.5853, height: 52 }
+
+views:
+    base:
+        - "1 2 3 parenleft parenright"
+        - "4 5 6 numbersign asterisk"
+        - "7 8 9 plus minus"
+        - "BackSpace 0 space Return"
+
+buttons:
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    space:
+        outline: spaceline
+        text: " "
+    Return:
+        outline: outline7
+        icon: "key-enter"
+        keysym: "Return"
+    asterisk:
+        text: "*"
+    numbersign:
+        text: "#"
+    minus:
+        text: "-"
+    plus:
+        text: "+"
+    parenleft:
+        text: "("
+    parenright:
+        text: ")"
+
diff --git a/squeekboard/data/keyboards/pl.yaml b/squeekboard/data/keyboards/pl.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f6c454111e491200dab6cbd6aee062b41b55011e
--- /dev/null
+++ b/squeekboard/data/keyboards/pl.yaml
@@ -0,0 +1,110 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 59, height: 52 }
+    spaceline: { width: 140, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        show_accents Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        show_upper_accents Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+    accents:
+        - "q w ę r t y u i ó p"
+        - "Ä… Å› d f g h j k Å‚"
+        - "accents_show_upper   ż ź ć v b ń m  BackSpace"
+        - "show_numbers preferences         space        show_accents Return"
+    upper_accents:
+        - "Q W Ę R T Y U I Ó P"
+        - "Ą Ś D F G H J K Ł"
+        - "accents_show_upper   Ż Ź Ć V B Ń M  BackSpace"
+        - "show_numbers preferences         space        show_upper_accents Return"
+
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    accents_show_upper:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "accents"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        keysym: "BackSpace"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_accents:
+        action:
+            locking:
+                lock_view: "accents"
+                unlock_view: "base"
+        outline: "altline"
+        label: "Ä…Ä™"
+    show_upper_accents:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "upper"
+        outline: "altline"
+        label: "ĄĘ"
+    period:
+        outline: "altline"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/pl_wide+terminal.yaml b/squeekboard/data/keyboards/pl_wide+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..71029a4645b2869fb4512c49495ce4414739d8a0
--- /dev/null
+++ b/squeekboard/data/keyboards/pl_wide+terminal.yaml
@@ -0,0 +1,102 @@
+---
+outlines:
+    default: { width: 54, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 100, height: 42 }
+    spaceline: { width: 206, height: 42 }
+    special: { width: 54, height: 42 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        show_accents Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        show_upper_accents Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+    accents:
+        - "q w ę r t y u i ó p"
+        - "Ä… Å› d f g h j k Å‚"
+        - "Shift_L   ż ź ć v b ń m  BackSpace"
+        - "show_numbers preferences         space        show_accents Return"
+    upper_accents:
+        - "Q W Ę R T Y U I Ó P"
+        - "Ą Ś D F G H J K Ł"
+        - "Shift_L   Ż Ź Ć V B Ń M  BackSpace"
+        - "show_numbers preferences         space        show_upper_accents Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        keysym: "BackSpace"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_accents:
+        action:
+            locking:
+                lock_view: "accents"
+                unlock_view: "base"
+        outline: "altline"
+        label: "Ä…Ä™"
+    show_upper_accents:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "upper"
+        outline: "altline"
+        label: "ĄĘ"
+    period:
+        outline: "altline"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/pl_wide.yaml b/squeekboard/data/keyboards/pl_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..71029a4645b2869fb4512c49495ce4414739d8a0
--- /dev/null
+++ b/squeekboard/data/keyboards/pl_wide.yaml
@@ -0,0 +1,102 @@
+---
+outlines:
+    default: { width: 54, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 100, height: 42 }
+    spaceline: { width: 206, height: 42 }
+    special: { width: 54, height: 42 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        show_accents Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        show_upper_accents Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+    accents:
+        - "q w ę r t y u i ó p"
+        - "Ä… Å› d f g h j k Å‚"
+        - "Shift_L   ż ź ć v b ń m  BackSpace"
+        - "show_numbers preferences         space        show_accents Return"
+    upper_accents:
+        - "Q W Ę R T Y U I Ó P"
+        - "Ą Ś D F G H J K Ł"
+        - "Shift_L   Ż Ź Ć V B Ń M  BackSpace"
+        - "show_numbers preferences         space        show_upper_accents Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        keysym: "BackSpace"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    show_accents:
+        action:
+            locking:
+                lock_view: "accents"
+                unlock_view: "base"
+        outline: "altline"
+        label: "Ä…Ä™"
+    show_upper_accents:
+        action:
+            locking:
+                lock_view: "upper_accents"
+                unlock_view: "upper"
+        outline: "altline"
+        label: "ĄĘ"
+    period:
+        outline: "altline"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/ru+terminal.yaml b/squeekboard/data/keyboards/ru+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..599292ae8d00fa22edabe255c012b5ae7a04e166
--- /dev/null
+++ b/squeekboard/data/keyboards/ru+terminal.yaml
@@ -0,0 +1,94 @@
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 32, height: 52 }
+    wide: { width: 57, height: 52 }
+    narrow: { width: 26, height: 52 }
+    spaceline: { width: 107, height: 52 }
+    fill: { width: 159, height: 52 }
+    special: { width: 42, height: 52 }
+
+views:
+    base:
+        - "й ц у к е н г ш щ з х"
+        - "ф ы в а п р о л д ж э"
+        - "Shift_L  я ч с м и т ь б ю  BackSpace"
+        - "show_numbers preferences    Ñ‘  space  ÑŠ  period Return"
+    upper:
+        - "Й Ц У К Е Н Г Ш Щ З Х"
+        - "Ф Ы В А П Р О Л Д Ж Э"
+        - "Shift_L   Я Ч С М И Т Ь Б Ю  BackSpace"
+        - "show_numbers preferences    Ё  space  Ъ  comma Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space_fill   period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space_fill   period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "АБВ"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "wide"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    comma:
+        outline: "special"
+        text: ","
+    space:
+        outline: "spaceline"
+        text: " "
+    space_fill:
+        outline: "fill"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    Ñ‘:
+        outline: "narrow"
+    Ё:
+        outline: "narrow"
+    ÑŠ:
+        outline: "narrow"
+    Ъ:
+        outline: "narrow"
diff --git a/squeekboard/data/keyboards/ru.yaml b/squeekboard/data/keyboards/ru.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..599292ae8d00fa22edabe255c012b5ae7a04e166
--- /dev/null
+++ b/squeekboard/data/keyboards/ru.yaml
@@ -0,0 +1,94 @@
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 32, height: 52 }
+    wide: { width: 57, height: 52 }
+    narrow: { width: 26, height: 52 }
+    spaceline: { width: 107, height: 52 }
+    fill: { width: 159, height: 52 }
+    special: { width: 42, height: 52 }
+
+views:
+    base:
+        - "й ц у к е н г ш щ з х"
+        - "ф ы в а п р о л д ж э"
+        - "Shift_L  я ч с м и т ь б ю  BackSpace"
+        - "show_numbers preferences    Ñ‘  space  ÑŠ  period Return"
+    upper:
+        - "Й Ц У К Е Н Г Ш Щ З Х"
+        - "Ф Ы В А П Р О Л Д Ж Э"
+        - "Shift_L   Я Ч С М И Т Ь Б Ю  BackSpace"
+        - "show_numbers preferences    Ё  space  Ъ  comma Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space_fill   period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space_fill   period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "АБВ"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "wide"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    comma:
+        outline: "special"
+        text: ","
+    space:
+        outline: "spaceline"
+        text: " "
+    space_fill:
+        outline: "fill"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    Ñ‘:
+        outline: "narrow"
+    Ё:
+        outline: "narrow"
+    ÑŠ:
+        outline: "narrow"
+    Ъ:
+        outline: "narrow"
diff --git a/squeekboard/data/keyboards/se+terminal.yaml b/squeekboard/data/keyboards/se+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a4637d9e0813b758ac3ae6beaa5ac3ec6eaa66cf
--- /dev/null
+++ b/squeekboard/data/keyboards/se+terminal.yaml
@@ -0,0 +1,164 @@
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 48.39024, height: 52 }
+    wide: { width: 64,  height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+ 
+
+views:
+    base:
+        - "q w e r t y u i o p å"
+        - "a s d f g h j k l ö ä"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    upper:
+        - "Q W E R T Y U I O P Ã…"
+        - "A S D F G H J K L Ö Ä"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "at numbersign dollar percent ampersand minus underscore plus parenleft parenright"
+        - "show_symbols   comma quotedbl quoteright colon semicolon exclam question  BackSpace"
+        - "show_letters preferences         space        .    Return"
+    symbols:
+        - "asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
+        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright"
+        - "show_numbers_from_symbols   backslash slash less greater equal bracketleft bracketright  BackSpace"
+        - "show_letters preferences         space        .    Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: altline
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        outline: "wide"
+        action:
+            set_view: "numbers"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: altline
+        label: "123"
+    show_letters:
+        outline: "wide"
+        action:
+            set_view: "base"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: "special"
+    space:
+        outline: spaceline
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    asterisk:
+        text: "*"
+    asciitilde:
+        text: "~"
+    quoteleft:
+        text: "`"
+    bar:
+        text: "|"
+    U00B7:
+        text: "·"
+    squareroot:
+        text: "√"
+    Greek_pi:
+        text: "Ï€"
+    division:
+        text: "÷"
+    multiply:
+        text: "×"
+    paragraph:
+        text: "¶"
+    Greek_tau:
+        text: "Ï„"
+    copyright:
+        text: "©"
+    numbersign:
+        text: "#"
+    U00AE:
+        text: "®"
+    at:
+        text: "@"
+    dollar:
+        text: "$"
+    U00A3:
+        text: "£"
+    percent:
+        text: "%"
+    EuroSign:
+        text: "€"
+    ampersand:
+        text: "&"
+    U00A5:
+        text: "Â¥"
+    minus:
+        text: "-"
+    asciicircum:
+        text: "^"
+    underscore:
+        text: "_"
+    degree:
+        text: "°"
+    plus:
+        text: "+"
+    equal:
+        text: "="
+    parenleft:
+        text: "("
+    parenright:
+        text: ")"
+    braceleft:
+        text: "{"
+    braceright:
+        text: "}"
+    comma:
+        text: ","
+    backslash:
+        text: "\\"
+    slash:
+        text: "/"
+    quotedbl:
+        text: "\""
+    quoteright:
+        text: "'"
+    less:
+        text: "<"
+    greater:
+        text: ">"
+    colon:
+        text: ":"
+    semicolon:
+        text: ";"
+    exclam:
+        text: "!"
+    question:
+        text: "?"
+    bracketleft:
+        text: "["
+    bracketright:
+        text: "]"
diff --git a/squeekboard/data/keyboards/se.yaml b/squeekboard/data/keyboards/se.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a4637d9e0813b758ac3ae6beaa5ac3ec6eaa66cf
--- /dev/null
+++ b/squeekboard/data/keyboards/se.yaml
@@ -0,0 +1,164 @@
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 48.39024, height: 52 }
+    wide: { width: 64,  height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+ 
+
+views:
+    base:
+        - "q w e r t y u i o p å"
+        - "a s d f g h j k l ö ä"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    upper:
+        - "Q W E R T Y U I O P Ã…"
+        - "A S D F G H J K L Ö Ä"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        .    Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "at numbersign dollar percent ampersand minus underscore plus parenleft parenright"
+        - "show_symbols   comma quotedbl quoteright colon semicolon exclam question  BackSpace"
+        - "show_letters preferences         space        .    Return"
+    symbols:
+        - "asciitilde quoteleft bar U00B7 squareroot Greek_pi Greek_tau division multiply paragraph"
+        - "copyright U00AE U00A3 EuroSign U00A5 asciicircum degree asterisk braceleft braceright"
+        - "show_numbers_from_symbols   backslash slash less greater equal bracketleft bracketright  BackSpace"
+        - "show_letters preferences         space        .    Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: altline
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        outline: "wide"
+        action:
+            set_view: "numbers"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: altline
+        label: "123"
+    show_letters:
+        outline: "wide"
+        action:
+            set_view: "base"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: "special"
+    space:
+        outline: spaceline
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    asterisk:
+        text: "*"
+    asciitilde:
+        text: "~"
+    quoteleft:
+        text: "`"
+    bar:
+        text: "|"
+    U00B7:
+        text: "·"
+    squareroot:
+        text: "√"
+    Greek_pi:
+        text: "Ï€"
+    division:
+        text: "÷"
+    multiply:
+        text: "×"
+    paragraph:
+        text: "¶"
+    Greek_tau:
+        text: "Ï„"
+    copyright:
+        text: "©"
+    numbersign:
+        text: "#"
+    U00AE:
+        text: "®"
+    at:
+        text: "@"
+    dollar:
+        text: "$"
+    U00A3:
+        text: "£"
+    percent:
+        text: "%"
+    EuroSign:
+        text: "€"
+    ampersand:
+        text: "&"
+    U00A5:
+        text: "Â¥"
+    minus:
+        text: "-"
+    asciicircum:
+        text: "^"
+    underscore:
+        text: "_"
+    degree:
+        text: "°"
+    plus:
+        text: "+"
+    equal:
+        text: "="
+    parenleft:
+        text: "("
+    parenright:
+        text: ")"
+    braceleft:
+        text: "{"
+    braceright:
+        text: "}"
+    comma:
+        text: ","
+    backslash:
+        text: "\\"
+    slash:
+        text: "/"
+    quotedbl:
+        text: "\""
+    quoteright:
+        text: "'"
+    less:
+        text: "<"
+    greater:
+        text: ">"
+    colon:
+        text: ":"
+    semicolon:
+        text: ";"
+    exclam:
+        text: "!"
+    question:
+        text: "?"
+    bracketleft:
+        text: "["
+    bracketright:
+        text: "]"
diff --git a/squeekboard/data/keyboards/terminal.yaml b/squeekboard/data/keyboards/terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0b241dede0cbd620abdbb311b02ec6da6fbd002c
--- /dev/null
+++ b/squeekboard/data/keyboards/terminal.yaml
@@ -0,0 +1,204 @@
+---
+outlines:
+    default: { width: 35.33, height: 46 }
+    action:  { width: 59,    height: 46 }
+    altline: { width: 52.67, height: 46 }
+    wide: { width: 59, height: 46 }
+    spaceline: { width: 140, height: 46 }
+    special: { width: 44, height: 46 }
+    small: { width: 59, height: 22 }
+
+views:
+    base:
+        - "Ctrl Alt ↑ ↓ ← →"
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences      space        show_actions Return"
+    upper:
+        - "Ctrl Alt PgUp PgDn Home End"
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences      space        show_actions Return"
+    numbers:
+        - "Ctrl Alt ↑ ↓ ← →"
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "* # $ / & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "Ctrl Alt ↑ ↓ ← →"
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° @ { }"
+        - "show_numbers_from_symbols   \\ % < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+    actions:
+        - "Ctrl Alt PgUp PgDn Home End"
+        - "F1  F2  F3  F4  F5  F6"
+        - "F7  F8  F9  F10 F11 F12"
+        - "Esc Tab Pause Insert Up Del"
+        - "show_letters Menu Break Left Down Right"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "Ï„=\\"
+    show_actions:
+        action:
+            set_view: "actions"
+        outline: "altline"
+        label: ">_"
+    period:
+        outline: "altline"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    F1:
+        outline: "action"
+        keysym: "F1"
+    F2:
+        outline: "action"
+        keysym: "F2"
+    F3:
+        outline: "action"
+        keysym: "F3"
+    F4:
+        outline: "action"
+        keysym: "F4"
+    F5:
+        outline: "action"
+        keysym: "F5"
+    F6:
+        outline: "action"
+        keysym: "F6"
+    F7:
+        outline: "action"
+        keysym: "F7"
+    F8:
+        outline: "action"
+        keysym: "F8"
+    F9:
+        outline: "action"
+        keysym: "F9"
+    F10:
+        outline: "action"
+        keysym: "F10"
+    F11:
+        outline: "action"
+        keysym: "F11"
+    F12:
+        outline: "action"
+        keysym: "F12"
+    Esc:
+        outline: "action"
+        keysym: "Escape"
+    Tab:
+        outline: "action"
+        keysym: "Tab"
+    Del:
+        outline: "action"
+        keysym: "Delete"
+    Insert:
+        outline: "action"
+        keysym: "Insert"
+    Menu:
+        outline: "action"
+        keysym: "Menu"
+    Pause:
+        outline: "action"
+        keysym: "Pause"
+    Menu:
+        outline: "action"
+        keysym: "Menu"
+    Break:
+        outline: "action"
+        keysym: "Break"
+    Home:
+        outline: "small"
+        keysym: "Home"
+    End:
+        outline: "small"
+        keysym: "End"
+    PgUp:
+        outline: "small"
+        keysym: "Page_Up"
+    PgDn:
+        outline: "small"
+        keysym: "Page_Down"
+    "↑":
+        outline: "small"
+        keysym: "Up"
+    "↓":
+        outline: "small"
+        keysym: "Down"
+    "←":
+        outline: "small"
+        keysym: "Left"
+    "→":
+        outline: "small"
+        keysym: "Right"
+    Up:
+        label: "↑"
+        outline: "action"
+        keysym: "Up"
+    Left:
+        label: "←"
+        outline: "action"
+        keysym: "Left"
+    Down:
+        label: "↓"
+        outline: "action"
+        keysym: "Down"
+    Right:
+        label: "→"
+        outline: "action"
+        keysym: "Right"
+    Ctrl:
+        modifier: "Control"
+        outline: "small"
+        label: "Ctrl"
+    Alt:
+        modifier: "Alt"
+        outline: "small"
+        label: "Alt"
+
diff --git a/squeekboard/data/keyboards/terminal_wide.yaml b/squeekboard/data/keyboards/terminal_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..fab1abe016c5b4c9580549c4bed9a10186e54536
--- /dev/null
+++ b/squeekboard/data/keyboards/terminal_wide.yaml
@@ -0,0 +1,211 @@
+---
+outlines:
+    default:   { width: 54,   height: 37 }
+    action:    { width: 90,   height: 37 }
+    altline:   { width: 81,   height: 37 }
+    wide:      { width: 90,   height: 37 }
+    spaceline: { width: 225,  height: 37 }
+    special:   { width: 54,   height: 37 }
+    small:     { width: 67.4, height: 22 }
+
+views:
+    base:
+        - "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences      space        show_actions Return"
+    upper:
+        - "EscSmall TabSmall Ctrl Alt PgUp PgDn Home End"
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences      space        show_actions Return"
+    numbers:
+        - "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "* # $ / & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° @ { }"
+        - "show_numbers_from_symbols   \\ % < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+    actions:
+        - "EscSmall TabSmall Ctrl Alt PgUp PgDn Home End"
+        - "F1  F2  F3  F4  F5  F6"
+        - "F7  F8  F9  F10 F11 F12"
+        - "Esc Tab Pause Insert Up Del"
+        - "show_letters Menu Break Left Down Right"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "Ï„=\\"
+    show_actions:
+        action:
+            set_view: "actions"
+        outline: "altline"
+        label: ">_"
+    period:
+        outline: "altline"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    F1:
+        outline: "action"
+        keysym: "F1"
+    F2:
+        outline: "action"
+        keysym: "F2"
+    F3:
+        outline: "action"
+        keysym: "F3"
+    F4:
+        outline: "action"
+        keysym: "F4"
+    F5:
+        outline: "action"
+        keysym: "F5"
+    F6:
+        outline: "action"
+        keysym: "F6"
+    F7:
+        outline: "action"
+        keysym: "F7"
+    F8:
+        outline: "action"
+        keysym: "F8"
+    F9:
+        outline: "action"
+        keysym: "F9"
+    F10:
+        outline: "action"
+        keysym: "F10"
+    F11:
+        outline: "action"
+        keysym: "F11"
+    F12:
+        outline: "action"
+        keysym: "F12"
+    Esc:
+        outline: "action"
+        keysym: "Escape"
+    EscSmall:
+        outline: "small"
+        keysym: "Escape"
+        label: "Esc"
+    Tab:
+        outline: "action"
+        keysym: "Tab"
+    TabSmall:
+        outline: "small"
+        keysym: "Tab"
+        label: "Tab"
+    Del:
+        outline: "action"
+        keysym: "Delete"
+    Insert:
+        outline: "action"
+        keysym: "Insert"
+    Menu:
+        outline: "action"
+        keysym: "Menu"
+    Pause:
+        outline: "action"
+        keysym: "Pause"
+    Menu:
+        outline: "action"
+        keysym: "Menu"
+    Break:
+        outline: "action"
+        keysym: "Break"
+    Home:
+        outline: "small"
+        keysym: "Home"
+    End:
+        outline: "small"
+        keysym: "End"
+    PgUp:
+        outline: "small"
+        keysym: "Page_Up"
+    PgDn:
+        outline: "small"
+        keysym: "Page_Down"
+    "↑":
+        outline: "small"
+        keysym: "Up"
+    "↓":
+        outline: "small"
+        keysym: "Down"
+    "←":
+        outline: "small"
+        keysym: "Left"
+    "→":
+        outline: "small"
+        keysym: "Right"
+    Up:
+        label: "↑"
+        outline: "action"
+        keysym: "Up"
+    Left:
+        label: "←"
+        outline: "action"
+        keysym: "Left"
+    Down:
+        label: "↓"
+        outline: "action"
+        keysym: "Down"
+    Right:
+        label: "→"
+        outline: "action"
+        keysym: "Right"
+    Ctrl:
+        modifier: "Control"
+        outline: "small"
+        label: "Ctrl"
+    Alt:
+        modifier: "Alt"
+        outline: "small"
+        label: "Alt"
diff --git a/squeekboard/data/keyboards/th.yaml b/squeekboard/data/keyboards/th.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..161fe2735414796fbd50509657b00ac318f39c32
--- /dev/null
+++ b/squeekboard/data/keyboards/th.yaml
@@ -0,0 +1,80 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "ๅ / _ ภ ถ ุ ึ ค ต จ ข ช"
+        - "ๆ ไ ำ พ ะ ั ี ร น ย บ ล"
+        - "ฟ ห ก ด เ ้ ่ า ส ว ง ฃ"
+        - "Shift_L   ผ ป แ อ ิ ื ท ม ใ ฝ   BackSpace"
+        - "show_numbers preferences         space        period Return"
+    upper:
+        - "+ ๑ ๒ ๓ ๔ ู ฿ ๕ ๖ ๗ ๘ ๙"
+        - "๐ \" ฎ ฑ ธ ํ ๊ ณ ฯ ญ ฐ ,"
+        - "ฤ ฆ ฏ โ ฌ ็ ๋ ษ ศ ซ . ฅ"
+        - "Shift_L   ( ) ฉ ฮ ฺ ์ ? ฒ ฬ ฦ  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "กขค"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/th_wide+terminal.yaml b/squeekboard/data/keyboards/th_wide+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..722aef2b319a2013e0ada023409b08d49a4e704a
--- /dev/null
+++ b/squeekboard/data/keyboards/th_wide+terminal.yaml
@@ -0,0 +1,84 @@
+---
+outlines:
+    default: { width: 75, height: 56 }
+    altline: { width: 75, height: 56 }
+    wide: { width: 135, height: 56 }
+    spaceline: { width: 450, height: 56 }
+    spacelinesymbol: { width: 300, height: 56 }
+    special: { width: 90, height: 56 }
+
+views:
+    base:
+        - "ๅ / _ ภ ถ ุ ึ ค ต จ ข ช"
+        - "ๆ ไ ำ พ ะ ั ี ร น ย บ ล"
+        - "ฟ ห ก ด เ ้ ่ า ส ว ง ฃ"
+        - "Shift_L   ผ ป แ อ ิ ื ท ม ใ ฝ   BackSpace"
+        - "show_numbers preferences         space        period Return"
+    upper:
+        - "+ ๑ ๒ ๓ ๔ ู ฿ ๕ ๖ ๗ ๘ ๙"
+        - "๐ \" ฎ ฑ ธ ํ ๊ ณ ฯ ญ ฐ ,"
+        - "ฤ ฆ ฏ โ ฌ ็ ๋ ษ ศ ซ . ฅ"
+        - "Shift_L   ( ) ฉ ฮ ฺ ์ ? ฒ ฬ ฦ  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         spacesymbol        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         spacesymbol        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "กขค"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    spacesymbol:
+        outline: "spacelinesymbol"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/th_wide.yaml b/squeekboard/data/keyboards/th_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..722aef2b319a2013e0ada023409b08d49a4e704a
--- /dev/null
+++ b/squeekboard/data/keyboards/th_wide.yaml
@@ -0,0 +1,84 @@
+---
+outlines:
+    default: { width: 75, height: 56 }
+    altline: { width: 75, height: 56 }
+    wide: { width: 135, height: 56 }
+    spaceline: { width: 450, height: 56 }
+    spacelinesymbol: { width: 300, height: 56 }
+    special: { width: 90, height: 56 }
+
+views:
+    base:
+        - "ๅ / _ ภ ถ ุ ึ ค ต จ ข ช"
+        - "ๆ ไ ำ พ ะ ั ี ร น ย บ ล"
+        - "ฟ ห ก ด เ ้ ่ า ส ว ง ฃ"
+        - "Shift_L   ผ ป แ อ ิ ื ท ม ใ ฝ   BackSpace"
+        - "show_numbers preferences         space        period Return"
+    upper:
+        - "+ ๑ ๒ ๓ ๔ ู ฿ ๕ ๖ ๗ ๘ ๙"
+        - "๐ \" ฎ ฑ ธ ํ ๊ ณ ฯ ญ ฐ ,"
+        - "ฤ ฆ ฏ โ ฌ ็ ๋ ษ ศ ซ . ฅ"
+        - "Shift_L   ( ) ฉ ฮ ฺ ์ ? ฒ ฬ ฦ  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         spacesymbol        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         spacesymbol        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "กขค"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    spacesymbol:
+        outline: "spacelinesymbol"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/ua+terminal.yaml b/squeekboard/data/keyboards/ua+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3e8cfd1b1dd8fe562f3a423bbf25099e7d558a01
--- /dev/null
+++ b/squeekboard/data/keyboards/ua+terminal.yaml
@@ -0,0 +1,94 @@
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 32, height: 52 }
+    wide: { width: 57, height: 52 }
+    narrow: { width: 26, height: 52 }
+    spaceline: { width: 107, height: 52 }
+    fill: { width: 159, height: 52 }
+    special: { width: 42, height: 52 }
+
+views:
+    base:
+        - "й ц у к е н г ш щ з х"
+        - "ф і в а п р о л д ж є"
+        - "Shift_L  я ч с м и т ь б ю  BackSpace"
+        - "show_numbers preferences    Ò‘  space  Ñ—  period Return"
+    upper:
+        - "Й Ц У К Е Н Г Ш Щ З Х"
+        - "Ф І В А П Р О Л Д Ж Є"
+        - "Shift_L   Я Ч С М И Т Ь Б Ю  BackSpace"
+        - "show_numbers preferences    Ґ  space  Ї  comma Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space_fill   period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space_fill   period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "АБВ"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "wide"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    comma:
+        outline: "special"
+        text: ","
+    space:
+        outline: "spaceline"
+        text: " "
+    space_fill:
+        outline: "fill"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    Ò‘:
+        outline: "narrow"
+    Ґ:
+        outline: "narrow"
+    Ñ—:
+        outline: "narrow"
+    Ї:
+        outline: "narrow"
diff --git a/squeekboard/data/keyboards/ua.yaml b/squeekboard/data/keyboards/ua.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3e8cfd1b1dd8fe562f3a423bbf25099e7d558a01
--- /dev/null
+++ b/squeekboard/data/keyboards/ua.yaml
@@ -0,0 +1,94 @@
+---
+outlines:
+    default: { width: 32, height: 52 }
+    altline: { width: 32, height: 52 }
+    wide: { width: 57, height: 52 }
+    narrow: { width: 26, height: 52 }
+    spaceline: { width: 107, height: 52 }
+    fill: { width: 159, height: 52 }
+    special: { width: 42, height: 52 }
+
+views:
+    base:
+        - "й ц у к е н г ш щ з х"
+        - "ф і в а п р о л д ж є"
+        - "Shift_L  я ч с м и т ь б ю  BackSpace"
+        - "show_numbers preferences    Ò‘  space  Ñ—  period Return"
+    upper:
+        - "Й Ц У К Е Н Г Ш Щ З Х"
+        - "Ф І В А П Р О Л Д Ж Є"
+        - "Shift_L   Я Ч С М И Т Ь Б Ю  BackSpace"
+        - "show_numbers preferences    Ґ  space  Ї  comma Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space_fill   period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space_fill   period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "АБВ"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "wide"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    comma:
+        outline: "special"
+        text: ","
+    space:
+        outline: "spaceline"
+        text: " "
+    space_fill:
+        outline: "fill"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+    Ò‘:
+        outline: "narrow"
+    Ґ:
+        outline: "narrow"
+    Ñ—:
+        outline: "narrow"
+    Ї:
+        outline: "narrow"
diff --git a/squeekboard/data/keyboards/us+colemak.yaml b/squeekboard/data/keyboards/us+colemak.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..59d71d96197c0e05b750829587eaf3809cb5d522
--- /dev/null
+++ b/squeekboard/data/keyboards/us+colemak.yaml
@@ -0,0 +1,78 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "q w f p g j l u y"
+        - "a r s t d h n e i o"
+        - "Shift_L   z x c v b k m  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    upper:
+        - "Q W F P G J L U Y"
+        - "A R S T D H N E I O"
+        - "Shift_L   Z X C V B K M  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/us+colemak_wide.yaml b/squeekboard/data/keyboards/us+colemak_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8deb9ce00f054b77edbc7ace79b902831a169d0c
--- /dev/null
+++ b/squeekboard/data/keyboards/us+colemak_wide.yaml
@@ -0,0 +1,78 @@
+---
+outlines:
+    default: { width: 54, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 108, height: 42 }
+    spaceline: { width: 216, height: 42 }
+    special: { width: 54, height: 42 }
+
+views:
+    base:
+        - "q w f p g j l u y"
+        - "a r s t d h n e i o"
+        - "Shift_L   z x c v b k m  BackSpace"
+        - "show_numbers preferences         space        . Return"
+    upper:
+        - "Q W F P G J L U Y"
+        - "A R S T D H N E I O"
+        - "Shift_L   Z X C V B K M  BackSpace"
+        - "show_numbers preferences         space        . Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        . Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        . Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/us+dvorak.yaml b/squeekboard/data/keyboards/us+dvorak.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..bbbf8436352746ea1f8ab5e1b19bff4468f83c24
--- /dev/null
+++ b/squeekboard/data/keyboards/us+dvorak.yaml
@@ -0,0 +1,89 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "Shift_L   p y f g c r l  BackSpace"
+        - "a o e u i d h t n s"
+        - ", q j k x b m w v z"
+        - "show_numbers preferences         space        period Return"
+    upper:
+        - "Shift_L   P Y F G C R L  BackSpace"
+        - "A O E U I D H T N S"
+        - ", Q J K X B M W V Z"
+        - "show_numbers preferences         space        period Return"
+    numbers:
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "* # $ / & - _ + ( )"
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "show_numbers_from_symbols   \\ % < > = [ ]  BackSpace"
+        - "© ® £ € ¥ ^ ° @ { }"
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "show_letters preferences         space        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+
+# The US QWERTY layout has fewer letters on the third row, and so has
+# the shift & backspace keys placed there. In contrast, the US DVORAK
+# layout has fewer letters on the first row, which makes it a good
+# choice for the shift & backspace keys. That leads to what may be,
+# for many people, an unexpected layout in numbers mode: the numerals
+# are on the third row (not the first) so that the backspace key
+# remains in a consistent location regardless of mode, without
+# sacrificing key width. (Once could argue that in numbers mode, the
+# numerals should be closer to the enter key.) As with any keyboard
+# layout, familiarity comes with repeated use.
diff --git a/squeekboard/data/keyboards/us+dvorak_wide.yaml b/squeekboard/data/keyboards/us+dvorak_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..04bbef7eb8e8cfc6045752de737b455ac1b756f9
--- /dev/null
+++ b/squeekboard/data/keyboards/us+dvorak_wide.yaml
@@ -0,0 +1,89 @@
+---
+outlines:
+    default: { width: 54, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 108, height: 42 }
+    spaceline: { width: 216, height: 42 }
+    special: { width: 54, height: 42 }
+
+views:
+    base:
+        - "Shift_L   p y f g c r l  BackSpace"
+        - "a o e u i d h t n s"
+        - ", q j k x b m w v z"
+        - "show_numbers preferences         space        period Return"
+    upper:
+        - "Shift_L   P Y F G C R L  BackSpace"
+        - "A O E U I D H T N S"
+        - ", Q J K X B M W V Z"
+        - "show_numbers preferences         space        period Return"
+    numbers:
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "* # $ / & - _ + ( )"
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "show_numbers_from_symbols   \\ % < > = [ ]  BackSpace"
+        - "© ® £ € ¥ ^ ° @ { }"
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "show_letters preferences         space        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
+
+# The US QWERTY layout has fewer letters on the third row, and so has
+# the shift & backspace keys placed there. In contrast, the US DVORAK
+# layout has fewer letters on the first row, which makes it a good
+# choice for the shift & backspace keys. That leads to what may be,
+# for many people, an unexpected layout in numbers mode: the numerals
+# are on the third row (not the first) so that the backspace key
+# remains in a consistent location regardless of mode, without
+# sacrificing key width. (Once could argue that in numbers mode, the
+# numerals should be closer to the enter key.) As with any keyboard
+# layout, familiarity comes with repeated use.
diff --git a/squeekboard/data/keyboards/us.yaml b/squeekboard/data/keyboards/us.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7a7f4dd6d7a414a0000d293c7847980476db8de2
--- /dev/null
+++ b/squeekboard/data/keyboards/us.yaml
@@ -0,0 +1,78 @@
+---
+outlines:
+    default: { width: 35.33, height: 52 }
+    altline: { width: 52.67, height: 52 }
+    wide: { width: 62, height: 52 }
+    spaceline: { width: 142, height: 52 }
+    special: { width: 44, height: 52 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        period Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        period Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        period Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: erase
+    preferences:
+        action: show_prefs
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    period:
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/us_wide+terminal.yaml b/squeekboard/data/keyboards/us_wide+terminal.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..cf349c00c01f0890e9d071a66cc5a33f88cf4915
--- /dev/null
+++ b/squeekboard/data/keyboards/us_wide+terminal.yaml
@@ -0,0 +1,78 @@
+---
+outlines:
+    default: { width: 54, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 108, height: 42 }
+    spaceline: { width: 216, height: 42 }
+    special: { width: 54, height: 42 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        . Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        . Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        . Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        . Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"
diff --git a/squeekboard/data/keyboards/us_wide.yaml b/squeekboard/data/keyboards/us_wide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..cf349c00c01f0890e9d071a66cc5a33f88cf4915
--- /dev/null
+++ b/squeekboard/data/keyboards/us_wide.yaml
@@ -0,0 +1,78 @@
+---
+outlines:
+    default: { width: 54, height: 42 }
+    altline: { width: 81, height: 42 }
+    wide: { width: 108, height: 42 }
+    spaceline: { width: 216, height: 42 }
+    special: { width: 54, height: 42 }
+
+views:
+    base:
+        - "q w e r t y u i o p"
+        - "a s d f g h j k l"
+        - "Shift_L   z x c v b n m  BackSpace"
+        - "show_numbers preferences         space        . Return"
+    upper:
+        - "Q W E R T Y U I O P"
+        - "A S D F G H J K L"
+        - "Shift_L   Z X C V B N M  BackSpace"
+        - "show_numbers preferences         space        . Return"
+    numbers:
+        - "1 2 3 4 5 6 7 8 9 0"
+        - "@ # $ % & - _ + ( )"
+        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
+        - "show_letters preferences         space        . Return"
+    symbols:
+        - "~ ` | · √ π τ ÷ × ¶"
+        - "© ® £ € ¥ ^ ° * { }"
+        - "show_numbers_from_symbols   \\ / < > = [ ]  BackSpace"
+        - "show_letters preferences         space        . Return"
+
+buttons:
+    Shift_L:
+        action:
+            locking:
+                lock_view: "upper"
+                unlock_view: "base"
+        outline: "altline"
+        icon: "key-shift"
+    BackSpace:
+        outline: "altline"
+        icon: "edit-clear-symbolic"
+        action: "erase"
+    preferences:
+        action: "show_prefs"
+        outline: "special"
+        icon: "keyboard-mode-symbolic"
+    show_numbers:
+        action:
+            set_view: "numbers"
+        outline: "wide"
+        label: "123"
+    show_numbers_from_symbols:
+        action:
+            set_view: "numbers"
+        outline: "altline"
+        label: "123"
+    show_letters:
+        action:
+            set_view: "base"
+        outline: "wide"
+        label: "ABC"
+    show_symbols:
+        action:
+            set_view: "symbols"
+        outline: "altline"
+        label: "*/="
+    ".":
+        outline: "special"
+        text: "."
+    space:
+        outline: "spaceline"
+        text: " "
+    Return:
+        outline: "wide"
+        icon: "key-enter"
+        keysym: "Return"
+    colon:
+        text: ":"