abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2
diff options
context:
space:
mode:
authorJules Aguillon2024-10-04 01:08:45 +0200
committerJules Aguillon2024-10-04 01:09:51 +0200
commit8a6dc34b2c77d9a0bbcddbb32da0aff506057de5 (patch)
treefb2caad6d5010c76fb55279954a6e8ae1e073b1f /srcs/juloo.keyboard2
parent9f0cf15d2e5eee9eb255d4a10969b5cb0d76c864 (diff)
downloadunexpected-keyboard-8a6dc34b2c77d9a0bbcddbb32da0aff506057de5.tar.gz
unexpected-keyboard-8a6dc34b2c77d9a0bbcddbb32da0aff506057de5.zip
Add combining diacritics keys
Co-authored-by: Anastazius Kaejatidarjan <zdarian@asu.edu>
Diffstat (limited to 'srcs/juloo.keyboard2')
-rw-r--r--srcs/juloo.keyboard2/KeyValue.java26
-rw-r--r--srcs/juloo.keyboard2/prefs/ExtraKeysPreference.java39
2 files changed, 65 insertions, 0 deletions
diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java
index 320eaaa..76bf2d0 100644
--- a/srcs/juloo.keyboard2/KeyValue.java
+++ b/srcs/juloo.keyboard2/KeyValue.java
@@ -403,6 +403,11 @@ public final class KeyValue implements Comparable<KeyValue>
return new KeyValue(symbol, Kind.Char, c, flags);
}
+ public static KeyValue makeCharKey(int symbol, char c, int flags)
+ {
+ return makeCharKey(c, String.valueOf((char)symbol), flags | FLAG_KEY_FONT);
+ }
+
public static KeyValue makeComposePending(String symbol, int state, int flags)
{
return new KeyValue(symbol, Kind.Compose_pending, state,
@@ -522,6 +527,27 @@ public final class KeyValue implements Comparable<KeyValue>
case "fn": return modifierKey("Fn", Modifier.FN, 0);
case "meta": return modifierKey("Meta", Modifier.META, 0);
+ /* Combining diacritics */
+ case "combining_dot_above": return makeCharKey(0xE15A, '\u0307', 0);
+ case "combining_double_aigu": return makeCharKey(0xE15B, '\u030B', 0);
+ case "combining_slash": return makeCharKey(0xE15C, '\u0337', 0);
+ case "combining_arrow_right": return makeCharKey(0xE15D, '\u20D7', 0);
+ case "combining_breve": return makeCharKey(0xE15E, '\u0306', 0);
+ case "combining_bar": return makeCharKey(0xE15F, '\u0335', 0);
+ case "combining_aigu": return makeCharKey(0xE150, '\u0301', 0);
+ case "combining_caron": return makeCharKey(0xE151, '\u030C', 0);
+ case "combining_cedille": return makeCharKey(0xE152, '\u0327', 0);
+ case "combining_circonflexe": return makeCharKey(0xE153, '\u0302', 0);
+ case "combining_grave": return makeCharKey(0xE154, '\u0300', 0);
+ case "combining_macron": return makeCharKey(0xE155, '\u0304', 0);
+ case "combining_ring": return makeCharKey(0xE156, '\u030A', 0);
+ case "combining_tilde": return makeCharKey(0xE157, '\u0303', 0);
+ case "combining_trema": return makeCharKey(0xE158, '\u0308', 0);
+ case "combining_ogonek": return makeCharKey(0xE159, '\u0328', 0);
+ case "combining_dot_below": return makeCharKey(0xE160, '\u0323', 0);
+ case "combining_horn": return makeCharKey(0xE161, '\u031B', 0);
+ case "combining_hook_above": return makeCharKey(0xE162, '\u0309', 0);
+
/* Special event keys */
case "config": return eventKey(0xE004, Event.CONFIG, FLAG_SMALLER_FONT);
case "switch_text": return eventKey("ABC", Event.SWITCH_TEXT, FLAG_SMALLER_FONT);
diff --git a/srcs/juloo.keyboard2/prefs/ExtraKeysPreference.java b/srcs/juloo.keyboard2/prefs/ExtraKeysPreference.java
index 11e1a05..f5a99ff 100644
--- a/srcs/juloo.keyboard2/prefs/ExtraKeysPreference.java
+++ b/srcs/juloo.keyboard2/prefs/ExtraKeysPreference.java
@@ -72,6 +72,25 @@ public class ExtraKeysPreference extends PreferenceCategory
"f11_placeholder",
"f12_placeholder",
"menu",
+ "combining_dot_above",
+ "combining_double_aigu",
+ "combining_slash",
+ "combining_arrow_right",
+ "combining_breve",
+ "combining_bar",
+ "combining_aigu",
+ "combining_caron",
+ "combining_cedille",
+ "combining_circonflexe",
+ "combining_grave",
+ "combining_macron",
+ "combining_ring",
+ "combining_tilde",
+ "combining_trema",
+ "combining_ogonek",
+ "combining_dot_below",
+ "combining_horn",
+ "combining_hook_above"
};
/** Whether an extra key is enabled by default. */
@@ -121,6 +140,26 @@ public class ExtraKeysPreference extends PreferenceCategory
case "ª": id = R.string.key_descr_ª; break;
case "º": id = R.string.key_descr_º; break;
case "switch_clipboard": id = R.string.key_descr_clipboard; break;
+
+ case "combining_dot_above":
+ case "combining_double_aigu":
+ case "combining_slash":
+ case "combining_arrow_right":
+ case "combining_breve":
+ case "combining_bar":
+ case "combining_aigu":
+ case "combining_caron":
+ case "combining_cedille":
+ case "combining_circonflexe":
+ case "combining_grave":
+ case "combining_macron":
+ case "combining_ring":
+ case "combining_tilde":
+ case "combining_trema":
+ case "combining_ogonek":
+ case "combining_dot_below":
+ case "combining_horn":
+ case "combining_hook_above": id = R.string.key_descr_combining; break;
}
if (id == 0)
return null;