Nux

Merge lp:~3v1n0/nux/enable-headless-full-testing into lp:nux

Proposed by Marco Trevisan (Treviño)
Status: Merged
Approved by: Andrea Azzarone
Approved revision: 883
Merged at revision: 868
Proposed branch: lp:~3v1n0/nux/enable-headless-full-testing
Merge into: lp:nux
Prerequisite: lp:~3v1n0/nux/emit-mouse-leave-on-new-over-area
Diff against target: 1399 lines (+344/-230)
13 files modified
Nux/TextEntryComposeSeqs.h (+155/-87)
Nux/WindowThread.h (+1/-1)
NuxCore/Rect.cpp (+2/-2)
NuxGraphics/GraphicsDisplayX11.cpp (+0/-3)
configure.ac (+11/-0)
debian/changelog (+7/-0)
debian/control (+3/-2)
tests/Makefile.am (+68/-122)
tests/dummy-xorg-test-runner.sh (+87/-0)
tests/gtest-nux-inputarea-proximity.cpp (+3/-3)
tests/gtest-nux-textentry.cpp (+5/-8)
tests/gtest-nux-windowcompositor.cpp (+1/-1)
tests/gtest-nuxcore-animation.cpp (+1/-1)
To merge this branch: bzr merge lp:~3v1n0/nux/enable-headless-full-testing
Reviewer Review Type Date Requested Status
Andrea Azzarone (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+271220@code.launchpad.net

Commit message

Tests: add dummy-xorg-test-runner.sh and make headless tests to always run

Finally tests are always ran in a dummy X server.

To post a comment you must log in.
879. By Marco Trevisan (Treviño)

debian/control: add xserver-xorg-video-dummy as build-depend

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
880. By Marco Trevisan (Treviño)

TestWindowCompositor: fix tests results as per new mouse_cancel emission

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
881. By Marco Trevisan (Treviño)

tests: reorganize the build flags

882. By Marco Trevisan (Treviño)

Autoconf: add x11 build flags to tests if we've support for it

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
883. By Marco Trevisan (Treviño)

Tests: disable EmbeddedContext tests in OpenGLES contextes

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Andrea Azzarone (azzar1) wrote :

LGTM.

Revision history for this message
Andrea Azzarone (azzar1) :
review: Approve
884. By Marco Trevisan (Treviño)

debian/control: build libnux-4.0-common for all archs

885. By Marco Trevisan (Treviño)

debian/changelog: update it to mention packaging changes

886. By Marco Trevisan (Treviño)

debian/control: depend on source:Version of libnux-4.0-common

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Nux/TextEntryComposeSeqs.h'
2--- Nux/TextEntryComposeSeqs.h 2012-07-13 19:51:57 +0000
3+++ Nux/TextEntryComposeSeqs.h 2015-09-21 14:13:08 +0000
4@@ -38,7 +38,7 @@
5 const char* result;
6 };
7
8-static const size_t COMPOSE_SEQUENCES_SIZE = 4376;
9+static const size_t COMPOSE_SEQUENCES_SIZE = 4444;
10
11 static const ComposeSequence COMPOSE_SEQUENCES[] = {
12 {{XK_dead_hook, XK_B, XK_VoidSymbol}, "Ɓ"}, // U0181 | LATIN CAPITAL LETTER B WITH HOOK
13@@ -66,6 +66,7 @@
14 {{XK_dead_grave, XK_Multi_key, XK_parenright, XK_Greek_ALPHA, XK_VoidSymbol}, "Ἂ"},
15 {{XK_Multi_key, XK_grave, XK_dead_psili, XK_Greek_ALPHA, XK_VoidSymbol}, "Ἂ"},
16 {{XK_Multi_key, XK_grave, XK_parenright, XK_Greek_ALPHA, XK_VoidSymbol}, "Ἂ"},
17+ {{XK_dead_doublegrave, XK_O, XK_VoidSymbol}, "Ȍ"}, // U020C | LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
18 {{XK_dead_abovedot, XK_y, XK_VoidSymbol}, "ẏ"}, // U1E8F | LATIN SMALL LETTER Y WITH DOT ABOVE
19 {{XK_Multi_key, XK_period, XK_y, XK_VoidSymbol}, "ẏ"},
20 {{XK_Multi_key, XK_C, XK_equal, XK_VoidSymbol}, "€"}, // EuroSign | EURO SIGN
21@@ -210,6 +211,7 @@
22 {{XK_dead_voiced_sound, XK_kana_KO, XK_VoidSymbol}, "ゴ"}, // U30B4 | KATAKANA LETTER GO
23 {{XK_Multi_key, XK_A, XK_T, XK_VoidSymbol}, "@"}, // at | COMMERCIAL AT
24 {{XK_Multi_key, XK_parenleft, XK_N, XK_parenright, XK_VoidSymbol}, "Ⓝ"}, // U24C3 | CIRCLED LATIN CAPITAL LETTER N
25+ {{XK_dead_abovering, XK_nobreakspace, XK_VoidSymbol}, "̊"}, // U030A | COMBINING RING ABOVE
26 {{XK_dead_abovedot, XK_N, XK_VoidSymbol}, "Ṅ"}, // U1E44 | LATIN CAPITAL LETTER N WITH DOT ABOVE
27 {{XK_Multi_key, XK_period, XK_N, XK_VoidSymbol}, "Ṅ"},
28 {{XK_dead_caron, XK_space, XK_VoidSymbol}, "ˇ"}, // caron | CARON
29@@ -223,8 +225,8 @@
30 {{XK_dead_diaeresis, XK_E, XK_VoidSymbol}, "Ë"}, // Ediaeresis | LATIN CAPITAL LETTER E WITH DIAERESIS
31 {{XK_Multi_key, XK_quotedbl, XK_E, XK_VoidSymbol}, "Ë"},
32 {{XK_Multi_key, XK_E, XK_quotedbl, XK_VoidSymbol}, "Ë"},
33+ {{XK_Multi_key, XK_diaeresis, XK_E, XK_VoidSymbol}, "Ë"},
34 {{XK_Multi_key, XK_E, XK_diaeresis, XK_VoidSymbol}, "Ë"},
35- {{XK_Multi_key, XK_diaeresis, XK_E, XK_VoidSymbol}, "Ë"},
36 {{XK_dead_grave, XK_dead_psili, XK_Greek_OMICRON, XK_VoidSymbol}, "Ὂ"}, // U1F4A | GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
37 {{XK_dead_grave, XK_Multi_key, XK_parenright, XK_Greek_OMICRON, XK_VoidSymbol}, "Ὂ"},
38 {{XK_Multi_key, XK_grave, XK_dead_psili, XK_Greek_OMICRON, XK_VoidSymbol}, "Ὂ"},
39@@ -364,6 +366,7 @@
40 {{XK_Multi_key, XK_apostrophe, XK_parenleft, XK_Greek_alpha, XK_VoidSymbol}, "ἅ"},
41 {{XK_dead_diaeresis, XK_W, XK_VoidSymbol}, "Ẅ"}, // U1E84 | LATIN CAPITAL LETTER W WITH DIAERESIS
42 {{XK_Multi_key, XK_quotedbl, XK_W, XK_VoidSymbol}, "Ẅ"},
43+ {{XK_dead_invertedbreve, XK_e, XK_VoidSymbol}, "ȇ"}, // U0207 | LATIN SMALL LETTER E WITH INVERTED BREVE
44 {{XK_dead_grave, XK_Ecircumflex, XK_VoidSymbol}, "Ề"}, // U1EC0 | LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
45 {{XK_Multi_key, XK_grave, XK_Ecircumflex, XK_VoidSymbol}, "Ề"},
46 {{XK_dead_grave, XK_dead_circumflex, XK_E, XK_VoidSymbol}, "Ề"},
47@@ -377,10 +380,10 @@
48 {{XK_Multi_key, XK_E, XK_period, XK_VoidSymbol}, "Ė"},
49 {{XK_dead_tilde, XK_equal, XK_VoidSymbol}, "≃"}, // similarequal | ASYMPTOTICALLY EQUAL TO
50 {{XK_dead_belowmacron, XK_d, XK_VoidSymbol}, "ḏ"}, // U1E0F | LATIN SMALL LETTER D WITH LINE BELOW
51- {{XK_Multi_key, XK_minus, XK_d, XK_VoidSymbol}, "đ"}, // dstroke | LATIN SMALL LETTER D WITH STROKE
52- {{XK_dead_stroke, XK_d, XK_VoidSymbol}, "đ"},
53+ {{XK_dead_stroke, XK_d, XK_VoidSymbol}, "đ"}, // dstroke | LATIN SMALL LETTER D WITH STROKE
54+ {{XK_Multi_key, XK_minus, XK_d, XK_VoidSymbol}, "đ"},
55+ {{XK_Multi_key, XK_d, XK_minus, XK_VoidSymbol}, "đ"},
56 {{XK_Multi_key, XK_slash, XK_d, XK_VoidSymbol}, "đ"},
57- {{XK_Multi_key, XK_d, XK_minus, XK_VoidSymbol}, "đ"},
58 {{XK_Multi_key, XK_KP_Divide, XK_d, XK_VoidSymbol}, "đ"},
59 {{XK_dead_voiced_sound, XK_kana_WA, XK_VoidSymbol}, "ヷ"}, // U30F7 | KATAKANA LETTER VA
60 {{XK_dead_acute, XK_dead_dasia, XK_Greek_epsilon, XK_VoidSymbol}, "ἕ"}, // U1F15 | GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
61@@ -390,6 +393,7 @@
62 {{XK_Multi_key, XK_apostrophe, XK_dead_dasia, XK_Greek_epsilon, XK_VoidSymbol}, "ἕ"},
63 {{XK_Multi_key, XK_apostrophe, XK_parenleft, XK_Greek_epsilon, XK_VoidSymbol}, "ἕ"},
64 {{XK_dead_belowmacron, XK_Z, XK_VoidSymbol}, "Ẕ"}, // U1E94 | LATIN CAPITAL LETTER Z WITH LINE BELOW
65+ {{XK_dead_invertedbreve, XK_u, XK_VoidSymbol}, "ȗ"}, // U0217 | LATIN SMALL LETTER U WITH INVERTED BREVE
66 {{XK_dead_iota, XK_dead_grave, XK_dead_psili, XK_Greek_ETA, XK_VoidSymbol}, "ᾚ"}, // U1F9A | GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
67 {{XK_dead_iota, XK_dead_grave, XK_Multi_key, XK_parenright, XK_Greek_ETA, XK_VoidSymbol}, "ᾚ"},
68 {{XK_dead_iota, XK_Multi_key, XK_grave, XK_dead_psili, XK_Greek_ETA, XK_VoidSymbol}, "ᾚ"},
69@@ -500,12 +504,7 @@
70 {{XK_dead_grave, XK_A, XK_VoidSymbol}, "À"}, // Agrave | LATIN CAPITAL LETTER A WITH GRAVE
71 {{XK_Multi_key, XK_grave, XK_A, XK_VoidSymbol}, "À"},
72 {{XK_Multi_key, XK_A, XK_grave, XK_VoidSymbol}, "À"},
73- {{XK_dead_acute, XK_dead_dasia, XK_Greek_omicron, XK_VoidSymbol}, "ὅ"}, // U1F45 | GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
74- {{XK_dead_acute, XK_Multi_key, XK_parenleft, XK_Greek_omicron, XK_VoidSymbol}, "ὅ"},
75- {{XK_Multi_key, XK_acute, XK_dead_dasia, XK_Greek_omicron, XK_VoidSymbol}, "ὅ"},
76- {{XK_Multi_key, XK_acute, XK_parenleft, XK_Greek_omicron, XK_VoidSymbol}, "ὅ"},
77- {{XK_Multi_key, XK_apostrophe, XK_dead_dasia, XK_Greek_omicron, XK_VoidSymbol}, "ὅ"},
78- {{XK_Multi_key, XK_apostrophe, XK_parenleft, XK_Greek_omicron, XK_VoidSymbol}, "ὅ"},
79+ {{XK_dead_belowcircumflex, XK_E, XK_VoidSymbol}, "Ḙ"}, // U1E18 | LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
80 {{XK_dead_tilde, XK_Ecircumflex, XK_VoidSymbol}, "Ễ"}, // U1EC4 | LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
81 {{XK_Multi_key, XK_asciitilde, XK_Ecircumflex, XK_VoidSymbol}, "Ễ"},
82 {{XK_dead_tilde, XK_dead_circumflex, XK_E, XK_VoidSymbol}, "Ễ"},
83@@ -573,6 +572,7 @@
84 {{XK_Multi_key, XK_underscore, XK_dead_diaeresis, XK_u, XK_VoidSymbol}, "ǖ"},
85 {{XK_Multi_key, XK_underscore, XK_quotedbl, XK_u, XK_VoidSymbol}, "ǖ"},
86 {{XK_dead_macron, XK_v, XK_VoidSymbol}, "ǖ"},
87+ {{XK_dead_invertedbreve, XK_Cyrillic_i, XK_VoidSymbol}, "и̑"}, // CYRILLIC SMALL LETTER I WITH COMBINING INVERTED BREVE
88 {{XK_Multi_key, XK_parenleft, XK_i, XK_parenright, XK_VoidSymbol}, "ⓘ"}, // U24D8 | CIRCLED LATIN SMALL LETTER I
89 {{XK_Multi_key, XK_parenleft, XK_parenleft, XK_VoidSymbol}, "["}, // bracketleft | LEFT SQUARE BRACKET
90 {{XK_dead_grave, XK_Greek_IOTA, XK_VoidSymbol}, "Ὶ"}, // U1FDA | GREEK CAPITAL LETTER IOTA WITH VARIA
91@@ -614,6 +614,7 @@
92 {{XK_Multi_key, XK_parenleft, XK_KP_Space, XK_KP_0, XK_parenright, XK_VoidSymbol}, "⑳"},
93 {{XK_Multi_key, XK_parenleft, XK_KP_2, XK_0, XK_parenright, XK_VoidSymbol}, "⑳"},
94 {{XK_Multi_key, XK_parenleft, XK_KP_2, XK_KP_0, XK_parenright, XK_VoidSymbol}, "⑳"},
95+ {{XK_Multi_key, XK_equal, XK_greater, XK_VoidSymbol}, "⇒"}, // U21D2 | RIGHTWARDS DOUBLE ARROW
96 {{XK_dead_belowdot, XK_Y, XK_VoidSymbol}, "Ỵ"}, // U1EF4 | LATIN CAPITAL LETTER Y WITH DOT BELOW
97 {{XK_Multi_key, XK_exclam, XK_Y, XK_VoidSymbol}, "Ỵ"},
98 {{XK_dead_diaeresis, XK_dead_belowdiaeresis, XK_equal, XK_VoidSymbol}, "⩷"}, // U2A77 | EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
99@@ -641,7 +642,7 @@
100 {{XK_Multi_key, XK_A, XK_underscore, XK_VoidSymbol}, "Ā"},
101 {{XK_Multi_key, XK_minus, XK_A, XK_VoidSymbol}, "Ā"},
102 {{XK_Multi_key, XK_A, XK_minus, XK_VoidSymbol}, "Ā"},
103- {{XK_dead_stroke, XK_R, XK_VoidSymbol}, "Ɍ"}, // U024C | LATIN CAPITAL LETTER R WITH STROKE
104+ {{XK_dead_invertedbreve, XK_A, XK_VoidSymbol}, "Ȃ"}, // U0202 | LATIN CAPITAL LETTER A WITH INVERTED BREVE
105 {{XK_dead_diaeresis, XK_w, XK_VoidSymbol}, "ẅ"}, // U1E85 | LATIN SMALL LETTER W WITH DIAERESIS
106 {{XK_Multi_key, XK_quotedbl, XK_w, XK_VoidSymbol}, "ẅ"},
107 {{XK_dead_acute, XK_dead_psili, XK_Greek_alpha, XK_VoidSymbol}, "ἄ"}, // U1F04 | GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
108@@ -665,11 +666,12 @@
109 {{XK_dead_breve, XK_Cyrillic_U, XK_VoidSymbol}, "Ў"}, // U040E | CYRILLIC CAPITAL LETTER SHORT U
110 {{XK_Multi_key, XK_U, XK_Cyrillic_U, XK_VoidSymbol}, "Ў"},
111 {{XK_Multi_key, XK_b, XK_Cyrillic_U, XK_VoidSymbol}, "Ў"},
112- {{XK_Multi_key, XK_minus, XK_D, XK_VoidSymbol}, "Đ"}, // Dstroke | LATIN CAPITAL LETTER D WITH STROKE
113- {{XK_dead_stroke, XK_D, XK_VoidSymbol}, "Đ"},
114+ {{XK_dead_stroke, XK_D, XK_VoidSymbol}, "Đ"}, // Dstroke | LATIN CAPITAL LETTER D WITH STROKE
115+ {{XK_Multi_key, XK_minus, XK_D, XK_VoidSymbol}, "Đ"},
116+ {{XK_Multi_key, XK_D, XK_minus, XK_VoidSymbol}, "Đ"},
117 {{XK_Multi_key, XK_slash, XK_D, XK_VoidSymbol}, "Đ"},
118 {{XK_Multi_key, XK_KP_Divide, XK_D, XK_VoidSymbol}, "Đ"},
119- {{XK_Multi_key, XK_D, XK_minus, XK_VoidSymbol}, "Đ"},
120+ {{XK_dead_invertedbreve, XK_R, XK_VoidSymbol}, "Ȓ"}, // U0212 | LATIN CAPITAL LETTER R WITH INVERTED BREVE
121 {{XK_dead_belowmacron, XK_z, XK_VoidSymbol}, "ẕ"}, // U1E95 | LATIN SMALL LETTER Z WITH LINE BELOW
122 {{XK_dead_acute, XK_dead_psili, XK_Greek_epsilon, XK_VoidSymbol}, "ἔ"}, // U1F14 | GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
123 {{XK_dead_acute, XK_Multi_key, XK_parenright, XK_Greek_epsilon, XK_VoidSymbol}, "ἔ"},
124@@ -683,6 +685,7 @@
125 {{XK_Multi_key, XK_asciicircum, XK_exclam, XK_O, XK_VoidSymbol}, "Ộ"},
126 {{XK_dead_belowdot, XK_Ocircumflex, XK_VoidSymbol}, "Ộ"},
127 {{XK_dead_belowdot, XK_dead_circumflex, XK_O, XK_VoidSymbol}, "Ộ"},
128+ {{XK_Multi_key, XK_braceleft, XK_braceright, XK_VoidSymbol}, "∅"}, // U2205 | EMPTY SET
129 {{XK_dead_belowtilde, XK_E, XK_VoidSymbol}, "Ḛ"}, // U1E1A | LATIN CAPITAL LETTER E WITH TILDE BELOW
130 {{XK_dead_iota, XK_dead_tilde, XK_dead_dasia, XK_Greek_ETA, XK_VoidSymbol}, "ᾟ"}, // U1F9F | GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
131 {{XK_dead_iota, XK_dead_tilde, XK_Multi_key, XK_parenleft, XK_Greek_ETA, XK_VoidSymbol}, "ᾟ"},
132@@ -761,9 +764,9 @@
133 {{XK_Multi_key, XK_parenleft, XK_KP_4, XK_KP_8, XK_parenright, XK_VoidSymbol}, "㊽"},
134 {{XK_dead_acute, XK_A, XK_VoidSymbol}, "Á"}, // Aacute | LATIN CAPITAL LETTER A WITH ACUTE
135 {{XK_Multi_key, XK_acute, XK_A, XK_VoidSymbol}, "Á"},
136+ {{XK_Multi_key, XK_A, XK_acute, XK_VoidSymbol}, "Á"},
137 {{XK_Multi_key, XK_apostrophe, XK_A, XK_VoidSymbol}, "Á"},
138 {{XK_Multi_key, XK_A, XK_apostrophe, XK_VoidSymbol}, "Á"},
139- {{XK_Multi_key, XK_A, XK_acute, XK_VoidSymbol}, "Á"},
140 {{XK_dead_abovedot, XK_l, XK_VoidSymbol}, "ŀ"}, // U0140 | LATIN SMALL LETTER L WITH MIDDLE DOT
141 {{XK_dead_tilde, XK_ecircumflex, XK_VoidSymbol}, "ễ"}, // U1EC5 | LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
142 {{XK_Multi_key, XK_asciitilde, XK_ecircumflex, XK_VoidSymbol}, "ễ"},
143@@ -858,6 +861,9 @@
144 {{XK_Multi_key, XK_parenleft, XK_z, XK_parenright, XK_VoidSymbol}, "ⓩ"}, // U24E9 | CIRCLED LATIN SMALL LETTER Z
145 {{XK_dead_ogonek, XK_o, XK_VoidSymbol}, "ǫ"}, // U01EB | LATIN SMALL LETTER O WITH OGONEK
146 {{XK_Multi_key, XK_semicolon, XK_o, XK_VoidSymbol}, "ǫ"},
147+ {{XK_Multi_key, XK_o, XK_semicolon, XK_VoidSymbol}, "ǫ"},
148+ {{XK_Multi_key, XK_comma, XK_o, XK_VoidSymbol}, "ǫ"},
149+ {{XK_Multi_key, XK_o, XK_comma, XK_VoidSymbol}, "ǫ"},
150 {{XK_Multi_key, XK_numbersign, XK_e, XK_VoidSymbol}, "♪"}, // U266a | EIGHTH NOTE
151 {{XK_Multi_key, XK_parenleft, XK_kana_HO, XK_parenright, XK_VoidSymbol}, "㋭"}, // U32ED | CIRCLED KATAKANA HO
152 {{XK_Multi_key, XK_0, XK_asciitilde, XK_VoidSymbol}, "⍬"}, // U236c | 0 ~ APL FUNCTIONAL SYMBOL ZILDE
153@@ -901,6 +907,7 @@
154 {{XK_Multi_key, XK_quotedbl, XK_dead_macron, XK_U, XK_VoidSymbol}, "Ṻ"},
155 {{XK_Multi_key, XK_quotedbl, XK_macron, XK_U, XK_VoidSymbol}, "Ṻ"},
156 {{XK_Multi_key, XK_quotedbl, XK_underscore, XK_U, XK_VoidSymbol}, "Ṻ"},
157+ {{XK_Multi_key, XK_parenleft, XK_w, XK_parenright, XK_VoidSymbol}, "ⓦ"}, // U24E6 | CIRCLED LATIN SMALL LETTER W
158 {{XK_dead_abovedot, XK_t, XK_VoidSymbol}, "ṫ"}, // U1E6B | LATIN SMALL LETTER T WITH DOT ABOVE
159 {{XK_Multi_key, XK_period, XK_t, XK_VoidSymbol}, "ṫ"},
160 {{XK_Multi_key, XK_t, XK_period, XK_VoidSymbol}, "ṫ"},
161@@ -932,6 +939,7 @@
162 {{XK_Multi_key, XK_c, XK_period, XK_VoidSymbol}, "ċ"},
163 {{XK_dead_abovedot, XK_X, XK_VoidSymbol}, "Ẋ"}, // U1E8A | LATIN CAPITAL LETTER X WITH DOT ABOVE
164 {{XK_Multi_key, XK_period, XK_X, XK_VoidSymbol}, "Ẋ"},
165+ {{XK_dead_doublegrave, XK_o, XK_VoidSymbol}, "ȍ"}, // U020D | LATIN SMALL LETTER O WITH DOUBLE GRAVE
166 {{XK_dead_acute, XK_Greek_OMICRON, XK_VoidSymbol}, "Ό"}, // U038C | GREEK CAPITAL LETTER OMICRON WITH TONOS
167 {{XK_Multi_key, XK_acute, XK_Greek_OMICRON, XK_VoidSymbol}, "Ό"},
168 {{XK_Multi_key, XK_apostrophe, XK_Greek_OMICRON, XK_VoidSymbol}, "Ό"},
169@@ -1061,7 +1069,11 @@
170 {{XK_dead_tilde, XK_Multi_key, XK_parenleft, XK_Greek_IOTA, XK_VoidSymbol}, "Ἷ"},
171 {{XK_Multi_key, XK_asciitilde, XK_dead_dasia, XK_Greek_IOTA, XK_VoidSymbol}, "Ἷ"},
172 {{XK_Multi_key, XK_asciitilde, XK_parenleft, XK_Greek_IOTA, XK_VoidSymbol}, "Ἷ"},
173- {{XK_Multi_key, XK_parenleft, XK_I, XK_parenright, XK_VoidSymbol}, "Ⓘ"}, // U24BE | CIRCLED LATIN CAPITAL LETTER I
174+ {{XK_dead_circumflex, XK_o, XK_VoidSymbol}, "ô"}, // ocircumflex | LATIN SMALL LETTER O WITH CIRCUMFLEX
175+ {{XK_Multi_key, XK_asciicircum, XK_o, XK_VoidSymbol}, "ô"},
176+ {{XK_Multi_key, XK_o, XK_asciicircum, XK_VoidSymbol}, "ô"},
177+ {{XK_Multi_key, XK_greater, XK_o, XK_VoidSymbol}, "ô"},
178+ {{XK_Multi_key, XK_o, XK_greater, XK_VoidSymbol}, "ô"},
179 {{XK_dead_hook, XK_W, XK_VoidSymbol}, "Ⱳ"}, // U2C72 | LATIN CAPITAL LETTER W WITH HOOK
180 {{XK_dead_abovedot, XK_n, XK_VoidSymbol}, "ṅ"}, // U1E45 | LATIN SMALL LETTER N WITH DOT ABOVE
181 {{XK_Multi_key, XK_period, XK_n, XK_VoidSymbol}, "ṅ"},
182@@ -1083,7 +1095,17 @@
183 {{XK_Multi_key, XK_acute, XK_Greek_omicron, XK_VoidSymbol}, "ό"},
184 {{XK_Multi_key, XK_apostrophe, XK_Greek_omicron, XK_VoidSymbol}, "ό"},
185 {{XK_Multi_key, XK_Greek_omicron, XK_apostrophe, XK_VoidSymbol}, "ό"},
186- {{XK_Multi_key, XK_parenleft, XK_Y, XK_parenright, XK_VoidSymbol}, "Ⓨ"}, // U24CE | CIRCLED LATIN CAPITAL LETTER Y
187+ {{XK_dead_acute, XK_Otilde, XK_VoidSymbol}, "Ṍ"}, // U1E4C | LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
188+ {{XK_Multi_key, XK_acute, XK_Otilde, XK_VoidSymbol}, "Ṍ"},
189+ {{XK_Multi_key, XK_apostrophe, XK_Otilde, XK_VoidSymbol}, "Ṍ"},
190+ {{XK_dead_acute, XK_dead_tilde, XK_O, XK_VoidSymbol}, "Ṍ"},
191+ {{XK_dead_acute, XK_Multi_key, XK_asciitilde, XK_O, XK_VoidSymbol}, "Ṍ"},
192+ {{XK_Multi_key, XK_acute, XK_dead_tilde, XK_O, XK_VoidSymbol}, "Ṍ"},
193+ {{XK_Multi_key, XK_acute, XK_asciitilde, XK_O, XK_VoidSymbol}, "Ṍ"},
194+ {{XK_Multi_key, XK_apostrophe, XK_dead_tilde, XK_O, XK_VoidSymbol}, "Ṍ"},
195+ {{XK_Multi_key, XK_apostrophe, XK_asciitilde, XK_O, XK_VoidSymbol}, "Ṍ"},
196+ {{XK_dead_tilde, XK_Oacute, XK_VoidSymbol}, "Ṍ"},
197+ {{XK_dead_tilde, XK_dead_acute, XK_O, XK_VoidSymbol}, "Ṍ"},
198 {{XK_dead_caron, XK_i, XK_VoidSymbol}, "ǐ"}, // U01D0 | LATIN SMALL LETTER I WITH CARON
199 {{XK_Multi_key, XK_c, XK_i, XK_VoidSymbol}, "ǐ"},
200 {{XK_Multi_key, XK_parenleft, XK_kana_U, XK_parenright, XK_VoidSymbol}, "㋒"}, // U32D2 | CIRCLED KATAKANA U
201@@ -1181,11 +1203,13 @@
202 {{XK_dead_abovedot, XK_Z, XK_VoidSymbol}, "Ż"}, // U017B | LATIN CAPITAL LETTER Z WITH DOT ABOVE
203 {{XK_Multi_key, XK_period, XK_Z, XK_VoidSymbol}, "Ż"},
204 {{XK_Multi_key, XK_Z, XK_period, XK_VoidSymbol}, "Ż"},
205+ {{XK_dead_doublegrave, XK_A, XK_VoidSymbol}, "Ȁ"}, // U0200 | LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
206 {{XK_dead_acute, XK_w, XK_VoidSymbol}, "ẃ"}, // U1E83 | LATIN SMALL LETTER W WITH ACUTE
207 {{XK_Multi_key, XK_acute, XK_w, XK_VoidSymbol}, "ẃ"},
208 {{XK_Multi_key, XK_apostrophe, XK_w, XK_VoidSymbol}, "ẃ"},
209 {{XK_dead_breve, XK_A, XK_VoidSymbol}, "Ă"}, // U0102 | LATIN CAPITAL LETTER A WITH BREVE
210 {{XK_Multi_key, XK_U, XK_A, XK_VoidSymbol}, "Ă"},
211+ {{XK_Multi_key, XK_u, XK_A, XK_VoidSymbol}, "Ă"},
212 {{XK_Multi_key, XK_b, XK_A, XK_VoidSymbol}, "Ă"},
213 {{XK_Multi_key, XK_A, XK_parenleft, XK_VoidSymbol}, "Ă"},
214 {{XK_dead_doublegrave, XK_Cyrillic_u, XK_VoidSymbol}, "у̏"}, // CYRILLIC SMALL LETTER U WITH COMBINING DOUBLE GRAVE ACCENT
215@@ -1217,6 +1241,7 @@
216 {{XK_dead_tilde, XK_Multi_key, XK_parenright, XK_Greek_ALPHA, XK_VoidSymbol}, "Ἆ"},
217 {{XK_Multi_key, XK_asciitilde, XK_dead_psili, XK_Greek_ALPHA, XK_VoidSymbol}, "Ἆ"},
218 {{XK_Multi_key, XK_asciitilde, XK_parenright, XK_Greek_ALPHA, XK_VoidSymbol}, "Ἆ"},
219+ {{XK_dead_doublegrave, XK_R, XK_VoidSymbol}, "Ȑ"}, // U0210 | LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
220 {{XK_dead_belowdot, XK_z, XK_VoidSymbol}, "ẓ"}, // U1E93 | LATIN SMALL LETTER Z WITH DOT BELOW
221 {{XK_Multi_key, XK_exclam, XK_z, XK_VoidSymbol}, "ẓ"},
222 {{XK_dead_macron, XK_E, XK_VoidSymbol}, "Ē"}, // U0112 | LATIN CAPITAL LETTER E WITH MACRON
223@@ -1225,8 +1250,7 @@
224 {{XK_Multi_key, XK_E, XK_underscore, XK_VoidSymbol}, "Ē"},
225 {{XK_Multi_key, XK_minus, XK_E, XK_VoidSymbol}, "Ē"},
226 {{XK_Multi_key, XK_E, XK_minus, XK_VoidSymbol}, "Ē"},
227- {{XK_dead_currency, XK_f, XK_VoidSymbol}, "ƒ"}, // function | LATIN SMALL LETTER F WITH HOOK
228- {{XK_dead_hook, XK_f, XK_VoidSymbol}, "ƒ"},
229+ {{XK_Multi_key, XK_F, XK_U, XK_VoidSymbol}, "🖕"}, // U1F595 | REVERSED HAND WITH MIDDLE FINGER EXTENDED
230 {{XK_dead_iota, XK_dead_dasia, XK_Greek_ETA, XK_VoidSymbol}, "ᾙ"}, // U1F99 | GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
231 {{XK_dead_iota, XK_Multi_key, XK_parenleft, XK_Greek_ETA, XK_VoidSymbol}, "ᾙ"},
232 {{XK_Multi_key, XK_Greek_iota, XK_dead_dasia, XK_Greek_ETA, XK_VoidSymbol}, "ᾙ"},
233@@ -1324,6 +1348,8 @@
234 {{XK_Multi_key, XK_comma, XK_C, XK_VoidSymbol}, "Ç"},
235 {{XK_Multi_key, XK_C, XK_comma, XK_VoidSymbol}, "Ç"},
236 {{XK_Multi_key, XK_cedilla, XK_C, XK_VoidSymbol}, "Ç"},
237+ {{XK_Multi_key, XK_parenleft, XK_1, XK_parenright, XK_VoidSymbol}, "①"}, // U2460 | CIRCLED DIGIT ONE
238+ {{XK_Multi_key, XK_parenleft, XK_KP_1, XK_parenright, XK_VoidSymbol}, "①"},
239 {{XK_dead_belowmacron, XK_N, XK_VoidSymbol}, "Ṉ"}, // U1E48 | LATIN CAPITAL LETTER N WITH LINE BELOW
240 {{XK_dead_voiced_sound, XK_kana_SA, XK_VoidSymbol}, "ザ"}, // U30B6 | KATAKANA LETTER ZA
241 {{XK_dead_caron, XK_A, XK_VoidSymbol}, "Ǎ"}, // U01CD | LATIN CAPITAL LETTER A WITH CARON
242@@ -1403,6 +1429,7 @@
243 {{XK_Multi_key, XK_grave, XK_y, XK_VoidSymbol}, "ỳ"},
244 {{XK_dead_ogonek, XK_U, XK_VoidSymbol}, "Ų"}, // U0172 | LATIN CAPITAL LETTER U WITH OGONEK
245 {{XK_Multi_key, XK_semicolon, XK_U, XK_VoidSymbol}, "Ų"},
246+ {{XK_Multi_key, XK_U, XK_semicolon, XK_VoidSymbol}, "Ų"},
247 {{XK_Multi_key, XK_comma, XK_U, XK_VoidSymbol}, "Ų"},
248 {{XK_Multi_key, XK_U, XK_comma, XK_VoidSymbol}, "Ų"},
249 {{XK_Multi_key, XK_slash, XK_minus, XK_VoidSymbol}, "⌿"}, // U233f | / - APL FUNCTIONAL SYMBOL SLASH BAR
250@@ -1421,7 +1448,7 @@
251 {{XK_dead_tilde, XK_Uacute, XK_VoidSymbol}, "Ṹ"},
252 {{XK_dead_tilde, XK_dead_acute, XK_U, XK_VoidSymbol}, "Ṹ"},
253 {{XK_Multi_key, XK_parenleft, XK_kana_WA, XK_parenright, XK_VoidSymbol}, "㋻"}, // U32FB | CIRCLED KATAKANA WA
254- {{XK_dead_voiced_sound, XK_kana_SO, XK_VoidSymbol}, "ゾ"}, // U30BE | KATAKANA LETTER ZO
255+ {{XK_Multi_key, XK_parenleft, XK_I, XK_parenright, XK_VoidSymbol}, "Ⓘ"}, // U24BE | CIRCLED LATIN CAPITAL LETTER I
256 {{XK_dead_acute, XK_ae, XK_VoidSymbol}, "ǽ"}, // U01FD | LATIN SMALL LETTER AE WITH ACUTE
257 {{XK_Multi_key, XK_acute, XK_ae, XK_VoidSymbol}, "ǽ"},
258 {{XK_Multi_key, XK_apostrophe, XK_ae, XK_VoidSymbol}, "ǽ"},
259@@ -1444,6 +1471,7 @@
260 {{XK_Multi_key, XK_parenleft, XK_Greek_ALPHA, XK_VoidSymbol}, "Ἁ"},
261 {{XK_dead_belowdot, XK_W, XK_VoidSymbol}, "Ẉ"}, // U1E88 | LATIN CAPITAL LETTER W WITH DOT BELOW
262 {{XK_Multi_key, XK_exclam, XK_W, XK_VoidSymbol}, "Ẉ"},
263+ {{XK_dead_invertedbreve, XK_i, XK_VoidSymbol}, "ȋ"}, // U020B | LATIN SMALL LETTER I WITH INVERTED BREVE
264 {{XK_dead_caron, XK_c, XK_VoidSymbol}, "č"}, // U010D | LATIN SMALL LETTER C WITH CARON
265 {{XK_Multi_key, XK_c, XK_c, XK_VoidSymbol}, "č"},
266 {{XK_Multi_key, XK_less, XK_c, XK_VoidSymbol}, "č"},
267@@ -1461,6 +1489,8 @@
268 {{XK_dead_abovering, XK_w, XK_VoidSymbol}, "ẘ"}, // U1E98 | LATIN SMALL LETTER W WITH RING ABOVE
269 {{XK_Multi_key, XK_o, XK_w, XK_VoidSymbol}, "ẘ"},
270 {{XK_dead_belowcomma, XK_t, XK_VoidSymbol}, "ț"}, // U021B | LATIN SMALL LETTER T WITH COMMA BELOW
271+ {{XK_Multi_key, XK_semicolon, XK_t, XK_VoidSymbol}, "ț"},
272+ {{XK_Multi_key, XK_t, XK_semicolon, XK_VoidSymbol}, "ț"},
273 {{XK_dead_circumflex, XK_g, XK_VoidSymbol}, "ĝ"}, // U011D | LATIN SMALL LETTER G WITH CIRCUMFLEX
274 {{XK_Multi_key, XK_asciicircum, XK_g, XK_VoidSymbol}, "ĝ"},
275 {{XK_dead_iota, XK_dead_tilde, XK_dead_psili, XK_Greek_ETA, XK_VoidSymbol}, "ᾞ"}, // U1F9E | GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
276@@ -1576,6 +1606,7 @@
277 {{XK_Multi_key, XK_parenleft, XK_3, XK_KP_1, XK_parenright, XK_VoidSymbol}, "㉛"},
278 {{XK_Multi_key, XK_parenleft, XK_KP_3, XK_1, XK_parenright, XK_VoidSymbol}, "㉛"},
279 {{XK_Multi_key, XK_parenleft, XK_KP_3, XK_KP_1, XK_parenright, XK_VoidSymbol}, "㉛"},
280+ {{XK_Multi_key, XK_parenleft, XK_Y, XK_parenright, XK_VoidSymbol}, "Ⓨ"}, // U24CE | CIRCLED LATIN CAPITAL LETTER Y
281 {{XK_dead_circumflex, XK_s, XK_VoidSymbol}, "ŝ"}, // U015D | LATIN SMALL LETTER S WITH CIRCUMFLEX
282 {{XK_Multi_key, XK_asciicircum, XK_s, XK_VoidSymbol}, "ŝ"},
283 {{XK_dead_diaeresis, XK_U, XK_VoidSymbol}, "Ü"}, // Udiaeresis | LATIN CAPITAL LETTER U WITH DIAERESIS
284@@ -1661,7 +1692,7 @@
285 {{XK_Multi_key, XK_Greek_iota, XK_grave, XK_dead_dasia, XK_Greek_alpha, XK_VoidSymbol}, "ᾃ"},
286 {{XK_Multi_key, XK_Greek_iota, XK_grave, XK_parenleft, XK_Greek_alpha, XK_VoidSymbol}, "ᾃ"},
287 {{XK_dead_hook, XK_C, XK_VoidSymbol}, "Ƈ"}, // U0187 | LATIN CAPITAL LETTER C WITH HOOK
288- {{XK_Multi_key, XK_parenleft, XK_w, XK_parenright, XK_VoidSymbol}, "ⓦ"}, // U24E6 | CIRCLED LATIN SMALL LETTER W
289+ {{XK_dead_invertedbreve, XK_E, XK_VoidSymbol}, "Ȇ"}, // U0206 | LATIN CAPITAL LETTER E WITH INVERTED BREVE
290 {{XK_dead_belowdot, XK_w, XK_VoidSymbol}, "ẉ"}, // U1E89 | LATIN SMALL LETTER W WITH DOT BELOW
291 {{XK_Multi_key, XK_exclam, XK_w, XK_VoidSymbol}, "ẉ"},
292 {{XK_dead_psili, XK_Greek_ALPHA, XK_VoidSymbol}, "Ἀ"}, // U1F08 | GREEK CAPITAL LETTER ALPHA WITH PSILI
293@@ -1685,10 +1716,7 @@
294 {{XK_dead_stroke, XK_I, XK_VoidSymbol}, "Ɨ"}, // U0197 | LATIN CAPITAL LETTER I WITH STROKE
295 {{XK_Multi_key, XK_slash, XK_I, XK_VoidSymbol}, "Ɨ"},
296 {{XK_Multi_key, XK_KP_Divide, XK_I, XK_VoidSymbol}, "Ɨ"},
297- {{XK_Multi_key, XK_parenleft, XK_3, XK_7, XK_parenright, XK_VoidSymbol}, "㊲"}, // U32B2 | CIRCLED NUMBER THIRTY SEVEN
298- {{XK_Multi_key, XK_parenleft, XK_3, XK_KP_7, XK_parenright, XK_VoidSymbol}, "㊲"},
299- {{XK_Multi_key, XK_parenleft, XK_KP_3, XK_7, XK_parenright, XK_VoidSymbol}, "㊲"},
300- {{XK_Multi_key, XK_parenleft, XK_KP_3, XK_KP_7, XK_parenright, XK_VoidSymbol}, "㊲"},
301+ {{XK_dead_invertedbreve, XK_U, XK_VoidSymbol}, "Ȗ"}, // U0216 | LATIN CAPITAL LETTER U WITH INVERTED BREVE
302 {{XK_dead_abovering, XK_y, XK_VoidSymbol}, "ẙ"}, // U1E99 | LATIN SMALL LETTER Y WITH RING ABOVE
303 {{XK_Multi_key, XK_o, XK_y, XK_VoidSymbol}, "ẙ"},
304 {{XK_dead_psili, XK_Greek_EPSILON, XK_VoidSymbol}, "Ἐ"}, // U1F18 | GREEK CAPITAL LETTER EPSILON WITH PSILI
305@@ -1885,6 +1913,7 @@
306 {{XK_Multi_key, XK_i, XK_apostrophe, XK_VoidSymbol}, "í"},
307 {{XK_dead_breve, XK_U, XK_VoidSymbol}, "Ŭ"}, // U016C | LATIN CAPITAL LETTER U WITH BREVE
308 {{XK_Multi_key, XK_U, XK_U, XK_VoidSymbol}, "Ŭ"},
309+ {{XK_Multi_key, XK_u, XK_U, XK_VoidSymbol}, "Ŭ"},
310 {{XK_Multi_key, XK_b, XK_U, XK_VoidSymbol}, "Ŭ"},
311 {{XK_Multi_key, XK_numbersign, XK_f, XK_VoidSymbol}, "♮"}, // U266e | MUSIC NATURAL SIGN
312 {{XK_Multi_key, XK_parenleft, XK_kana_ME, XK_parenright, XK_VoidSymbol}, "㋱"}, // U32F1 | CIRCLED KATAKANA ME
313@@ -1910,6 +1939,7 @@
314 {{XK_dead_voiced_sound, XK_kana_CHI, XK_VoidSymbol}, "ヂ"}, // U30C2 | KATAKANA LETTER DI
315 {{XK_dead_belowdot, XK_V, XK_VoidSymbol}, "Ṿ"}, // U1E7E | LATIN CAPITAL LETTER V WITH DOT BELOW
316 {{XK_Multi_key, XK_exclam, XK_V, XK_VoidSymbol}, "Ṿ"},
317+ {{XK_dead_doublegrave, XK_a, XK_VoidSymbol}, "ȁ"}, // U0201 | LATIN SMALL LETTER A WITH DOUBLE GRAVE
318 {{XK_dead_grave, XK_dead_dasia, XK_Greek_alpha, XK_VoidSymbol}, "ἃ"}, // U1F03 | GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
319 {{XK_dead_grave, XK_Multi_key, XK_parenleft, XK_Greek_alpha, XK_VoidSymbol}, "ἃ"},
320 {{XK_Multi_key, XK_grave, XK_dead_dasia, XK_Greek_alpha, XK_VoidSymbol}, "ἃ"},
321@@ -1944,8 +1974,7 @@
322 {{XK_dead_doubleacute, XK_nobreakspace, XK_VoidSymbol}, "̋"}, // U030B | COMBINING DOUBLE ACUTE ACCENT
323 {{XK_dead_abovedot, XK_Y, XK_VoidSymbol}, "Ẏ"}, // U1E8E | LATIN CAPITAL LETTER Y WITH DOT ABOVE
324 {{XK_Multi_key, XK_period, XK_Y, XK_VoidSymbol}, "Ẏ"},
325- {{XK_dead_circumflex, XK_Cyrillic_a, XK_VoidSymbol}, "а̂"}, // CYRILLIC SMALL LETTER A WITH COMBINING CIRCUMFLEX ACCENT
326- {{XK_Multi_key, XK_asciicircum, XK_Cyrillic_a, XK_VoidSymbol}, "а̂"},
327+ {{XK_dead_doublegrave, XK_r, XK_VoidSymbol}, "ȑ"}, // U0211 | LATIN SMALL LETTER R WITH DOUBLE GRAVE
328 {{XK_dead_acute, XK_Greek_iotadieresis, XK_VoidSymbol}, "ΐ"}, // U0390 | GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
329 {{XK_Multi_key, XK_acute, XK_Greek_iotadieresis, XK_VoidSymbol}, "ΐ"},
330 {{XK_Multi_key, XK_apostrophe, XK_Greek_iotadieresis, XK_VoidSymbol}, "ΐ"},
331@@ -1986,10 +2015,10 @@
332 {{XK_dead_grave, XK_Multi_key, XK_parenleft, XK_Greek_eta, XK_VoidSymbol}, "ἣ"},
333 {{XK_Multi_key, XK_grave, XK_dead_dasia, XK_Greek_eta, XK_VoidSymbol}, "ἣ"},
334 {{XK_Multi_key, XK_grave, XK_parenleft, XK_Greek_eta, XK_VoidSymbol}, "ἣ"},
335- {{XK_Multi_key, XK_bar, XK_C, XK_VoidSymbol}, "¢"}, // cent | CENT SIGN
336+ {{XK_Multi_key, XK_C, XK_bar, XK_VoidSymbol}, "¢"}, // cent | CENT SIGN
337+ {{XK_Multi_key, XK_bar, XK_C, XK_VoidSymbol}, "¢"},
338+ {{XK_Multi_key, XK_c, XK_bar, XK_VoidSymbol}, "¢"},
339 {{XK_Multi_key, XK_bar, XK_c, XK_VoidSymbol}, "¢"},
340- {{XK_Multi_key, XK_C, XK_bar, XK_VoidSymbol}, "¢"},
341- {{XK_Multi_key, XK_c, XK_bar, XK_VoidSymbol}, "¢"},
342 {{XK_Multi_key, XK_c, XK_slash, XK_VoidSymbol}, "¢"},
343 {{XK_Multi_key, XK_slash, XK_c, XK_VoidSymbol}, "¢"},
344 {{XK_dead_currency, XK_c, XK_VoidSymbol}, "¢"},
345@@ -2010,6 +2039,10 @@
346 {{XK_Multi_key, XK_acute, XK_Cyrillic_U, XK_VoidSymbol}, "У́"},
347 {{XK_Multi_key, XK_apostrophe, XK_Cyrillic_U, XK_VoidSymbol}, "У́"},
348 {{XK_dead_stroke, XK_E, XK_VoidSymbol}, "Ɇ"}, // U0246 | LATIN CAPITAL LETTER E WITH STROKE
349+ {{XK_Multi_key, XK_parenleft, XK_3, XK_7, XK_parenright, XK_VoidSymbol}, "㊲"}, // U32B2 | CIRCLED NUMBER THIRTY SEVEN
350+ {{XK_Multi_key, XK_parenleft, XK_3, XK_KP_7, XK_parenright, XK_VoidSymbol}, "㊲"},
351+ {{XK_Multi_key, XK_parenleft, XK_KP_3, XK_7, XK_parenright, XK_VoidSymbol}, "㊲"},
352+ {{XK_Multi_key, XK_parenleft, XK_KP_3, XK_KP_7, XK_parenright, XK_VoidSymbol}, "㊲"},
353 {{XK_dead_hook, XK_T, XK_VoidSymbol}, "Ƭ"}, // U01AC | LATIN CAPITAL LETTER T WITH HOOK
354 {{XK_dead_acute, XK_Abreve, XK_VoidSymbol}, "Ắ"}, // U1EAE | LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
355 {{XK_Multi_key, XK_acute, XK_Abreve, XK_VoidSymbol}, "Ắ"},
356@@ -2048,11 +2081,11 @@
357 {{XK_Multi_key, XK_grave, XK_parenleft, XK_Greek_iota, XK_VoidSymbol}, "ἳ"},
358 {{XK_dead_circumflex, XK_2, XK_VoidSymbol}, "²"}, // twosuperior | SUPERSCRIPT TWO
359 {{XK_Multi_key, XK_asciicircum, XK_2, XK_VoidSymbol}, "²"},
360+ {{XK_Multi_key, XK_2, XK_asciicircum, XK_VoidSymbol}, "²"},
361 {{XK_dead_circumflex, XK_KP_Space, XK_VoidSymbol}, "²"},
362 {{XK_Multi_key, XK_asciicircum, XK_KP_Space, XK_VoidSymbol}, "²"},
363 {{XK_dead_circumflex, XK_KP_2, XK_VoidSymbol}, "²"},
364 {{XK_Multi_key, XK_asciicircum, XK_KP_2, XK_VoidSymbol}, "²"},
365- {{XK_Multi_key, XK_2, XK_asciicircum, XK_VoidSymbol}, "²"},
366 {{XK_Multi_key, XK_parenleft, XK_kana_RA, XK_parenright, XK_VoidSymbol}, "㋶"}, // U32F6 | CIRCLED KATAKANA RA
367 {{XK_dead_cedilla, XK_k, XK_VoidSymbol}, "ķ"}, // U0137 | LATIN SMALL LETTER K WITH CEDILLA
368 {{XK_Multi_key, XK_comma, XK_k, XK_VoidSymbol}, "ķ"},
369@@ -2086,9 +2119,9 @@
370 {{XK_Multi_key, XK_grave, XK_parenleft, XK_Greek_omicron, XK_VoidSymbol}, "ὃ"},
371 {{XK_dead_circumflex, XK_A, XK_VoidSymbol}, "Â"}, // Acircumflex | LATIN CAPITAL LETTER A WITH CIRCUMFLEX
372 {{XK_Multi_key, XK_asciicircum, XK_A, XK_VoidSymbol}, "Â"},
373+ {{XK_Multi_key, XK_A, XK_asciicircum, XK_VoidSymbol}, "Â"},
374 {{XK_Multi_key, XK_greater, XK_A, XK_VoidSymbol}, "Â"},
375 {{XK_Multi_key, XK_A, XK_greater, XK_VoidSymbol}, "Â"},
376- {{XK_Multi_key, XK_A, XK_asciicircum, XK_VoidSymbol}, "Â"},
377 {{XK_dead_caron, XK_N, XK_VoidSymbol}, "Ň"}, // U0147 | LATIN CAPITAL LETTER N WITH CARON
378 {{XK_Multi_key, XK_c, XK_N, XK_VoidSymbol}, "Ň"},
379 {{XK_Multi_key, XK_less, XK_N, XK_VoidSymbol}, "Ň"},
380@@ -2107,8 +2140,6 @@
381 {{XK_Multi_key, XK_parenleft, XK_KP_Space, XK_KP_1, XK_parenright, XK_VoidSymbol}, "㉑"},
382 {{XK_Multi_key, XK_parenleft, XK_KP_2, XK_1, XK_parenright, XK_VoidSymbol}, "㉑"},
383 {{XK_Multi_key, XK_parenleft, XK_KP_2, XK_KP_1, XK_parenright, XK_VoidSymbol}, "㉑"},
384- {{XK_dead_circumflex, XK_Cyrillic_ie, XK_VoidSymbol}, "е̂"}, // CYRILLIC SMALL LETTER IE WITH COMBINING CIRCUMFLEX ACCENT
385- {{XK_Multi_key, XK_asciicircum, XK_Cyrillic_ie, XK_VoidSymbol}, "е̂"},
386 {{XK_dead_grave, XK_dead_dasia, XK_Greek_upsilon, XK_VoidSymbol}, "ὓ"}, // U1F53 | GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
387 {{XK_dead_grave, XK_Multi_key, XK_parenleft, XK_Greek_upsilon, XK_VoidSymbol}, "ὓ"},
388 {{XK_Multi_key, XK_grave, XK_dead_dasia, XK_Greek_upsilon, XK_VoidSymbol}, "ὓ"},
389@@ -2116,6 +2147,7 @@
390 {{XK_dead_grave, XK_O, XK_VoidSymbol}, "Ò"}, // Ograve | LATIN CAPITAL LETTER O WITH GRAVE
391 {{XK_Multi_key, XK_grave, XK_O, XK_VoidSymbol}, "Ò"},
392 {{XK_Multi_key, XK_O, XK_grave, XK_VoidSymbol}, "Ò"},
393+ {{XK_dead_voiced_sound, XK_kana_SO, XK_VoidSymbol}, "ゾ"}, // U30BE | KATAKANA LETTER ZO
394 {{XK_dead_cedilla, XK_r, XK_VoidSymbol}, "ŗ"}, // U0157 | LATIN SMALL LETTER R WITH CEDILLA
395 {{XK_Multi_key, XK_comma, XK_r, XK_VoidSymbol}, "ŗ"},
396 {{XK_Multi_key, XK_r, XK_comma, XK_VoidSymbol}, "ŗ"},
397@@ -2163,7 +2195,8 @@
398 {{XK_Multi_key, XK_KP_Divide, XK_t, XK_VoidSymbol}, "ŧ"},
399 {{XK_Multi_key, XK_t, XK_slash, XK_VoidSymbol}, "ŧ"},
400 {{XK_Multi_key, XK_t, XK_minus, XK_VoidSymbol}, "ŧ"},
401- {{XK_Multi_key, XK_parenleft, XK_kana_NU, XK_parenright, XK_VoidSymbol}, "㋦"}, // U32E6 | CIRCLED KATAKANA NU
402+ {{XK_dead_psili, XK_Greek_upsilon, XK_VoidSymbol}, "ὐ"}, // U1F50 | GREEK SMALL LETTER UPSILON WITH PSILI
403+ {{XK_Multi_key, XK_parenright, XK_Greek_upsilon, XK_VoidSymbol}, "ὐ"},
404 {{XK_Multi_key, XK_numbersign, XK_q, XK_VoidSymbol}, "♩"}, // U2669 | QUARTER NOTE
405 {{XK_dead_breve, XK_Greek_UPSILON, XK_VoidSymbol}, "Ῠ"}, // U1FE8 | GREEK CAPITAL LETTER UPSILON WITH VRACHY
406 {{XK_Multi_key, XK_U, XK_Greek_UPSILON, XK_VoidSymbol}, "Ῠ"},
407@@ -2189,7 +2222,8 @@
408 {{XK_dead_horn, XK_dead_tilde, XK_U, XK_VoidSymbol}, "Ữ"},
409 {{XK_dead_hook, XK_m, XK_VoidSymbol}, "ɱ"}, // U0271 | LATIN SMALL LETTER M WITH HOOK
410 {{XK_dead_currency, XK_M, XK_VoidSymbol}, "ℳ"}, // U2133 | SCRIPT CAPITAL M
411- {{XK_Multi_key, XK_parenleft, XK_v, XK_parenright, XK_VoidSymbol}, "ⓥ"}, // U24E5 | CIRCLED LATIN SMALL LETTER V
412+ {{XK_dead_circumflex, XK_Cyrillic_ie, XK_VoidSymbol}, "е̂"}, // CYRILLIC SMALL LETTER IE WITH COMBINING CIRCUMFLEX ACCENT
413+ {{XK_Multi_key, XK_asciicircum, XK_Cyrillic_ie, XK_VoidSymbol}, "е̂"},
414 {{XK_dead_grave, XK_o, XK_VoidSymbol}, "ò"}, // ograve | LATIN SMALL LETTER O WITH GRAVE
415 {{XK_Multi_key, XK_grave, XK_o, XK_VoidSymbol}, "ò"},
416 {{XK_Multi_key, XK_o, XK_grave, XK_VoidSymbol}, "ò"},
417@@ -2240,13 +2274,15 @@
418 {{XK_Multi_key, XK_diaeresis, XK_acute, XK_VoidSymbol}, "΅"},
419 {{XK_Multi_key, XK_diaeresis, XK_apostrophe, XK_VoidSymbol}, "΅"},
420 {{XK_Multi_key, XK_apostrophe, XK_quotedbl, XK_space, XK_VoidSymbol}, "΅"},
421+ {{XK_dead_doublegrave, XK_E, XK_VoidSymbol}, "Ȅ"}, // U0204 | LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
422 {{XK_dead_abovedot, XK_w, XK_VoidSymbol}, "ẇ"}, // U1E87 | LATIN SMALL LETTER W WITH DOT ABOVE
423 {{XK_Multi_key, XK_period, XK_w, XK_VoidSymbol}, "ẇ"},
424 {{XK_Multi_key, XK_0, XK_3, XK_VoidSymbol}, "↉"}, // U2189 | VULGAR FRACTION ZERO THIRDS
425 {{XK_Multi_key, XK_space, XK_period, XK_VoidSymbol}, " "}, // U2008 | PUNCTUATION SPACE
426 {{XK_dead_grave, XK_Cyrillic_U, XK_VoidSymbol}, "У̀"}, // CYRILLIC CAPITAL LETTER U WITH COMBINING GRAVE ACCENT
427 {{XK_Multi_key, XK_grave, XK_Cyrillic_U, XK_VoidSymbol}, "У̀"},
428- {{XK_dead_abovering, XK_nobreakspace, XK_VoidSymbol}, "̊"}, // U030A | COMBINING RING ABOVE
429+ {{XK_dead_currency, XK_f, XK_VoidSymbol}, "ƒ"}, // function | LATIN SMALL LETTER F WITH HOOK
430+ {{XK_dead_hook, XK_f, XK_VoidSymbol}, "ƒ"},
431 {{XK_dead_iota, XK_dead_acute, XK_dead_dasia, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾍ"}, // U1F8D | GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
432 {{XK_dead_iota, XK_dead_acute, XK_Multi_key, XK_parenleft, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾍ"},
433 {{XK_dead_iota, XK_Multi_key, XK_acute, XK_dead_dasia, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾍ"},
434@@ -2270,6 +2306,7 @@
435 {{XK_dead_grave, XK_Multi_key, XK_parenright, XK_Greek_epsilon, XK_VoidSymbol}, "ἒ"},
436 {{XK_Multi_key, XK_grave, XK_dead_psili, XK_Greek_epsilon, XK_VoidSymbol}, "ἒ"},
437 {{XK_Multi_key, XK_grave, XK_parenright, XK_Greek_epsilon, XK_VoidSymbol}, "ἒ"},
438+ {{XK_dead_doublegrave, XK_U, XK_VoidSymbol}, "Ȕ"}, // U0214 | LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
439 {{XK_dead_diaeresis, XK_t, XK_VoidSymbol}, "ẗ"}, // U1E97 | LATIN SMALL LETTER T WITH DIAERESIS
440 {{XK_Multi_key, XK_quotedbl, XK_t, XK_VoidSymbol}, "ẗ"},
441 {{XK_Multi_key, XK_underscore, XK_apostrophe, XK_VoidSymbol}, "⍘"}, // U2358 | _ ' APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
442@@ -2307,8 +2344,8 @@
443 {{XK_Multi_key, XK_G, XK_parenleft, XK_VoidSymbol}, "Ğ"},
444 {{XK_dead_hook, XK_d, XK_VoidSymbol}, "ɗ"}, // U0257 | LATIN SMALL LETTER D WITH HOOK
445 {{XK_Multi_key, XK_L, XK_minus, XK_VoidSymbol}, "£"}, // sterling | POUND SIGN
446+ {{XK_Multi_key, XK_minus, XK_L, XK_VoidSymbol}, "£"},
447 {{XK_Multi_key, XK_l, XK_minus, XK_VoidSymbol}, "£"},
448- {{XK_Multi_key, XK_minus, XK_L, XK_VoidSymbol}, "£"},
449 {{XK_Multi_key, XK_minus, XK_l, XK_VoidSymbol}, "£"},
450 {{XK_dead_currency, XK_l, XK_VoidSymbol}, "£"},
451 {{XK_dead_grave, XK_dead_psili, XK_Greek_eta, XK_VoidSymbol}, "ἢ"}, // U1F22 | GREEK SMALL LETTER ETA WITH PSILI AND VARIA
452@@ -2343,17 +2380,19 @@
453 {{XK_dead_belowtilde, XK_I, XK_VoidSymbol}, "Ḭ"}, // U1E2C | LATIN CAPITAL LETTER I WITH TILDE BELOW
454 {{XK_dead_ogonek, XK_I, XK_VoidSymbol}, "Į"}, // U012E | LATIN CAPITAL LETTER I WITH OGONEK
455 {{XK_Multi_key, XK_semicolon, XK_I, XK_VoidSymbol}, "Į"},
456+ {{XK_Multi_key, XK_I, XK_semicolon, XK_VoidSymbol}, "Į"},
457 {{XK_Multi_key, XK_comma, XK_I, XK_VoidSymbol}, "Į"},
458 {{XK_Multi_key, XK_I, XK_comma, XK_VoidSymbol}, "Į"},
459 {{XK_dead_circumflex, XK_3, XK_VoidSymbol}, "³"}, // threesuperior | SUPERSCRIPT THREE
460 {{XK_Multi_key, XK_asciicircum, XK_3, XK_VoidSymbol}, "³"},
461+ {{XK_Multi_key, XK_3, XK_asciicircum, XK_VoidSymbol}, "³"},
462 {{XK_dead_circumflex, XK_KP_3, XK_VoidSymbol}, "³"},
463 {{XK_Multi_key, XK_asciicircum, XK_KP_3, XK_VoidSymbol}, "³"},
464- {{XK_Multi_key, XK_3, XK_asciicircum, XK_VoidSymbol}, "³"},
465 {{XK_dead_grave, XK_dead_psili, XK_Greek_iota, XK_VoidSymbol}, "ἲ"}, // U1F32 | GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
466 {{XK_dead_grave, XK_Multi_key, XK_parenright, XK_Greek_iota, XK_VoidSymbol}, "ἲ"},
467 {{XK_Multi_key, XK_grave, XK_dead_psili, XK_Greek_iota, XK_VoidSymbol}, "ἲ"},
468 {{XK_Multi_key, XK_grave, XK_parenright, XK_Greek_iota, XK_VoidSymbol}, "ἲ"},
469+ {{XK_Multi_key, XK_colon, XK_period, XK_VoidSymbol}, "∴"}, // therefore | : . THEREFORE
470 {{XK_dead_breve, XK_dead_belowdot, XK_a, XK_VoidSymbol}, "ặ"}, // U1EB7 | LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
471 {{XK_dead_breve, XK_Multi_key, XK_exclam, XK_a, XK_VoidSymbol}, "ặ"},
472 {{XK_Multi_key, XK_U, XK_dead_belowdot, XK_a, XK_VoidSymbol}, "ặ"},
473@@ -2396,17 +2435,7 @@
474 {{XK_dead_belowdot, XK_ecircumflex, XK_VoidSymbol}, "ệ"},
475 {{XK_dead_belowdot, XK_dead_circumflex, XK_e, XK_VoidSymbol}, "ệ"},
476 {{XK_Multi_key, XK_parenleft, XK_V, XK_parenright, XK_VoidSymbol}, "Ⓥ"}, // U24CB | CIRCLED LATIN CAPITAL LETTER V
477- {{XK_dead_acute, XK_Otilde, XK_VoidSymbol}, "Ṍ"}, // U1E4C | LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
478- {{XK_Multi_key, XK_acute, XK_Otilde, XK_VoidSymbol}, "Ṍ"},
479- {{XK_Multi_key, XK_apostrophe, XK_Otilde, XK_VoidSymbol}, "Ṍ"},
480- {{XK_dead_acute, XK_dead_tilde, XK_O, XK_VoidSymbol}, "Ṍ"},
481- {{XK_dead_acute, XK_Multi_key, XK_asciitilde, XK_O, XK_VoidSymbol}, "Ṍ"},
482- {{XK_Multi_key, XK_acute, XK_dead_tilde, XK_O, XK_VoidSymbol}, "Ṍ"},
483- {{XK_Multi_key, XK_acute, XK_asciitilde, XK_O, XK_VoidSymbol}, "Ṍ"},
484- {{XK_Multi_key, XK_apostrophe, XK_dead_tilde, XK_O, XK_VoidSymbol}, "Ṍ"},
485- {{XK_Multi_key, XK_apostrophe, XK_asciitilde, XK_O, XK_VoidSymbol}, "Ṍ"},
486- {{XK_dead_tilde, XK_Oacute, XK_VoidSymbol}, "Ṍ"},
487- {{XK_dead_tilde, XK_dead_acute, XK_O, XK_VoidSymbol}, "Ṍ"},
488+ {{XK_Multi_key, XK_backslash, XK_o, XK_slash, XK_VoidSymbol}, "🙌"}, // PERSON RAISING BOTH HANDS IN CELEBRATION
489 {{XK_dead_breve, XK_O, XK_VoidSymbol}, "Ŏ"}, // U014E | LATIN CAPITAL LETTER O WITH BREVE
490 {{XK_Multi_key, XK_U, XK_O, XK_VoidSymbol}, "Ŏ"},
491 {{XK_Multi_key, XK_b, XK_O, XK_VoidSymbol}, "Ŏ"},
492@@ -2444,8 +2473,7 @@
493 {{XK_Multi_key, XK_c, XK_quotedbl, XK_U, XK_VoidSymbol}, "Ǚ"},
494 {{XK_dead_caron, XK_V, XK_VoidSymbol}, "Ǚ"},
495 {{XK_dead_diaeresis, XK_dead_caron, XK_U, XK_VoidSymbol}, "Ǚ"},
496- {{XK_dead_iota, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾼ"}, // U1FBC | GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
497- {{XK_Multi_key, XK_Greek_iota, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾼ"},
498+ {{XK_Multi_key, XK_parenleft, XK_v, XK_parenright, XK_VoidSymbol}, "ⓥ"}, // U24E5 | CIRCLED LATIN SMALL LETTER V
499 {{XK_Multi_key, XK_parenleft, XK_l, XK_parenright, XK_VoidSymbol}, "ⓛ"}, // U24DB | CIRCLED LATIN SMALL LETTER L
500 {{XK_Multi_key, XK_parenleft, XK_4, XK_2, XK_parenright, XK_VoidSymbol}, "㊷"}, // U32B7 | CIRCLED NUMBER FORTY TWO
501 {{XK_Multi_key, XK_parenleft, XK_4, XK_KP_Space, XK_parenright, XK_VoidSymbol}, "㊷"},
502@@ -2465,8 +2493,7 @@
503 {{XK_Multi_key, XK_comma, XK_S, XK_VoidSymbol}, "Ş"},
504 {{XK_Multi_key, XK_S, XK_comma, XK_VoidSymbol}, "Ş"},
505 {{XK_Multi_key, XK_cedilla, XK_S, XK_VoidSymbol}, "Ş"},
506- {{XK_Multi_key, XK_parenleft, XK_1, XK_parenright, XK_VoidSymbol}, "①"}, // U2460 | CIRCLED DIGIT ONE
507- {{XK_Multi_key, XK_parenleft, XK_KP_1, XK_parenright, XK_VoidSymbol}, "①"},
508+ {{XK_Multi_key, XK_1, XK_1, XK_0, XK_VoidSymbol}, "⅒"}, // U2152 | VULGAR FRACTION ONE TENTH
509 {{XK_dead_tilde, XK_a, XK_VoidSymbol}, "ã"}, // atilde | LATIN SMALL LETTER A WITH TILDE
510 {{XK_Multi_key, XK_asciitilde, XK_a, XK_VoidSymbol}, "ã"},
511 {{XK_Multi_key, XK_a, XK_asciitilde, XK_VoidSymbol}, "ã"},
512@@ -2481,6 +2508,7 @@
513 {{XK_Multi_key, XK_question, XK_u, XK_VoidSymbol}, "ủ"},
514 {{XK_dead_caron, XK_k, XK_VoidSymbol}, "ǩ"}, // U01E9 | LATIN SMALL LETTER K WITH CARON
515 {{XK_Multi_key, XK_c, XK_k, XK_VoidSymbol}, "ǩ"},
516+ {{XK_dead_stroke, XK_R, XK_VoidSymbol}, "Ɍ"}, // U024C | LATIN CAPITAL LETTER R WITH STROKE
517 {{XK_dead_hook, XK_h, XK_VoidSymbol}, "ɦ"}, // U0266 | LATIN SMALL LETTER H WITH HOOK
518 {{XK_Multi_key, XK_diaeresis, XK_dead_grave, XK_VoidSymbol}, "῭"}, // U1FED | GREEK DIALYTIKA AND VARIA
519 {{XK_Multi_key, XK_diaeresis, XK_grave, XK_VoidSymbol}, "῭"},
520@@ -2551,6 +2579,7 @@
521 {{XK_Multi_key, XK_apostrophe, XK_parenleft, XK_Greek_ALPHA, XK_VoidSymbol}, "Ἅ"},
522 {{XK_dead_diaeresis, XK_X, XK_VoidSymbol}, "Ẍ"}, // U1E8C | LATIN CAPITAL LETTER X WITH DIAERESIS
523 {{XK_Multi_key, XK_quotedbl, XK_X, XK_VoidSymbol}, "Ẍ"},
524+ {{XK_dead_invertedbreve, XK_o, XK_VoidSymbol}, "ȏ"}, // U020F | LATIN SMALL LETTER O WITH INVERTED BREVE
525 {{XK_dead_circumflex, XK_parenright, XK_VoidSymbol}, "⁾"}, // U207E | SUPERSCRIPT RIGHT PARENTHESIS
526 {{XK_Multi_key, XK_asciicircum, XK_parenright, XK_VoidSymbol}, "⁾"},
527 {{XK_Multi_key, XK_minus, XK_minus, XK_period, XK_VoidSymbol}, "–"}, // U2013 | EN DASH
528@@ -2576,11 +2605,18 @@
529 {{XK_Multi_key, XK_apostrophe, XK_underscore, XK_e, XK_VoidSymbol}, "ḗ"},
530 {{XK_dead_macron, XK_eacute, XK_VoidSymbol}, "ḗ"},
531 {{XK_dead_macron, XK_dead_acute, XK_e, XK_VoidSymbol}, "ḗ"},
532- {{XK_dead_belowcircumflex, XK_E, XK_VoidSymbol}, "Ḙ"}, // U1E18 | LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
533+ {{XK_Multi_key, XK_L, XK_L, XK_A, XK_P, XK_VoidSymbol}, "🖖"}, // U1F596 | RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
534 {{XK_dead_ogonek, XK_e, XK_VoidSymbol}, "ę"}, // U0119 | LATIN SMALL LETTER E WITH OGONEK
535 {{XK_Multi_key, XK_semicolon, XK_e, XK_VoidSymbol}, "ę"},
536+ {{XK_Multi_key, XK_e, XK_semicolon, XK_VoidSymbol}, "ę"},
537 {{XK_Multi_key, XK_comma, XK_e, XK_VoidSymbol}, "ę"},
538 {{XK_Multi_key, XK_e, XK_comma, XK_VoidSymbol}, "ę"},
539+ {{XK_dead_acute, XK_dead_dasia, XK_Greek_omicron, XK_VoidSymbol}, "ὅ"}, // U1F45 | GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
540+ {{XK_dead_acute, XK_Multi_key, XK_parenleft, XK_Greek_omicron, XK_VoidSymbol}, "ὅ"},
541+ {{XK_Multi_key, XK_acute, XK_dead_dasia, XK_Greek_omicron, XK_VoidSymbol}, "ὅ"},
542+ {{XK_Multi_key, XK_acute, XK_parenleft, XK_Greek_omicron, XK_VoidSymbol}, "ὅ"},
543+ {{XK_Multi_key, XK_apostrophe, XK_dead_dasia, XK_Greek_omicron, XK_VoidSymbol}, "ὅ"},
544+ {{XK_Multi_key, XK_apostrophe, XK_parenleft, XK_Greek_omicron, XK_VoidSymbol}, "ὅ"},
545 {{XK_dead_belowmacron, XK_T, XK_VoidSymbol}, "Ṯ"}, // U1E6E | LATIN CAPITAL LETTER T WITH LINE BELOW
546 {{XK_dead_acute, XK_dead_dasia, XK_Greek_EPSILON, XK_VoidSymbol}, "Ἕ"}, // U1F1D | GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
547 {{XK_dead_acute, XK_Multi_key, XK_parenleft, XK_Greek_EPSILON, XK_VoidSymbol}, "Ἕ"},
548@@ -2828,6 +2864,7 @@
549 {{XK_dead_caron, XK_9, XK_VoidSymbol}, "₉"},
550 {{XK_dead_circumflex, XK_C, XK_VoidSymbol}, "Ĉ"}, // U0108 | LATIN CAPITAL LETTER C WITH CIRCUMFLEX
551 {{XK_Multi_key, XK_asciicircum, XK_C, XK_VoidSymbol}, "Ĉ"},
552+ {{XK_dead_invertedbreve, XK_I, XK_VoidSymbol}, "Ȋ"}, // U020A | LATIN CAPITAL LETTER I WITH INVERTED BREVE
553 {{XK_dead_diaeresis, XK_x, XK_VoidSymbol}, "ẍ"}, // U1E8D | LATIN SMALL LETTER X WITH DIAERESIS
554 {{XK_Multi_key, XK_quotedbl, XK_x, XK_VoidSymbol}, "ẍ"},
555 {{XK_dead_acute, XK_dead_psili, XK_Greek_ALPHA, XK_VoidSymbol}, "Ἄ"}, // U1F0C | GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
556@@ -2854,9 +2891,12 @@
557 {{XK_Multi_key, XK_Greek_iota, XK_asciitilde, XK_parenleft, XK_Greek_eta, XK_VoidSymbol}, "ᾗ"},
558 {{XK_dead_ogonek, XK_E, XK_VoidSymbol}, "Ę"}, // U0118 | LATIN CAPITAL LETTER E WITH OGONEK
559 {{XK_Multi_key, XK_semicolon, XK_E, XK_VoidSymbol}, "Ę"},
560+ {{XK_Multi_key, XK_E, XK_semicolon, XK_VoidSymbol}, "Ę"},
561 {{XK_Multi_key, XK_comma, XK_E, XK_VoidSymbol}, "Ę"},
562 {{XK_Multi_key, XK_E, XK_comma, XK_VoidSymbol}, "Ę"},
563 {{XK_dead_belowcomma, XK_T, XK_VoidSymbol}, "Ț"}, // U021A | LATIN CAPITAL LETTER T WITH COMMA BELOW
564+ {{XK_Multi_key, XK_semicolon, XK_T, XK_VoidSymbol}, "Ț"},
565+ {{XK_Multi_key, XK_T, XK_semicolon, XK_VoidSymbol}, "Ț"},
566 {{XK_dead_acute, XK_dead_psili, XK_Greek_EPSILON, XK_VoidSymbol}, "Ἔ"}, // U1F1C | GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
567 {{XK_dead_acute, XK_Multi_key, XK_parenright, XK_Greek_EPSILON, XK_VoidSymbol}, "Ἔ"},
568 {{XK_Multi_key, XK_acute, XK_dead_psili, XK_Greek_EPSILON, XK_VoidSymbol}, "Ἔ"},
569@@ -2926,11 +2966,10 @@
570 {{XK_dead_iota, XK_Multi_key, XK_parenright, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾈ"},
571 {{XK_Multi_key, XK_Greek_iota, XK_dead_psili, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾈ"},
572 {{XK_Multi_key, XK_Greek_iota, XK_parenright, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾈ"},
573- {{XK_dead_circumflex, XK_1, XK_VoidSymbol}, "¹"}, // onesuperior | SUPERSCRIPT ONE
574- {{XK_Multi_key, XK_asciicircum, XK_1, XK_VoidSymbol}, "¹"},
575- {{XK_dead_circumflex, XK_KP_1, XK_VoidSymbol}, "¹"},
576- {{XK_Multi_key, XK_asciicircum, XK_KP_1, XK_VoidSymbol}, "¹"},
577- {{XK_Multi_key, XK_1, XK_asciicircum, XK_VoidSymbol}, "¹"},
578+ {{XK_Multi_key, XK_R, XK_equal, XK_VoidSymbol}, "₹"}, // U20b9 | INDIAN RUPEE SIGN
579+ {{XK_Multi_key, XK_equal, XK_R, XK_VoidSymbol}, "₹"},
580+ {{XK_Multi_key, XK_r, XK_equal, XK_VoidSymbol}, "₹"},
581+ {{XK_Multi_key, XK_equal, XK_r, XK_VoidSymbol}, "₹"},
582 {{XK_Multi_key, XK_k, XK_k, XK_VoidSymbol}, "ĸ"}, // U0138 | LATIN SMALL LETTER KRA
583 {{XK_dead_stroke, XK_A, XK_VoidSymbol}, "Ⱥ"}, // U023A | LATIN CAPITAL LETTER A WITH STROKE
584 {{XK_dead_tilde, XK_e, XK_VoidSymbol}, "ẽ"}, // U1EBD | LATIN SMALL LETTER E WITH TILDE
585@@ -2958,9 +2997,9 @@
586 {{XK_Multi_key, XK_parenleft, XK_q, XK_parenright, XK_VoidSymbol}, "ⓠ"}, // U24E0 | CIRCLED LATIN SMALL LETTER Q
587 {{XK_dead_acute, XK_E, XK_VoidSymbol}, "É"}, // Eacute | LATIN CAPITAL LETTER E WITH ACUTE
588 {{XK_Multi_key, XK_acute, XK_E, XK_VoidSymbol}, "É"},
589+ {{XK_Multi_key, XK_E, XK_acute, XK_VoidSymbol}, "É"},
590 {{XK_Multi_key, XK_apostrophe, XK_E, XK_VoidSymbol}, "É"},
591 {{XK_Multi_key, XK_E, XK_apostrophe, XK_VoidSymbol}, "É"},
592- {{XK_Multi_key, XK_E, XK_acute, XK_VoidSymbol}, "É"},
593 {{XK_dead_caron, XK_n, XK_VoidSymbol}, "ň"}, // U0148 | LATIN SMALL LETTER N WITH CARON
594 {{XK_Multi_key, XK_c, XK_n, XK_VoidSymbol}, "ň"},
595 {{XK_Multi_key, XK_less, XK_n, XK_VoidSymbol}, "ň"},
596@@ -3031,6 +3070,8 @@
597 {{XK_Multi_key, XK_greater, XK_space, XK_VoidSymbol}, "^"},
598 {{XK_Multi_key, XK_space, XK_greater, XK_VoidSymbol}, "^"},
599 {{XK_Multi_key, XK_parenleft, XK_r, XK_parenright, XK_VoidSymbol}, "ⓡ"}, // U24E1 | CIRCLED LATIN SMALL LETTER R
600+ {{XK_dead_circumflex, XK_Cyrillic_a, XK_VoidSymbol}, "а̂"}, // CYRILLIC SMALL LETTER A WITH COMBINING CIRCUMFLEX ACCENT
601+ {{XK_Multi_key, XK_asciicircum, XK_Cyrillic_a, XK_VoidSymbol}, "а̂"},
602 {{XK_dead_macron, XK_ae, XK_VoidSymbol}, "ǣ"}, // U01E3 | LATIN SMALL LETTER AE WITH MACRON
603 {{XK_Multi_key, XK_macron, XK_ae, XK_VoidSymbol}, "ǣ"},
604 {{XK_Multi_key, XK_underscore, XK_ae, XK_VoidSymbol}, "ǣ"},
605@@ -3100,12 +3141,13 @@
606 {{XK_Multi_key, XK_quotedbl, XK_Cyrillic_IE, XK_VoidSymbol}, "Ё"},
607 {{XK_dead_breve, XK_a, XK_VoidSymbol}, "ă"}, // U0103 | LATIN SMALL LETTER A WITH BREVE
608 {{XK_Multi_key, XK_U, XK_a, XK_VoidSymbol}, "ă"},
609+ {{XK_Multi_key, XK_u, XK_a, XK_VoidSymbol}, "ă"},
610 {{XK_Multi_key, XK_b, XK_a, XK_VoidSymbol}, "ă"},
611 {{XK_Multi_key, XK_a, XK_parenleft, XK_VoidSymbol}, "ă"},
612 {{XK_dead_acute, XK_W, XK_VoidSymbol}, "Ẃ"}, // U1E82 | LATIN CAPITAL LETTER W WITH ACUTE
613 {{XK_Multi_key, XK_acute, XK_W, XK_VoidSymbol}, "Ẃ"},
614 {{XK_Multi_key, XK_apostrophe, XK_W, XK_VoidSymbol}, "Ẃ"},
615- {{XK_Multi_key, XK_braceleft, XK_braceright, XK_VoidSymbol}, "∅"}, // U2205 | EMPTY SET
616+ {{XK_dead_doublegrave, XK_e, XK_VoidSymbol}, "ȅ"}, // U0205 | LATIN SMALL LETTER E WITH DOUBLE GRAVE
617 {{XK_dead_macron, XK_Cyrillic_a, XK_VoidSymbol}, "а̄"}, // CYRILLIC SMALL LETTER A WITH COMBINING MACRON
618 {{XK_Multi_key, XK_macron, XK_Cyrillic_a, XK_VoidSymbol}, "а̄"},
619 {{XK_Multi_key, XK_underscore, XK_Cyrillic_a, XK_VoidSymbol}, "а̄"},
620@@ -3138,6 +3180,7 @@
621 {{XK_Multi_key, XK_e, XK_minus, XK_VoidSymbol}, "ē"},
622 {{XK_dead_belowdot, XK_Z, XK_VoidSymbol}, "Ẓ"}, // U1E92 | LATIN CAPITAL LETTER Z WITH DOT BELOW
623 {{XK_Multi_key, XK_exclam, XK_Z, XK_VoidSymbol}, "Ẓ"},
624+ {{XK_dead_doublegrave, XK_u, XK_VoidSymbol}, "ȕ"}, // U0215 | LATIN SMALL LETTER U WITH DOUBLE GRAVE
625 {{XK_dead_belowmacron, XK_t, XK_VoidSymbol}, "ṯ"}, // U1E6F | LATIN SMALL LETTER T WITH LINE BELOW
626 {{XK_dead_currency, XK_B, XK_VoidSymbol}, "₱"}, // U20B1 | PESO SIGN
627 {{XK_Multi_key, XK_greater, XK_apostrophe, XK_VoidSymbol}, "’"}, // U2019 | RIGHT SINGLE QUOTATION MARK
628@@ -3199,6 +3242,7 @@
629 {{XK_Multi_key, XK_o, XK_R, XK_VoidSymbol}, "®"},
630 {{XK_Multi_key, XK_O, XK_r, XK_VoidSymbol}, "®"},
631 {{XK_Multi_key, XK_O, XK_R, XK_VoidSymbol}, "®"},
632+ {{XK_Multi_key, XK_R, XK_o, XK_VoidSymbol}, "®"},
633 {{XK_Multi_key, XK_R, XK_O, XK_VoidSymbol}, "®"},
634 {{XK_Multi_key, XK_i, XK_j, XK_VoidSymbol}, "ij"}, // U0133 | LATIN SMALL LIGATURE IJ
635 {{XK_dead_hook, XK_Abreve, XK_VoidSymbol}, "Ẳ"}, // U1EB2 | LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
636@@ -3210,6 +3254,7 @@
637 {{XK_Multi_key, XK_question, XK_b, XK_A, XK_VoidSymbol}, "Ẳ"},
638 {{XK_dead_breve, XK_Ahook, XK_VoidSymbol}, "Ẳ"},
639 {{XK_dead_breve, XK_dead_hook, XK_A, XK_VoidSymbol}, "Ẳ"},
640+ {{XK_Multi_key, XK_period, XK_colon, XK_VoidSymbol}, "∵"}, // because | . : BECAUSE
641 {{XK_dead_tilde, XK_dead_dasia, XK_Greek_iota, XK_VoidSymbol}, "ἷ"}, // U1F37 | GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
642 {{XK_dead_tilde, XK_Multi_key, XK_parenleft, XK_Greek_iota, XK_VoidSymbol}, "ἷ"},
643 {{XK_Multi_key, XK_asciitilde, XK_dead_dasia, XK_Greek_iota, XK_VoidSymbol}, "ἷ"},
644@@ -3222,11 +3267,8 @@
645 {{XK_Multi_key, XK_parenleft, XK_KP_4, XK_5, XK_parenright, XK_VoidSymbol}, "㊺"},
646 {{XK_Multi_key, XK_parenleft, XK_KP_4, XK_KP_5, XK_parenright, XK_VoidSymbol}, "㊺"},
647 {{XK_dead_belowcircumflex, XK_l, XK_VoidSymbol}, "ḽ"}, // U1E3D | LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
648- {{XK_dead_diaeresis, XK_y, XK_VoidSymbol}, "ÿ"}, // ydiaeresis | LATIN SMALL LETTER Y WITH DIAERESIS
649- {{XK_Multi_key, XK_quotedbl, XK_y, XK_VoidSymbol}, "ÿ"},
650- {{XK_Multi_key, XK_y, XK_quotedbl, XK_VoidSymbol}, "ÿ"},
651- {{XK_Multi_key, XK_diaeresis, XK_y, XK_VoidSymbol}, "ÿ"},
652- {{XK_Multi_key, XK_y, XK_diaeresis, XK_VoidSymbol}, "ÿ"},
653+ {{XK_dead_iota, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾼ"}, // U1FBC | GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
654+ {{XK_Multi_key, XK_Greek_iota, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾼ"},
655 {{XK_dead_grave, XK_Cyrillic_a, XK_VoidSymbol}, "а̀"}, // CYRILLIC SMALL LETTER A WITH COMBINING GRAVE ACCENT
656 {{XK_Multi_key, XK_grave, XK_Cyrillic_a, XK_VoidSymbol}, "а̀"},
657 {{XK_Multi_key, XK_3, XK_4, XK_VoidSymbol}, "¾"}, // threequarters | VULGAR FRACTION THREE QUARTERS
658@@ -3348,6 +3390,7 @@
659 {{XK_Multi_key, XK_parenleft, XK_KP_1, XK_KP_8, XK_parenright, XK_VoidSymbol}, "⑱"},
660 {{XK_dead_ogonek, XK_u, XK_VoidSymbol}, "ų"}, // U0173 | LATIN SMALL LETTER U WITH OGONEK
661 {{XK_Multi_key, XK_semicolon, XK_u, XK_VoidSymbol}, "ų"},
662+ {{XK_Multi_key, XK_u, XK_semicolon, XK_VoidSymbol}, "ų"},
663 {{XK_Multi_key, XK_comma, XK_u, XK_VoidSymbol}, "ų"},
664 {{XK_Multi_key, XK_u, XK_comma, XK_VoidSymbol}, "ų"},
665 {{XK_dead_grave, XK_Y, XK_VoidSymbol}, "Ỳ"}, // U1EF2 | LATIN CAPITAL LETTER Y WITH GRAVE
666@@ -3381,7 +3424,7 @@
667 {{XK_Multi_key, XK_acute, XK_Greek_ETA, XK_VoidSymbol}, "Ή"},
668 {{XK_Multi_key, XK_apostrophe, XK_Greek_ETA, XK_VoidSymbol}, "Ή"},
669 {{XK_Multi_key, XK_Greek_ETA, XK_apostrophe, XK_VoidSymbol}, "Ή"},
670- {{XK_dead_currency, XK_p, XK_VoidSymbol}, "₰"}, // U20B0 | GERMAN PENNY SIGN
671+ {{XK_dead_doublegrave, XK_I, XK_VoidSymbol}, "Ȉ"}, // U0208 | LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
672 {{XK_dead_abovedot, XK_x, XK_VoidSymbol}, "ẋ"}, // U1E8B | LATIN SMALL LETTER X WITH DOT ABOVE
673 {{XK_Multi_key, XK_period, XK_x, XK_VoidSymbol}, "ẋ"},
674 {{XK_dead_abovedot, XK_C, XK_VoidSymbol}, "Ċ"}, // U010A | LATIN CAPITAL LETTER C WITH DOT ABOVE
675@@ -3410,6 +3453,8 @@
676 {{XK_dead_cedilla, XK_dead_currency, XK_c, XK_VoidSymbol}, "₵"},
677 {{XK_dead_currency, XK_dead_cedilla, XK_c, XK_VoidSymbol}, "₵"},
678 {{XK_dead_belowcomma, XK_S, XK_VoidSymbol}, "Ș"}, // U0218 | LATIN CAPITAL LETTER S WITH COMMA BELOW
679+ {{XK_Multi_key, XK_semicolon, XK_S, XK_VoidSymbol}, "Ș"},
680+ {{XK_Multi_key, XK_S, XK_semicolon, XK_VoidSymbol}, "Ș"},
681 {{XK_dead_abovedot, XK_Multi_key, XK_f, XK_s, XK_VoidSymbol}, "ẛ"}, // U1e9b | LATIN SMALL LETTER LONG S WITH DOT ABOVE
682 {{XK_Multi_key, XK_dead_abovedot, XK_f, XK_s, XK_VoidSymbol}, "ẛ"},
683 {{XK_dead_caron, XK_E, XK_VoidSymbol}, "Ě"}, // U011A | LATIN CAPITAL LETTER E WITH CARON
684@@ -3587,7 +3632,6 @@
685 {{XK_Multi_key, XK_U, XK_underscore, XK_VoidSymbol}, "Ū"},
686 {{XK_Multi_key, XK_minus, XK_U, XK_VoidSymbol}, "Ū"},
687 {{XK_Multi_key, XK_U, XK_minus, XK_VoidSymbol}, "Ū"},
688- {{XK_Multi_key, XK_backslash, XK_o, XK_slash, XK_VoidSymbol}, "🙌"}, // PERSON RAISING BOTH HANDS IN CELEBRATION
689 {{XK_dead_circumflex, XK_Multi_key, XK_S, XK_M, XK_VoidSymbol}, "℠"}, // U2120 | SERVICE MARK
690 {{XK_Multi_key, XK_S, XK_M, XK_VoidSymbol}, "℠"},
691 {{XK_dead_circumflex, XK_Multi_key, XK_s, XK_M, XK_VoidSymbol}, "℠"},
692@@ -3619,14 +3663,19 @@
693 {{XK_Multi_key, XK_acute, XK_z, XK_VoidSymbol}, "ź"},
694 {{XK_Multi_key, XK_apostrophe, XK_z, XK_VoidSymbol}, "ź"},
695 {{XK_Multi_key, XK_z, XK_apostrophe, XK_VoidSymbol}, "ź"},
696- {{XK_Multi_key, XK_u, XK_b, XK_u, XK_n, XK_t, XK_u, XK_VoidSymbol}, ""}, // UBUNTU CIRCLE
697- {{XK_Multi_key, XK_U, XK_B, XK_U, XK_N, XK_T, XK_U, XK_VoidSymbol}, ""},
698+ {{XK_dead_diaeresis, XK_y, XK_VoidSymbol}, "ÿ"}, // ydiaeresis | LATIN SMALL LETTER Y WITH DIAERESIS
699+ {{XK_Multi_key, XK_quotedbl, XK_y, XK_VoidSymbol}, "ÿ"},
700+ {{XK_Multi_key, XK_y, XK_quotedbl, XK_VoidSymbol}, "ÿ"},
701+ {{XK_Multi_key, XK_diaeresis, XK_y, XK_VoidSymbol}, "ÿ"},
702+ {{XK_Multi_key, XK_y, XK_diaeresis, XK_VoidSymbol}, "ÿ"},
703 {{XK_dead_dasia, XK_Greek_alpha, XK_VoidSymbol}, "ἁ"}, // U1F01 | GREEK SMALL LETTER ALPHA WITH DASIA
704 {{XK_Multi_key, XK_parenleft, XK_Greek_alpha, XK_VoidSymbol}, "ἁ"},
705 {{XK_dead_grave, XK_W, XK_VoidSymbol}, "Ẁ"}, // U1E80 | LATIN CAPITAL LETTER W WITH GRAVE
706 {{XK_Multi_key, XK_grave, XK_W, XK_VoidSymbol}, "Ẁ"},
707+ {{XK_dead_invertedbreve, XK_a, XK_VoidSymbol}, "ȃ"}, // U0203 | LATIN SMALL LETTER A WITH INVERTED BREVE
708 {{XK_dead_ogonek, XK_a, XK_VoidSymbol}, "ą"}, // U0105 | LATIN SMALL LETTER A WITH OGONEK
709 {{XK_Multi_key, XK_semicolon, XK_a, XK_VoidSymbol}, "ą"},
710+ {{XK_Multi_key, XK_a, XK_semicolon, XK_VoidSymbol}, "ą"},
711 {{XK_Multi_key, XK_comma, XK_a, XK_VoidSymbol}, "ą"},
712 {{XK_Multi_key, XK_a, XK_comma, XK_VoidSymbol}, "ą"},
713 {{XK_Multi_key, XK_underscore, XK_4, XK_VoidSymbol}, "₄"}, // U2084 | SUBSCRIPT FOUR
714@@ -3659,7 +3708,7 @@
715 {{XK_Multi_key, XK_parenleft, XK_Greek_epsilon, XK_VoidSymbol}, "ἑ"},
716 {{XK_dead_circumflex, XK_Z, XK_VoidSymbol}, "Ẑ"}, // U1E90 | LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
717 {{XK_Multi_key, XK_asciicircum, XK_Z, XK_VoidSymbol}, "Ẑ"},
718- {{XK_Multi_key, XK_1, XK_1, XK_0, XK_VoidSymbol}, "⅒"}, // U2152 | VULGAR FRACTION ONE TENTH
719+ {{XK_dead_invertedbreve, XK_r, XK_VoidSymbol}, "ȓ"}, // U0213 | LATIN SMALL LETTER R WITH INVERTED BREVE
720 {{XK_Multi_key, XK_parenleft, XK_M, XK_parenright, XK_VoidSymbol}, "Ⓜ"}, // U24C2 | CIRCLED LATIN CAPITAL LETTER M
721 {{XK_dead_breve, XK_e, XK_VoidSymbol}, "ĕ"}, // U0115 | LATIN SMALL LETTER E WITH BREVE
722 {{XK_Multi_key, XK_U, XK_e, XK_VoidSymbol}, "ĕ"},
723@@ -3737,8 +3786,8 @@
724 {{XK_dead_diaeresis, XK_A, XK_VoidSymbol}, "Ä"}, // Adiaeresis | LATIN CAPITAL LETTER A WITH DIAERESIS
725 {{XK_Multi_key, XK_quotedbl, XK_A, XK_VoidSymbol}, "Ä"},
726 {{XK_Multi_key, XK_A, XK_quotedbl, XK_VoidSymbol}, "Ä"},
727+ {{XK_Multi_key, XK_diaeresis, XK_A, XK_VoidSymbol}, "Ä"},
728 {{XK_Multi_key, XK_A, XK_diaeresis, XK_VoidSymbol}, "Ä"},
729- {{XK_Multi_key, XK_diaeresis, XK_A, XK_VoidSymbol}, "Ä"},
730 {{XK_dead_tilde, XK_Greek_eta, XK_VoidSymbol}, "ῆ"}, // U1FC6 | GREEK SMALL LETTER ETA WITH PERISPOMENI
731 {{XK_Multi_key, XK_asciitilde, XK_Greek_eta, XK_VoidSymbol}, "ῆ"},
732 {{XK_dead_belowcircumflex, XK_n, XK_VoidSymbol}, "ṋ"}, // U1E4B | LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
733@@ -3831,6 +3880,9 @@
734 {{XK_Multi_key, XK_numbersign, XK_E, XK_VoidSymbol}, "♫"}, // U266b | BEAMED EIGHTH NOTES
735 {{XK_dead_ogonek, XK_O, XK_VoidSymbol}, "Ǫ"}, // U01EA | LATIN CAPITAL LETTER O WITH OGONEK
736 {{XK_Multi_key, XK_semicolon, XK_O, XK_VoidSymbol}, "Ǫ"},
737+ {{XK_Multi_key, XK_O, XK_semicolon, XK_VoidSymbol}, "Ǫ"},
738+ {{XK_Multi_key, XK_comma, XK_O, XK_VoidSymbol}, "Ǫ"},
739+ {{XK_Multi_key, XK_O, XK_comma, XK_VoidSymbol}, "Ǫ"},
740 {{XK_dead_diaeresis, XK_Cyrillic_E, XK_VoidSymbol}, "Ӭ"}, // U04EC | CYRILLIC CAPITAL LETTER E WITH DIAERESIS
741 {{XK_Multi_key, XK_quotedbl, XK_Cyrillic_E, XK_VoidSymbol}, "Ӭ"},
742 {{XK_dead_circumflex, XK_equal, XK_VoidSymbol}, "⁼"}, // U207C | SUPERSCRIPT EQUALS SIGN
743@@ -3848,11 +3900,8 @@
744 {{XK_dead_circumflex, XK_w, XK_VoidSymbol}, "ŵ"}, // U0175 | LATIN SMALL LETTER W WITH CIRCUMFLEX
745 {{XK_Multi_key, XK_asciicircum, XK_w, XK_VoidSymbol}, "ŵ"},
746 {{XK_Multi_key, XK_w, XK_asciicircum, XK_VoidSymbol}, "ŵ"},
747- {{XK_dead_circumflex, XK_o, XK_VoidSymbol}, "ô"}, // ocircumflex | LATIN SMALL LETTER O WITH CIRCUMFLEX
748- {{XK_Multi_key, XK_asciicircum, XK_o, XK_VoidSymbol}, "ô"},
749- {{XK_Multi_key, XK_o, XK_asciicircum, XK_VoidSymbol}, "ô"},
750- {{XK_Multi_key, XK_greater, XK_o, XK_VoidSymbol}, "ô"},
751- {{XK_Multi_key, XK_o, XK_greater, XK_VoidSymbol}, "ô"},
752+ {{XK_Multi_key, XK_u, XK_b, XK_u, XK_n, XK_t, XK_u, XK_VoidSymbol}, ""}, // UBUNTU CIRCLE
753+ {{XK_Multi_key, XK_U, XK_B, XK_U, XK_N, XK_T, XK_U, XK_VoidSymbol}, ""},
754 {{XK_dead_tilde, XK_Greek_omega, XK_VoidSymbol}, "ῶ"}, // U1FF6 | GREEK SMALL LETTER OMEGA WITH PERISPOMENI
755 {{XK_Multi_key, XK_asciitilde, XK_Greek_omega, XK_VoidSymbol}, "ῶ"},
756 {{XK_Multi_key, XK_parenleft, XK_kana_RU, XK_parenright, XK_VoidSymbol}, "㋸"}, // U32F8 | CIRCLED KATAKANA RU
757@@ -3887,6 +3936,7 @@
758 {{XK_dead_caron, XK_5, XK_VoidSymbol}, "₅"},
759 {{XK_dead_ogonek, XK_A, XK_VoidSymbol}, "Ą"}, // U0104 | LATIN CAPITAL LETTER A WITH OGONEK
760 {{XK_Multi_key, XK_semicolon, XK_A, XK_VoidSymbol}, "Ą"},
761+ {{XK_Multi_key, XK_A, XK_semicolon, XK_VoidSymbol}, "Ą"},
762 {{XK_Multi_key, XK_comma, XK_A, XK_VoidSymbol}, "Ą"},
763 {{XK_Multi_key, XK_A, XK_comma, XK_VoidSymbol}, "Ą"},
764 {{XK_dead_belowmacron, XK_B, XK_VoidSymbol}, "Ḇ"}, // U1E06 | LATIN CAPITAL LETTER B WITH LINE BELOW
765@@ -3900,10 +3950,12 @@
766 {{XK_Multi_key, XK_Greek_iota, XK_dead_grave, XK_parenleft, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾋ"},
767 {{XK_Multi_key, XK_Greek_iota, XK_grave, XK_dead_dasia, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾋ"},
768 {{XK_Multi_key, XK_Greek_iota, XK_grave, XK_parenleft, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾋ"},
769+ {{XK_dead_invertedbreve, XK_O, XK_VoidSymbol}, "Ȏ"}, // U020E | LATIN CAPITAL LETTER O WITH INVERTED BREVE
770 {{XK_dead_circumflex, XK_z, XK_VoidSymbol}, "ẑ"}, // U1E91 | LATIN SMALL LETTER Z WITH CIRCUMFLEX
771 {{XK_Multi_key, XK_asciicircum, XK_z, XK_VoidSymbol}, "ẑ"},
772 {{XK_dead_psili, XK_Greek_epsilon, XK_VoidSymbol}, "ἐ"}, // U1F10 | GREEK SMALL LETTER EPSILON WITH PSILI
773 {{XK_Multi_key, XK_parenright, XK_Greek_epsilon, XK_VoidSymbol}, "ἐ"},
774+ {{XK_dead_currency, XK_p, XK_VoidSymbol}, "₰"}, // U20B0 | GERMAN PENNY SIGN
775 {{XK_dead_breve, XK_E, XK_VoidSymbol}, "Ĕ"}, // U0114 | LATIN CAPITAL LETTER E WITH BREVE
776 {{XK_Multi_key, XK_U, XK_E, XK_VoidSymbol}, "Ĕ"},
777 {{XK_Multi_key, XK_b, XK_E, XK_VoidSymbol}, "Ĕ"},
778@@ -3939,8 +3991,8 @@
779 {{XK_Multi_key, XK_parenright, XK_Greek_eta, XK_VoidSymbol}, "ἠ"},
780 {{XK_dead_semivoiced_sound, XK_kana_HE, XK_VoidSymbol}, "ペ"}, // U30DA | KATAKANA LETTER PE
781 {{XK_Multi_key, XK_Y, XK_equal, XK_VoidSymbol}, "¥"}, // yen | YEN SIGN
782+ {{XK_Multi_key, XK_equal, XK_Y, XK_VoidSymbol}, "¥"},
783 {{XK_Multi_key, XK_y, XK_equal, XK_VoidSymbol}, "¥"},
784- {{XK_Multi_key, XK_equal, XK_Y, XK_VoidSymbol}, "¥"},
785 {{XK_Multi_key, XK_equal, XK_y, XK_VoidSymbol}, "¥"},
786 {{XK_Multi_key, XK_Y, XK_minus, XK_VoidSymbol}, "¥"},
787 {{XK_Multi_key, XK_minus, XK_Y, XK_VoidSymbol}, "¥"},
788@@ -4027,8 +4079,11 @@
789 {{XK_Multi_key, XK_apostrophe, XK_asciicircum, XK_o, XK_VoidSymbol}, "ố"},
790 {{XK_dead_circumflex, XK_oacute, XK_VoidSymbol}, "ố"},
791 {{XK_dead_circumflex, XK_dead_acute, XK_o, XK_VoidSymbol}, "ố"},
792- {{XK_dead_psili, XK_Greek_upsilon, XK_VoidSymbol}, "ὐ"}, // U1F50 | GREEK SMALL LETTER UPSILON WITH PSILI
793- {{XK_Multi_key, XK_parenright, XK_Greek_upsilon, XK_VoidSymbol}, "ὐ"},
794+ {{XK_dead_circumflex, XK_1, XK_VoidSymbol}, "¹"}, // onesuperior | SUPERSCRIPT ONE
795+ {{XK_Multi_key, XK_asciicircum, XK_1, XK_VoidSymbol}, "¹"},
796+ {{XK_Multi_key, XK_1, XK_asciicircum, XK_VoidSymbol}, "¹"},
797+ {{XK_dead_circumflex, XK_KP_1, XK_VoidSymbol}, "¹"},
798+ {{XK_Multi_key, XK_asciicircum, XK_KP_1, XK_VoidSymbol}, "¹"},
799 {{XK_Multi_key, XK_parenleft, XK_s, XK_parenright, XK_VoidSymbol}, "ⓢ"}, // U24E2 | CIRCLED LATIN SMALL LETTER S
800 {{XK_dead_tilde, XK_O, XK_VoidSymbol}, "Õ"}, // Otilde | LATIN CAPITAL LETTER O WITH TILDE
801 {{XK_Multi_key, XK_asciitilde, XK_O, XK_VoidSymbol}, "Õ"},
802@@ -4054,7 +4109,11 @@
803 {{XK_Multi_key, XK_Greek_iota, XK_asciitilde, XK_parenright, XK_Greek_ALPHA, XK_VoidSymbol}, "ᾎ"},
804 {{XK_dead_diaeresis, XK_Cyrillic_zhe, XK_VoidSymbol}, "ӝ"}, // U04DD | CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
805 {{XK_Multi_key, XK_quotedbl, XK_Cyrillic_zhe, XK_VoidSymbol}, "ӝ"},
806- {{XK_dead_invertedbreve, XK_Cyrillic_i, XK_VoidSymbol}, "и̑"}, // CYRILLIC SMALL LETTER I WITH COMBINING INVERTED BREVE
807+ {{XK_dead_acute, XK_J, XK_VoidSymbol}, "J́"}, // LATIN CAPITAL LETTER J U004A with COMBINING ACUTE ACCENT U0301
808+ {{XK_Multi_key, XK_apostrophe, XK_J, XK_VoidSymbol}, "J́"},
809+ {{XK_Multi_key, XK_J, XK_apostrophe, XK_VoidSymbol}, "J́"},
810+ {{XK_Multi_key, XK_acute, XK_J, XK_VoidSymbol}, "J́"},
811+ {{XK_Multi_key, XK_J, XK_acute, XK_VoidSymbol}, "J́"},
812 {{XK_dead_macron, XK_adiaeresis, XK_VoidSymbol}, "ǟ"}, // U01DF | LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
813 {{XK_Multi_key, XK_macron, XK_adiaeresis, XK_VoidSymbol}, "ǟ"},
814 {{XK_Multi_key, XK_underscore, XK_adiaeresis, XK_VoidSymbol}, "ǟ"},
815@@ -4112,6 +4171,7 @@
816 {{XK_Multi_key, XK_T, XK_m, XK_VoidSymbol}, "™"},
817 {{XK_dead_circumflex, XK_Multi_key, XK_t, XK_m, XK_VoidSymbol}, "™"},
818 {{XK_Multi_key, XK_t, XK_m, XK_VoidSymbol}, "™"},
819+ {{XK_Multi_key, XK_parenleft, XK_kana_NU, XK_parenright, XK_VoidSymbol}, "㋦"}, // U32E6 | CIRCLED KATAKANA NU
820 {{XK_dead_diaeresis, XK_Cyrillic_e, XK_VoidSymbol}, "ӭ"}, // U04ED | CYRILLIC SMALL LETTER E WITH DIAERESIS
821 {{XK_Multi_key, XK_quotedbl, XK_Cyrillic_e, XK_VoidSymbol}, "ӭ"},
822 {{XK_dead_doublegrave, XK_Cyrillic_ER, XK_VoidSymbol}, "Р̏"}, // CYRILLIC CAPITAL LETTER ER WITH COMBINING DOUBLE GRAVE ACCENT
823@@ -4167,9 +4227,7 @@
824 {{XK_Multi_key, XK_F, XK_i, XK_VoidSymbol}, "ffi"}, // Ufb03 | LATIN SMALL LIGATURE FFI
825 {{XK_dead_abovedot, XK_W, XK_VoidSymbol}, "Ẇ"}, // U1E86 | LATIN CAPITAL LETTER W WITH DOT ABOVE
826 {{XK_Multi_key, XK_period, XK_W, XK_VoidSymbol}, "Ẇ"},
827- {{XK_dead_acute, XK_Cyrillic_O, XK_VoidSymbol}, "О́"}, // CYRILLIC CAPITAL LETTER O WITH COMBINING ACUTE ACCENT
828- {{XK_Multi_key, XK_acute, XK_Cyrillic_O, XK_VoidSymbol}, "О́"},
829- {{XK_Multi_key, XK_apostrophe, XK_Cyrillic_O, XK_VoidSymbol}, "О́"},
830+ {{XK_dead_doublegrave, XK_i, XK_VoidSymbol}, "ȉ"}, // U0209 | LATIN SMALL LETTER I WITH DOUBLE GRAVE
831 {{XK_dead_acute, XK_Greek_EPSILON, XK_VoidSymbol}, "Έ"}, // U0388 | GREEK CAPITAL LETTER EPSILON WITH TONOS
832 {{XK_Multi_key, XK_acute, XK_Greek_EPSILON, XK_VoidSymbol}, "Έ"},
833 {{XK_Multi_key, XK_apostrophe, XK_Greek_EPSILON, XK_VoidSymbol}, "Έ"},
834@@ -4199,6 +4257,11 @@
835 {{XK_Multi_key, XK_KP_Divide, XK_Cyrillic_GHE, XK_VoidSymbol}, "Ғ"},
836 {{XK_dead_belowmacron, XK_h, XK_VoidSymbol}, "ẖ"}, // U1E96 | LATIN SMALL LETTER H WITH LINE BELOW
837 {{XK_dead_belowcomma, XK_s, XK_VoidSymbol}, "ș"}, // U0219 | LATIN SMALL LETTER S WITH COMMA BELOW
838+ {{XK_Multi_key, XK_semicolon, XK_s, XK_VoidSymbol}, "ș"},
839+ {{XK_Multi_key, XK_s, XK_semicolon, XK_VoidSymbol}, "ș"},
840+ {{XK_dead_acute, XK_Cyrillic_O, XK_VoidSymbol}, "О́"}, // CYRILLIC CAPITAL LETTER O WITH COMBINING ACUTE ACCENT
841+ {{XK_Multi_key, XK_acute, XK_Cyrillic_O, XK_VoidSymbol}, "О́"},
842+ {{XK_Multi_key, XK_apostrophe, XK_Cyrillic_O, XK_VoidSymbol}, "О́"},
843 {{XK_dead_grave, XK_dead_dasia, XK_Greek_EPSILON, XK_VoidSymbol}, "Ἓ"}, // U1F1B | GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
844 {{XK_dead_grave, XK_Multi_key, XK_parenleft, XK_Greek_EPSILON, XK_VoidSymbol}, "Ἓ"},
845 {{XK_Multi_key, XK_grave, XK_dead_dasia, XK_Greek_EPSILON, XK_VoidSymbol}, "Ἓ"},
846@@ -4266,6 +4329,11 @@
847 {{XK_dead_circumflex, XK_Multi_key, XK_underscore, XK_o, XK_VoidSymbol}, "º"}, // masculine | MASCULINE ORDINAL INDICATOR
848 {{XK_Multi_key, XK_asciicircum, XK_underscore, XK_o, XK_VoidSymbol}, "º"},
849 {{XK_dead_circumflex, XK_nobreakspace, XK_VoidSymbol}, "̂"}, // U0302 | COMBINING CIRCUMFLEX ACCENT
850+ {{XK_dead_acute, XK_j, XK_VoidSymbol}, "j́"}, // LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
851+ {{XK_Multi_key, XK_apostrophe, XK_j, XK_VoidSymbol}, "j́"},
852+ {{XK_Multi_key, XK_j, XK_apostrophe, XK_VoidSymbol}, "j́"},
853+ {{XK_Multi_key, XK_acute, XK_j, XK_VoidSymbol}, "j́"},
854+ {{XK_Multi_key, XK_j, XK_acute, XK_VoidSymbol}, "j́"},
855 {{XK_dead_abovedot, XK_L, XK_VoidSymbol}, "Ŀ"}, // U013F | LATIN CAPITAL LETTER L WITH MIDDLE DOT
856 {{XK_Multi_key, XK_parenleft, XK_4, XK_9, XK_parenright, XK_VoidSymbol}, "㊾"}, // U32BE | CIRCLED NUMBER FORTY NINE
857 {{XK_Multi_key, XK_parenleft, XK_4, XK_KP_9, XK_parenright, XK_VoidSymbol}, "㊾"},
858@@ -4297,9 +4365,9 @@
859 {{XK_Multi_key, XK_grave, XK_parenleft, XK_Greek_OMICRON, XK_VoidSymbol}, "Ὃ"},
860 {{XK_dead_circumflex, XK_E, XK_VoidSymbol}, "Ê"}, // Ecircumflex | LATIN CAPITAL LETTER E WITH CIRCUMFLEX
861 {{XK_Multi_key, XK_asciicircum, XK_E, XK_VoidSymbol}, "Ê"},
862+ {{XK_Multi_key, XK_E, XK_asciicircum, XK_VoidSymbol}, "Ê"},
863 {{XK_Multi_key, XK_greater, XK_E, XK_VoidSymbol}, "Ê"},
864 {{XK_Multi_key, XK_E, XK_greater, XK_VoidSymbol}, "Ê"},
865- {{XK_Multi_key, XK_E, XK_asciicircum, XK_VoidSymbol}, "Ê"},
866 {{XK_dead_doublegrave, XK_Cyrillic_er, XK_VoidSymbol}, "р̏"}, // CYRILLIC SMALL LETTER ER WITH COMBINING DOUBLE GRAVE ACCENT
867 {{XK_Multi_key, XK_grave, XK_grave, XK_Cyrillic_er, XK_VoidSymbol}, "р̏"},
868 {{XK_dead_breve, XK_o, XK_VoidSymbol}, "ŏ"}, // U014F | LATIN SMALL LETTER O WITH BREVE
869
870=== modified file 'Nux/WindowThread.h'
871--- Nux/WindowThread.h 2013-12-18 21:43:30 +0000
872+++ Nux/WindowThread.h 2015-09-21 14:13:08 +0000
873@@ -594,7 +594,7 @@
874
875 /*!
876 This list contains al lthe windows which will be presented on the next frame
877- (eg, after ForeignFrameEnded they are moved into m_presentation_list_embedded
878+ (eg, after ForeignFrameEnded they are moved into presentation_list_embedded_
879 and marked for presentation)
880 */
881 std::vector<WeakBaseWindowPtr> presentation_list_embedded_next_frame_;
882
883=== modified file 'NuxCore/Rect.cpp'
884--- NuxCore/Rect.cpp 2013-10-30 20:55:02 +0000
885+++ NuxCore/Rect.cpp 2015-09-21 14:13:08 +0000
886@@ -206,8 +206,8 @@
887
888 std::ostream& operator<<(std::ostream &os, Rect const& rect)
889 {
890- return os << "Rect, x: " << rect.x << " y: " << rect.y << " width: " <<
891- rect.width << " height: " << rect.height << std::endl;
892+ return os << "Rect, x: " << rect.x << " y: " << rect.y
893+ << " width: " << rect.width << " height: " << rect.height;
894 }
895 }
896
897
898=== modified file 'NuxGraphics/GraphicsDisplayX11.cpp'
899--- NuxGraphics/GraphicsDisplayX11.cpp 2015-05-23 02:15:28 +0000
900+++ NuxGraphics/GraphicsDisplayX11.cpp 2015-09-21 14:13:08 +0000
901@@ -72,9 +72,6 @@
902
903 void initialize(Display *dpy)
904 {
905- if (XdndPosition)
906- return;
907-
908 XdndPosition = XInternAtom(dpy, "XdndPosition", False);
909 XdndEnter = XInternAtom(dpy, "XdndEnter", False);
910 XdndStatus = XInternAtom(dpy, "XdndStatus", False);
911
912=== modified file 'configure.ac'
913--- configure.ac 2015-08-12 14:50:58 +0000
914+++ configure.ac 2015-09-21 14:13:08 +0000
915@@ -333,6 +333,17 @@
916
917 AM_CONDITIONAL(BUILD_TESTS, [test "x$enable_tests" = "xyes"])
918
919+AS_IF([test "x$enable_tests" = "xyes" &&
920+ test "x$enable_x_support" = "xyes"],
921+ [
922+ PKG_CHECK_MODULES(NUX_TESTS, x11)
923+ ],
924+ []
925+)
926+
927+AC_SUBST(NUX_TESTS_CFLAGS)
928+AC_SUBST(NUX_TESTS_LIBS)
929+
930 ###########################
931 # gcov coverage reporting
932 ###########################
933
934=== modified file 'debian/changelog'
935--- debian/changelog 2015-08-12 14:50:58 +0000
936+++ debian/changelog 2015-09-21 14:13:08 +0000
937@@ -1,8 +1,15 @@
938 nux (4.0.8-0ubuntu1) UNRELEASED; urgency=medium
939
940+ [ Stephen M. Webb ]
941 * new upstream release 4.0.8
942 * debian/control (Standards-Version): bump to 3.9.6 (no changes)
943
944+ [ Marco Trevisan (Treviño) ]
945+ * debian/control:
946+ - add xserver-xorg-video-dummy as build dependency
947+ - set libnux-4.0-common arch to all
948+ - depend on source:Version of libnux-4.0-common
949+
950 -- Stephen M. Webb <stephen.webb@canonical.com> Wed, 12 Aug 2015 09:33:13 -0400
951
952 nux (4.0.7+15.10.20150802-0ubuntu1) wily; urgency=medium
953
954=== modified file 'debian/control'
955--- debian/control 2015-08-12 14:50:58 +0000
956+++ debian/control 2015-09-21 14:13:08 +0000
957@@ -33,6 +33,7 @@
958 libgeis-dev (>= 2.2.10),
959 libibus-1.0-dev,
960 libxtst-dev,
961+ xserver-xorg-video-dummy,
962 Standards-Version: 3.9.6
963 Section: libs
964 Homepage: http://launchpad.net/nux
965@@ -44,7 +45,7 @@
966 Section: libs
967 Architecture: any
968 Pre-Depends: ${misc:Pre-Depends},
969-Depends: libnux-4.0-common (= ${binary:Version}),
970+Depends: libnux-4.0-common (= ${source:Version}),
971 ${shlibs:Depends},
972 ${misc:Depends}
973 Provides: libnux-abiversion-${nuxabiversion}
974@@ -98,7 +99,7 @@
975
976 Package: libnux-4.0-common
977 Section: libs
978-Architecture: any
979+Architecture: all
980 Multi-Arch: foreign
981 Depends: ${misc:Depends}
982 Description: Visual rendering toolkit for real-time applications - common files
983
984=== modified file 'tests/Makefile.am'
985--- tests/Makefile.am 2015-08-12 14:50:30 +0000
986+++ tests/Makefile.am 2015-09-21 14:13:08 +0000
987@@ -30,13 +30,45 @@
988 xtest-text-entry-xim \
989 xtest-focus-on-mouse-enter
990
991+TestFlags = -I$(srcdir) \
992+ -I$(top_srcdir) \
993+ -DPREFIX=\""$(prefix)"\" \
994+ -DLIBDIR=\""$(libdir)"\" \
995+ -DDATADIR=\""$(datadir)"\" \
996+ -DG_LOG_DOMAIN=\"NuxTests\" \
997+ -DTESTDIR=\""$(top_srcdir)/tests"\" \
998+ $(GCC_TESTS_FLAGS) \
999+ $(NUX_CORE_CFLAGS) \
1000+ $(NUX_EXAMPLES_CFLAGS) \
1001+ $(NUX_CFLAGS) \
1002+ $(NUX_TESTS_CFLAGS) \
1003+ $(MAINTAINER_CFLAGS) \
1004+ $(IBUS_CFLAGS) \
1005+ $(GEIS_CFLAGS)
1006+
1007+TestLibs = $(top_builddir)/NuxCore/libnux-core-@NUX_API_VERSION@.la \
1008+ $(top_builddir)/NuxGraphics/libnux-graphics-@NUX_API_VERSION@.la \
1009+ $(top_builddir)/Nux/libnux-@NUX_API_VERSION@.la \
1010+ $(NUX_TESTS_LIBS) \
1011+ $(NUX_LIBS)
1012+
1013+GTestFlags = $(TestFlags) \
1014+ $(GMOCK_CPPFLAGS) \
1015+ $(GTEST_CPPFLAGS)
1016+
1017+GTestLibs = $(TestLibs) \
1018+ libgtest.a
1019+
1020+GTestLDFlags = -lboost_system \
1021+ -lboost_filesystem
1022+
1023 ##### gtest-nuxcore ######
1024
1025 gtest_nuxcore_SOURCES = \
1026 Helpers.h \
1027 Helpers.cpp \
1028- $(top_builddir)/NuxCore/ColorPrivate.cpp \
1029- $(top_builddir)/NuxCore/ColorPrivate.h \
1030+ $(top_srcdir)/NuxCore/ColorPrivate.cpp \
1031+ $(top_srcdir)/NuxCore/ColorPrivate.h \
1032 gtest-nuxcore-animation.cpp \
1033 gtest-nuxcore-async-file-writer.cpp \
1034 gtest-nuxcore-color.cpp \
1035@@ -47,29 +79,9 @@
1036 gtest-nuxcore-properties.cpp \
1037 gtest-nuxcore-rolling-file-appender.cpp
1038
1039-gtest_nuxcore_CPPFLAGS = \
1040- -I$(srcdir) \
1041- -I$(top_srcdir) \
1042- -DPREFIX=\""$(prefix)"\" \
1043- -DLIBDIR=\""$(libdir)"\" \
1044- -DDATADIR=\""$(datadir)"\" \
1045- -DG_LOG_DOMAIN=\"NuxTests\" \
1046- -DTESTDIR=\""$(top_srcdir)/tests"\" \
1047- $(GCC_TESTS_FLAGS) \
1048- $(GMOCK_CPPFLAGS) \
1049- $(GTEST_CPPFLAGS) \
1050- $(NUX_CORE_CFLAGS) \
1051- $(NUX_EXAMPLES_CFLAGS) \
1052- $(NUX_CFLAGS) \
1053- $(MAINTAINER_CFLAGS)
1054-
1055-gtest_nuxcore_LDADD = \
1056- $(top_builddir)/NuxCore/libnux-core-@NUX_API_VERSION@.la \
1057- $(NUX_LIBS) \
1058- libgtest.a
1059-
1060-gtest_nuxcore_LDFLAGS = -lboost_system \
1061- -lboost_filesystem
1062+gtest_nuxcore_CPPFLAGS = $(GTestFlags)
1063+gtest_nuxcore_LDADD = $(GTestLibs)
1064+gtest_nuxcore_LDFLAGS = $(GTestLDFlags)
1065
1066 ##### gtest-nux ######
1067
1068@@ -92,30 +104,8 @@
1069 gtest-nux-gesturebroker.cpp
1070 endif
1071
1072-gtest_nux_CPPFLAGS = \
1073- -I$(srcdir) \
1074- -I$(top_srcdir) \
1075- -DPREFIX=\""$(prefix)"\" \
1076- -DLIBDIR=\""$(libdir)"\" \
1077- -DDATADIR=\""$(datadir)"\" \
1078- -DG_LOG_DOMAIN=\"NuxTests\" \
1079- -DTESTDIR=\""$(top_srcdir)/tests"\" \
1080- $(GCC_TESTS_FLAGS) \
1081- $(GMOCK_CPPFLAGS) \
1082- $(GTEST_CPPFLAGS) \
1083- $(NUX_CORE_CFLAGS) \
1084- $(NUX_EXAMPLES_CFLAGS) \
1085- $(NUX_CFLAGS) \
1086- $(MAINTAINER_CFLAGS) \
1087- $(IBUS_CFLAGS) \
1088- $(GEIS_CFLAGS)
1089-
1090-gtest_nux_LDADD = \
1091- $(top_builddir)/NuxCore/libnux-core-@NUX_API_VERSION@.la \
1092- $(top_builddir)/NuxGraphics/libnux-graphics-@NUX_API_VERSION@.la \
1093- $(top_builddir)/Nux/libnux-@NUX_API_VERSION@.la \
1094- $(NUX_LIBS) \
1095- libgtest.a
1096+gtest_nux_CPPFLAGS = $(GTestFlags)
1097+gtest_nux_LDADD = $(GTestLibs)
1098
1099 ##### gtest-nux-slow ######
1100
1101@@ -133,33 +123,9 @@
1102 gtest-nux-windowcompositor.cpp \
1103 gtest-nux-windowthread.cpp
1104
1105-gtest_nux_slow_CPPFLAGS = \
1106- -I$(srcdir) \
1107- -I$(top_srcdir) \
1108- -DPREFIX=\""$(prefix)"\" \
1109- -DLIBDIR=\""$(libdir)"\" \
1110- -DDATADIR=\""$(datadir)"\" \
1111- -DG_LOG_DOMAIN=\"NuxTests\" \
1112- -DTESTDIR=\""$(top_srcdir)/tests"\" \
1113- $(GCC_TESTS_FLAGS) \
1114- $(GMOCK_CPPFLAGS) \
1115- $(GTEST_CPPFLAGS) \
1116- $(NUX_CORE_CFLAGS) \
1117- $(NUX_EXAMPLES_CFLAGS) \
1118- $(NUX_CFLAGS) \
1119- $(MAINTAINER_CFLAGS) \
1120- $(IBUS_CFLAGS) \
1121- $(GEIS_CFLAGS)
1122-
1123-gtest_nux_slow_LDADD = \
1124- $(top_builddir)/NuxCore/libnux-core-@NUX_API_VERSION@.la \
1125- $(top_builddir)/NuxGraphics/libnux-graphics-@NUX_API_VERSION@.la \
1126- $(top_builddir)/Nux/libnux-@NUX_API_VERSION@.la \
1127- $(NUX_LIBS) \
1128- libgtest.a
1129-
1130-gtest_nux_slow_LDFLAGS = -lboost_system \
1131- -lboost_filesystem
1132+gtest_nux_slow_CPPFLAGS = $(GTestFlags)
1133+gtest_nux_slow_LDADD = $(GTestLibs)
1134+gtest_nux_slow_LDFLAGS = $(GTestLDFlags)
1135
1136 ##### gtest-nuxgraphics ######
1137
1138@@ -168,48 +134,8 @@
1139 gtest-nuxgraphics-texture.cpp \
1140 gtest-nuxgraphics-graphic-display.cpp
1141
1142-gtest_nuxgraphics_CPPFLAGS = \
1143- -I$(srcdir) \
1144- -I$(top_srcdir) \
1145- -DPREFIX=\""$(prefix)"\" \
1146- -DLIBDIR=\""$(libdir)"\" \
1147- -DDATADIR=\""$(datadir)"\" \
1148- -DG_LOG_DOMAIN=\"NuxTests\" \
1149- -DTESTDIR=\""$(top_srcdir)/tests"\" \
1150- $(GCC_TESTS_FLAGS) \
1151- $(GMOCK_CPPFLAGS) \
1152- $(GTEST_CPPFLAGS) \
1153- $(NUX_CORE_CFLAGS) \
1154- $(NUX_EXAMPLES_CFLAGS) \
1155- $(NUX_CFLAGS) \
1156- $(MAINTAINER_CFLAGS)
1157-
1158-gtest_nuxgraphics_LDADD = \
1159- $(top_builddir)/NuxCore/libnux-core-@NUX_API_VERSION@.la \
1160- $(top_builddir)/NuxGraphics/libnux-graphics-@NUX_API_VERSION@.la \
1161- $(top_builddir)/Nux/libnux-@NUX_API_VERSION@.la \
1162- $(NUX_LIBS) \
1163- libgtest.a
1164-
1165-TestFlags = -I$(srcdir) \
1166- -I$(top_srcdir) \
1167- -DPREFIX=\""$(prefix)"\" \
1168- -DLIBDIR=\""$(libdir)"\" \
1169- -DDATADIR=\""$(datadir)"\" \
1170- -DG_LOG_DOMAIN=\"NuxTests\" \
1171- -DTESTDIR=\""$(top_srcdir)/tests"\" \
1172- $(GCC_TESTS_FLAGS) \
1173- $(NUX_CORE_CFLAGS) \
1174- $(NUX_EXAMPLES_CFLAGS) \
1175- $(NUX_CFLAGS) \
1176- $(MAINTAINER_CFLAGS) \
1177- $(IBUS_CFLAGS) \
1178- $(GEIS_CFLAGS)
1179-
1180-TestLibs = $(top_builddir)/NuxCore/libnux-core-@NUX_API_VERSION@.la \
1181- $(top_builddir)/NuxGraphics/libnux-graphics-@NUX_API_VERSION@.la \
1182- $(top_builddir)/Nux/libnux-@NUX_API_VERSION@.la \
1183- $(NUX_LIBS)
1184+gtest_nuxgraphics_CPPFLAGS = $(GTestFlags)
1185+gtest_nuxgraphics_LDADD = $(GTestLibs)
1186
1187
1188 test_graphics_display_SOURCES = test_graphics_display.cpp
1189@@ -352,13 +278,33 @@
1190 test:
1191 @gtester --verbose -k -o=gtest-nux-results.xml ./gtest-nux
1192
1193-gtest: gtest-nuxcore gtest-nuxgraphics gtest-nux
1194+gtest-build: gtest-nuxcore gtest-nuxgraphics gtest-nux gtest-nux-slow
1195+
1196+gtest: gtest-build
1197 ./gtest-nuxcore
1198 ./gtest-nuxgraphics
1199 ./gtest-nux
1200-
1201-check-headless: gtest-nuxcore
1202- @gtester --verbose -k -o=test-nux-results.xml ./gtest-nuxcore
1203+ ./gtest-nux-slow
1204+
1205+CHECK_GTEST_OPTIONS =
1206+
1207+if NUX_OPENGLES_20
1208+# Disable EmbeddedContext tests when OpenGLES is enabled, they tend to crash
1209+CHECK_GTEST_OPTIONS = --gtest_filter=-EmbeddedContext*
1210+endif # NUX_OPENGLES_20
1211+
1212+check-headless: gtest-nuxcore gtest-nuxgraphics gtest-nux gtest-nux-slow
1213+ @./gtest-nuxcore --gtest_output=xml:./test-nux-core-results.xml $(CHECK_GTEST_OPTIONS)
1214+ @./dummy-xorg-test-runner.sh ./gtest-nuxgraphics --gtest_output=xml:./test-nux-graphics-results.xml $(CHECK_GTEST_OPTIONS)
1215+ @./dummy-xorg-test-runner.sh ./gtest-nux --gtest_output=xml:./test-nux-results.xml $(CHECK_GTEST_OPTIONS)
1216+ @./dummy-xorg-test-runner.sh ./gtest-nux-slow --gtest_output=xml:./test-nux-slow-results.xml $(CHECK_GTEST_OPTIONS)
1217+
1218+check: gtest-nuxcore gtest-nuxgraphics gtest-nux gtest-nux-slow
1219+ @./gtest-nuxcore --gtest_output=xml:./test-nux-core-results.xml
1220+ @./gtest-nuxgraphics --gtest_output=xml:./test-nux-graphics-results.xml
1221+ @./gtest-nux --gtest_output=xml:./test-nux-results.xml
1222+ @./gtest-nux-slow --gtest_output=xml:./test-nux-slow-results.xml
1223+
1224
1225 test-apps: test-graphics-display test-empty-window xtest-text-entry-xim xtest-text-entry xtest-button xtest-mouse-events xtest-mouse-buttons xtest-hgrid-key-navigation xtest-hlayout-key-navigation xtest-vlayout-key-navigation xtest-scrollbar xtest-focus-on-mouse-down xtest-focus-on-mouse-enter xtest-keynav-directions xtest-text-entry-logic xtest-text-entry-deadkeys xtest-text-entry-compositionkeys
1226 ./test-graphics-display
1227
1228=== added file 'tests/dummy-xorg-test-runner.sh'
1229--- tests/dummy-xorg-test-runner.sh 1970-01-01 00:00:00 +0000
1230+++ tests/dummy-xorg-test-runner.sh 2015-09-21 14:13:08 +0000
1231@@ -0,0 +1,87 @@
1232+#!/bin/bash
1233+# Copyright (C) 2013 Canonical Ltd
1234+#
1235+# This program is free software: you can redistribute it and/or modify
1236+# it under the terms of the GNU General Public License version 3 as
1237+# published by the Free Software Foundation.
1238+#
1239+# This program is distributed in the hope that it will be useful,
1240+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1241+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1242+# GNU General Public License for more details.
1243+#
1244+# You should have received a copy of the GNU General Public License
1245+# along with this program. If not, see <http://www.gnu.org/licenses/>.
1246+#
1247+# Authored by: Marco Trevisan <marco.trevisan@canonical.com>
1248+
1249+MAX_WAIT=10
1250+
1251+binary=$(which $1)
1252+
1253+if [ -z "$binary" ]; then
1254+ if [ -z "$1" ]; then
1255+ echo "Empty command submitted"
1256+ elif [ ! -x "$1" ]; then
1257+ echo "The provided $1 is not executable"
1258+ fi
1259+
1260+ exit 1
1261+fi
1262+
1263+logfile=$(mktemp -t dummy.Xorg.log.XXXXXXXX)
1264+conffile=$(mktemp -t dummy.Xorg.conf.XXXXXXXX)
1265+
1266+cat << 'END_DUMMY_XORG_CONF' > $conffile
1267+Section "Monitor"
1268+ Identifier "Dummy Monitor"
1269+EndSection
1270+
1271+Section "Device"
1272+ Identifier "Dummy Card"
1273+ Driver "dummy"
1274+EndSection
1275+
1276+Section "Screen"
1277+ DefaultDepth 24
1278+ Identifier "Dummy Screen"
1279+ Device "Dummy Card"
1280+ Monitor "Dummy Monitor"
1281+EndSection
1282+END_DUMMY_XORG_CONF
1283+
1284+function do_cleanup()
1285+{
1286+ if [ -n "$x_pid" ] && (kill -0 $x_pid &> /dev/null); then kill $x_pid; fi
1287+ rm $conffile
1288+ rm $logfile*
1289+}
1290+
1291+trap "do_cleanup; exit 1" SIGHUP SIGINT SIGSEGV SIGTERM
1292+
1293+dpy=$((RANDOM+1))
1294+export DISPLAY=:`for id in $(seq $dpy $((dpy+50))); do test -e /tmp/.X$id-lock || { echo $id; exit 0; }; done; exit 1`
1295+Xorg $DISPLAY -config $conffile -logfile $logfile &> /dev/null &
1296+x_pid=$!
1297+
1298+start_time=$(date +%s)
1299+while [ ! -e /tmp/.X${DISPLAY:1}-lock ] && [ $(($(date +%s) - start_time)) -le $MAX_WAIT ]; do
1300+ sleep 0.1
1301+done
1302+
1303+if [ $(($(date +%s) - start_time)) -gt $MAX_WAIT ]; then
1304+ echo "The X server was not able to run in time"
1305+ if [ -s $logfile ]; then
1306+ echo "Xorg Log:"
1307+ cat $logfile
1308+ fi
1309+ do_cleanup
1310+ exit 1
1311+fi
1312+
1313+shift
1314+$binary $@
1315+ret_val=$?
1316+
1317+do_cleanup
1318+exit $ret_val
1319
1320=== modified file 'tests/gtest-nux-inputarea-proximity.cpp'
1321--- tests/gtest-nux-inputarea-proximity.cpp 2012-11-21 06:12:39 +0000
1322+++ tests/gtest-nux-inputarea-proximity.cpp 2015-09-21 14:13:08 +0000
1323@@ -70,15 +70,15 @@
1324
1325 auto prox_area = std::make_shared<nux::InputAreaProximity>(test_view, proximity);
1326
1327- prox_area->mouse_near.connect([&] (const nux::Point&) {
1328+ prox_area->mouse_near.connect([this] (const nux::Point&) {
1329 near_signal_recived_ = true;
1330 });
1331
1332- prox_area->mouse_beyond.connect([&] (const nux::Point&) {
1333+ prox_area->mouse_beyond.connect([this] (const nux::Point&) {
1334 beyond_signal_recived_ = true;
1335 });
1336
1337- prox_area->mouse_approaching.connect([&] (const nux::Point&, const nux::Point& difference) {
1338+ prox_area->mouse_approaching.connect([this] (const nux::Point&, const nux::Point& difference) {
1339 approaching_signal_recived_ = true;
1340 last_approaching_point_ = difference;
1341 });
1342
1343=== modified file 'tests/gtest-nux-textentry.cpp'
1344--- tests/gtest-nux-textentry.cpp 2012-09-27 23:46:01 +0000
1345+++ tests/gtest-nux-textentry.cpp 2015-09-21 14:13:08 +0000
1346@@ -125,22 +125,19 @@
1347 {
1348 public:
1349 TestEvent(KeyModifier keymod, unsigned long keysym, EventType type = NUX_KEYDOWN)
1350+ : TestEvent(keysym, type)
1351 {
1352- Init(keysym, type);
1353 key_modifiers = keymod;
1354 }
1355
1356- TestEvent(unsigned long keysym, EventType type = NUX_KEYDOWN)
1357- {
1358- Init(keysym, type);
1359- }
1360-
1361- void Init(unsigned long keysym, EventType etype)
1362+ TestEvent(unsigned long keysym, EventType etype = NUX_KEYDOWN)
1363 {
1364 type = etype;
1365 #if defined(NUX_OS_LINUX)
1366 x11_keysym = keysym;
1367- g_unichar_to_utf8(x11_keysym, text);
1368+ dtext = new char[NUX_EVENT_TEXT_BUFFER_SIZE];
1369+ auto len = g_unichar_to_utf8(x11_keysym, dtext);
1370+ dtext[len] = '\0';
1371 #elif defined(NUX_OS_WINDOWS)
1372 win32_keysym = keysym;
1373 #endif
1374
1375=== modified file 'tests/gtest-nux-windowcompositor.cpp'
1376--- tests/gtest-nux-windowcompositor.cpp 2015-09-21 14:13:08 +0000
1377+++ tests/gtest-nux-windowcompositor.cpp 2015-09-21 14:13:08 +0000
1378@@ -966,7 +966,7 @@
1379 wnd_compositor.ProcessEvent(event);
1380 ASSERT_EQ(1, tracker_window->child_mouse_events_received.size());
1381 ASSERT_EQ(1, tracked_area->mouse_drag_emission_count);
1382- ASSERT_EQ(1, tracked_area->mouse_cancel_emission_count);
1383+ ASSERT_EQ(2, tracked_area->mouse_cancel_emission_count);
1384
1385 // The second mouse move goes only to the window, but now as a regular
1386 // mouse event since he's mouse owner now.
1387
1388=== modified file 'tests/gtest-nuxcore-animation.cpp'
1389--- tests/gtest-nuxcore-animation.cpp 2014-02-26 13:59:20 +0000
1390+++ tests/gtest-nuxcore-animation.cpp 2015-09-21 14:13:08 +0000
1391@@ -168,7 +168,7 @@
1392 std::shared_ptr<na::AnimateValue<int>> animation2(new na::AnimateValue<int>(0,100,1000));
1393
1394 int i = 0;
1395- animation1->updated.connect([&](int)
1396+ animation1->updated.connect([this, &i, &animation2](int)
1397 {
1398 if (++i == 2)
1399 {

Subscribers

People subscribed via source and target branches