abouttreesummaryrefslogcommitdiff
path: root/srcs/compose
diff options
context:
space:
mode:
authorZitrone2024-10-05 09:06:24 +0000
committerGitHub2024-10-05 11:06:24 +0200
commit6fae23a4327a7144f496c0fe079ad9b40a1313e1 (patch)
tree5f5db2331027bba580f51cf4d11e56eedf24de8d /srcs/compose
parent6e2494ca0bf545a761eaa56bc1d0398875f239d8 (diff)
downloadunexpected-keyboard-6fae23a4327a7144f496c0fe079ad9b40a1313e1.tar.gz
unexpected-keyboard-6fae23a4327a7144f496c0fe079ad9b40a1313e1.zip
compose/accent_*.json: improvements (more accents) (#770)
compose/accent_*.json: improve/complete implementation compose/shift.json: uppercase for superscript letters & characters without preapplied uppercase versions
Diffstat (limited to 'srcs/compose')
-rw-r--r--srcs/compose/accent_aigu.json37
-rw-r--r--srcs/compose/accent_bar.json14
-rw-r--r--srcs/compose/accent_caron.json19
-rw-r--r--srcs/compose/accent_cedille.json6
-rw-r--r--srcs/compose/accent_circonflexe.json23
-rw-r--r--srcs/compose/accent_dot_above.json27
-rw-r--r--srcs/compose/accent_dot_below.json30
-rw-r--r--srcs/compose/accent_double_aigu.json6
-rw-r--r--srcs/compose/accent_grave.json32
-rw-r--r--srcs/compose/accent_macron.json29
-rw-r--r--srcs/compose/accent_ogonek.json8
-rw-r--r--srcs/compose/accent_ring.json9
-rw-r--r--srcs/compose/accent_slash.json6
-rw-r--r--srcs/compose/accent_subscript.json15
-rw-r--r--srcs/compose/accent_superscript.json57
-rw-r--r--srcs/compose/accent_tilde.json10
-rw-r--r--srcs/compose/accent_trema.json48
-rw-r--r--srcs/compose/shift.json31
18 files changed, 381 insertions, 26 deletions
diff --git a/srcs/compose/accent_aigu.json b/srcs/compose/accent_aigu.json
index bfc04b8..f34b90c 100644
--- a/srcs/compose/accent_aigu.json
+++ b/srcs/compose/accent_aigu.json
@@ -1,17 +1,52 @@
{
+ // latin
"a": "á",
"c": "ć",
"e": "é",
+ "g": "ǵ",
"i": "í",
+ "k": "ḱ",
"l": "ĺ",
- "ń": "ń",
+ "m": "ḿ",
+ "n": "ń",
"o": "ó",
+ "p": "ṕ",
"r": "ŕ",
"s": "ś",
"u": "ú",
+ "w": "ẃ",
"y": "ý",
"z": "ź",
+ // extended latin (multiple diacritics)
+ "â": "ấ",
+ "ă": "ắ",
+ "å": "ǻ",
+ "æ": "ǽ",
+ "ç": "ḉ",
+ "ê": "ế",
+ "ē": "ḗ",
+ "ï": "ḯ",
+ "ô": "ố",
+ "ơ": "ớ",
+ "õ": "ṍ",
+ "ō": "ṓ",
+ "ø": "ǿ",
+ "ṡ": "ṥ",
"ü": "ǘ",
+ "ư": "ứ",
+ "ũ": "ṹ",
+ // greek
+ "α": "ά",
+ "ε": "έ",
+ "η": "ή",
+ "ι": "ί",
+ "ο": "ό",
+ "υ": "ύ",
+ // cyrillic
+ "к": "ќ",
+ "г": "ѓ",
+ // combining character
+ "ą": "ą\u0301",
"j": "j\u0301",
"у": "у\u0301",
"е": "е\u0301",
diff --git a/srcs/compose/accent_bar.json b/srcs/compose/accent_bar.json
index 14dc9f6..de3b940 100644
--- a/srcs/compose/accent_bar.json
+++ b/srcs/compose/accent_bar.json
@@ -1,8 +1,12 @@
{
+ // latin
+ "2": "ƻ",
"b": "ƀ",
"c": "ꞓ",
"d": "đ",
+ "f": "ꞙ",
"g": "ǥ",
+ "h": "ħ",
"i": "ɨ",
"j": "ɉ",
"k": "ꝁ",
@@ -14,5 +18,13 @@
"t": "ŧ",
"u": "ʉ",
"y": "ɏ",
- "z": "ƶ"
+ "z": "ƶ",
+ // extended latin
+ "ȷ": "ɟ",
+ // cyrillic
+ "о": "ө",
+ "ӧ": "ӫ",
+ "ү": "ұ",
+ "ь": "ҍ",
+ "х": "ӿ"
}
diff --git a/srcs/compose/accent_caron.json b/srcs/compose/accent_caron.json
index 2e1a953..2684cb3 100644
--- a/srcs/compose/accent_caron.json
+++ b/srcs/compose/accent_caron.json
@@ -1,9 +1,14 @@
{
+ // latin
"a": "ǎ",
"c": "č",
"d": "ď",
"e": "ě",
+ "g": "ǧ",
+ "h": "ȟ",
"i": "ǐ",
+ "j": "ǰ", // no uppercase
+ "k": "ǩ",
"l": "ľ",
"n": "ň",
"o": "ǒ",
@@ -12,5 +17,17 @@
"t": "ť",
"u": "ǔ",
"z": "ž",
- "ü": "ǚ"
+ // extended latin
+ "ṡ": "ṧ",
+ "ü": "ǚ",
+ "ʒ": "ǯ",
+ // combining character
+ "в": "в\u030C",
+ "г": "г\u030C",
+ "ғ": "ғ\u030C",
+ "д": "д\u030C",
+ "з": "з\u030C",
+ "р": "р\u030C",
+ "т": "т\u030C",
+ "х": "х\u030C"
}
diff --git a/srcs/compose/accent_cedille.json b/srcs/compose/accent_cedille.json
index 3c05760..f04768b 100644
--- a/srcs/compose/accent_cedille.json
+++ b/srcs/compose/accent_cedille.json
@@ -1,4 +1,5 @@
{
+ // latin
"c": "ç",
"d": "ḑ",
"e": "ȩ",
@@ -9,5 +10,8 @@
"n": "ņ",
"r": "ŗ",
"s": "ş",
- "t": "ţ"
+ "t": "ţ",
+ // extended latin
+ "ć": "ḉ",
+ "ĕ": "ḝ"
}
diff --git a/srcs/compose/accent_circonflexe.json b/srcs/compose/accent_circonflexe.json
index 448cc87..a16d063 100644
--- a/srcs/compose/accent_circonflexe.json
+++ b/srcs/compose/accent_circonflexe.json
@@ -1,4 +1,7 @@
{
+ "+": "⨣",
+ "≈": "⩯",
+ // latin
"a": "â",
"c": "ĉ",
"e": "ê",
@@ -9,7 +12,27 @@
"o": "ô",
"ŝ": "ŝ",
"u": "û",
+ "w": "ŵ",
+ "x": "x̂",
+ "y": "ŷ",
"z": "ẑ",
+ // extended latin
+ "á": "ấ",
+ "à": "ầ",
+ "ã": "ẫ",
+ "ạ": "ậ",
+ "ả": "ẩ",
+ "é": "ế",
+ "è": "ề",
+ "ẽ": "ễ",
+ "ẹ": "ệ",
+ "ẻ": "ể",
+ "ó": "ố",
+ "ò": "ồ",
+ "ơ": "ổ",
+ "õ": "ỗ",
+ "ọ": "ộ",
+ // combining characters
"а": "а\u0302",
"е": "е\u0302",
"и": "и\u0302",
diff --git a/srcs/compose/accent_dot_above.json b/srcs/compose/accent_dot_above.json
index 12f2f58..b270a1d 100644
--- a/srcs/compose/accent_dot_above.json
+++ b/srcs/compose/accent_dot_above.json
@@ -17,5 +17,30 @@
"w": "ẇ",
"x": "ẋ",
"y": "ẏ",
- "z": "ż"
+ "z": "ż",
+ // remove dot since i and j already have one
+ "i": "ı",
+ "j": "ȷ",
+ // extended latin
+ "ā": "ǡ",
+ "ō": "ȱ",
+ "ś": "ṥ",
+ "ṣ": "ṩ",
+ "š": "ṧ",
+ "ſ": "ẛ",
+ // combining character
+ "k": "k\u0307",
+ "l": "l\u0307",
+ "q": "q\u0307",
+ "u": "u\u0307",
+ "v": "v\u0307",
+ // math
+ "∈": "⋵",
+ "⨯": "⨰",
+ "∧": "⩑",
+ "∨": "⩒",
+ "≡": "⩧",
+ "~": "⩪",
+ "⊆": "⫃",
+ "⊇": "⫄"
}
diff --git a/srcs/compose/accent_dot_below.json b/srcs/compose/accent_dot_below.json
index 35114d0..c0bcfd4 100644
--- a/srcs/compose/accent_dot_below.json
+++ b/srcs/compose/accent_dot_below.json
@@ -1,14 +1,34 @@
{
+ // latin
"a": "ạ",
- "ă": "ặ",
- "â": "ậ",
+ "b": "ḅ",
+ "d": "ḍ",
"e": "ẹ",
- "ê": "ệ",
+ "h": "ḥ",
"i": "ị",
+ "k": "ḳ",
+ "l": "ḷ",
+ "m": "ṃ",
+ "n": "ṇ",
"o": "ọ",
+ "r": "ṛ",
+ "s": "ṣ",
+ "t": "ṭ",
+ "u": "ụ",
+ "v": "ṿ",
+ "w": "ẉ",
+ "y": "ỵ",
+ "z": "ẓ",
+ // extended latin
+ "ă": "ặ",
+ "â": "ậ",
+ "ê": "ệ",
"ô": "ộ",
"ơ": "ợ",
- "u": "ụ",
+ "ṡ": "ṩ",
"ư": "ự",
- "y": "ỵ"
+ // math
+ "-": "⨪",
+ "+": "⨥",
+ "=": "⩦"
}
diff --git a/srcs/compose/accent_double_aigu.json b/srcs/compose/accent_double_aigu.json
index 1732b26..ad40497 100644
--- a/srcs/compose/accent_double_aigu.json
+++ b/srcs/compose/accent_double_aigu.json
@@ -1,7 +1,11 @@
{
+ " ": "˝",
+ // latin
"o": "ő",
"u": "ű",
- " ": "˝",
+ // cyrillic
+ "у": "ӳ",
+ // combining character
"a": "a\u030b",
"e": "e\u030b",
"i": "i\u030b",
diff --git a/srcs/compose/accent_grave.json b/srcs/compose/accent_grave.json
index efd07c2..16320a5 100644
--- a/srcs/compose/accent_grave.json
+++ b/srcs/compose/accent_grave.json
@@ -1,8 +1,38 @@
{
+ // latin
"a": "à",
"e": "è",
"i": "ì",
+ "n": "ǹ",
"o": "ò",
"u": "ù",
- "ü": "ǜ"
+ "w": "ẁ",
+ "y": "ỳ",
+ // extended latin
+ "â": "ầ",
+ "ă": "ằ",
+ "ê": "ề",
+ "ē": "ḕ",
+ "ơ": "ờ",
+ "ô": "ồ",
+ "ō": "ṑ",
+ "ü": "ǜ",
+ "ư": "ừ",
+ // greek (technically not a grave, but a varia)
+ "α": "ὰ",
+ "ε": "ὲ",
+ "η": "ὴ",
+ "ι": "ὶ",
+ "ο": "ὸ",
+ "υ": "ὺ",
+ "ω": "ὼ",
+ // there is more like ἒ, ᾣ, etc
+ // cyrillic
+ "е": "ѐ",
+ "и": "ѝ",
+ // combining character
+ "ɔ": "ɔ\u0300",
+ "s": "s\u0300",
+ "ʌ": "ʌ\u0300",
+ "z": "z\u0300"
}
diff --git a/srcs/compose/accent_macron.json b/srcs/compose/accent_macron.json
index b311974..7224517 100644
--- a/srcs/compose/accent_macron.json
+++ b/srcs/compose/accent_macron.json
@@ -1,8 +1,35 @@
{
+ // latin
"a": "ā",
"e": "ē",
+ "g": "ḡ",
"i": "ī",
"o": "ō",
"u": "ū",
- "ü": "ǖ"
+ "y": "ȳ",
+ // extended latin
+ "æ": "ǣ",
+ "ä": "ǟ",
+ "ȧ": "ǡ",
+ "è": "ḕ",
+ "é": "ḗ",
+ "ḷ": "ḹ",
+ "ṛ": "ṝ",
+ "ö": "ȫ",
+ "ȯ": "ȱ",
+ "ǫ": "ǭ",
+ "õ": "ȭ",
+ "ò": "ṑ",
+ "ó": "ṓ",
+ "ü": "ǖ", // there is also ṻ
+ // cyrillic
+ "и": "ӣ",
+ "у": "ӯ",
+ // greek
+ "α": "ᾱ",
+ "ι": "ῑ",
+ "υ": "ῡ",
+ // combining characters
+ "l": "l\u0304",
+ "r": "r\u0304"
}
diff --git a/srcs/compose/accent_ogonek.json b/srcs/compose/accent_ogonek.json
index a722cef..4a7f8b6 100644
--- a/srcs/compose/accent_ogonek.json
+++ b/srcs/compose/accent_ogonek.json
@@ -1,10 +1,10 @@
{
+ // latin
"a": "ą",
"e": "ę",
"i": "į",
- "k": "ķ",
- "l": "ļ",
- "n": "ņ",
"o": "ǫ",
- "u": "ų"
+ "u": "ų",
+ // extended latin
+ "ō": "ǭ"
}
diff --git a/srcs/compose/accent_ring.json b/srcs/compose/accent_ring.json
index 9fad5bc..ac6ed66 100644
--- a/srcs/compose/accent_ring.json
+++ b/srcs/compose/accent_ring.json
@@ -1,4 +1,11 @@
{
+ // latin
"a": "å",
- "u": "ů"
+ "u": "ů",
+ "w": "ẘ", // no uppercase
+ "y": "ẙ", // no uppercase
+ // extended latin
+ "á": "ǻ",
+ // extra
+ "~": "⸛"
}
diff --git a/srcs/compose/accent_slash.json b/srcs/compose/accent_slash.json
index 1d07925..5743935 100644
--- a/srcs/compose/accent_slash.json
+++ b/srcs/compose/accent_slash.json
@@ -8,7 +8,11 @@
"l": "ł",
"n": "ꞥ",
"o": "ø",
+ "ó": "ǿ",
+ "ɔ": "ꬿ",
"r": "ꞧ",
"s": "ꞩ",
- "t": "ⱦ"
+ "t": "ⱦ",
+ "u": "ꞹ",
+ "v": "ꝟ"
}
diff --git a/srcs/compose/accent_subscript.json b/srcs/compose/accent_subscript.json
index 79a3c93..2cf2daf 100644
--- a/srcs/compose/accent_subscript.json
+++ b/srcs/compose/accent_subscript.json
@@ -1,4 +1,6 @@
{
+ // arabic numbers
+ "0": "₀",
"1": "₁",
"2": "₂",
"3": "₃",
@@ -8,12 +10,13 @@
"7": "₇",
"8": "₈",
"9": "₉",
- "0": "₀",
+ // math operators
"+": "₊",
"-": "₋",
"=": "₌",
"(": "₍",
")": "₎",
+ // latin
"a": "ₐ",
"e": "ₑ",
"h": "ₕ",
@@ -30,5 +33,13 @@
"t": "ₜ",
"u": "ᵤ",
"v": "ᵥ",
- "x": "ₓ"
+ "x": "ₓ",
+ // extended latin
+ "ə": "ₔ",
+ // greek
+ "β": "ᵦ",
+ "γ": "ᵧ",
+ "ρ": "ᵨ",
+ "φ": "ᵩ",
+ "χ": "ᵪ"
}
diff --git a/srcs/compose/accent_superscript.json b/srcs/compose/accent_superscript.json
index 68b9751..292815d 100644
--- a/srcs/compose/accent_superscript.json
+++ b/srcs/compose/accent_superscript.json
@@ -1,4 +1,6 @@
{
+ // numbers
+ "0": "⁰",
"1": "¹",
"2": "²",
"3": "³",
@@ -8,12 +10,18 @@
"7": "⁷",
"8": "⁸",
"9": "⁹",
- "0": "⁰",
+ // math operators
"+": "⁺",
"-": "⁻",
"=": "⁼",
"(": "⁽",
")": "⁾",
+ // latin
+ "n": "ⁿ",
+
+ // since there are no more "superscript" characters,
+ // we substitute with "modifier letter small"s which looks the same
+ // latin
"a": "ᵃ",
"b": "ᵇ",
"c": "ᶜ",
@@ -26,10 +34,11 @@
"j": "ʲ",
"k": "ᵏ",
"l": "ˡ",
+ // see above for n
"m": "ᵐ",
- "n": "ⁿ",
"o": "ᵒ",
"p": "ᵖ",
+ "q": "ꟴ", // there is no proper lowercase superscript q
"r": "ʳ",
"s": "ˢ",
"t": "ᵗ",
@@ -38,5 +47,47 @@
"w": "ʷ",
"x": "ˣ",
"y": "ʸ",
- "z": "ᶻ"
+ "z": "ᶻ",
+ // extended latin
+ "ɐ": "ᵄ",
+ "ᴂ": "ᵆ",
+ "ɕ": "ᶝ",
+ "ə": "ᵊ",
+ "ɛ": "ᵋ",
+ "ɜ": "ᶟ", // turned open e, ↓ not the same
+ "ᴈ": "ᵌ", // reversed open e
+ "ɥ": "ᶣ",
+ "ɦ": "ʱ",
+ "ᴉ": "ᵎ",
+ "ɨ": "ᶤ",
+ "ɟ": "ᶡ",
+ "ɱ": "ᶬ",
+ "ɯ": "ᵚ",
+ "ɰ": "ᶭ",
+ "ŋ": "ᵑ",
+ "ᴝ": "ᵙ",
+ "ɵ": "ᶱ",
+ "œ": "ꟹ",
+ "ɔ": "ᵓ",
+ "ɹ": "ʴ",
+ "ɻ": "ʵ",
+ "ʁ": "ʶ",
+ "ʂ": "ᶳ",
+ "ʉ": "ᶶ",
+ "ʃ": "ᶴ",
+ "ʒ": "ᶾ",
+ "ʍ": "ꭩ",
+ // greek
+ "ɒ": "ᶛ",
+ "β": "ᵝ",
+ "ɣ": "ˠ",
+ "δ": "ᵟ",
+ "φ": "ᵠ",
+ "χ": "ᵡ",
+ "ι": "ᶥ",
+ "ʊ": "ᶷ",
+ "ʌ": "ᶺ",
+ "θ": "ᶿ",
+ // cyrillic
+ "ө": "ᶱ"
}
diff --git a/srcs/compose/accent_tilde.json b/srcs/compose/accent_tilde.json
index a79d1a3..7939068 100644
--- a/srcs/compose/accent_tilde.json
+++ b/srcs/compose/accent_tilde.json
@@ -1,13 +1,21 @@
{
+ // latin
"a": "ã",
"e": "ẽ",
"i": "ĩ",
"n": "ñ",
"o": "õ",
"u": "ũ",
+ "v": "ṽ",
+ "y": "ỹ",
+ // extended latin
"ă": "ẵ",
"â": "ẫ",
"ê": "ễ",
"ơ": "ỡ",
- "ư": "ữ"
+ "ō": "ȭ",
+ "ó": "ṍ",
+ "ö": "ṏ",
+ "ư": "ữ",
+ "ú": "ṹ"
}
diff --git a/srcs/compose/accent_trema.json b/srcs/compose/accent_trema.json
index 64cba56..dc9c5f8 100644
--- a/srcs/compose/accent_trema.json
+++ b/srcs/compose/accent_trema.json
@@ -1,8 +1,54 @@
{
+ // fun
+ "~": "⍨",
+ "*": "⍣",
+ "∇": "⍢",
+ "°": "⍤",
+ // latin
"a": "ä",
"e": "ë",
+ "h": "ḧ",
"i": "ï",
"o": "ö",
+ "t": "ẗ",
"u": "ü",
- "y": "ÿ"
+ "w": "ẅ",
+ "x": "ẍ",
+ "y": "ÿ",
+ // extended latin
+ "ā": "ǟ",
+ "ō": "ȫ",
+ "õ": "ṏ",
+ "í": "ḯ",
+ "ū": "ǖ", // there is also ṻ
+ "ú": "ǘ",
+ "ù": "ǜ",
+ "ǔ": "ǚ",
+ // greek
+ "ι": "ϊ",
+ "υ": "ϋ",
+ "ὺ": "ῢ",
+ "ύ": "ΰ",
+ "ῦ": "ῧ",
+ "ϒ": "ϔ",
+ // cyrillic
+ "а": "ӓ",
+ "ә": "ӛ",
+ "ж": "ӝ",
+ "з": "ӟ",
+ "и": "ӥ",
+ "о": "ӧ",
+ "ө": "ӫ",
+ "э": "ӭ",
+ "у": "ӱ",
+ "ч": "ӵ",
+ "ы": "ӹ",
+ // combining character
+ "c": "c\u0308",
+ "j": "j\u0308",
+ "k": "k\u0308",
+ "l": "l\u0308",
+ "m": "m\u0308",
+ "n": "n\u0308",
+ "s": "s\u0308"
}
diff --git a/srcs/compose/shift.json b/srcs/compose/shift.json
index 3c52024..57e3490 100644
--- a/srcs/compose/shift.json
+++ b/srcs/compose/shift.json
@@ -18,7 +18,38 @@
"┐": "╗",
"─": "═",
"│": "║",
+ // superscript
+ "ᵃ": "ᴬ",
+ "ᵇ": "ᴮ",
+ "ᶜ": "ꟲ",
+ "ᵈ": "ᴰ",
+ "ᵉ": "ᴱ",
+ "ᶠ": "ꟳ",
+ "ᵍ": "ᴳ",
+ "ʰ": "ᴴ",
+ "ⁱ": "ᴵ",
+ "ʲ": "ᴶ",
+ "ᵏ": "ᴷ",
+ "ˡ": "ᴸ",
+ "ᵐ": "ᴹ",
+ "ⁿ": "ᴺ",
+ "ᵒ": "ᴼ",
+ "ᵖ": "ᴾ",
+ "ʳ": "ᴿ",
+ "ᵗ": "ᵀ",
+ "ᵘ": "ᵁ",
+ "ᵛ": "ⱽ",
+ "ʷ": "ᵂ",
+ "ᶾ": "ᴣ",
+ "ᵠ": "ᶲ",
+ // german eszett has an uppercase, but because it is uncommon, java doesn't know about it
"ß": "ẞ",
+ // these characters don't have a preapplied uppercase version, so we use combining characters
+ "ẗ": "T\u0308",
+ "ẘ": "W\u030A",
+ "ẙ": "Y\u030A",
+ "ǰ": "J\u030C",
+ "ȷ": "J\u0307",
// In Turkish, upper case of 'iı' is 'İI' but Java's toUpperCase will
// return 'II'. To make 'İ' accessible, make it the shift of 'ı'. This
// has the inconvenient of swapping i and ı on the keyboard.