Imported Upstream version 0.1.1
YunQiang Su
11 years ago
0 | cmake_minimum_required(VERSION 2.8.5) | |
1 | ||
2 | project(fcitx-qt5) | |
3 | ||
4 | set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) | |
5 | ||
6 | find_package(Qt5Core REQUIRED) | |
7 | find_package(Qt5Gui REQUIRED) | |
8 | find_package(Qt5Widgets REQUIRED) | |
9 | find_package(Qt5DBus REQUIRED) | |
10 | include(GNUInstallDirs) | |
11 | ||
12 | get_target_property(REAL_QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION) | |
13 | ||
14 | execute_process(COMMAND ${REAL_QMAKE_EXECUTABLE} -query QT_INSTALL_PLUGINS | |
15 | OUTPUT_VARIABLE _Qt5_PLUGIN_INSTALL_DIR ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE | |
16 | ) | |
17 | ||
18 | if (NOT _Qt5_PLUGIN_INSTALL_DIR) | |
19 | message(FATAL_ERROR "not found qt5 plugin dir") | |
20 | endif (NOT _Qt5_PLUGIN_INSTALL_DIR) | |
21 | ||
22 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}) | |
23 | ||
24 | add_subdirectory(fcitx-qt5) | |
25 | add_subdirectory(src) | |
26 |
0 | set(fcitx_qt_SOURCES | |
1 | fcitxqtconnection.cpp | |
2 | fcitxqtformattedpreedit.cpp | |
3 | fcitxqtinputcontextproxy.cpp | |
4 | fcitxqtinputmethodproxy.cpp | |
5 | fcitxqtkeyboardlayout.cpp | |
6 | fcitxqtkeyboardproxy.cpp | |
7 | fcitxqtinputmethoditem.cpp | |
8 | ) | |
9 | ||
10 | set(fcitx_qt_HEADERS | |
11 | fcitxqtconnection.h | |
12 | fcitxqt_export.h | |
13 | fcitxqtformattedpreedit.h | |
14 | fcitxqtinputcontextproxy.h | |
15 | fcitxqtinputmethodproxy.h | |
16 | fcitxqtkeyboardlayout.h | |
17 | fcitxqtkeyboardproxy.h | |
18 | fcitxqtinputmethoditem.h | |
19 | ) | |
20 | ||
21 | include_directories(${Qt5Core_INCLUDE_DIRS} | |
22 | ${Qt5Gui_INCLUDE_DIRS} | |
23 | ${Qt5DBus_INCLUDE_DIRS} | |
24 | ) | |
25 | ||
26 | qt5_wrap_cpp( | |
27 | fcitx_qt_MOC_SRCS | |
28 | ${fcitx_qt_HEADERS} | |
29 | fcitxqtconnection_p.h | |
30 | ) | |
31 | ||
32 | add_library(fcitx-qt5 SHARED ${fcitx_qt_SOURCES} ${fcitx_qt_MOC_SRCS}) | |
33 | set_target_properties(fcitx-qt5 | |
34 | PROPERTIES VERSION 0.1 | |
35 | SOVERSION 0 | |
36 | COMPILE_FLAGS "-fvisibility=hidden" | |
37 | LINK_FLAGS "-Wl,--no-undefined" | |
38 | ) | |
39 | ||
40 | target_link_libraries( | |
41 | fcitx-qt5 | |
42 | ${Qt5Core_LIBRARIES} | |
43 | ${Qt5Gui_LIBRARIES} | |
44 | ${Qt5DBus_LIBRARIES} | |
45 | ) | |
46 | ||
47 | install(TARGETS fcitx-qt5 LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") | |
48 | ||
49 | configure_file(fcitx-qt5.pc.in ${CMAKE_CURRENT_BINARY_DIR}/fcitx-qt5.pc) | |
50 | install(FILES ${CMAKE_CURRENT_BINARY_DIR}/fcitx-qt5.pc | |
51 | DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") | |
52 | ||
53 | install(FILES ${fcitx_qt_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/fcitx-qt5") | |
54 | ||
55 |
0 | prefix=@prefix@ | |
1 | exec_prefix=@exec_prefix@ | |
2 | libdir=@libdir@ | |
3 | includedir=@includedir@ | |
4 | ||
5 | Name: fcitx-qt | |
6 | Description: Fcitx Client/GUI Library for Qt | |
7 | Version: @version@ | |
8 | Requires: fcitx-utils QtCore QtDBus QtGui | |
9 | Cflags: -I${includedir} | |
10 | Libs: -L${libdir} -lfcitx-qt |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2012 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #ifndef FCITXQT_EXPORT_H | |
20 | #define FCITXQT_EXPORT_H | |
21 | ||
22 | #ifndef FCITX_QT_EXPORT_API | |
23 | #define FCITX_QT_EXPORT_API __attribute__ ((visibility("default"))) | |
24 | #endif | |
25 | ||
26 | #endif // FCITXQT_EXPORT_H |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2012 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #include "fcitxqtconnection_p.h" | |
20 | #include <QDBusConnection> | |
21 | #include <QDBusServiceWatcher> | |
22 | #include <QDBusReply> | |
23 | #include <QDBusConnectionInterface> | |
24 | #include <QDebug> | |
25 | #include <QFile> | |
26 | #include <QTimer> | |
27 | #include <QDir> | |
28 | ||
29 | #include <signal.h> | |
30 | #include <errno.h> | |
31 | ||
32 | // utils function in fcitx-utils and fcitx-config | |
33 | bool _pid_exists(pid_t pid) { | |
34 | if (pid <= 0) | |
35 | return 0; | |
36 | return !(kill(pid, 0) && (errno == ESRCH)); | |
37 | } | |
38 | ||
39 | ||
40 | FcitxQtConnection::FcitxQtConnection(QObject* parent): QObject(parent) | |
41 | ,d_ptr(new FcitxQtConnectionPrivate(this)) | |
42 | { | |
43 | } | |
44 | ||
45 | void FcitxQtConnection::startConnection() | |
46 | { | |
47 | Q_D(FcitxQtConnection); | |
48 | if (!d->m_initialized) { | |
49 | d->initialize(); | |
50 | d->createConnection(); | |
51 | } | |
52 | } | |
53 | ||
54 | void FcitxQtConnection::endConnection() | |
55 | { | |
56 | Q_D(FcitxQtConnection); | |
57 | d->cleanUp(); | |
58 | d->finalize(); | |
59 | d->m_connectedOnce = false; | |
60 | } | |
61 | ||
62 | bool FcitxQtConnection::autoReconnect() | |
63 | { | |
64 | Q_D(FcitxQtConnection); | |
65 | return d->m_autoReconnect; | |
66 | } | |
67 | ||
68 | void FcitxQtConnection::setAutoReconnect(bool a) | |
69 | { | |
70 | Q_D(FcitxQtConnection); | |
71 | d->m_autoReconnect = a; | |
72 | } | |
73 | ||
74 | QDBusConnection* FcitxQtConnection::connection() | |
75 | { | |
76 | Q_D(FcitxQtConnection); | |
77 | return d->m_connection; | |
78 | } | |
79 | ||
80 | const QString& FcitxQtConnection::serviceName() | |
81 | { | |
82 | Q_D(FcitxQtConnection); | |
83 | return d->m_serviceName; | |
84 | } | |
85 | ||
86 | bool FcitxQtConnection::isConnected() | |
87 | { | |
88 | Q_D(FcitxQtConnection); | |
89 | return d->isConnected(); | |
90 | } | |
91 | ||
92 | ||
93 | ||
94 | FcitxQtConnection::~FcitxQtConnection() | |
95 | { | |
96 | } | |
97 | ||
98 | FcitxQtConnectionPrivate::FcitxQtConnectionPrivate(FcitxQtConnection* conn) : QObject(conn) | |
99 | ,q_ptr(conn) | |
100 | ,m_displayNumber(-1) | |
101 | ,m_serviceName(QString("%1-%2").arg("org.fcitx.Fcitx").arg(displayNumber())) | |
102 | ,m_connection(0) | |
103 | ,m_serviceWatcher(new QDBusServiceWatcher(conn)) | |
104 | ,m_watcher(new QFileSystemWatcher(this)) | |
105 | ,m_autoReconnect(true) | |
106 | ,m_connectedOnce(false) | |
107 | ,m_initialized(false) | |
108 | { | |
109 | } | |
110 | ||
111 | FcitxQtConnectionPrivate::~FcitxQtConnectionPrivate() | |
112 | { | |
113 | if (m_connection) | |
114 | delete m_connection; | |
115 | } | |
116 | ||
117 | void FcitxQtConnectionPrivate::initialize() { | |
118 | m_serviceWatcher->setConnection(QDBusConnection::sessionBus()); | |
119 | m_serviceWatcher->addWatchedService(m_serviceName); | |
120 | ||
121 | QFileInfo info(socketFile()); | |
122 | QDir dir(info.path()); | |
123 | if (!dir.exists()) { | |
124 | QDir rt(QDir::root()); | |
125 | rt.mkpath(info.path()); | |
126 | } | |
127 | m_watcher->addPath(info.path()); | |
128 | if (info.exists()) { | |
129 | m_watcher->addPath(info.filePath()); | |
130 | } | |
131 | ||
132 | connect(m_watcher, SIGNAL(fileChanged(QString)), this, SLOT(socketFileChanged())); | |
133 | connect(m_watcher, SIGNAL(directoryChanged(QString)), this, SLOT(socketFileChanged())); | |
134 | m_initialized = true; | |
135 | } | |
136 | ||
137 | void FcitxQtConnectionPrivate::finalize() { | |
138 | m_serviceWatcher->removeWatchedService(m_serviceName); | |
139 | m_watcher->removePaths(m_watcher->files()); | |
140 | m_watcher->removePaths(m_watcher->directories()); | |
141 | m_watcher->disconnect(SIGNAL(fileChanged(QString))); | |
142 | m_watcher->disconnect(SIGNAL(directoryChanged(QString))); | |
143 | m_initialized = false; | |
144 | } | |
145 | ||
146 | void FcitxQtConnectionPrivate::socketFileChanged() { | |
147 | QFileInfo info(socketFile()); | |
148 | if (info.exists()) { | |
149 | if (m_watcher->files().indexOf(info.filePath()) == -1) | |
150 | m_watcher->addPath(info.filePath()); | |
151 | } | |
152 | ||
153 | QString addr = address(); | |
154 | if (addr.isNull()) | |
155 | return; | |
156 | ||
157 | cleanUp(); | |
158 | createConnection(); | |
159 | } | |
160 | ||
161 | QByteArray FcitxQtConnectionPrivate::localMachineId() | |
162 | { | |
163 | #if QT_VERSION >= QT_VERSION_CHECK(4, 8, 0) | |
164 | return QDBusConnection::localMachineId(); | |
165 | #else | |
166 | QFile file1("/var/lib/dbus/machine-id"); | |
167 | QFile file2("/etc/machine-id"); | |
168 | QFile* fileToRead = NULL; | |
169 | if (file1.open(QIODevice::ReadOnly)) { | |
170 | fileToRead = &file1; | |
171 | } | |
172 | else if (file2.open(QIODevice::ReadOnly)) { | |
173 | fileToRead = &file2; | |
174 | } | |
175 | if (fileToRead) { | |
176 | QByteArray result = fileToRead->readLine(1024); | |
177 | fileToRead->close(); | |
178 | result = result.trimmed(); | |
179 | if (!result.isEmpty()) | |
180 | return result; | |
181 | } | |
182 | return "machine-id"; | |
183 | #endif | |
184 | } | |
185 | ||
186 | int FcitxQtConnectionPrivate::displayNumber() { | |
187 | if (m_displayNumber < 0) { | |
188 | QByteArray displayNumber("0"); | |
189 | QByteArray display(qgetenv("DISPLAY")); | |
190 | int pos = display.indexOf(':'); | |
191 | ++pos; | |
192 | int pos2 = display.indexOf('.', pos); | |
193 | if (pos2 > 0) | |
194 | displayNumber = display.mid(pos, pos2 - pos); | |
195 | ||
196 | bool ok; | |
197 | int d = displayNumber.toInt(&ok); | |
198 | if (ok) { | |
199 | m_displayNumber = d; | |
200 | } else { | |
201 | m_displayNumber = 0; | |
202 | } | |
203 | } | |
204 | ||
205 | return m_displayNumber; | |
206 | } | |
207 | ||
208 | const QString& FcitxQtConnectionPrivate::socketFile() | |
209 | { | |
210 | if (!m_socketFile.isEmpty()) | |
211 | return m_socketFile; | |
212 | ||
213 | QString filename = QString("%1-%2").arg(QString::fromLatin1(QDBusConnection::localMachineId())).arg(displayNumber()); | |
214 | ||
215 | QString home = QString::fromLocal8Bit(qgetenv("XDG_CONFIG_HOME")); | |
216 | if (home.isEmpty()) { | |
217 | home = QDir::homePath().append(QLatin1Literal("/.config")); | |
218 | } | |
219 | m_socketFile = QString("%1/fcitx/dbus/%2").arg(home).arg(filename); | |
220 | ||
221 | return m_socketFile; | |
222 | } | |
223 | ||
224 | QString FcitxQtConnectionPrivate::address() | |
225 | { | |
226 | QString addr; | |
227 | QByteArray addrVar = qgetenv("FCITX_DBUS_ADDRESS"); | |
228 | if (!addrVar.isNull()) | |
229 | return QString::fromLocal8Bit(addrVar); | |
230 | ||
231 | QFile file(socketFile()); | |
232 | if (!file.open(QIODevice::ReadOnly)) | |
233 | return QString(); | |
234 | ||
235 | const int BUFSIZE = 1024; | |
236 | ||
237 | char buffer[BUFSIZE]; | |
238 | size_t sz = file.read(buffer, BUFSIZE); | |
239 | file.close(); | |
240 | if (sz == 0) | |
241 | return QString(); | |
242 | char* p = buffer; | |
243 | while(*p) | |
244 | p++; | |
245 | size_t addrlen = p - buffer; | |
246 | if (sz != addrlen + 2 * sizeof(pid_t) + 1) | |
247 | return QString(); | |
248 | ||
249 | /* skip '\0' */ | |
250 | p++; | |
251 | pid_t *ppid = (pid_t*) p; | |
252 | pid_t daemonpid = ppid[0]; | |
253 | pid_t fcitxpid = ppid[1]; | |
254 | ||
255 | if (!_pid_exists(daemonpid) | |
256 | || !_pid_exists(fcitxpid)) | |
257 | return QString(); | |
258 | ||
259 | addr = QLatin1String(buffer); | |
260 | ||
261 | return addr; | |
262 | } | |
263 | ||
264 | void FcitxQtConnectionPrivate::createConnection() { | |
265 | if (m_connectedOnce && !m_autoReconnect) { | |
266 | return; | |
267 | } | |
268 | ||
269 | m_serviceWatcher->disconnect(SIGNAL(serviceOwnerChanged(QString,QString,QString))); | |
270 | QString addr = address(); | |
271 | if (!addr.isNull()) { | |
272 | QDBusConnection connection(QDBusConnection::connectToBus(addr, "fcitx")); | |
273 | if (connection.isConnected()) { | |
274 | // qDebug() << "create private"; | |
275 | m_connection = new QDBusConnection(connection); | |
276 | } | |
277 | else | |
278 | QDBusConnection::disconnectFromBus("fcitx"); | |
279 | } | |
280 | ||
281 | if (!m_connection) { | |
282 | QDBusConnection* connection = new QDBusConnection(QDBusConnection::sessionBus()); | |
283 | connect(m_serviceWatcher, SIGNAL(serviceOwnerChanged(QString,QString,QString)), this, SLOT(imChanged(QString,QString,QString))); | |
284 | QDBusReply<bool> registered = connection->interface()->isServiceRegistered(m_serviceName); | |
285 | if (!registered.isValid() || !registered.value()) { | |
286 | delete connection; | |
287 | } | |
288 | else { | |
289 | m_connection = connection; | |
290 | } | |
291 | } | |
292 | ||
293 | Q_Q(FcitxQtConnection); | |
294 | if (m_connection) { | |
295 | ||
296 | m_connection->connect ("org.freedesktop.DBus.Local", | |
297 | "/org/freedesktop/DBus/Local", | |
298 | "org.freedesktop.DBus.Local", | |
299 | "Disconnected", | |
300 | this, | |
301 | SLOT (dbusDisconnected ())); | |
302 | m_connectedOnce = true; | |
303 | emit q->connected(); | |
304 | } | |
305 | } | |
306 | ||
307 | ||
308 | void FcitxQtConnectionPrivate::dbusDisconnected() | |
309 | { | |
310 | cleanUp(); | |
311 | ||
312 | createConnection(); | |
313 | } | |
314 | ||
315 | void FcitxQtConnectionPrivate::imChanged(const QString& service, const QString& oldowner, const QString& newowner) | |
316 | { | |
317 | if (service == m_serviceName) { | |
318 | /* old die */ | |
319 | if (oldowner.length() > 0 || newowner.length() > 0) | |
320 | cleanUp(); | |
321 | ||
322 | /* new rise */ | |
323 | if (newowner.length() > 0) { | |
324 | QTimer::singleShot(100, this, SLOT(newServiceAppear())); | |
325 | } | |
326 | } | |
327 | } | |
328 | ||
329 | void FcitxQtConnectionPrivate::cleanUp() | |
330 | { | |
331 | Q_Q(FcitxQtConnection); | |
332 | bool doemit = false; | |
333 | QDBusConnection::disconnectFromBus("fcitx"); | |
334 | if (m_connection) { | |
335 | delete m_connection; | |
336 | m_connection = 0; | |
337 | doemit = true; | |
338 | } | |
339 | ||
340 | if (!m_autoReconnect && m_connectedOnce) | |
341 | finalize(); | |
342 | ||
343 | /* we want m_connection and finalize being called before the signal | |
344 | * thus isConnected will return false in slot | |
345 | * and startConnection can be called in slot | |
346 | */ | |
347 | if (doemit) | |
348 | emit q->disconnected(); | |
349 | } | |
350 | ||
351 | bool FcitxQtConnectionPrivate::isConnected() | |
352 | { | |
353 | return m_connection && m_connection->isConnected(); | |
354 | } | |
355 | ||
356 | void FcitxQtConnectionPrivate::newServiceAppear() { | |
357 | if (!isConnected()) { | |
358 | cleanUp(); | |
359 | ||
360 | createConnection(); | |
361 | } | |
362 | } |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2012 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #ifndef FCITXQTCONNECTION_H | |
20 | #define FCITXQTCONNECTION_H | |
21 | ||
22 | #include "fcitxqt_export.h" | |
23 | ||
24 | #include <QtCore/QObject> | |
25 | ||
26 | class QDBusConnection; | |
27 | ||
28 | class FcitxQtConnectionPrivate; | |
29 | ||
30 | ||
31 | /** | |
32 | * dbus connection to fcitx | |
33 | **/ | |
34 | class FCITX_QT_EXPORT_API FcitxQtConnection : public QObject { | |
35 | Q_OBJECT | |
36 | Q_PROPERTY(bool autoReconnect READ autoReconnect WRITE setAutoReconnect) | |
37 | Q_PROPERTY(bool connected READ isConnected) | |
38 | Q_PROPERTY(QDBusConnection* connection READ connection) | |
39 | Q_PROPERTY(QString serviceName READ serviceName) | |
40 | public: | |
41 | /** | |
42 | * create a new connection | |
43 | * | |
44 | * @param parent | |
45 | **/ | |
46 | explicit FcitxQtConnection(QObject* parent = 0); | |
47 | ||
48 | /** | |
49 | * destroy the connection | |
50 | **/ | |
51 | virtual ~FcitxQtConnection(); | |
52 | ||
53 | /** | |
54 | * the connection will not start to work until you call this function | |
55 | * you may want to connect to the signal before you call this function | |
56 | **/ | |
57 | void startConnection(); | |
58 | void endConnection(); | |
59 | /** | |
60 | * automatically reconnect if fcitx disappeared | |
61 | * | |
62 | * @param a ... | |
63 | * @return void | |
64 | **/ | |
65 | void setAutoReconnect(bool a); | |
66 | ||
67 | /** | |
68 | * check this connection is doing automatical reconnect or not | |
69 | * | |
70 | * default value is true | |
71 | **/ | |
72 | bool autoReconnect(); | |
73 | ||
74 | /** | |
75 | * return the current dbus connection to fcitx, notice, the object return | |
76 | * by this function might be deteled if fcitx disappear, or might return 0 | |
77 | * if fcitx is not running | |
78 | * | |
79 | * @return QDBusConnection* | |
80 | **/ | |
81 | QDBusConnection* connection(); | |
82 | /** | |
83 | * current fcitx dbus service name, can be used for create DBus proxy | |
84 | * | |
85 | * @return service name | |
86 | **/ | |
87 | const QString& serviceName(); | |
88 | /** | |
89 | * check its connected or not | |
90 | **/ | |
91 | bool isConnected(); | |
92 | ||
93 | Q_SIGNALS: | |
94 | /** | |
95 | * this signal will be emitted upon fcitx appears | |
96 | **/ | |
97 | void connected(); | |
98 | /** | |
99 | * this signal will be emitted upon fcitx disappears | |
100 | * | |
101 | * it will come with connected in pair | |
102 | **/ | |
103 | void disconnected(); | |
104 | ||
105 | private: | |
106 | FcitxQtConnectionPrivate * const d_ptr; | |
107 | Q_DECLARE_PRIVATE(FcitxQtConnection); | |
108 | }; | |
109 | ||
110 | #endif // FCITXCONNECTION_H |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2012 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #ifndef FCITXQTCONNECTION_P_H | |
20 | #define FCITXQTCONNECTION_P_H | |
21 | ||
22 | #include "fcitxqtconnection.h" | |
23 | #include <QtCore/QWeakPointer> | |
24 | #include <QtCore/QFileSystemWatcher> | |
25 | ||
26 | class QDBusConnection; | |
27 | class QDBusServiceWatcher; | |
28 | ||
29 | class FcitxQtConnectionPrivate : public QObject { | |
30 | Q_OBJECT | |
31 | public: | |
32 | FcitxQtConnectionPrivate(FcitxQtConnection* conn); | |
33 | virtual ~FcitxQtConnectionPrivate(); | |
34 | FcitxQtConnection * const q_ptr; | |
35 | Q_DECLARE_PUBLIC(FcitxQtConnection); | |
36 | ||
37 | private Q_SLOTS: | |
38 | void imChanged(const QString& service, const QString& oldowner, const QString& newowner); | |
39 | void dbusDisconnected(); | |
40 | void cleanUp(); | |
41 | void newServiceAppear(); | |
42 | void socketFileChanged(); | |
43 | ||
44 | private: | |
45 | bool isConnected(); | |
46 | ||
47 | static QByteArray localMachineId(); | |
48 | const QString& socketFile(); | |
49 | void createConnection(); | |
50 | QString address(); | |
51 | int displayNumber(); | |
52 | void initialize(); | |
53 | void finalize(); | |
54 | ||
55 | int m_displayNumber; | |
56 | QString m_serviceName; | |
57 | QDBusConnection* m_connection; | |
58 | QDBusServiceWatcher* m_serviceWatcher; | |
59 | QFileSystemWatcher* m_watcher; | |
60 | QString m_socketFile; | |
61 | bool m_autoReconnect; | |
62 | bool m_connectedOnce; | |
63 | bool m_initialized; | |
64 | }; | |
65 | ||
66 | ||
67 | #endif // FCITXCONNECTION_P_H |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2012 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #include <QDBusMetaType> | |
20 | ||
21 | #include "fcitxqtformattedpreedit.h" | |
22 | ||
23 | void FcitxQtFormattedPreedit::registerMetaType() | |
24 | { | |
25 | qRegisterMetaType<FcitxQtFormattedPreedit>("FcitxQtFormattedPreedit"); | |
26 | qDBusRegisterMetaType<FcitxQtFormattedPreedit>(); | |
27 | qRegisterMetaType<FcitxQtFormattedPreeditList>("FcitxQtFormattedPreeditList"); | |
28 | qDBusRegisterMetaType<FcitxQtFormattedPreeditList>(); | |
29 | } | |
30 | ||
31 | qint32 FcitxQtFormattedPreedit::format() const | |
32 | { | |
33 | return m_format; | |
34 | } | |
35 | ||
36 | const QString& FcitxQtFormattedPreedit::string() const | |
37 | { | |
38 | return m_string; | |
39 | } | |
40 | ||
41 | void FcitxQtFormattedPreedit::setFormat(qint32 format) | |
42 | { | |
43 | m_format = format; | |
44 | } | |
45 | ||
46 | void FcitxQtFormattedPreedit::setString(const QString& str) | |
47 | { | |
48 | m_string = str; | |
49 | } | |
50 | ||
51 | bool FcitxQtFormattedPreedit::operator==(const FcitxQtFormattedPreedit& preedit) const | |
52 | { | |
53 | return (preedit.m_format == m_format) && (preedit.m_string == m_string); | |
54 | } | |
55 | ||
56 | FCITX_QT_EXPORT_API | |
57 | QDBusArgument& operator<<(QDBusArgument& argument, const FcitxQtFormattedPreedit& preedit) | |
58 | { | |
59 | argument.beginStructure(); | |
60 | argument << preedit.string(); | |
61 | argument << preedit.format(); | |
62 | argument.endStructure(); | |
63 | return argument; | |
64 | } | |
65 | ||
66 | FCITX_QT_EXPORT_API | |
67 | const QDBusArgument& operator>>(const QDBusArgument& argument, FcitxQtFormattedPreedit& preedit) | |
68 | { | |
69 | QString str; | |
70 | qint32 format; | |
71 | argument.beginStructure(); | |
72 | argument >> str >> format; | |
73 | argument.endStructure(); | |
74 | preedit.setString(str); | |
75 | preedit.setFormat(format); | |
76 | return argument; | |
77 | } |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2012 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #ifndef FCITX_QT_FORMATTED_PREEDIT_H | |
20 | #define FCITX_QT_FORMATTED_PREEDIT_H | |
21 | ||
22 | #include "fcitxqt_export.h" | |
23 | ||
24 | #include <QtCore/QMetaType> | |
25 | #include <QtDBus/QDBusArgument> | |
26 | ||
27 | class FCITX_QT_EXPORT_API FcitxQtFormattedPreedit { | |
28 | public: | |
29 | const QString& string() const; | |
30 | qint32 format() const; | |
31 | void setString(const QString& str); | |
32 | void setFormat(qint32 format); | |
33 | ||
34 | static void registerMetaType(); | |
35 | ||
36 | bool operator ==(const FcitxQtFormattedPreedit& preedit) const; | |
37 | private: | |
38 | QString m_string; | |
39 | qint32 m_format; | |
40 | }; | |
41 | ||
42 | typedef QList<FcitxQtFormattedPreedit> FcitxQtFormattedPreeditList; | |
43 | ||
44 | QDBusArgument& operator<<(QDBusArgument& argument, const FcitxQtFormattedPreedit& im); | |
45 | const QDBusArgument& operator>>(const QDBusArgument& argument, FcitxQtFormattedPreedit& im); | |
46 | ||
47 | Q_DECLARE_METATYPE(FcitxQtFormattedPreedit) | |
48 | Q_DECLARE_METATYPE(FcitxQtFormattedPreeditList) | |
49 | ||
50 | #endif |
0 | /* | |
1 | * This file was generated by qdbusxml2cpp version 0.7 | |
2 | * Command line was: qdbusxml2cpp -N -p fcitxqtinputcontextproxy -c FcitxQtInputContextProxy interfaces/org.fcitx.Fcitx.InputContext.xml -i fcitxqtformattedpreedit.h -i fcitxqt_export.h | |
3 | * | |
4 | * qdbusxml2cpp is Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). | |
5 | * | |
6 | * This is an auto-generated file. | |
7 | * This file may have been hand-edited. Look for HAND-EDIT comments | |
8 | * before re-generating it. | |
9 | */ | |
10 | ||
11 | #include "fcitxqtinputcontextproxy.h" | |
12 | ||
13 | /* | |
14 | * Implementation of interface class FcitxQtInputContextProxy | |
15 | */ | |
16 | ||
17 | FcitxQtInputContextProxy::FcitxQtInputContextProxy(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) | |
18 | : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) | |
19 | { | |
20 | } | |
21 | ||
22 | FcitxQtInputContextProxy::~FcitxQtInputContextProxy() | |
23 | { | |
24 | } | |
25 |
0 | /* | |
1 | * This file was generated by qdbusxml2cpp version 0.7 | |
2 | * Command line was: qdbusxml2cpp -N -p fcitxqtinputcontextproxy -c FcitxQtInputContextProxy interfaces/org.fcitx.Fcitx.InputContext.xml -i fcitxqtformattedpreedit.h -i fcitxqt_export.h | |
3 | * | |
4 | * qdbusxml2cpp is Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). | |
5 | * | |
6 | * This is an auto-generated file. | |
7 | * Do not edit! All changes made to it will be lost. | |
8 | */ | |
9 | ||
10 | #ifndef FCITXQTINPUTCONTEXTPROXY_H_1354921637 | |
11 | #define FCITXQTINPUTCONTEXTPROXY_H_1354921637 | |
12 | ||
13 | #include <QtCore/QObject> | |
14 | #include <QtCore/QByteArray> | |
15 | #include <QtCore/QList> | |
16 | #include <QtCore/QMap> | |
17 | #include <QtCore/QString> | |
18 | #include <QtCore/QStringList> | |
19 | #include <QtCore/QVariant> | |
20 | #include <QtDBus/QtDBus> | |
21 | #include "fcitxqtformattedpreedit.h" | |
22 | #include "fcitxqt_export.h" | |
23 | ||
24 | /* | |
25 | * Proxy class for interface org.fcitx.Fcitx.InputContext | |
26 | */ | |
27 | class FCITX_QT_EXPORT_API FcitxQtInputContextProxy: public QDBusAbstractInterface | |
28 | { | |
29 | Q_OBJECT | |
30 | public: | |
31 | static inline const char *staticInterfaceName() | |
32 | { return "org.fcitx.Fcitx.InputContext"; } | |
33 | ||
34 | public: | |
35 | FcitxQtInputContextProxy(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0); | |
36 | ||
37 | ~FcitxQtInputContextProxy(); | |
38 | ||
39 | public Q_SLOTS: // METHODS | |
40 | inline QDBusPendingReply<> CloseIC() | |
41 | { | |
42 | QList<QVariant> argumentList; | |
43 | return asyncCallWithArgumentList(QLatin1String("CloseIC"), argumentList); | |
44 | } | |
45 | ||
46 | inline QDBusPendingReply<> DestroyIC() | |
47 | { | |
48 | QList<QVariant> argumentList; | |
49 | return asyncCallWithArgumentList(QLatin1String("DestroyIC"), argumentList); | |
50 | } | |
51 | ||
52 | inline QDBusPendingReply<> EnableIC() | |
53 | { | |
54 | QList<QVariant> argumentList; | |
55 | return asyncCallWithArgumentList(QLatin1String("EnableIC"), argumentList); | |
56 | } | |
57 | ||
58 | inline QDBusPendingReply<> FocusIn() | |
59 | { | |
60 | QList<QVariant> argumentList; | |
61 | return asyncCallWithArgumentList(QLatin1String("FocusIn"), argumentList); | |
62 | } | |
63 | ||
64 | inline QDBusPendingReply<> FocusOut() | |
65 | { | |
66 | QList<QVariant> argumentList; | |
67 | return asyncCallWithArgumentList(QLatin1String("FocusOut"), argumentList); | |
68 | } | |
69 | ||
70 | inline QDBusPendingReply<> MouseEvent(int x) | |
71 | { | |
72 | QList<QVariant> argumentList; | |
73 | argumentList << QVariant::fromValue(x); | |
74 | return asyncCallWithArgumentList(QLatin1String("MouseEvent"), argumentList); | |
75 | } | |
76 | ||
77 | inline QDBusPendingReply<int> ProcessKeyEvent(uint keyval, uint keycode, uint state, int type, uint time) | |
78 | { | |
79 | QList<QVariant> argumentList; | |
80 | argumentList << QVariant::fromValue(keyval) << QVariant::fromValue(keycode) << QVariant::fromValue(state) << QVariant::fromValue(type) << QVariant::fromValue(time); | |
81 | return asyncCallWithArgumentList(QLatin1String("ProcessKeyEvent"), argumentList); | |
82 | } | |
83 | ||
84 | inline QDBusPendingReply<> Reset() | |
85 | { | |
86 | QList<QVariant> argumentList; | |
87 | return asyncCallWithArgumentList(QLatin1String("Reset"), argumentList); | |
88 | } | |
89 | ||
90 | inline QDBusPendingReply<> SetCapacity(uint caps) | |
91 | { | |
92 | QList<QVariant> argumentList; | |
93 | argumentList << QVariant::fromValue(caps); | |
94 | return asyncCallWithArgumentList(QLatin1String("SetCapacity"), argumentList); | |
95 | } | |
96 | ||
97 | inline QDBusPendingReply<> SetCursorLocation(int x, int y) | |
98 | { | |
99 | QList<QVariant> argumentList; | |
100 | argumentList << QVariant::fromValue(x) << QVariant::fromValue(y); | |
101 | return asyncCallWithArgumentList(QLatin1String("SetCursorLocation"), argumentList); | |
102 | } | |
103 | ||
104 | inline QDBusPendingReply<> SetCursorRect(int x, int y, int w, int h) | |
105 | { | |
106 | QList<QVariant> argumentList; | |
107 | argumentList << QVariant::fromValue(x) << QVariant::fromValue(y) << QVariant::fromValue(w) << QVariant::fromValue(h); | |
108 | return asyncCallWithArgumentList(QLatin1String("SetCursorRect"), argumentList); | |
109 | } | |
110 | ||
111 | inline QDBusPendingReply<> SetSurroundingText(const QString &text, uint cursor, uint anchor) | |
112 | { | |
113 | QList<QVariant> argumentList; | |
114 | argumentList << QVariant::fromValue(text) << QVariant::fromValue(cursor) << QVariant::fromValue(anchor); | |
115 | return asyncCallWithArgumentList(QLatin1String("SetSurroundingText"), argumentList); | |
116 | } | |
117 | ||
118 | inline QDBusPendingReply<> SetSurroundingTextPosition(uint cursor, uint anchor) | |
119 | { | |
120 | QList<QVariant> argumentList; | |
121 | argumentList << QVariant::fromValue(cursor) << QVariant::fromValue(anchor); | |
122 | return asyncCallWithArgumentList(QLatin1String("SetSurroundingTextPosition"), argumentList); | |
123 | } | |
124 | ||
125 | Q_SIGNALS: // SIGNALS | |
126 | void CloseIM(); | |
127 | void CommitString(const QString &str); | |
128 | void DeleteSurroundingText(int offset, uint nchar); | |
129 | void EnableIM(); | |
130 | void ForwardKey(uint keyval, uint state, int type); | |
131 | void UpdateClientSideUI(const QString &auxup, const QString &auxdown, const QString &preedit, const QString &candidateword, const QString &imname, int cursorpos); | |
132 | void UpdateFormattedPreedit(FcitxQtFormattedPreeditList str, int cursorpos); | |
133 | }; | |
134 | ||
135 | #endif |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2011~2012 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | // Qt | |
20 | #include <QDBusArgument> | |
21 | #include <QDBusMetaType> | |
22 | ||
23 | // self | |
24 | #include "fcitxqtinputmethoditem.h" | |
25 | ||
26 | bool FcitxQtInputMethodItem::enabled() const | |
27 | { | |
28 | return m_enabled; | |
29 | } | |
30 | const QString& FcitxQtInputMethodItem::langCode() const | |
31 | { | |
32 | return m_langCode; | |
33 | } | |
34 | const QString& FcitxQtInputMethodItem::name() const | |
35 | { | |
36 | return m_name; | |
37 | } | |
38 | const QString& FcitxQtInputMethodItem::uniqueName() const | |
39 | { | |
40 | return m_uniqueName; | |
41 | } | |
42 | void FcitxQtInputMethodItem::setEnabled(bool enable) | |
43 | { | |
44 | m_enabled = enable; | |
45 | } | |
46 | void FcitxQtInputMethodItem::setLangCode(const QString& lang) | |
47 | { | |
48 | m_langCode = lang; | |
49 | } | |
50 | void FcitxQtInputMethodItem::setName(const QString& name) | |
51 | { | |
52 | m_name = name; | |
53 | } | |
54 | void FcitxQtInputMethodItem::setUniqueName(const QString& name) | |
55 | { | |
56 | m_uniqueName = name; | |
57 | } | |
58 | ||
59 | void FcitxQtInputMethodItem::registerMetaType() | |
60 | { | |
61 | qRegisterMetaType<FcitxQtInputMethodItem>("FcitxQtInputMethodItem"); | |
62 | qDBusRegisterMetaType<FcitxQtInputMethodItem>(); | |
63 | qRegisterMetaType<FcitxQtInputMethodItemList>("FcitxQtInputMethodItemList"); | |
64 | qDBusRegisterMetaType<FcitxQtInputMethodItemList>(); | |
65 | } | |
66 | ||
67 | FCITX_QT_EXPORT_API | |
68 | QDBusArgument& operator<<(QDBusArgument& argument, const FcitxQtInputMethodItem& im) | |
69 | { | |
70 | argument.beginStructure(); | |
71 | argument << im.name(); | |
72 | argument << im.uniqueName(); | |
73 | argument << im.langCode(); | |
74 | argument << im.enabled(); | |
75 | argument.endStructure(); | |
76 | return argument; | |
77 | } | |
78 | ||
79 | FCITX_QT_EXPORT_API | |
80 | const QDBusArgument& operator>>(const QDBusArgument& argument, FcitxQtInputMethodItem& im) | |
81 | { | |
82 | QString name; | |
83 | QString uniqueName; | |
84 | QString langCode; | |
85 | bool enabled; | |
86 | argument.beginStructure(); | |
87 | argument >> name >> uniqueName >> langCode >> enabled; | |
88 | argument.endStructure(); | |
89 | im.setName(name); | |
90 | im.setUniqueName(uniqueName); | |
91 | im.setLangCode(langCode); | |
92 | im.setEnabled(enabled); | |
93 | return argument; | |
94 | } |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2011~2012 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #ifndef FCITX_QT_INPUT_METHOD_ITEM_H | |
20 | #define FCITX_QT_INPUT_METHOD_ITEM_H | |
21 | ||
22 | #include "fcitxqt_export.h" | |
23 | ||
24 | // Qt | |
25 | #include <QtCore/QString> | |
26 | #include <QtCore/QMetaType> | |
27 | #include <QtDBus/QDBusArgument> | |
28 | ||
29 | class FCITX_QT_EXPORT_API FcitxQtInputMethodItem | |
30 | { | |
31 | public: | |
32 | const QString& name() const; | |
33 | const QString& uniqueName() const; | |
34 | const QString& langCode() const; | |
35 | bool enabled() const; | |
36 | ||
37 | void setName(const QString& name); | |
38 | void setUniqueName(const QString& name); | |
39 | void setLangCode(const QString& name); | |
40 | void setEnabled(bool name); | |
41 | static void registerMetaType(); | |
42 | ||
43 | inline bool operator < (const FcitxQtInputMethodItem& im) const { | |
44 | if (m_enabled == true && im.m_enabled == false) | |
45 | return true; | |
46 | return false; | |
47 | } | |
48 | private: | |
49 | QString m_name; | |
50 | QString m_uniqueName; | |
51 | QString m_langCode; | |
52 | bool m_enabled; | |
53 | }; | |
54 | ||
55 | typedef QList<FcitxQtInputMethodItem> FcitxQtInputMethodItemList; | |
56 | ||
57 | QDBusArgument& operator<<(QDBusArgument& argument, const FcitxQtInputMethodItem& im); | |
58 | const QDBusArgument& operator>>(const QDBusArgument& argument, FcitxQtInputMethodItem& im); | |
59 | ||
60 | Q_DECLARE_METATYPE(FcitxQtInputMethodItem) | |
61 | Q_DECLARE_METATYPE(FcitxQtInputMethodItemList) | |
62 | ||
63 | #endif |
0 | /* | |
1 | * This file was generated by qdbusxml2cpp version 0.7 | |
2 | * Command line was: qdbusxml2cpp -N -p fcitxqtinputmethodproxy -c FcitxQtInputMethodProxy interfaces/org.fcitx.Fcitx.InputMethod.xml -i fcitxqtinputmethoditem.h -i fcitxqt_export.h | |
3 | * | |
4 | * qdbusxml2cpp is Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). | |
5 | * | |
6 | * This is an auto-generated file. | |
7 | * This file may have been hand-edited. Look for HAND-EDIT comments | |
8 | * before re-generating it. | |
9 | */ | |
10 | ||
11 | #include "fcitxqtinputmethodproxy.h" | |
12 | ||
13 | /* | |
14 | * Implementation of interface class FcitxQtInputMethodProxy | |
15 | */ | |
16 | ||
17 | FcitxQtInputMethodProxy::FcitxQtInputMethodProxy(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) | |
18 | : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) | |
19 | { | |
20 | } | |
21 | ||
22 | FcitxQtInputMethodProxy::~FcitxQtInputMethodProxy() | |
23 | { | |
24 | } | |
25 |
0 | /* | |
1 | * This file was generated by qdbusxml2cpp version 0.7 | |
2 | * Command line was: qdbusxml2cpp -N -p fcitxqtinputmethodproxy -c FcitxQtInputMethodProxy interfaces/org.fcitx.Fcitx.InputMethod.xml -i fcitxqtinputmethoditem.h -i fcitxqt_export.h | |
3 | * | |
4 | * qdbusxml2cpp is Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). | |
5 | * | |
6 | * This is an auto-generated file. | |
7 | * Do not edit! All changes made to it will be lost. | |
8 | */ | |
9 | ||
10 | #ifndef FCITXQTINPUTMETHODPROXY_H_1354834547 | |
11 | #define FCITXQTINPUTMETHODPROXY_H_1354834547 | |
12 | ||
13 | #include <QtCore/QObject> | |
14 | #include <QtCore/QByteArray> | |
15 | #include <QtCore/QList> | |
16 | #include <QtCore/QMap> | |
17 | #include <QtCore/QString> | |
18 | #include <QtCore/QStringList> | |
19 | #include <QtCore/QVariant> | |
20 | #include <QtDBus/QtDBus> | |
21 | #include "fcitxqtinputmethoditem.h" | |
22 | #include "fcitxqt_export.h" | |
23 | ||
24 | /* | |
25 | * Proxy class for interface org.fcitx.Fcitx.InputMethod | |
26 | */ | |
27 | class FCITX_QT_EXPORT_API FcitxQtInputMethodProxy: public QDBusAbstractInterface | |
28 | { | |
29 | Q_OBJECT | |
30 | public: | |
31 | static inline const char *staticInterfaceName() | |
32 | { return "org.fcitx.Fcitx.InputMethod"; } | |
33 | ||
34 | public: | |
35 | FcitxQtInputMethodProxy(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0); | |
36 | ||
37 | ~FcitxQtInputMethodProxy(); | |
38 | ||
39 | Q_PROPERTY(FcitxQtInputMethodItemList IMList READ iMList WRITE setIMList) | |
40 | inline FcitxQtInputMethodItemList iMList() const | |
41 | { return qvariant_cast< FcitxQtInputMethodItemList >(property("IMList")); } | |
42 | inline void setIMList(FcitxQtInputMethodItemList value) | |
43 | { setProperty("IMList", QVariant::fromValue(value)); } | |
44 | ||
45 | public Q_SLOTS: // METHODS | |
46 | inline QDBusPendingReply<> ActivateIM() | |
47 | { | |
48 | QList<QVariant> argumentList; | |
49 | return asyncCallWithArgumentList(QLatin1String("ActivateIM"), argumentList); | |
50 | } | |
51 | ||
52 | inline QDBusPendingReply<> Configure() | |
53 | { | |
54 | QList<QVariant> argumentList; | |
55 | return asyncCallWithArgumentList(QLatin1String("Configure"), argumentList); | |
56 | } | |
57 | ||
58 | inline QDBusPendingReply<> ConfigureAddon(const QString &addon) | |
59 | { | |
60 | QList<QVariant> argumentList; | |
61 | argumentList << QVariant::fromValue(addon); | |
62 | return asyncCallWithArgumentList(QLatin1String("ConfigureAddon"), argumentList); | |
63 | } | |
64 | ||
65 | inline QDBusPendingReply<> ConfigureIM(const QString &im) | |
66 | { | |
67 | QList<QVariant> argumentList; | |
68 | argumentList << QVariant::fromValue(im); | |
69 | return asyncCallWithArgumentList(QLatin1String("ConfigureIM"), argumentList); | |
70 | } | |
71 | ||
72 | inline QDBusPendingReply<int, uint, uint, uint, uint> CreateIC() | |
73 | { | |
74 | QList<QVariant> argumentList; | |
75 | return asyncCallWithArgumentList(QLatin1String("CreateIC"), argumentList); | |
76 | } | |
77 | inline QDBusReply<int> CreateIC(uint &keyval1, uint &state1, uint &keyval2, uint &state2) | |
78 | { | |
79 | QList<QVariant> argumentList; | |
80 | QDBusMessage reply = callWithArgumentList(QDBus::Block, QLatin1String("CreateIC"), argumentList); | |
81 | if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 5) { | |
82 | keyval1 = qdbus_cast<uint>(reply.arguments().at(1)); | |
83 | state1 = qdbus_cast<uint>(reply.arguments().at(2)); | |
84 | keyval2 = qdbus_cast<uint>(reply.arguments().at(3)); | |
85 | state2 = qdbus_cast<uint>(reply.arguments().at(4)); | |
86 | } | |
87 | return reply; | |
88 | } | |
89 | ||
90 | inline QDBusPendingReply<int, bool, uint, uint, uint, uint> CreateICv2(const QString &appname) | |
91 | { | |
92 | QList<QVariant> argumentList; | |
93 | argumentList << QVariant::fromValue(appname); | |
94 | return asyncCallWithArgumentList(QLatin1String("CreateICv2"), argumentList); | |
95 | } | |
96 | inline QDBusReply<int> CreateICv2(const QString &appname, bool &enable, uint &keyval1, uint &state1, uint &keyval2, uint &state2) | |
97 | { | |
98 | QList<QVariant> argumentList; | |
99 | argumentList << QVariant::fromValue(appname); | |
100 | QDBusMessage reply = callWithArgumentList(QDBus::Block, QLatin1String("CreateICv2"), argumentList); | |
101 | if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 6) { | |
102 | enable = qdbus_cast<bool>(reply.arguments().at(1)); | |
103 | keyval1 = qdbus_cast<uint>(reply.arguments().at(2)); | |
104 | state1 = qdbus_cast<uint>(reply.arguments().at(3)); | |
105 | keyval2 = qdbus_cast<uint>(reply.arguments().at(4)); | |
106 | state2 = qdbus_cast<uint>(reply.arguments().at(5)); | |
107 | } | |
108 | return reply; | |
109 | } | |
110 | ||
111 | inline QDBusPendingReply<int, bool, uint, uint, uint, uint> CreateICv3(const QString &appname, int pid) | |
112 | { | |
113 | QList<QVariant> argumentList; | |
114 | argumentList << QVariant::fromValue(appname) << QVariant::fromValue(pid); | |
115 | return asyncCallWithArgumentList(QLatin1String("CreateICv3"), argumentList); | |
116 | } | |
117 | inline QDBusReply<int> CreateICv3(const QString &appname, int pid, bool &enable, uint &keyval1, uint &state1, uint &keyval2, uint &state2) | |
118 | { | |
119 | QList<QVariant> argumentList; | |
120 | argumentList << QVariant::fromValue(appname) << QVariant::fromValue(pid); | |
121 | QDBusMessage reply = callWithArgumentList(QDBus::Block, QLatin1String("CreateICv3"), argumentList); | |
122 | if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 6) { | |
123 | enable = qdbus_cast<bool>(reply.arguments().at(1)); | |
124 | keyval1 = qdbus_cast<uint>(reply.arguments().at(2)); | |
125 | state1 = qdbus_cast<uint>(reply.arguments().at(3)); | |
126 | keyval2 = qdbus_cast<uint>(reply.arguments().at(4)); | |
127 | state2 = qdbus_cast<uint>(reply.arguments().at(5)); | |
128 | } | |
129 | return reply; | |
130 | } | |
131 | ||
132 | inline QDBusPendingReply<> Exit() | |
133 | { | |
134 | QList<QVariant> argumentList; | |
135 | return asyncCallWithArgumentList(QLatin1String("Exit"), argumentList); | |
136 | } | |
137 | ||
138 | inline QDBusPendingReply<QString> GetCurrentIM() | |
139 | { | |
140 | QList<QVariant> argumentList; | |
141 | return asyncCallWithArgumentList(QLatin1String("GetCurrentIM"), argumentList); | |
142 | } | |
143 | ||
144 | inline QDBusPendingReply<int> GetCurrentState() | |
145 | { | |
146 | QList<QVariant> argumentList; | |
147 | return asyncCallWithArgumentList(QLatin1String("GetCurrentState"), argumentList); | |
148 | } | |
149 | ||
150 | inline QDBusPendingReply<QString> GetCurrentUI() | |
151 | { | |
152 | QList<QVariant> argumentList; | |
153 | return asyncCallWithArgumentList(QLatin1String("GetCurrentUI"), argumentList); | |
154 | } | |
155 | ||
156 | inline QDBusPendingReply<QString> GetIMAddon(const QString &im) | |
157 | { | |
158 | QList<QVariant> argumentList; | |
159 | argumentList << QVariant::fromValue(im); | |
160 | return asyncCallWithArgumentList(QLatin1String("GetIMAddon"), argumentList); | |
161 | } | |
162 | ||
163 | inline QDBusPendingReply<> InactivateIM() | |
164 | { | |
165 | QList<QVariant> argumentList; | |
166 | return asyncCallWithArgumentList(QLatin1String("InactivateIM"), argumentList); | |
167 | } | |
168 | ||
169 | inline QDBusPendingReply<> ReloadAddonConfig(const QString &addon) | |
170 | { | |
171 | QList<QVariant> argumentList; | |
172 | argumentList << QVariant::fromValue(addon); | |
173 | return asyncCallWithArgumentList(QLatin1String("ReloadAddonConfig"), argumentList); | |
174 | } | |
175 | ||
176 | inline QDBusPendingReply<> ReloadConfig() | |
177 | { | |
178 | QList<QVariant> argumentList; | |
179 | return asyncCallWithArgumentList(QLatin1String("ReloadConfig"), argumentList); | |
180 | } | |
181 | ||
182 | inline QDBusPendingReply<> Restart() | |
183 | { | |
184 | QList<QVariant> argumentList; | |
185 | return asyncCallWithArgumentList(QLatin1String("Restart"), argumentList); | |
186 | } | |
187 | ||
188 | inline QDBusPendingReply<> SetCurrentIM(const QString &im) | |
189 | { | |
190 | QList<QVariant> argumentList; | |
191 | argumentList << QVariant::fromValue(im); | |
192 | return asyncCallWithArgumentList(QLatin1String("SetCurrentIM"), argumentList); | |
193 | } | |
194 | ||
195 | inline QDBusPendingReply<> ToggleIM() | |
196 | { | |
197 | QList<QVariant> argumentList; | |
198 | return asyncCallWithArgumentList(QLatin1String("ToggleIM"), argumentList); | |
199 | } | |
200 | ||
201 | Q_SIGNALS: // SIGNALS | |
202 | }; | |
203 | ||
204 | #endif |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2011~2012 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | // Qt | |
20 | #include <QDBusArgument> | |
21 | #include <QDBusMetaType> | |
22 | ||
23 | // self | |
24 | #include "fcitxqtkeyboardlayout.h" | |
25 | ||
26 | const QString& FcitxQtKeyboardLayout::layout() const | |
27 | { | |
28 | return m_layout; | |
29 | } | |
30 | const QString& FcitxQtKeyboardLayout::langCode() const | |
31 | { | |
32 | return m_langCode; | |
33 | } | |
34 | const QString& FcitxQtKeyboardLayout::name() const | |
35 | { | |
36 | return m_name; | |
37 | } | |
38 | ||
39 | const QString& FcitxQtKeyboardLayout::variant() const | |
40 | { | |
41 | return m_variant; | |
42 | } | |
43 | ||
44 | void FcitxQtKeyboardLayout::setLayout(const QString& layout) | |
45 | { | |
46 | m_layout = layout; | |
47 | } | |
48 | ||
49 | void FcitxQtKeyboardLayout::setLangCode(const QString& lang) | |
50 | { | |
51 | m_langCode = lang; | |
52 | } | |
53 | ||
54 | void FcitxQtKeyboardLayout::setName(const QString& name) | |
55 | { | |
56 | m_name = name; | |
57 | } | |
58 | ||
59 | void FcitxQtKeyboardLayout::setVariant(const QString& variant) | |
60 | { | |
61 | m_variant = variant; | |
62 | } | |
63 | ||
64 | void FcitxQtKeyboardLayout::registerMetaType() | |
65 | { | |
66 | qRegisterMetaType<FcitxQtKeyboardLayout>("FcitxQtKeyboardLayout"); | |
67 | qDBusRegisterMetaType<FcitxQtKeyboardLayout>(); | |
68 | qRegisterMetaType<FcitxQtKeyboardLayoutList>("FcitxQtKeyboardLayoutList"); | |
69 | qDBusRegisterMetaType<FcitxQtKeyboardLayoutList>(); | |
70 | } | |
71 | ||
72 | FCITX_QT_EXPORT_API | |
73 | QDBusArgument& operator<<(QDBusArgument& argument, const FcitxQtKeyboardLayout& layout) | |
74 | { | |
75 | argument.beginStructure(); | |
76 | argument << layout.layout(); | |
77 | argument << layout.variant(); | |
78 | argument << layout.name(); | |
79 | argument << layout.langCode(); | |
80 | argument.endStructure(); | |
81 | return argument; | |
82 | } | |
83 | ||
84 | FCITX_QT_EXPORT_API | |
85 | const QDBusArgument& operator>>(const QDBusArgument& argument, FcitxQtKeyboardLayout& layout) | |
86 | { | |
87 | QString l; | |
88 | QString variant; | |
89 | QString name; | |
90 | QString langCode; | |
91 | argument.beginStructure(); | |
92 | argument >> l >> variant >> name >> langCode; | |
93 | argument.endStructure(); | |
94 | layout.setLayout(l); | |
95 | layout.setVariant(variant); | |
96 | layout.setName(name); | |
97 | layout.setLangCode(langCode); | |
98 | return argument; | |
99 | } |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2011~2012 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #ifndef FCITX_QT_KEYBOARD_LAYOUT_H | |
20 | #define FCITX_QT_KEYBOARD_LAYOUT_H | |
21 | ||
22 | #include "fcitxqt_export.h" | |
23 | ||
24 | // Qt | |
25 | #include <QtCore/QString> | |
26 | #include <QtCore/QMetaType> | |
27 | #include <QtDBus/QDBusArgument> | |
28 | ||
29 | class FCITX_QT_EXPORT_API FcitxQtKeyboardLayout | |
30 | { | |
31 | public: | |
32 | const QString& layout() const; | |
33 | const QString& variant() const; | |
34 | const QString& name() const; | |
35 | const QString& langCode() const; | |
36 | void setLayout(const QString& layout); | |
37 | void setLangCode(const QString& lang); | |
38 | void setName(const QString& name); | |
39 | void setVariant(const QString& variant); | |
40 | ||
41 | static void registerMetaType(); | |
42 | private: | |
43 | QString m_layout; | |
44 | QString m_variant; | |
45 | QString m_name; | |
46 | QString m_langCode; | |
47 | }; | |
48 | ||
49 | typedef QList<FcitxQtKeyboardLayout> FcitxQtKeyboardLayoutList; | |
50 | ||
51 | QDBusArgument& operator<<(QDBusArgument& argument, const FcitxQtKeyboardLayout& l); | |
52 | const QDBusArgument& operator>>(const QDBusArgument& argument, FcitxQtKeyboardLayout& l); | |
53 | ||
54 | Q_DECLARE_METATYPE(FcitxQtKeyboardLayout) | |
55 | Q_DECLARE_METATYPE(FcitxQtKeyboardLayoutList) | |
56 | ||
57 | #endif |
0 | /* | |
1 | * This file was generated by qdbusxml2cpp version 0.7 | |
2 | * Command line was: qdbusxml2cpp -N -p fcitxqtkeyboardproxy -c FcitxQtKeyboardProxy interfaces/org.fcitx.Fcitx.Keyboard.xml -i fcitxqtkeyboardlayout.h -i fcitxqt_export.h | |
3 | * | |
4 | * qdbusxml2cpp is Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). | |
5 | * | |
6 | * This is an auto-generated file. | |
7 | * This file may have been hand-edited. Look for HAND-EDIT comments | |
8 | * before re-generating it. | |
9 | */ | |
10 | ||
11 | #include "fcitxqtkeyboardproxy.h" | |
12 | ||
13 | /* | |
14 | * Implementation of interface class FcitxQtKeyboardProxy | |
15 | */ | |
16 | ||
17 | FcitxQtKeyboardProxy::FcitxQtKeyboardProxy(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) | |
18 | : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) | |
19 | { | |
20 | } | |
21 | ||
22 | FcitxQtKeyboardProxy::~FcitxQtKeyboardProxy() | |
23 | { | |
24 | } | |
25 |
0 | /* | |
1 | * This file was generated by qdbusxml2cpp version 0.7 | |
2 | * Command line was: qdbusxml2cpp -N -p fcitxqtkeyboardproxy -c FcitxQtKeyboardProxy interfaces/org.fcitx.Fcitx.Keyboard.xml -i fcitxqtkeyboardlayout.h -i fcitxqt_export.h | |
3 | * | |
4 | * qdbusxml2cpp is Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). | |
5 | * | |
6 | * This is an auto-generated file. | |
7 | * Do not edit! All changes made to it will be lost. | |
8 | */ | |
9 | ||
10 | #ifndef FCITXQTKEYBOARDPROXY_H_1354825180 | |
11 | #define FCITXQTKEYBOARDPROXY_H_1354825180 | |
12 | ||
13 | #include <QtCore/QObject> | |
14 | #include <QtCore/QByteArray> | |
15 | #include <QtCore/QList> | |
16 | #include <QtCore/QMap> | |
17 | #include <QtCore/QString> | |
18 | #include <QtCore/QStringList> | |
19 | #include <QtCore/QVariant> | |
20 | #include <QtDBus/QtDBus> | |
21 | #include "fcitxqtkeyboardlayout.h" | |
22 | #include "fcitxqt_export.h" | |
23 | ||
24 | /* | |
25 | * Proxy class for interface org.fcitx.Fcitx.Keyboard | |
26 | */ | |
27 | class FCITX_QT_EXPORT_API FcitxQtKeyboardProxy: public QDBusAbstractInterface | |
28 | { | |
29 | Q_OBJECT | |
30 | public: | |
31 | static inline const char *staticInterfaceName() | |
32 | { return "org.fcitx.Fcitx.Keyboard"; } | |
33 | ||
34 | public: | |
35 | FcitxQtKeyboardProxy(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0); | |
36 | ||
37 | ~FcitxQtKeyboardProxy(); | |
38 | ||
39 | public Q_SLOTS: // METHODS | |
40 | inline QDBusPendingReply<QString, QString> GetLayoutForIM(const QString &im) | |
41 | { | |
42 | QList<QVariant> argumentList; | |
43 | argumentList << QVariant::fromValue(im); | |
44 | return asyncCallWithArgumentList(QLatin1String("GetLayoutForIM"), argumentList); | |
45 | } | |
46 | inline QDBusReply<QString> GetLayoutForIM(const QString &im, QString &variant) | |
47 | { | |
48 | QList<QVariant> argumentList; | |
49 | argumentList << QVariant::fromValue(im); | |
50 | QDBusMessage reply = callWithArgumentList(QDBus::Block, QLatin1String("GetLayoutForIM"), argumentList); | |
51 | if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 2) { | |
52 | variant = qdbus_cast<QString>(reply.arguments().at(1)); | |
53 | } | |
54 | return reply; | |
55 | } | |
56 | ||
57 | inline QDBusPendingReply<FcitxQtKeyboardLayoutList> GetLayouts() | |
58 | { | |
59 | QList<QVariant> argumentList; | |
60 | return asyncCallWithArgumentList(QLatin1String("GetLayouts"), argumentList); | |
61 | } | |
62 | ||
63 | inline QDBusPendingReply<> SetLayoutForIM(const QString &im, const QString &layout, const QString &variant) | |
64 | { | |
65 | QList<QVariant> argumentList; | |
66 | argumentList << QVariant::fromValue(im) << QVariant::fromValue(layout) << QVariant::fromValue(variant); | |
67 | return asyncCallWithArgumentList(QLatin1String("SetLayoutForIM"), argumentList); | |
68 | } | |
69 | ||
70 | Q_SIGNALS: // SIGNALS | |
71 | }; | |
72 | ||
73 | #endif |
0 | #!/bin/sh | |
1 | ||
2 | qdbusxml2cpp -N -p fcitxqtinputcontextproxy -c FcitxQtInputContextProxy interfaces/org.fcitx.Fcitx.InputContext.xml -i fcitxqtformattedpreedit.h -i fcitxqt_export.h | |
3 | qdbusxml2cpp -N -p fcitxqtinputmethodproxy -c FcitxQtInputMethodProxy interfaces/org.fcitx.Fcitx.InputMethod.xml -i fcitxqtinputmethoditem.h -i fcitxqt_export.h | |
4 | qdbusxml2cpp -N -p fcitxqtkeyboardproxy -c FcitxQtKeyboardProxy interfaces/org.fcitx.Fcitx.Keyboard.xml -i fcitxqtkeyboardlayout.h -i fcitxqt_export.h |
0 | <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" | |
1 | "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> | |
2 | <node> | |
3 | <interface name="org.fcitx.Fcitx.InputContext"> | |
4 | <method name="EnableIC"> | |
5 | </method> | |
6 | <method name="CloseIC"> | |
7 | </method> | |
8 | <method name="FocusIn"> | |
9 | </method> | |
10 | <method name="FocusOut"> | |
11 | </method> | |
12 | <method name="Reset"> | |
13 | </method> | |
14 | <method name="MouseEvent"> | |
15 | <arg name="x" direction="in" type="i" /> | |
16 | </method> | |
17 | <method name="SetCursorLocation"> | |
18 | <arg name="x" direction="in" type="i"/> | |
19 | <arg name="y" direction="in" type="i"/> | |
20 | </method> | |
21 | <method name="SetCursorRect"> | |
22 | <arg name="x" direction="in" type="i"/> | |
23 | <arg name="y" direction="in" type="i"/> | |
24 | <arg name="w" direction="in" type="i"/> | |
25 | <arg name="h" direction="in" type="i"/> | |
26 | </method> | |
27 | <method name="SetCapacity"> | |
28 | <arg name="caps" direction="in" type="u"/> | |
29 | </method> | |
30 | <method name="SetSurroundingText"> | |
31 | <arg name="text" direction="in" type="s"/> | |
32 | <arg name="cursor" direction="in" type="u"/> | |
33 | <arg name="anchor" direction="in" type="u"/> | |
34 | </method> | |
35 | <method name="SetSurroundingTextPosition"> | |
36 | <arg name="cursor" direction="in" type="u"/> | |
37 | <arg name="anchor" direction="in" type="u"/> | |
38 | </method> | |
39 | <method name="DestroyIC"> | |
40 | </method> | |
41 | <method name="ProcessKeyEvent"> | |
42 | <arg name="keyval" direction="in" type="u"/> | |
43 | <arg name="keycode" direction="in" type="u"/> | |
44 | <arg name="state" direction="in" type="u"/> | |
45 | <arg name="type" direction="in" type="i"/> | |
46 | <arg name="time" direction="in" type="u"/> | |
47 | <arg name="ret" direction="out" type="i"/> | |
48 | </method> | |
49 | <signal name="EnableIM"> | |
50 | </signal> | |
51 | <signal name="CloseIM"> | |
52 | </signal> | |
53 | <signal name="CommitString"> | |
54 | <arg name="str" type="s"/> | |
55 | </signal> | |
56 | <signal name="UpdateFormattedPreedit"> | |
57 | <arg name="str" type="a(si)" /> | |
58 | <arg name="cursorpos" type="i"/> | |
59 | <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="FcitxQtFormattedPreeditList" /> | |
60 | </signal> | |
61 | <signal name="UpdateClientSideUI"> | |
62 | <arg name="auxup" type="s"/> | |
63 | <arg name="auxdown" type="s"/> | |
64 | <arg name="preedit" type="s"/> | |
65 | <arg name="candidateword" type="s"/> | |
66 | <arg name="imname" type="s"/> | |
67 | <arg name="cursorpos" type="i"/> | |
68 | </signal> | |
69 | <signal name="ForwardKey"> | |
70 | <arg name="keyval" type="u"/> | |
71 | <arg name="state" type="u"/> | |
72 | <arg name="type" type="i"/> | |
73 | </signal> | |
74 | <signal name="DeleteSurroundingText"> | |
75 | <arg name="offset" type="i"/> | |
76 | <arg name="nchar" type="u"/> | |
77 | </signal> | |
78 | </interface> | |
79 | </node> |
0 | <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" | |
1 | "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> | |
2 | <node> | |
3 | <interface name="org.fcitx.Fcitx.InputMethod"> | |
4 | <method name="CreateIC"> | |
5 | <arg name="icid" direction="out" type="i"/> | |
6 | <arg name="keyval1" direction="out" type="u"/> | |
7 | <arg name="state1" direction="out" type="u"/> | |
8 | <arg name="keyval2" direction="out" type="u"/> | |
9 | <arg name="state2" direction="out" type="u"/> | |
10 | </method> | |
11 | <method name="CreateICv2"> | |
12 | <arg name="appname" direction="in" type="s"/> | |
13 | <arg name="icid" direction="out" type="i"/> | |
14 | <arg name="enable" direction="out" type="b"/> | |
15 | <arg name="keyval1" direction="out" type="u"/> | |
16 | <arg name="state1" direction="out" type="u"/> | |
17 | <arg name="keyval2" direction="out" type="u"/> | |
18 | <arg name="state2" direction="out" type="u"/> | |
19 | </method> | |
20 | <method name="CreateICv3"> | |
21 | <arg name="appname" direction="in" type="s"/> | |
22 | <arg name="pid" direction="in" type="i"/> | |
23 | <arg name="icid" direction="out" type="i"/> | |
24 | <arg name="enable" direction="out" type="b"/> | |
25 | <arg name="keyval1" direction="out" type="u"/> | |
26 | <arg name="state1" direction="out" type="u"/> | |
27 | <arg name="keyval2" direction="out" type="u"/> | |
28 | <arg name="state2" direction="out" type="u"/> | |
29 | </method> | |
30 | <method name="Exit"> | |
31 | </method> | |
32 | <method name="GetCurrentIM"> | |
33 | <arg name="im" direction="out" type="s"/> | |
34 | </method> | |
35 | <method name="SetCurrentIM"> | |
36 | <arg name="im" direction="in" type="s"/> | |
37 | </method> | |
38 | <method name="ReloadConfig"> | |
39 | </method> | |
40 | <method name="ReloadAddonConfig"> | |
41 | <arg name="addon" direction="in" type="s"/> | |
42 | </method> | |
43 | <method name="Restart"> | |
44 | </method> | |
45 | <method name="Configure"> | |
46 | </method> | |
47 | <method name="ConfigureAddon"> | |
48 | <arg name="addon" direction="in" type="s"/> | |
49 | </method> | |
50 | <method name="ConfigureIM"> | |
51 | <arg name="im" direction="in" type="s"/> | |
52 | </method> | |
53 | <method name="GetCurrentUI"> | |
54 | <arg name="addon" direction="out" type="s"/> | |
55 | </method> | |
56 | <method name="GetIMAddon"> | |
57 | <arg name="im" direction="in" type="s"/> | |
58 | <arg name="addon" direction="out" type="s"/> | |
59 | </method> | |
60 | <method name="ActivateIM"> | |
61 | </method> | |
62 | <method name="InactivateIM"> | |
63 | </method> | |
64 | <method name="ToggleIM"> | |
65 | </method> | |
66 | <method name="GetCurrentState"> | |
67 | <arg name="state" direction="out" type="i"/> | |
68 | </method> | |
69 | <property access="readwrite" type="a(sssb)" name="IMList"> | |
70 | <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/> | |
71 | <annotation name="com.trolltech.QtDBus.QtTypeName" value="FcitxQtInputMethodItemList" /> | |
72 | <annotation name="org.qtproject.QtDBus.QtTypeName" value="FcitxQtInputMethodItemList" /> | |
73 | </property> | |
74 | </interface> | |
75 | </node>⏎ |
0 | <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> | |
1 | <node> | |
2 | <interface name="org.fcitx.Fcitx.Keyboard"> | |
3 | <method name="GetLayouts"> | |
4 | <arg name="layouts" direction="out" type="a(ssss)"/> | |
5 | <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="FcitxQtKeyboardLayoutList" /> | |
6 | <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="FcitxQtKeyboardLayoutList" /> | |
7 | </method> | |
8 | <method name="GetLayoutForIM"> | |
9 | <arg name="im" direction="in" type="s"/> | |
10 | <arg name="layout" direction="out" type="s"/> | |
11 | <arg name="variant" direction="out" type="s"/> | |
12 | </method> | |
13 | <method name="SetLayoutForIM"> | |
14 | <arg name="im" direction="in" type="s"/> | |
15 | <arg name="layout" direction="in" type="s"/> | |
16 | <arg name="variant" direction="in" type="s"/> | |
17 | </method> | |
18 | </interface> | |
19 | </node>⏎ |
0 | include_directories(${Qt5Core_INCLUDE_DIRS} | |
1 | ${Qt5Gui_INCLUDE_DIRS} | |
2 | ${Qt5DBus_INCLUDE_DIRS} | |
3 | ) | |
4 | ||
5 | find_path(Qt5Gui_INCLUDE_DIRECTORY | |
6 | NAMES QtGuiVersion | |
7 | HINTS ${Qt5Gui_INCLUDE_DIRS}) | |
8 | ||
9 | include_directories(${Qt5Gui_INCLUDE_DIRECTORY}/${Qt5Gui_VERSION}/QtGui) | |
10 | ||
11 | ||
12 | set(plugin_SRCS | |
13 | qfcitxplatforminputcontext.cpp | |
14 | keyuni.cpp | |
15 | main.cpp | |
16 | utils.cpp | |
17 | ) | |
18 | ||
19 | set(plugin_MOC_HDRS | |
20 | qfcitxplatforminputcontext.h | |
21 | main.h | |
22 | ) | |
23 | ||
24 | qt5_wrap_cpp(plugin_MOCS ${plugin_MOC_HDRS}) | |
25 | ||
26 | add_library(fcitxplatforminputcontextplugin MODULE ${plugin_SRCS} ${plugin_MOCS}) | |
27 | set_target_properties(fcitxplatforminputcontextplugin PROPERTIES | |
28 | COMPILE_FLAGS "-fvisibility=hidden" | |
29 | LINK_FLAGS "-Wl,--no-undefined" | |
30 | ) | |
31 | ||
32 | target_link_libraries(fcitxplatforminputcontextplugin | |
33 | ${Qt5Core_LIBRARIES} | |
34 | ${Qt5Gui_LIBRARIES} | |
35 | ${Qt5DBus_LIBRARIES} | |
36 | fcitx-qt5 | |
37 | ) | |
38 | ||
39 | install(TARGETS fcitxplatforminputcontextplugin DESTINATION ${_Qt5_PLUGIN_INSTALL_DIR}/platforminputcontexts) |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2012 by CSSlayer * | |
2 | * wengxt@gmail.com * | |
3 | * * | |
4 | * This program is free software; you can redistribute it and/or modify * | |
5 | * it under the terms of the GNU General Public License as published by * | |
6 | * the Free Software Foundation; either version 2 of the License, or * | |
7 | * (at your option) any later version. * | |
8 | * * | |
9 | * This program is distributed in the hope that it will be useful, * | |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
12 | * GNU General Public License for more details. * | |
13 | * * | |
14 | * You should have received a copy of the GNU General Public License * | |
15 | * along with this program; if not, write to the * | |
16 | * Free Software Foundation, Inc., * | |
17 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
18 | ***************************************************************************/ | |
19 | ||
20 | #ifndef __FcitxKey_COMPOSE_DATA_H_ | |
21 | #define __FcitxKey_COMPOSE_DATA_H_ | |
22 | ||
23 | #ifndef XK_TECHNICAL | |
24 | #define XK_TECHNICAL | |
25 | #endif | |
26 | ||
27 | #ifndef XK_APL | |
28 | #define XK_APL | |
29 | #endif | |
30 | ||
31 | #include <X11/keysym.h> | |
32 | ||
33 | static const quint32 fcitx_compose_seqs_compact[] = { | |
34 | XK_dead_stroke, 138, 226, 235, 235, 235, | |
35 | XK_Greek_accentdieresis, 235, 239, 239, 239, 239, | |
36 | XK_dead_grave, 239, 299, 386, 598, 598, | |
37 | XK_dead_acute, 598, 664, 760, 1036, 1036, | |
38 | XK_dead_circumflex, 1036, 1176, 1176, 1376, 1376, | |
39 | XK_dead_tilde, 1376, 1458, 1521, 1661, 1661, | |
40 | XK_dead_macron, 1661, 1707, 1707, 1779, 1779, | |
41 | XK_dead_breve, 1779, 1833, 1833, 1857, 1857, | |
42 | XK_dead_abovedot, 1857, 1887, 1890, 1922, 1922, | |
43 | XK_dead_diaeresis, 1922, 2010, 2019, 2043, 2043, | |
44 | XK_dead_abovering, 2043, 2053, 2053, 2053, 2053, | |
45 | XK_dead_doubleacute, 2053, 2063, 2063, 2063, 2063, | |
46 | XK_dead_caron, 2063, 2089, 2089, 2097, 2097, | |
47 | XK_dead_cedilla, 2097, 2111, 2111, 2111, 2111, | |
48 | XK_dead_ogonek, 2111, 2121, 2121, 2121, 2121, | |
49 | XK_dead_iota, 2121, 2143, 2242, 2674, 3334, | |
50 | XK_dead_voiced_sound, 3334, 3380, 3380, 3380, 3380, | |
51 | XK_dead_semivoiced_sound, 3380, 3390, 3390, 3390, 3390, | |
52 | XK_dead_belowdot, 3390, 3400, 3400, 3416, 3416, | |
53 | XK_dead_hook, 3416, 3494, 3494, 3550, 3550, | |
54 | XK_dead_psili, 3550, 3578, 3578, 3578, 3578, | |
55 | XK_dead_dasia, 3578, 3610, 3610, 3610, 3610, | |
56 | XK_Multi_key, 3610, 3610, 9589, 13297, 15157, | |
57 | XK_space, 0x002F, | |
58 | XK_2, 0x01BB, | |
59 | XK_A, 0x023A, | |
60 | XK_B, 0x0243, | |
61 | XK_C, 0x023B, | |
62 | XK_D, 0x0110, | |
63 | XK_E, 0x0246, | |
64 | XK_G, 0x01E4, | |
65 | XK_H, 0x0126, | |
66 | XK_I, 0x0197, | |
67 | XK_J, 0x0248, | |
68 | XK_L, 0x0141, | |
69 | XK_O, 0x00D8, | |
70 | XK_P, 0x2C63, | |
71 | XK_R, 0x024C, | |
72 | XK_T, 0x0166, | |
73 | XK_U, 0x0244, | |
74 | XK_Y, 0x024E, | |
75 | XK_Z, 0x01B5, | |
76 | XK_a, 0x2C65, | |
77 | XK_b, 0x0180, | |
78 | XK_c, 0x023C, | |
79 | XK_d, 0x0111, | |
80 | XK_e, 0x0247, | |
81 | XK_g, 0x01E5, | |
82 | XK_h, 0x0127, | |
83 | XK_i, 0x0268, | |
84 | XK_j, 0x0249, | |
85 | XK_l, 0x0142, | |
86 | XK_o, 0x00F8, | |
87 | XK_p, 0x1D7D, | |
88 | XK_r, 0x024D, | |
89 | XK_t, 0x0167, | |
90 | XK_u, 0x0289, | |
91 | XK_y, 0x024F, | |
92 | XK_z, 0x01B6, | |
93 | XK_nobreakspace, 0x0338, | |
94 | XK_Oacute, 0x01FE, | |
95 | XK_oacute, 0x01FF, | |
96 | 0x0237, 0x025F, | |
97 | 0x0269, 0x1D7C, | |
98 | XK_dead_stroke, 0x002F, | |
99 | XK_lessthanequal, 0x2270, | |
100 | XK_greaterthanequal, 0x2271, | |
101 | XK_dead_acute, XK_O, 0x01FE, | |
102 | XK_dead_acute, XK_o, 0x01FF, | |
103 | XK_dead_abovedot, XK_j, 0x025F, | |
104 | XK_Greek_iota, 0x0390, | |
105 | XK_Greek_upsilon, 0x03B0, | |
106 | XK_space, 0x0060, | |
107 | XK_V, 0x01DB, | |
108 | XK_v, 0x01DC, | |
109 | XK_Abreve, 0x1EB0, | |
110 | XK_abreve, 0x1EB1, | |
111 | XK_Emacron, 0x1E14, | |
112 | XK_emacron, 0x1E15, | |
113 | XK_Omacron, 0x1E50, | |
114 | XK_omacron, 0x1E51, | |
115 | XK_Cyrillic_ie, 0x0450, | |
116 | XK_Cyrillic_i, 0x045D, | |
117 | XK_Cyrillic_IE, 0x0400, | |
118 | XK_Cyrillic_I, 0x040D, | |
119 | XK_Greek_iotadieresis, 0x1FD2, | |
120 | XK_Greek_upsilondieresis, 0x1FE2, | |
121 | XK_Greek_ALPHA, 0x1FBA, | |
122 | XK_Greek_EPSILON, 0x1FC8, | |
123 | XK_Greek_ETA, 0x1FCA, | |
124 | XK_Greek_IOTA, 0x1FDA, | |
125 | XK_Greek_OMICRON, 0x1FF8, | |
126 | XK_Greek_UPSILON, 0x1FEA, | |
127 | XK_Greek_OMEGA, 0x1FFA, | |
128 | XK_Greek_alpha, 0x1F70, | |
129 | XK_Greek_epsilon, 0x1F72, | |
130 | XK_Greek_eta, 0x1F74, | |
131 | XK_Greek_iota, 0x1F76, | |
132 | XK_Greek_omicron, 0x1F78, | |
133 | XK_Greek_upsilon, 0x1F7A, | |
134 | XK_Greek_omega, 0x1F7C, | |
135 | XK_dead_grave, 0x0060, | |
136 | XK_dead_diaeresis, XK_Greek_iota, 0x1FD2, | |
137 | XK_dead_diaeresis, XK_Greek_upsilon, 0x1FE2, | |
138 | XK_dead_psili, XK_Greek_ALPHA, 0x1F0A, | |
139 | XK_dead_psili, XK_Greek_EPSILON, 0x1F1A, | |
140 | XK_dead_psili, XK_Greek_ETA, 0x1F2A, | |
141 | XK_dead_psili, XK_Greek_IOTA, 0x1F3A, | |
142 | XK_dead_psili, XK_Greek_OMICRON, 0x1F4A, | |
143 | XK_dead_psili, XK_Greek_OMEGA, 0x1F6A, | |
144 | XK_dead_psili, XK_Greek_alpha, 0x1F02, | |
145 | XK_dead_psili, XK_Greek_epsilon, 0x1F12, | |
146 | XK_dead_psili, XK_Greek_eta, 0x1F22, | |
147 | XK_dead_psili, XK_Greek_iota, 0x1F32, | |
148 | XK_dead_psili, XK_Greek_omicron, 0x1F42, | |
149 | XK_dead_psili, XK_Greek_upsilon, 0x1F52, | |
150 | XK_dead_psili, XK_Greek_omega, 0x1F62, | |
151 | XK_dead_dasia, XK_Greek_ALPHA, 0x1F0B, | |
152 | XK_dead_dasia, XK_Greek_EPSILON, 0x1F1B, | |
153 | XK_dead_dasia, XK_Greek_ETA, 0x1F2B, | |
154 | XK_dead_dasia, XK_Greek_IOTA, 0x1F3B, | |
155 | XK_dead_dasia, XK_Greek_OMICRON, 0x1F4B, | |
156 | XK_dead_dasia, XK_Greek_UPSILON, 0x1F5B, | |
157 | XK_dead_dasia, XK_Greek_OMEGA, 0x1F6B, | |
158 | XK_dead_dasia, XK_Greek_alpha, 0x1F03, | |
159 | XK_dead_dasia, XK_Greek_epsilon, 0x1F13, | |
160 | XK_dead_dasia, XK_Greek_eta, 0x1F23, | |
161 | XK_dead_dasia, XK_Greek_iota, 0x1F33, | |
162 | XK_dead_dasia, XK_Greek_omicron, 0x1F43, | |
163 | XK_dead_dasia, XK_Greek_upsilon, 0x1F53, | |
164 | XK_dead_dasia, XK_Greek_omega, 0x1F63, | |
165 | XK_Multi_key, XK_quotedbl, XK_U, 0x01DB, | |
166 | XK_Multi_key, XK_quotedbl, XK_u, 0x01DC, | |
167 | XK_Multi_key, XK_quotedbl, XK_Greek_iota, 0x1FD2, | |
168 | XK_Multi_key, XK_quotedbl, XK_Greek_upsilon, 0x1FE2, | |
169 | XK_Multi_key, XK_parenleft, XK_Greek_ALPHA, 0x1F0B, | |
170 | XK_Multi_key, XK_parenleft, XK_Greek_EPSILON, 0x1F1B, | |
171 | XK_Multi_key, XK_parenleft, XK_Greek_ETA, 0x1F2B, | |
172 | XK_Multi_key, XK_parenleft, XK_Greek_IOTA, 0x1F3B, | |
173 | XK_Multi_key, XK_parenleft, XK_Greek_OMICRON, 0x1F4B, | |
174 | XK_Multi_key, XK_parenleft, XK_Greek_UPSILON, 0x1F5B, | |
175 | XK_Multi_key, XK_parenleft, XK_Greek_OMEGA, 0x1F6B, | |
176 | XK_Multi_key, XK_parenleft, XK_Greek_alpha, 0x1F03, | |
177 | XK_Multi_key, XK_parenleft, XK_Greek_epsilon, 0x1F13, | |
178 | XK_Multi_key, XK_parenleft, XK_Greek_eta, 0x1F23, | |
179 | XK_Multi_key, XK_parenleft, XK_Greek_iota, 0x1F33, | |
180 | XK_Multi_key, XK_parenleft, XK_Greek_omicron, 0x1F43, | |
181 | XK_Multi_key, XK_parenleft, XK_Greek_upsilon, 0x1F53, | |
182 | XK_Multi_key, XK_parenleft, XK_Greek_omega, 0x1F63, | |
183 | XK_Multi_key, XK_parenright, XK_Greek_ALPHA, 0x1F0A, | |
184 | XK_Multi_key, XK_parenright, XK_Greek_EPSILON, 0x1F1A, | |
185 | XK_Multi_key, XK_parenright, XK_Greek_ETA, 0x1F2A, | |
186 | XK_Multi_key, XK_parenright, XK_Greek_IOTA, 0x1F3A, | |
187 | XK_Multi_key, XK_parenright, XK_Greek_OMICRON, 0x1F4A, | |
188 | XK_Multi_key, XK_parenright, XK_Greek_OMEGA, 0x1F6A, | |
189 | XK_Multi_key, XK_parenright, XK_Greek_alpha, 0x1F02, | |
190 | XK_Multi_key, XK_parenright, XK_Greek_epsilon, 0x1F12, | |
191 | XK_Multi_key, XK_parenright, XK_Greek_eta, 0x1F22, | |
192 | XK_Multi_key, XK_parenright, XK_Greek_iota, 0x1F32, | |
193 | XK_Multi_key, XK_parenright, XK_Greek_omicron, 0x1F42, | |
194 | XK_Multi_key, XK_parenright, XK_Greek_upsilon, 0x1F52, | |
195 | XK_Multi_key, XK_parenright, XK_Greek_omega, 0x1F62, | |
196 | XK_Multi_key, XK_plus, XK_O, 0x1EDC, | |
197 | XK_Multi_key, XK_plus, XK_U, 0x1EEA, | |
198 | XK_Multi_key, XK_plus, XK_o, 0x1EDD, | |
199 | XK_Multi_key, XK_plus, XK_u, 0x1EEB, | |
200 | XK_Multi_key, XK_U, XK_A, 0x1EB0, | |
201 | XK_Multi_key, XK_U, XK_a, 0x1EB1, | |
202 | XK_Multi_key, XK_asciicircum, XK_A, 0x1EA6, | |
203 | XK_Multi_key, XK_asciicircum, XK_E, 0x1EC0, | |
204 | XK_Multi_key, XK_asciicircum, XK_O, 0x1ED2, | |
205 | XK_Multi_key, XK_asciicircum, XK_a, 0x1EA7, | |
206 | XK_Multi_key, XK_asciicircum, XK_e, 0x1EC1, | |
207 | XK_Multi_key, XK_asciicircum, XK_o, 0x1ED3, | |
208 | XK_Multi_key, XK_underscore, XK_E, 0x1E14, | |
209 | XK_Multi_key, XK_underscore, XK_O, 0x1E50, | |
210 | XK_Multi_key, XK_underscore, XK_e, 0x1E15, | |
211 | XK_Multi_key, XK_underscore, XK_o, 0x1E51, | |
212 | XK_Multi_key, XK_b, XK_A, 0x1EB0, | |
213 | XK_Multi_key, XK_b, XK_a, 0x1EB1, | |
214 | XK_Multi_key, XK_macron, XK_E, 0x1E14, | |
215 | XK_Multi_key, XK_macron, XK_O, 0x1E50, | |
216 | XK_Multi_key, XK_macron, XK_e, 0x1E15, | |
217 | XK_Multi_key, XK_macron, XK_o, 0x1E51, | |
218 | XK_space, 0x0027, | |
219 | XK_V, 0x01D7, | |
220 | XK_v, 0x01D8, | |
221 | XK_Abreve, 0x1EAE, | |
222 | XK_abreve, 0x1EAF, | |
223 | XK_Emacron, 0x1E16, | |
224 | XK_emacron, 0x1E17, | |
225 | XK_Utilde, 0x1E78, | |
226 | XK_omacron, 0x1E53, | |
227 | XK_utilde, 0x1E79, | |
228 | XK_Cyrillic_ghe, 0x0453, | |
229 | XK_Cyrillic_ka, 0x045C, | |
230 | XK_Cyrillic_GHE, 0x0403, | |
231 | XK_Cyrillic_KA, 0x040C, | |
232 | XK_Greek_iotadieresis, 0x0390, | |
233 | XK_Greek_upsilondieresis, 0x03B0, | |
234 | XK_Greek_ALPHA, 0x0386, | |
235 | XK_Greek_EPSILON, 0x0388, | |
236 | XK_Greek_ETA, 0x0389, | |
237 | XK_Greek_IOTA, 0x038A, | |
238 | XK_Greek_OMICRON, 0x038C, | |
239 | XK_Greek_UPSILON, 0x038E, | |
240 | XK_Greek_OMEGA, 0x038F, | |
241 | XK_Greek_alpha, 0x03AC, | |
242 | XK_Greek_epsilon, 0x03AD, | |
243 | XK_Greek_eta, 0x03AE, | |
244 | XK_Greek_iota, 0x03AF, | |
245 | XK_Greek_omicron, 0x03CC, | |
246 | XK_Greek_upsilon, 0x03CD, | |
247 | XK_Greek_omega, 0x03CE, | |
248 | XK_Sabovedot, 0x1E64, | |
249 | XK_sabovedot, 0x1E65, | |
250 | XK_dead_acute, 0x00B4, | |
251 | XK_dead_stroke, XK_O, 0x01FE, | |
252 | XK_dead_stroke, XK_o, 0x01FF, | |
253 | XK_dead_diaeresis, XK_space, 0x0385, | |
254 | XK_dead_diaeresis, XK_Greek_iota, 0x0390, | |
255 | XK_dead_diaeresis, XK_Greek_upsilon, 0x03B0, | |
256 | XK_dead_psili, XK_Greek_ALPHA, 0x1F0C, | |
257 | XK_dead_psili, XK_Greek_EPSILON, 0x1F1C, | |
258 | XK_dead_psili, XK_Greek_ETA, 0x1F2C, | |
259 | XK_dead_psili, XK_Greek_IOTA, 0x1F3C, | |
260 | XK_dead_psili, XK_Greek_OMICRON, 0x1F4C, | |
261 | XK_dead_psili, XK_Greek_OMEGA, 0x1F6C, | |
262 | XK_dead_psili, XK_Greek_alpha, 0x1F04, | |
263 | XK_dead_psili, XK_Greek_epsilon, 0x1F14, | |
264 | XK_dead_psili, XK_Greek_eta, 0x1F24, | |
265 | XK_dead_psili, XK_Greek_iota, 0x1F34, | |
266 | XK_dead_psili, XK_Greek_omicron, 0x1F44, | |
267 | XK_dead_psili, XK_Greek_upsilon, 0x1F54, | |
268 | XK_dead_psili, XK_Greek_omega, 0x1F64, | |
269 | XK_dead_dasia, XK_Greek_ALPHA, 0x1F0D, | |
270 | XK_dead_dasia, XK_Greek_EPSILON, 0x1F1D, | |
271 | XK_dead_dasia, XK_Greek_ETA, 0x1F2D, | |
272 | XK_dead_dasia, XK_Greek_IOTA, 0x1F3D, | |
273 | XK_dead_dasia, XK_Greek_OMICRON, 0x1F4D, | |
274 | XK_dead_dasia, XK_Greek_UPSILON, 0x1F5D, | |
275 | XK_dead_dasia, XK_Greek_OMEGA, 0x1F6D, | |
276 | XK_dead_dasia, XK_Greek_alpha, 0x1F05, | |
277 | XK_dead_dasia, XK_Greek_epsilon, 0x1F15, | |
278 | XK_dead_dasia, XK_Greek_eta, 0x1F25, | |
279 | XK_dead_dasia, XK_Greek_iota, 0x1F35, | |
280 | XK_dead_dasia, XK_Greek_omicron, 0x1F45, | |
281 | XK_dead_dasia, XK_Greek_upsilon, 0x1F55, | |
282 | XK_dead_dasia, XK_Greek_omega, 0x1F65, | |
283 | XK_Multi_key, XK_quotedbl, XK_I, 0x1E2E, | |
284 | XK_Multi_key, XK_quotedbl, XK_U, 0x01D7, | |
285 | XK_Multi_key, XK_quotedbl, XK_i, 0x1E2F, | |
286 | XK_Multi_key, XK_quotedbl, XK_u, 0x01D8, | |
287 | XK_Multi_key, XK_quotedbl, XK_Greek_iota, 0x0390, | |
288 | XK_Multi_key, XK_quotedbl, XK_Greek_upsilon, 0x03B0, | |
289 | XK_Multi_key, XK_parenleft, XK_Greek_ALPHA, 0x1F0D, | |
290 | XK_Multi_key, XK_parenleft, XK_Greek_EPSILON, 0x1F1D, | |
291 | XK_Multi_key, XK_parenleft, XK_Greek_ETA, 0x1F2D, | |
292 | XK_Multi_key, XK_parenleft, XK_Greek_IOTA, 0x1F3D, | |
293 | XK_Multi_key, XK_parenleft, XK_Greek_OMICRON, 0x1F4D, | |
294 | XK_Multi_key, XK_parenleft, XK_Greek_UPSILON, 0x1F5D, | |
295 | XK_Multi_key, XK_parenleft, XK_Greek_OMEGA, 0x1F6D, | |
296 | XK_Multi_key, XK_parenleft, XK_Greek_alpha, 0x1F05, | |
297 | XK_Multi_key, XK_parenleft, XK_Greek_epsilon, 0x1F15, | |
298 | XK_Multi_key, XK_parenleft, XK_Greek_eta, 0x1F25, | |
299 | XK_Multi_key, XK_parenleft, XK_Greek_iota, 0x1F35, | |
300 | XK_Multi_key, XK_parenleft, XK_Greek_omicron, 0x1F45, | |
301 | XK_Multi_key, XK_parenleft, XK_Greek_upsilon, 0x1F55, | |
302 | XK_Multi_key, XK_parenleft, XK_Greek_omega, 0x1F65, | |
303 | XK_Multi_key, XK_parenright, XK_Greek_ALPHA, 0x1F0C, | |
304 | XK_Multi_key, XK_parenright, XK_Greek_EPSILON, 0x1F1C, | |
305 | XK_Multi_key, XK_parenright, XK_Greek_ETA, 0x1F2C, | |
306 | XK_Multi_key, XK_parenright, XK_Greek_IOTA, 0x1F3C, | |
307 | XK_Multi_key, XK_parenright, XK_Greek_OMICRON, 0x1F4C, | |
308 | XK_Multi_key, XK_parenright, XK_Greek_OMEGA, 0x1F6C, | |
309 | XK_Multi_key, XK_parenright, XK_Greek_alpha, 0x1F04, | |
310 | XK_Multi_key, XK_parenright, XK_Greek_epsilon, 0x1F14, | |
311 | XK_Multi_key, XK_parenright, XK_Greek_eta, 0x1F24, | |
312 | XK_Multi_key, XK_parenright, XK_Greek_iota, 0x1F34, | |
313 | XK_Multi_key, XK_parenright, XK_Greek_omicron, 0x1F44, | |
314 | XK_Multi_key, XK_parenright, XK_Greek_upsilon, 0x1F54, | |
315 | XK_Multi_key, XK_parenright, XK_Greek_omega, 0x1F64, | |
316 | XK_Multi_key, XK_plus, XK_O, 0x1EDA, | |
317 | XK_Multi_key, XK_plus, XK_U, 0x1EE8, | |
318 | XK_Multi_key, XK_plus, XK_o, 0x1EDB, | |
319 | XK_Multi_key, XK_plus, XK_u, 0x1EE9, | |
320 | XK_Multi_key, XK_comma, XK_C, 0x1E08, | |
321 | XK_Multi_key, XK_comma, XK_c, 0x1E09, | |
322 | XK_Multi_key, XK_slash, XK_O, 0x01FE, | |
323 | XK_Multi_key, XK_slash, XK_o, 0x01FF, | |
324 | XK_Multi_key, XK_U, XK_A, 0x1EAE, | |
325 | XK_Multi_key, XK_U, XK_a, 0x1EAF, | |
326 | XK_Multi_key, XK_asciicircum, XK_A, 0x1EA4, | |
327 | XK_Multi_key, XK_asciicircum, XK_E, 0x1EBE, | |
328 | XK_Multi_key, XK_asciicircum, XK_O, 0x1ED0, | |
329 | XK_Multi_key, XK_asciicircum, XK_a, 0x1EA5, | |
330 | XK_Multi_key, XK_asciicircum, XK_e, 0x1EBF, | |
331 | XK_Multi_key, XK_asciicircum, XK_o, 0x1ED1, | |
332 | XK_Multi_key, XK_underscore, XK_E, 0x1E16, | |
333 | XK_Multi_key, XK_underscore, XK_O, 0x1E52, | |
334 | XK_Multi_key, XK_underscore, XK_e, 0x1E17, | |
335 | XK_Multi_key, XK_underscore, XK_o, 0x1E53, | |
336 | XK_Multi_key, XK_b, XK_A, 0x1EAE, | |
337 | XK_Multi_key, XK_b, XK_a, 0x1EAF, | |
338 | XK_Multi_key, XK_o, XK_A, 0x01FA, | |
339 | XK_Multi_key, XK_o, XK_a, 0x01FB, | |
340 | XK_Multi_key, XK_asciitilde, XK_O, 0x1E4C, | |
341 | XK_Multi_key, XK_asciitilde, XK_U, 0x1E78, | |
342 | XK_Multi_key, XK_asciitilde, XK_o, 0x1E4D, | |
343 | XK_Multi_key, XK_asciitilde, XK_u, 0x1E79, | |
344 | XK_Multi_key, XK_macron, XK_E, 0x1E16, | |
345 | XK_Multi_key, XK_macron, XK_O, 0x1E52, | |
346 | XK_Multi_key, XK_macron, XK_e, 0x1E17, | |
347 | XK_Multi_key, XK_macron, XK_o, 0x1E53, | |
348 | XK_Multi_key, XK_cedilla, XK_C, 0x1E08, | |
349 | XK_Multi_key, XK_cedilla, XK_c, 0x1E09, | |
350 | XK_Multi_key, XK_KP_Divide, XK_O, 0x01FE, | |
351 | XK_Multi_key, XK_KP_Divide, XK_o, 0x01FF, | |
352 | XK_space, 0x005E, | |
353 | XK_parenleft, 0x207D, | |
354 | XK_parenright, 0x207E, | |
355 | XK_plus, 0x207A, | |
356 | XK_minus, 0x207B, | |
357 | XK_0, 0x2070, | |
358 | XK_1, 0x00B9, | |
359 | XK_2, 0x00B2, | |
360 | XK_3, 0x00B3, | |
361 | XK_4, 0x2074, | |
362 | XK_5, 0x2075, | |
363 | XK_6, 0x2076, | |
364 | XK_7, 0x2077, | |
365 | XK_8, 0x2078, | |
366 | XK_9, 0x2079, | |
367 | XK_equal, 0x207C, | |
368 | XK_nobreakspace, 0x0302, | |
369 | XK_Agrave, 0x1EA6, | |
370 | XK_Aacute, 0x1EA4, | |
371 | XK_Atilde, 0x1EAA, | |
372 | XK_Egrave, 0x1EC0, | |
373 | XK_Eacute, 0x1EBE, | |
374 | XK_Ograve, 0x1ED2, | |
375 | XK_Oacute, 0x1ED0, | |
376 | XK_Otilde, 0x1ED6, | |
377 | XK_agrave, 0x1EA7, | |
378 | XK_aacute, 0x1EA5, | |
379 | XK_atilde, 0x1EAB, | |
380 | XK_egrave, 0x1EC1, | |
381 | XK_eacute, 0x1EBF, | |
382 | XK_ograve, 0x1ED3, | |
383 | XK_oacute, 0x1ED1, | |
384 | XK_otilde, 0x1ED7, | |
385 | XK_Ahook, 0x1EA8, | |
386 | XK_ahook, 0x1EA9, | |
387 | XK_Ehook, 0x1EC2, | |
388 | XK_ehook, 0x1EC3, | |
389 | XK_Etilde, 0x1EC4, | |
390 | XK_etilde, 0x1EC5, | |
391 | XK_Ohook, 0x1ED4, | |
392 | XK_ohook, 0x1ED5, | |
393 | 0x2212, 0x207B, | |
394 | 0x4E00, 0x3192, | |
395 | 0x4E01, 0x319C, | |
396 | 0x4E09, 0x3194, | |
397 | 0x4E0A, 0x3196, | |
398 | 0x4E0B, 0x3198, | |
399 | 0x4E19, 0x319B, | |
400 | 0x4E2D, 0x3197, | |
401 | 0x4E59, 0x319A, | |
402 | 0x4E8C, 0x3193, | |
403 | 0x4EBA, 0x319F, | |
404 | 0x56DB, 0x3195, | |
405 | 0x5730, 0x319E, | |
406 | 0x5929, 0x319D, | |
407 | 0x7532, 0x3199, | |
408 | XK_dead_circumflex, 0x005E, | |
409 | XK_KP_Space, 0x00B2, | |
410 | XK_KP_Add, 0x207A, | |
411 | XK_KP_0, 0x2070, | |
412 | XK_KP_1, 0x00B9, | |
413 | XK_KP_2, 0x00B2, | |
414 | XK_KP_3, 0x00B3, | |
415 | XK_KP_4, 0x2074, | |
416 | XK_KP_5, 0x2075, | |
417 | XK_KP_6, 0x2076, | |
418 | XK_KP_7, 0x2077, | |
419 | XK_KP_8, 0x2078, | |
420 | XK_KP_9, 0x2079, | |
421 | XK_KP_Equal, 0x207C, | |
422 | XK_Multi_key, XK_exclam, XK_A, 0x1EAC, | |
423 | XK_Multi_key, XK_exclam, XK_E, 0x1EC6, | |
424 | XK_Multi_key, XK_exclam, XK_O, 0x1ED8, | |
425 | XK_Multi_key, XK_exclam, XK_a, 0x1EAD, | |
426 | XK_Multi_key, XK_exclam, XK_e, 0x1EC7, | |
427 | XK_Multi_key, XK_exclam, XK_o, 0x1ED9, | |
428 | XK_Multi_key, XK_S, XK_M, 0x2120, | |
429 | XK_Multi_key, XK_S, XK_m, 0x2120, | |
430 | XK_Multi_key, XK_T, XK_M, 0x2122, | |
431 | XK_Multi_key, XK_T, XK_m, 0x2122, | |
432 | XK_Multi_key, XK_underscore, XK_a, 0x00AA, | |
433 | XK_Multi_key, XK_underscore, XK_h, 0x02B0, | |
434 | XK_Multi_key, XK_underscore, XK_i, 0x2071, | |
435 | XK_Multi_key, XK_underscore, XK_j, 0x02B2, | |
436 | XK_Multi_key, XK_underscore, XK_l, 0x02E1, | |
437 | XK_Multi_key, XK_underscore, XK_n, 0x207F, | |
438 | XK_Multi_key, XK_underscore, XK_o, 0x00BA, | |
439 | XK_Multi_key, XK_underscore, XK_r, 0x02B3, | |
440 | XK_Multi_key, XK_underscore, XK_s, 0x02E2, | |
441 | XK_Multi_key, XK_underscore, XK_w, 0x02B7, | |
442 | XK_Multi_key, XK_underscore, XK_x, 0x02E3, | |
443 | XK_Multi_key, XK_underscore, XK_y, 0x02B8, | |
444 | XK_Multi_key, XK_underscore, 0x0263, 0x02E0, | |
445 | XK_Multi_key, XK_underscore, 0x0266, 0x02B1, | |
446 | XK_Multi_key, XK_underscore, 0x0279, 0x02B4, | |
447 | XK_Multi_key, XK_underscore, 0x027B, 0x02B5, | |
448 | XK_Multi_key, XK_underscore, 0x0281, 0x02B6, | |
449 | XK_Multi_key, XK_underscore, 0x0295, 0x02E4, | |
450 | XK_Multi_key, XK_s, XK_M, 0x2120, | |
451 | XK_Multi_key, XK_s, XK_m, 0x2120, | |
452 | XK_Multi_key, XK_t, XK_M, 0x2122, | |
453 | XK_Multi_key, XK_t, XK_m, 0x2122, | |
454 | XK_Multi_key, XK_underbar, XK_a, 0x00AA, | |
455 | XK_Multi_key, XK_underbar, XK_h, 0x02B0, | |
456 | XK_Multi_key, XK_underbar, XK_i, 0x2071, | |
457 | XK_Multi_key, XK_underbar, XK_j, 0x02B2, | |
458 | XK_Multi_key, XK_underbar, XK_l, 0x02E1, | |
459 | XK_Multi_key, XK_underbar, XK_n, 0x207F, | |
460 | XK_Multi_key, XK_underbar, XK_o, 0x00BA, | |
461 | XK_Multi_key, XK_underbar, XK_r, 0x02B3, | |
462 | XK_Multi_key, XK_underbar, XK_s, 0x02E2, | |
463 | XK_Multi_key, XK_underbar, XK_w, 0x02B7, | |
464 | XK_Multi_key, XK_underbar, XK_x, 0x02E3, | |
465 | XK_Multi_key, XK_underbar, XK_y, 0x02B8, | |
466 | XK_Multi_key, XK_underbar, 0x0263, 0x02E0, | |
467 | XK_Multi_key, XK_underbar, 0x0266, 0x02B1, | |
468 | XK_Multi_key, XK_underbar, 0x0279, 0x02B4, | |
469 | XK_Multi_key, XK_underbar, 0x027B, 0x02B5, | |
470 | XK_Multi_key, XK_underbar, 0x0281, 0x02B6, | |
471 | XK_Multi_key, XK_underbar, 0x0295, 0x02E4, | |
472 | XK_space, 0x007E, | |
473 | XK_less, 0x2272, | |
474 | XK_equal, 0x2243, | |
475 | XK_greater, 0x2273, | |
476 | XK_Oacute, 0x1E4C, | |
477 | XK_Odiaeresis, 0x1E4E, | |
478 | XK_Uacute, 0x1E78, | |
479 | XK_oacute, 0x1E4D, | |
480 | XK_odiaeresis, 0x1E4F, | |
481 | XK_uacute, 0x1E79, | |
482 | XK_Abreve, 0x1EB4, | |
483 | XK_abreve, 0x1EB5, | |
484 | XK_Omacron, 0x022C, | |
485 | XK_omacron, 0x022D, | |
486 | XK_Greek_iotadieresis, 0x1FD7, | |
487 | XK_Greek_upsilondieresis, 0x1FE7, | |
488 | XK_Greek_alpha, 0x1FB6, | |
489 | XK_Greek_eta, 0x1FC6, | |
490 | XK_Greek_iota, 0x1FD6, | |
491 | XK_Greek_upsilon, 0x1FE6, | |
492 | XK_Greek_omega, 0x1FF6, | |
493 | 0x1F00, 0x1F06, | |
494 | 0x1F01, 0x1F07, | |
495 | 0x1F08, 0x1F0E, | |
496 | 0x1F09, 0x1F0F, | |
497 | 0x1F20, 0x1F26, | |
498 | 0x1F21, 0x1F27, | |
499 | 0x1F28, 0x1F2E, | |
500 | 0x1F29, 0x1F2F, | |
501 | 0x1F30, 0x1F36, | |
502 | 0x1F31, 0x1F37, | |
503 | 0x1F38, 0x1F3E, | |
504 | 0x1F39, 0x1F3F, | |
505 | 0x1F50, 0x1F56, | |
506 | 0x1F51, 0x1F57, | |
507 | 0x1F59, 0x1F5F, | |
508 | 0x1F60, 0x1F66, | |
509 | 0x1F61, 0x1F67, | |
510 | 0x1F68, 0x1F6E, | |
511 | 0x1F69, 0x1F6F, | |
512 | XK_dead_tilde, 0x007E, | |
513 | XK_dead_diaeresis, XK_Greek_iota, 0x1FD7, | |
514 | XK_dead_diaeresis, XK_Greek_upsilon, 0x1FE7, | |
515 | XK_dead_psili, XK_Greek_ALPHA, 0x1F0E, | |
516 | XK_dead_psili, XK_Greek_ETA, 0x1F2E, | |
517 | XK_dead_psili, XK_Greek_IOTA, 0x1F3E, | |
518 | XK_dead_psili, XK_Greek_OMEGA, 0x1F6E, | |
519 | XK_dead_psili, XK_Greek_alpha, 0x1F06, | |
520 | XK_dead_psili, XK_Greek_eta, 0x1F26, | |
521 | XK_dead_psili, XK_Greek_iota, 0x1F36, | |
522 | XK_dead_psili, XK_Greek_upsilon, 0x1F56, | |
523 | XK_dead_psili, XK_Greek_omega, 0x1F66, | |
524 | XK_dead_dasia, XK_Greek_ALPHA, 0x1F0F, | |
525 | XK_dead_dasia, XK_Greek_ETA, 0x1F2F, | |
526 | XK_dead_dasia, XK_Greek_IOTA, 0x1F3F, | |
527 | XK_dead_dasia, XK_Greek_UPSILON, 0x1F5F, | |
528 | XK_dead_dasia, XK_Greek_OMEGA, 0x1F6F, | |
529 | XK_dead_dasia, XK_Greek_alpha, 0x1F07, | |
530 | XK_dead_dasia, XK_Greek_eta, 0x1F27, | |
531 | XK_dead_dasia, XK_Greek_iota, 0x1F37, | |
532 | XK_dead_dasia, XK_Greek_upsilon, 0x1F57, | |
533 | XK_dead_dasia, XK_Greek_omega, 0x1F67, | |
534 | XK_Multi_key, XK_quotedbl, XK_Greek_iota, 0x1FD7, | |
535 | XK_Multi_key, XK_quotedbl, XK_Greek_upsilon, 0x1FE7, | |
536 | XK_Multi_key, XK_parenleft, XK_Greek_ALPHA, 0x1F0F, | |
537 | XK_Multi_key, XK_parenleft, XK_Greek_ETA, 0x1F2F, | |
538 | XK_Multi_key, XK_parenleft, XK_Greek_IOTA, 0x1F3F, | |
539 | XK_Multi_key, XK_parenleft, XK_Greek_UPSILON, 0x1F5F, | |
540 | XK_Multi_key, XK_parenleft, XK_Greek_OMEGA, 0x1F6F, | |
541 | XK_Multi_key, XK_parenleft, XK_Greek_alpha, 0x1F07, | |
542 | XK_Multi_key, XK_parenleft, XK_Greek_eta, 0x1F27, | |
543 | XK_Multi_key, XK_parenleft, XK_Greek_iota, 0x1F37, | |
544 | XK_Multi_key, XK_parenleft, XK_Greek_upsilon, 0x1F57, | |
545 | XK_Multi_key, XK_parenleft, XK_Greek_omega, 0x1F67, | |
546 | XK_Multi_key, XK_parenright, XK_Greek_ALPHA, 0x1F0E, | |
547 | XK_Multi_key, XK_parenright, XK_Greek_ETA, 0x1F2E, | |
548 | XK_Multi_key, XK_parenright, XK_Greek_IOTA, 0x1F3E, | |
549 | XK_Multi_key, XK_parenright, XK_Greek_OMEGA, 0x1F6E, | |
550 | XK_Multi_key, XK_parenright, XK_Greek_alpha, 0x1F06, | |
551 | XK_Multi_key, XK_parenright, XK_Greek_eta, 0x1F26, | |
552 | XK_Multi_key, XK_parenright, XK_Greek_iota, 0x1F36, | |
553 | XK_Multi_key, XK_parenright, XK_Greek_upsilon, 0x1F56, | |
554 | XK_Multi_key, XK_parenright, XK_Greek_omega, 0x1F66, | |
555 | XK_Multi_key, XK_plus, XK_O, 0x1EE0, | |
556 | XK_Multi_key, XK_plus, XK_U, 0x1EEE, | |
557 | XK_Multi_key, XK_plus, XK_o, 0x1EE1, | |
558 | XK_Multi_key, XK_plus, XK_u, 0x1EEF, | |
559 | XK_Multi_key, XK_U, XK_A, 0x1EB4, | |
560 | XK_Multi_key, XK_U, XK_a, 0x1EB5, | |
561 | XK_Multi_key, XK_asciicircum, XK_A, 0x1EAA, | |
562 | XK_Multi_key, XK_asciicircum, XK_E, 0x1EC4, | |
563 | XK_Multi_key, XK_asciicircum, XK_O, 0x1ED6, | |
564 | XK_Multi_key, XK_asciicircum, XK_a, 0x1EAB, | |
565 | XK_Multi_key, XK_asciicircum, XK_e, 0x1EC5, | |
566 | XK_Multi_key, XK_asciicircum, XK_o, 0x1ED7, | |
567 | XK_Multi_key, XK_b, XK_A, 0x1EB4, | |
568 | XK_Multi_key, XK_b, XK_a, 0x1EB5, | |
569 | XK_space, 0x00AF, | |
570 | XK_V, 0x01D5, | |
571 | XK_v, 0x01D6, | |
572 | XK_nobreakspace, 0x0304, | |
573 | XK_Egrave, 0x1E14, | |
574 | XK_Eacute, 0x1E16, | |
575 | XK_Ograve, 0x1E50, | |
576 | XK_Oacute, 0x1E52, | |
577 | XK_egrave, 0x1E15, | |
578 | XK_eacute, 0x1E17, | |
579 | XK_ograve, 0x1E51, | |
580 | XK_oacute, 0x1E53, | |
581 | XK_Cyrillic_i, 0x04E3, | |
582 | XK_Cyrillic_u, 0x04EF, | |
583 | XK_Cyrillic_I, 0x04E2, | |
584 | XK_Cyrillic_U, 0x04EE, | |
585 | XK_Greek_ALPHA, 0x1FB9, | |
586 | XK_Greek_IOTA, 0x1FD9, | |
587 | XK_Greek_UPSILON, 0x1FE9, | |
588 | XK_Greek_alpha, 0x1FB1, | |
589 | XK_Greek_iota, 0x1FD1, | |
590 | XK_Greek_upsilon, 0x1FE1, | |
591 | XK_dead_macron, 0x00AF, | |
592 | XK_Multi_key, XK_exclam, XK_L, 0x1E38, | |
593 | XK_Multi_key, XK_exclam, XK_R, 0x1E5C, | |
594 | XK_Multi_key, XK_exclam, XK_l, 0x1E39, | |
595 | XK_Multi_key, XK_exclam, XK_r, 0x1E5D, | |
596 | XK_Multi_key, XK_quotedbl, XK_A, 0x01DE, | |
597 | XK_Multi_key, XK_quotedbl, XK_O, 0x022A, | |
598 | XK_Multi_key, XK_quotedbl, XK_U, 0x01D5, | |
599 | XK_Multi_key, XK_quotedbl, XK_a, 0x01DF, | |
600 | XK_Multi_key, XK_quotedbl, XK_o, 0x022B, | |
601 | XK_Multi_key, XK_quotedbl, XK_u, 0x01D6, | |
602 | XK_Multi_key, XK_period, XK_A, 0x01E0, | |
603 | XK_Multi_key, XK_period, XK_O, 0x0230, | |
604 | XK_Multi_key, XK_period, XK_a, 0x01E1, | |
605 | XK_Multi_key, XK_period, XK_o, 0x0231, | |
606 | XK_Multi_key, XK_semicolon, XK_O, 0x01EC, | |
607 | XK_Multi_key, XK_semicolon, XK_o, 0x01ED, | |
608 | XK_Multi_key, XK_asciitilde, XK_O, 0x022C, | |
609 | XK_Multi_key, XK_asciitilde, XK_o, 0x022D, | |
610 | XK_space, 0x02D8, | |
611 | XK_nobreakspace, 0x0306, | |
612 | XK_Agrave, 0x1EB0, | |
613 | XK_Aacute, 0x1EAE, | |
614 | XK_Atilde, 0x1EB4, | |
615 | XK_agrave, 0x1EB1, | |
616 | XK_aacute, 0x1EAF, | |
617 | XK_atilde, 0x1EB5, | |
618 | XK_Cyrillic_a, 0x04D1, | |
619 | XK_Cyrillic_ie, 0x04D7, | |
620 | XK_Cyrillic_i, 0x0439, | |
621 | XK_Cyrillic_u, 0x045E, | |
622 | XK_Cyrillic_zhe, 0x04C2, | |
623 | XK_Cyrillic_A, 0x04D0, | |
624 | XK_Cyrillic_IE, 0x04D6, | |
625 | XK_Cyrillic_I, 0x0419, | |
626 | XK_Cyrillic_U, 0x040E, | |
627 | XK_Cyrillic_ZHE, 0x04C1, | |
628 | XK_Greek_ALPHA, 0x1FB8, | |
629 | XK_Greek_IOTA, 0x1FD8, | |
630 | XK_Greek_UPSILON, 0x1FE8, | |
631 | XK_Greek_alpha, 0x1FB0, | |
632 | XK_Greek_iota, 0x1FD0, | |
633 | XK_Greek_upsilon, 0x1FE0, | |
634 | XK_Ahook, 0x1EB2, | |
635 | XK_ahook, 0x1EB3, | |
636 | XK_dead_breve, 0x02D8, | |
637 | XK_Multi_key, XK_exclam, XK_A, 0x1EB6, | |
638 | XK_Multi_key, XK_exclam, XK_a, 0x1EB7, | |
639 | XK_Multi_key, XK_comma, XK_E, 0x1E1C, | |
640 | XK_Multi_key, XK_comma, XK_e, 0x1E1D, | |
641 | XK_Multi_key, XK_cedilla, XK_E, 0x1E1C, | |
642 | XK_Multi_key, XK_cedilla, XK_e, 0x1E1D, | |
643 | XK_space, 0x02D9, | |
644 | XK_L, 0x013F, | |
645 | XK_i, 0x0131, | |
646 | XK_j, 0x0237, | |
647 | XK_l, 0x0140, | |
648 | XK_nobreakspace, 0x0307, | |
649 | XK_Sacute, 0x1E64, | |
650 | XK_Scaron, 0x1E66, | |
651 | XK_sacute, 0x1E65, | |
652 | XK_scaron, 0x1E67, | |
653 | XK_Amacron, 0x01E0, | |
654 | XK_Omacron, 0x0230, | |
655 | XK_amacron, 0x01E1, | |
656 | XK_omacron, 0x0231, | |
657 | XK_dead_abovedot, 0x02D9, | |
658 | XK_dead_stroke, XK_j, 0x025F, | |
659 | XK_Multi_key, XK_exclam, XK_S, 0x1E68, | |
660 | XK_Multi_key, XK_exclam, XK_s, 0x1E69, | |
661 | XK_Multi_key, XK_apostrophe, XK_S, 0x1E64, | |
662 | XK_Multi_key, XK_apostrophe, XK_s, 0x1E65, | |
663 | XK_Multi_key, XK_c, XK_S, 0x1E66, | |
664 | XK_Multi_key, XK_c, XK_s, 0x1E67, | |
665 | XK_Multi_key, XK_acute, XK_S, 0x1E64, | |
666 | XK_Multi_key, XK_acute, XK_s, 0x1E65, | |
667 | XK_space, 0x0022, | |
668 | XK_apostrophe, 0x0344, | |
669 | XK_nobreakspace, 0x0308, | |
670 | XK_acute, 0x0344, | |
671 | XK_Iacute, 0x1E2E, | |
672 | XK_Ugrave, 0x01DB, | |
673 | XK_Uacute, 0x01D7, | |
674 | XK_iacute, 0x1E2F, | |
675 | XK_ugrave, 0x01DC, | |
676 | XK_uacute, 0x01D8, | |
677 | 0x01D3, 0x01D9, | |
678 | 0x01D4, 0x01DA, | |
679 | XK_Amacron, 0x01DE, | |
680 | XK_Umacron, 0x1E7A, | |
681 | XK_amacron, 0x01DF, | |
682 | XK_omacron, 0x022B, | |
683 | XK_umacron, 0x1E7B, | |
684 | XK_Ukrainian_i, 0x0457, | |
685 | XK_Ukrainian_I, 0x0407, | |
686 | XK_Cyrillic_a, 0x04D3, | |
687 | XK_Cyrillic_ie, 0x0451, | |
688 | XK_Cyrillic_i, 0x04E5, | |
689 | XK_Cyrillic_o, 0x04E7, | |
690 | XK_Cyrillic_u, 0x04F1, | |
691 | XK_Cyrillic_zhe, 0x04DD, | |
692 | XK_Cyrillic_yeru, 0x04F9, | |
693 | XK_Cyrillic_ze, 0x04DF, | |
694 | XK_Cyrillic_e, 0x04ED, | |
695 | XK_Cyrillic_che, 0x04F5, | |
696 | XK_Cyrillic_A, 0x04D2, | |
697 | XK_Cyrillic_IE, 0x0401, | |
698 | XK_Cyrillic_I, 0x04E4, | |
699 | XK_Cyrillic_O, 0x04E6, | |
700 | XK_Cyrillic_U, 0x04F0, | |
701 | XK_Cyrillic_ZHE, 0x04DC, | |
702 | XK_Cyrillic_YERU, 0x04F8, | |
703 | XK_Cyrillic_ZE, 0x04DE, | |
704 | XK_Cyrillic_E, 0x04EC, | |
705 | XK_Cyrillic_CHE, 0x04F4, | |
706 | XK_Greek_IOTA, 0x03AA, | |
707 | XK_Greek_UPSILON, 0x03AB, | |
708 | XK_Greek_iota, 0x03CA, | |
709 | XK_Greek_upsilon, 0x03CB, | |
710 | XK_dead_diaeresis, 0x00A8, | |
711 | XK_dead_acute, XK_space, 0x0385, | |
712 | XK_dead_acute, XK_Greek_iota, 0x0390, | |
713 | XK_dead_acute, XK_Greek_upsilon, 0x03B0, | |
714 | XK_Multi_key, XK_underscore, XK_U, 0x1E7A, | |
715 | XK_Multi_key, XK_underscore, XK_u, 0x1E7B, | |
716 | XK_Multi_key, XK_asciitilde, XK_O, 0x1E4E, | |
717 | XK_Multi_key, XK_asciitilde, XK_o, 0x1E4F, | |
718 | XK_Multi_key, XK_macron, XK_U, 0x1E7A, | |
719 | XK_Multi_key, XK_macron, XK_u, 0x1E7B, | |
720 | XK_space, 0x00B0, | |
721 | XK_nobreakspace, 0x030A, | |
722 | XK_Aacute, 0x01FA, | |
723 | XK_aacute, 0x01FB, | |
724 | XK_dead_abovering, 0x00B0, | |
725 | XK_space, 0x02DD, | |
726 | XK_nobreakspace, 0x030B, | |
727 | XK_Cyrillic_u, 0x04F3, | |
728 | XK_Cyrillic_U, 0x04F2, | |
729 | XK_dead_doubleacute, 0x02DD, | |
730 | XK_space, 0x02C7, | |
731 | XK_parenleft, 0x208D, | |
732 | XK_parenright, 0x208E, | |
733 | XK_plus, 0x208A, | |
734 | XK_minus, 0x208B, | |
735 | XK_equal, 0x208C, | |
736 | XK_V, 0x01D9, | |
737 | XK_v, 0x01DA, | |
738 | XK_nobreakspace, 0x030C, | |
739 | 0x01F2, 0x01C5, | |
740 | XK_Sabovedot, 0x1E66, | |
741 | XK_sabovedot, 0x1E67, | |
742 | XK_dead_caron, 0x02C7, | |
743 | XK_Multi_key, XK_quotedbl, XK_U, 0x01D9, | |
744 | XK_Multi_key, XK_quotedbl, XK_u, 0x01DA, | |
745 | XK_space, 0x00B8, | |
746 | XK_nobreakspace, 0x0327, | |
747 | XK_cent, 0x20B5, | |
748 | XK_Cacute, 0x1E08, | |
749 | XK_cacute, 0x1E09, | |
750 | XK_ColonSign, 0x20B5, | |
751 | XK_dead_cedilla, 0x00B8, | |
752 | XK_space, 0x02DB, | |
753 | XK_nobreakspace, 0x0328, | |
754 | XK_Omacron, 0x01EC, | |
755 | XK_omacron, 0x01ED, | |
756 | XK_dead_ogonek, 0x02DB, | |
757 | XK_space, 0x037A, | |
758 | XK_Greek_alphaaccent, 0x1FB4, | |
759 | XK_Greek_etaaccent, 0x1FC4, | |
760 | XK_Greek_omegaaccent, 0x1FF4, | |
761 | XK_Greek_ALPHA, 0x1FBC, | |
762 | XK_Greek_ETA, 0x1FCC, | |
763 | XK_Greek_OMEGA, 0x1FFC, | |
764 | XK_Greek_alpha, 0x1FB3, | |
765 | XK_Greek_eta, 0x1FC3, | |
766 | XK_Greek_omega, 0x1FF3, | |
767 | XK_dead_iota, 0x037A, | |
768 | XK_dead_grave, XK_Greek_alpha, 0x1FB2, | |
769 | XK_dead_grave, XK_Greek_eta, 0x1FC2, | |
770 | XK_dead_grave, XK_Greek_omega, 0x1FF2, | |
771 | XK_dead_acute, XK_Greek_alpha, 0x1FB4, | |
772 | XK_dead_acute, XK_Greek_eta, 0x1FC4, | |
773 | XK_dead_acute, XK_Greek_omega, 0x1FF4, | |
774 | XK_dead_tilde, XK_Greek_alpha, 0x1FB7, | |
775 | XK_dead_tilde, XK_Greek_eta, 0x1FC7, | |
776 | XK_dead_tilde, XK_Greek_omega, 0x1FF7, | |
777 | XK_dead_tilde, 0x1F00, 0x1F86, | |
778 | XK_dead_tilde, 0x1F01, 0x1F87, | |
779 | XK_dead_tilde, 0x1F08, 0x1F8E, | |
780 | XK_dead_tilde, 0x1F09, 0x1F8F, | |
781 | XK_dead_tilde, 0x1F20, 0x1F96, | |
782 | XK_dead_tilde, 0x1F21, 0x1F97, | |
783 | XK_dead_tilde, 0x1F28, 0x1F9E, | |
784 | XK_dead_tilde, 0x1F29, 0x1F9F, | |
785 | XK_dead_tilde, 0x1F60, 0x1FA6, | |
786 | XK_dead_tilde, 0x1F61, 0x1FA7, | |
787 | XK_dead_tilde, 0x1F68, 0x1FAE, | |
788 | XK_dead_tilde, 0x1F69, 0x1FAF, | |
789 | XK_dead_psili, XK_Greek_ALPHA, 0x1F88, | |
790 | XK_dead_psili, XK_Greek_ETA, 0x1F98, | |
791 | XK_dead_psili, XK_Greek_OMEGA, 0x1FA8, | |
792 | XK_dead_psili, XK_Greek_alpha, 0x1F80, | |
793 | XK_dead_psili, XK_Greek_eta, 0x1F90, | |
794 | XK_dead_psili, XK_Greek_omega, 0x1FA0, | |
795 | XK_dead_dasia, XK_Greek_ALPHA, 0x1F89, | |
796 | XK_dead_dasia, XK_Greek_ETA, 0x1F99, | |
797 | XK_dead_dasia, XK_Greek_OMEGA, 0x1FA9, | |
798 | XK_dead_dasia, XK_Greek_alpha, 0x1F81, | |
799 | XK_dead_dasia, XK_Greek_eta, 0x1F91, | |
800 | XK_dead_dasia, XK_Greek_omega, 0x1FA1, | |
801 | XK_dead_grave, XK_dead_psili, XK_Greek_ALPHA, 0x1F8A, | |
802 | XK_dead_grave, XK_dead_psili, XK_Greek_ETA, 0x1F9A, | |
803 | XK_dead_grave, XK_dead_psili, XK_Greek_OMEGA, 0x1FAA, | |
804 | XK_dead_grave, XK_dead_psili, XK_Greek_alpha, 0x1F82, | |
805 | XK_dead_grave, XK_dead_psili, XK_Greek_eta, 0x1F92, | |
806 | XK_dead_grave, XK_dead_psili, XK_Greek_omega, 0x1FA2, | |
807 | XK_dead_grave, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8B, | |
808 | XK_dead_grave, XK_dead_dasia, XK_Greek_ETA, 0x1F9B, | |
809 | XK_dead_grave, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAB, | |
810 | XK_dead_grave, XK_dead_dasia, XK_Greek_alpha, 0x1F83, | |
811 | XK_dead_grave, XK_dead_dasia, XK_Greek_eta, 0x1F93, | |
812 | XK_dead_grave, XK_dead_dasia, XK_Greek_omega, 0x1FA3, | |
813 | XK_dead_acute, XK_dead_psili, XK_Greek_ALPHA, 0x1F8C, | |
814 | XK_dead_acute, XK_dead_psili, XK_Greek_ETA, 0x1F9C, | |
815 | XK_dead_acute, XK_dead_psili, XK_Greek_OMEGA, 0x1FAC, | |
816 | XK_dead_acute, XK_dead_psili, XK_Greek_alpha, 0x1F84, | |
817 | XK_dead_acute, XK_dead_psili, XK_Greek_eta, 0x1F94, | |
818 | XK_dead_acute, XK_dead_psili, XK_Greek_omega, 0x1FA4, | |
819 | XK_dead_acute, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8D, | |
820 | XK_dead_acute, XK_dead_dasia, XK_Greek_ETA, 0x1F9D, | |
821 | XK_dead_acute, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAD, | |
822 | XK_dead_acute, XK_dead_dasia, XK_Greek_alpha, 0x1F85, | |
823 | XK_dead_acute, XK_dead_dasia, XK_Greek_eta, 0x1F95, | |
824 | XK_dead_acute, XK_dead_dasia, XK_Greek_omega, 0x1FA5, | |
825 | XK_dead_tilde, XK_dead_psili, XK_Greek_ALPHA, 0x1F8E, | |
826 | XK_dead_tilde, XK_dead_psili, XK_Greek_ETA, 0x1F9E, | |
827 | XK_dead_tilde, XK_dead_psili, XK_Greek_OMEGA, 0x1FAE, | |
828 | XK_dead_tilde, XK_dead_psili, XK_Greek_alpha, 0x1F86, | |
829 | XK_dead_tilde, XK_dead_psili, XK_Greek_eta, 0x1F96, | |
830 | XK_dead_tilde, XK_dead_psili, XK_Greek_omega, 0x1FA6, | |
831 | XK_dead_tilde, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8F, | |
832 | XK_dead_tilde, XK_dead_dasia, XK_Greek_ETA, 0x1F9F, | |
833 | XK_dead_tilde, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAF, | |
834 | XK_dead_tilde, XK_dead_dasia, XK_Greek_alpha, 0x1F87, | |
835 | XK_dead_tilde, XK_dead_dasia, XK_Greek_eta, 0x1F97, | |
836 | XK_dead_tilde, XK_dead_dasia, XK_Greek_omega, 0x1FA7, | |
837 | XK_Multi_key, XK_apostrophe, XK_Greek_alpha, 0x1FB4, | |
838 | XK_Multi_key, XK_apostrophe, XK_Greek_eta, 0x1FC4, | |
839 | XK_Multi_key, XK_apostrophe, XK_Greek_omega, 0x1FF4, | |
840 | XK_Multi_key, XK_apostrophe, 0x1F00, 0x1F84, | |
841 | XK_Multi_key, XK_apostrophe, 0x1F01, 0x1F85, | |
842 | XK_Multi_key, XK_apostrophe, 0x1F08, 0x1F8C, | |
843 | XK_Multi_key, XK_apostrophe, 0x1F09, 0x1F8D, | |
844 | XK_Multi_key, XK_apostrophe, 0x1F20, 0x1F94, | |
845 | XK_Multi_key, XK_apostrophe, 0x1F21, 0x1F95, | |
846 | XK_Multi_key, XK_apostrophe, 0x1F28, 0x1F9C, | |
847 | XK_Multi_key, XK_apostrophe, 0x1F29, 0x1F9D, | |
848 | XK_Multi_key, XK_apostrophe, 0x1F60, 0x1FA4, | |
849 | XK_Multi_key, XK_apostrophe, 0x1F61, 0x1FA5, | |
850 | XK_Multi_key, XK_apostrophe, 0x1F68, 0x1FAC, | |
851 | XK_Multi_key, XK_apostrophe, 0x1F69, 0x1FAD, | |
852 | XK_Multi_key, XK_parenleft, XK_Greek_ALPHA, 0x1F89, | |
853 | XK_Multi_key, XK_parenleft, XK_Greek_ETA, 0x1F99, | |
854 | XK_Multi_key, XK_parenleft, XK_Greek_OMEGA, 0x1FA9, | |
855 | XK_Multi_key, XK_parenleft, XK_Greek_alpha, 0x1F81, | |
856 | XK_Multi_key, XK_parenleft, XK_Greek_eta, 0x1F91, | |
857 | XK_Multi_key, XK_parenleft, XK_Greek_omega, 0x1FA1, | |
858 | XK_Multi_key, XK_parenright, XK_Greek_ALPHA, 0x1F88, | |
859 | XK_Multi_key, XK_parenright, XK_Greek_ETA, 0x1F98, | |
860 | XK_Multi_key, XK_parenright, XK_Greek_OMEGA, 0x1FA8, | |
861 | XK_Multi_key, XK_parenright, XK_Greek_alpha, 0x1F80, | |
862 | XK_Multi_key, XK_parenright, XK_Greek_eta, 0x1F90, | |
863 | XK_Multi_key, XK_parenright, XK_Greek_omega, 0x1FA0, | |
864 | XK_Multi_key, XK_grave, XK_Greek_alpha, 0x1FB2, | |
865 | XK_Multi_key, XK_grave, XK_Greek_eta, 0x1FC2, | |
866 | XK_Multi_key, XK_grave, XK_Greek_omega, 0x1FF2, | |
867 | XK_Multi_key, XK_grave, 0x1F00, 0x1F82, | |
868 | XK_Multi_key, XK_grave, 0x1F01, 0x1F83, | |
869 | XK_Multi_key, XK_grave, 0x1F08, 0x1F8A, | |
870 | XK_Multi_key, XK_grave, 0x1F09, 0x1F8B, | |
871 | XK_Multi_key, XK_grave, 0x1F20, 0x1F92, | |
872 | XK_Multi_key, XK_grave, 0x1F21, 0x1F93, | |
873 | XK_Multi_key, XK_grave, 0x1F28, 0x1F9A, | |
874 | XK_Multi_key, XK_grave, 0x1F29, 0x1F9B, | |
875 | XK_Multi_key, XK_grave, 0x1F60, 0x1FA2, | |
876 | XK_Multi_key, XK_grave, 0x1F61, 0x1FA3, | |
877 | XK_Multi_key, XK_grave, 0x1F68, 0x1FAA, | |
878 | XK_Multi_key, XK_grave, 0x1F69, 0x1FAB, | |
879 | XK_Multi_key, XK_asciitilde, XK_Greek_alpha, 0x1FB7, | |
880 | XK_Multi_key, XK_asciitilde, XK_Greek_eta, 0x1FC7, | |
881 | XK_Multi_key, XK_asciitilde, XK_Greek_omega, 0x1FF7, | |
882 | XK_Multi_key, XK_asciitilde, 0x1F00, 0x1F86, | |
883 | XK_Multi_key, XK_asciitilde, 0x1F01, 0x1F87, | |
884 | XK_Multi_key, XK_asciitilde, 0x1F08, 0x1F8E, | |
885 | XK_Multi_key, XK_asciitilde, 0x1F09, 0x1F8F, | |
886 | XK_Multi_key, XK_asciitilde, 0x1F20, 0x1F96, | |
887 | XK_Multi_key, XK_asciitilde, 0x1F21, 0x1F97, | |
888 | XK_Multi_key, XK_asciitilde, 0x1F28, 0x1F9E, | |
889 | XK_Multi_key, XK_asciitilde, 0x1F29, 0x1F9F, | |
890 | XK_Multi_key, XK_asciitilde, 0x1F60, 0x1FA6, | |
891 | XK_Multi_key, XK_asciitilde, 0x1F61, 0x1FA7, | |
892 | XK_Multi_key, XK_asciitilde, 0x1F68, 0x1FAE, | |
893 | XK_Multi_key, XK_asciitilde, 0x1F69, 0x1FAF, | |
894 | XK_Multi_key, XK_acute, XK_Greek_alpha, 0x1FB4, | |
895 | XK_Multi_key, XK_acute, XK_Greek_eta, 0x1FC4, | |
896 | XK_Multi_key, XK_acute, XK_Greek_omega, 0x1FF4, | |
897 | XK_Multi_key, XK_acute, 0x1F00, 0x1F84, | |
898 | XK_Multi_key, XK_acute, 0x1F01, 0x1F85, | |
899 | XK_Multi_key, XK_acute, 0x1F08, 0x1F8C, | |
900 | XK_Multi_key, XK_acute, 0x1F09, 0x1F8D, | |
901 | XK_Multi_key, XK_acute, 0x1F20, 0x1F94, | |
902 | XK_Multi_key, XK_acute, 0x1F21, 0x1F95, | |
903 | XK_Multi_key, XK_acute, 0x1F28, 0x1F9C, | |
904 | XK_Multi_key, XK_acute, 0x1F29, 0x1F9D, | |
905 | XK_Multi_key, XK_acute, 0x1F60, 0x1FA4, | |
906 | XK_Multi_key, XK_acute, 0x1F61, 0x1FA5, | |
907 | XK_Multi_key, XK_acute, 0x1F68, 0x1FAC, | |
908 | XK_Multi_key, XK_acute, 0x1F69, 0x1FAD, | |
909 | XK_dead_grave, XK_Multi_key, XK_parenleft, XK_Greek_ALPHA, 0x1F8B, | |
910 | XK_dead_grave, XK_Multi_key, XK_parenleft, XK_Greek_ETA, 0x1F9B, | |
911 | XK_dead_grave, XK_Multi_key, XK_parenleft, XK_Greek_OMEGA, 0x1FAB, | |
912 | XK_dead_grave, XK_Multi_key, XK_parenleft, XK_Greek_alpha, 0x1F83, | |
913 | XK_dead_grave, XK_Multi_key, XK_parenleft, XK_Greek_eta, 0x1F93, | |
914 | XK_dead_grave, XK_Multi_key, XK_parenleft, XK_Greek_omega, 0x1FA3, | |
915 | XK_dead_grave, XK_Multi_key, XK_parenright, XK_Greek_ALPHA, 0x1F8A, | |
916 | XK_dead_grave, XK_Multi_key, XK_parenright, XK_Greek_ETA, 0x1F9A, | |
917 | XK_dead_grave, XK_Multi_key, XK_parenright, XK_Greek_OMEGA, 0x1FAA, | |
918 | XK_dead_grave, XK_Multi_key, XK_parenright, XK_Greek_alpha, 0x1F82, | |
919 | XK_dead_grave, XK_Multi_key, XK_parenright, XK_Greek_eta, 0x1F92, | |
920 | XK_dead_grave, XK_Multi_key, XK_parenright, XK_Greek_omega, 0x1FA2, | |
921 | XK_dead_acute, XK_Multi_key, XK_parenleft, XK_Greek_ALPHA, 0x1F8D, | |
922 | XK_dead_acute, XK_Multi_key, XK_parenleft, XK_Greek_ETA, 0x1F9D, | |
923 | XK_dead_acute, XK_Multi_key, XK_parenleft, XK_Greek_OMEGA, 0x1FAD, | |
924 | XK_dead_acute, XK_Multi_key, XK_parenleft, XK_Greek_alpha, 0x1F85, | |
925 | XK_dead_acute, XK_Multi_key, XK_parenleft, XK_Greek_eta, 0x1F95, | |
926 | XK_dead_acute, XK_Multi_key, XK_parenleft, XK_Greek_omega, 0x1FA5, | |
927 | XK_dead_acute, XK_Multi_key, XK_parenright, XK_Greek_ALPHA, 0x1F8C, | |
928 | XK_dead_acute, XK_Multi_key, XK_parenright, XK_Greek_ETA, 0x1F9C, | |
929 | XK_dead_acute, XK_Multi_key, XK_parenright, XK_Greek_OMEGA, 0x1FAC, | |
930 | XK_dead_acute, XK_Multi_key, XK_parenright, XK_Greek_alpha, 0x1F84, | |
931 | XK_dead_acute, XK_Multi_key, XK_parenright, XK_Greek_eta, 0x1F94, | |
932 | XK_dead_acute, XK_Multi_key, XK_parenright, XK_Greek_omega, 0x1FA4, | |
933 | XK_dead_tilde, XK_Multi_key, XK_parenleft, XK_Greek_ALPHA, 0x1F8F, | |
934 | XK_dead_tilde, XK_Multi_key, XK_parenleft, XK_Greek_ETA, 0x1F9F, | |
935 | XK_dead_tilde, XK_Multi_key, XK_parenleft, XK_Greek_OMEGA, 0x1FAF, | |
936 | XK_dead_tilde, XK_Multi_key, XK_parenleft, XK_Greek_alpha, 0x1F87, | |
937 | XK_dead_tilde, XK_Multi_key, XK_parenleft, XK_Greek_eta, 0x1F97, | |
938 | XK_dead_tilde, XK_Multi_key, XK_parenleft, XK_Greek_omega, 0x1FA7, | |
939 | XK_dead_tilde, XK_Multi_key, XK_parenright, XK_Greek_ALPHA, 0x1F8E, | |
940 | XK_dead_tilde, XK_Multi_key, XK_parenright, XK_Greek_ETA, 0x1F9E, | |
941 | XK_dead_tilde, XK_Multi_key, XK_parenright, XK_Greek_OMEGA, 0x1FAE, | |
942 | XK_dead_tilde, XK_Multi_key, XK_parenright, XK_Greek_alpha, 0x1F86, | |
943 | XK_dead_tilde, XK_Multi_key, XK_parenright, XK_Greek_eta, 0x1F96, | |
944 | XK_dead_tilde, XK_Multi_key, XK_parenright, XK_Greek_omega, 0x1FA6, | |
945 | XK_Multi_key, XK_apostrophe, XK_parenleft, XK_Greek_ALPHA, 0x1F8D, | |
946 | XK_Multi_key, XK_apostrophe, XK_parenleft, XK_Greek_ETA, 0x1F9D, | |
947 | XK_Multi_key, XK_apostrophe, XK_parenleft, XK_Greek_OMEGA, 0x1FAD, | |
948 | XK_Multi_key, XK_apostrophe, XK_parenleft, XK_Greek_alpha, 0x1F85, | |
949 | XK_Multi_key, XK_apostrophe, XK_parenleft, XK_Greek_eta, 0x1F95, | |
950 | XK_Multi_key, XK_apostrophe, XK_parenleft, XK_Greek_omega, 0x1FA5, | |
951 | XK_Multi_key, XK_apostrophe, XK_parenright, XK_Greek_ALPHA, 0x1F8C, | |
952 | XK_Multi_key, XK_apostrophe, XK_parenright, XK_Greek_ETA, 0x1F9C, | |
953 | XK_Multi_key, XK_apostrophe, XK_parenright, XK_Greek_OMEGA, 0x1FAC, | |
954 | XK_Multi_key, XK_apostrophe, XK_parenright, XK_Greek_alpha, 0x1F84, | |
955 | XK_Multi_key, XK_apostrophe, XK_parenright, XK_Greek_eta, 0x1F94, | |
956 | XK_Multi_key, XK_apostrophe, XK_parenright, XK_Greek_omega, 0x1FA4, | |
957 | XK_Multi_key, XK_apostrophe, XK_dead_psili, XK_Greek_ALPHA, 0x1F8C, | |
958 | XK_Multi_key, XK_apostrophe, XK_dead_psili, XK_Greek_ETA, 0x1F9C, | |
959 | XK_Multi_key, XK_apostrophe, XK_dead_psili, XK_Greek_OMEGA, 0x1FAC, | |
960 | XK_Multi_key, XK_apostrophe, XK_dead_psili, XK_Greek_alpha, 0x1F84, | |
961 | XK_Multi_key, XK_apostrophe, XK_dead_psili, XK_Greek_eta, 0x1F94, | |
962 | XK_Multi_key, XK_apostrophe, XK_dead_psili, XK_Greek_omega, 0x1FA4, | |
963 | XK_Multi_key, XK_apostrophe, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8D, | |
964 | XK_Multi_key, XK_apostrophe, XK_dead_dasia, XK_Greek_ETA, 0x1F9D, | |
965 | XK_Multi_key, XK_apostrophe, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAD, | |
966 | XK_Multi_key, XK_apostrophe, XK_dead_dasia, XK_Greek_alpha, 0x1F85, | |
967 | XK_Multi_key, XK_apostrophe, XK_dead_dasia, XK_Greek_eta, 0x1F95, | |
968 | XK_Multi_key, XK_apostrophe, XK_dead_dasia, XK_Greek_omega, 0x1FA5, | |
969 | XK_Multi_key, XK_grave, XK_parenleft, XK_Greek_ALPHA, 0x1F8B, | |
970 | XK_Multi_key, XK_grave, XK_parenleft, XK_Greek_ETA, 0x1F9B, | |
971 | XK_Multi_key, XK_grave, XK_parenleft, XK_Greek_OMEGA, 0x1FAB, | |
972 | XK_Multi_key, XK_grave, XK_parenleft, XK_Greek_alpha, 0x1F83, | |
973 | XK_Multi_key, XK_grave, XK_parenleft, XK_Greek_eta, 0x1F93, | |
974 | XK_Multi_key, XK_grave, XK_parenleft, XK_Greek_omega, 0x1FA3, | |
975 | XK_Multi_key, XK_grave, XK_parenright, XK_Greek_ALPHA, 0x1F8A, | |
976 | XK_Multi_key, XK_grave, XK_parenright, XK_Greek_ETA, 0x1F9A, | |
977 | XK_Multi_key, XK_grave, XK_parenright, XK_Greek_OMEGA, 0x1FAA, | |
978 | XK_Multi_key, XK_grave, XK_parenright, XK_Greek_alpha, 0x1F82, | |
979 | XK_Multi_key, XK_grave, XK_parenright, XK_Greek_eta, 0x1F92, | |
980 | XK_Multi_key, XK_grave, XK_parenright, XK_Greek_omega, 0x1FA2, | |
981 | XK_Multi_key, XK_grave, XK_dead_psili, XK_Greek_ALPHA, 0x1F8A, | |
982 | XK_Multi_key, XK_grave, XK_dead_psili, XK_Greek_ETA, 0x1F9A, | |
983 | XK_Multi_key, XK_grave, XK_dead_psili, XK_Greek_OMEGA, 0x1FAA, | |
984 | XK_Multi_key, XK_grave, XK_dead_psili, XK_Greek_alpha, 0x1F82, | |
985 | XK_Multi_key, XK_grave, XK_dead_psili, XK_Greek_eta, 0x1F92, | |
986 | XK_Multi_key, XK_grave, XK_dead_psili, XK_Greek_omega, 0x1FA2, | |
987 | XK_Multi_key, XK_grave, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8B, | |
988 | XK_Multi_key, XK_grave, XK_dead_dasia, XK_Greek_ETA, 0x1F9B, | |
989 | XK_Multi_key, XK_grave, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAB, | |
990 | XK_Multi_key, XK_grave, XK_dead_dasia, XK_Greek_alpha, 0x1F83, | |
991 | XK_Multi_key, XK_grave, XK_dead_dasia, XK_Greek_eta, 0x1F93, | |
992 | XK_Multi_key, XK_grave, XK_dead_dasia, XK_Greek_omega, 0x1FA3, | |
993 | XK_Multi_key, XK_asciitilde, XK_parenleft, XK_Greek_ALPHA, 0x1F8F, | |
994 | XK_Multi_key, XK_asciitilde, XK_parenleft, XK_Greek_ETA, 0x1F9F, | |
995 | XK_Multi_key, XK_asciitilde, XK_parenleft, XK_Greek_OMEGA, 0x1FAF, | |
996 | XK_Multi_key, XK_asciitilde, XK_parenleft, XK_Greek_alpha, 0x1F87, | |
997 | XK_Multi_key, XK_asciitilde, XK_parenleft, XK_Greek_eta, 0x1F97, | |
998 | XK_Multi_key, XK_asciitilde, XK_parenleft, XK_Greek_omega, 0x1FA7, | |
999 | XK_Multi_key, XK_asciitilde, XK_parenright, XK_Greek_ALPHA, 0x1F8E, | |
1000 | XK_Multi_key, XK_asciitilde, XK_parenright, XK_Greek_ETA, 0x1F9E, | |
1001 | XK_Multi_key, XK_asciitilde, XK_parenright, XK_Greek_OMEGA, 0x1FAE, | |
1002 | XK_Multi_key, XK_asciitilde, XK_parenright, XK_Greek_alpha, 0x1F86, | |
1003 | XK_Multi_key, XK_asciitilde, XK_parenright, XK_Greek_eta, 0x1F96, | |
1004 | XK_Multi_key, XK_asciitilde, XK_parenright, XK_Greek_omega, 0x1FA6, | |
1005 | XK_Multi_key, XK_asciitilde, XK_dead_psili, XK_Greek_ALPHA, 0x1F8E, | |
1006 | XK_Multi_key, XK_asciitilde, XK_dead_psili, XK_Greek_ETA, 0x1F9E, | |
1007 | XK_Multi_key, XK_asciitilde, XK_dead_psili, XK_Greek_OMEGA, 0x1FAE, | |
1008 | XK_Multi_key, XK_asciitilde, XK_dead_psili, XK_Greek_alpha, 0x1F86, | |
1009 | XK_Multi_key, XK_asciitilde, XK_dead_psili, XK_Greek_eta, 0x1F96, | |
1010 | XK_Multi_key, XK_asciitilde, XK_dead_psili, XK_Greek_omega, 0x1FA6, | |
1011 | XK_Multi_key, XK_asciitilde, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8F, | |
1012 | XK_Multi_key, XK_asciitilde, XK_dead_dasia, XK_Greek_ETA, 0x1F9F, | |
1013 | XK_Multi_key, XK_asciitilde, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAF, | |
1014 | XK_Multi_key, XK_asciitilde, XK_dead_dasia, XK_Greek_alpha, 0x1F87, | |
1015 | XK_Multi_key, XK_asciitilde, XK_dead_dasia, XK_Greek_eta, 0x1F97, | |
1016 | XK_Multi_key, XK_asciitilde, XK_dead_dasia, XK_Greek_omega, 0x1FA7, | |
1017 | XK_Multi_key, XK_acute, XK_parenleft, XK_Greek_ALPHA, 0x1F8D, | |
1018 | XK_Multi_key, XK_acute, XK_parenleft, XK_Greek_ETA, 0x1F9D, | |
1019 | XK_Multi_key, XK_acute, XK_parenleft, XK_Greek_OMEGA, 0x1FAD, | |
1020 | XK_Multi_key, XK_acute, XK_parenleft, XK_Greek_alpha, 0x1F85, | |
1021 | XK_Multi_key, XK_acute, XK_parenleft, XK_Greek_eta, 0x1F95, | |
1022 | XK_Multi_key, XK_acute, XK_parenleft, XK_Greek_omega, 0x1FA5, | |
1023 | XK_Multi_key, XK_acute, XK_parenright, XK_Greek_ALPHA, 0x1F8C, | |
1024 | XK_Multi_key, XK_acute, XK_parenright, XK_Greek_ETA, 0x1F9C, | |
1025 | XK_Multi_key, XK_acute, XK_parenright, XK_Greek_OMEGA, 0x1FAC, | |
1026 | XK_Multi_key, XK_acute, XK_parenright, XK_Greek_alpha, 0x1F84, | |
1027 | XK_Multi_key, XK_acute, XK_parenright, XK_Greek_eta, 0x1F94, | |
1028 | XK_Multi_key, XK_acute, XK_parenright, XK_Greek_omega, 0x1FA4, | |
1029 | XK_Multi_key, XK_acute, XK_dead_psili, XK_Greek_ALPHA, 0x1F8C, | |
1030 | XK_Multi_key, XK_acute, XK_dead_psili, XK_Greek_ETA, 0x1F9C, | |
1031 | XK_Multi_key, XK_acute, XK_dead_psili, XK_Greek_OMEGA, 0x1FAC, | |
1032 | XK_Multi_key, XK_acute, XK_dead_psili, XK_Greek_alpha, 0x1F84, | |
1033 | XK_Multi_key, XK_acute, XK_dead_psili, XK_Greek_eta, 0x1F94, | |
1034 | XK_Multi_key, XK_acute, XK_dead_psili, XK_Greek_omega, 0x1FA4, | |
1035 | XK_Multi_key, XK_acute, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8D, | |
1036 | XK_Multi_key, XK_acute, XK_dead_dasia, XK_Greek_ETA, 0x1F9D, | |
1037 | XK_Multi_key, XK_acute, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAD, | |
1038 | XK_Multi_key, XK_acute, XK_dead_dasia, XK_Greek_alpha, 0x1F85, | |
1039 | XK_Multi_key, XK_acute, XK_dead_dasia, XK_Greek_eta, 0x1F95, | |
1040 | XK_Multi_key, XK_acute, XK_dead_dasia, XK_Greek_omega, 0x1FA5, | |
1041 | XK_kana_WO, 0x30FA, | |
1042 | XK_kana_U, 0x30F4, | |
1043 | XK_kana_KA, 0x30AC, | |
1044 | XK_kana_KI, 0x30AE, | |
1045 | XK_kana_KU, 0x30B0, | |
1046 | XK_kana_KE, 0x30B2, | |
1047 | XK_kana_KO, 0x30B4, | |
1048 | XK_kana_SA, 0x30B6, | |
1049 | XK_kana_SHI, 0x30B8, | |
1050 | XK_kana_SU, 0x30BA, | |
1051 | XK_kana_SE, 0x30BC, | |
1052 | XK_kana_SO, 0x30BE, | |
1053 | XK_kana_TA, 0x30C0, | |
1054 | XK_kana_CHI, 0x30C2, | |
1055 | XK_kana_TSU, 0x30C5, | |
1056 | XK_kana_TE, 0x30C7, | |
1057 | XK_kana_TO, 0x30C9, | |
1058 | XK_kana_HA, 0x30D0, | |
1059 | XK_kana_HI, 0x30D3, | |
1060 | XK_kana_FU, 0x30D6, | |
1061 | XK_kana_HE, 0x30D9, | |
1062 | XK_kana_HO, 0x30DC, | |
1063 | XK_kana_WA, 0x30F7, | |
1064 | XK_kana_HA, 0x30D1, | |
1065 | XK_kana_HI, 0x30D4, | |
1066 | XK_kana_FU, 0x30D7, | |
1067 | XK_kana_HE, 0x30DA, | |
1068 | XK_kana_HO, 0x30DD, | |
1069 | XK_plus, 0x2A25, | |
1070 | XK_minus, 0x2A2A, | |
1071 | XK_equal, 0x2A66, | |
1072 | XK_Abreve, 0x1EB6, | |
1073 | XK_abreve, 0x1EB7, | |
1074 | XK_Multi_key, XK_plus, XK_O, 0x1EE2, | |
1075 | XK_Multi_key, XK_plus, XK_U, 0x1EF0, | |
1076 | XK_Multi_key, XK_plus, XK_o, 0x1EE3, | |
1077 | XK_Multi_key, XK_plus, XK_u, 0x1EF1, | |
1078 | XK_space, 0x0309, | |
1079 | XK_B, 0x0181, | |
1080 | XK_C, 0x0187, | |
1081 | XK_D, 0x018A, | |
1082 | XK_F, 0x0191, | |
1083 | XK_G, 0x0193, | |
1084 | XK_K, 0x0198, | |
1085 | XK_M, 0x2C6E, | |
1086 | XK_N, 0x019D, | |
1087 | XK_P, 0x01A4, | |
1088 | XK_T, 0x01AC, | |
1089 | XK_V, 0x01B2, | |
1090 | XK_W, 0x2C72, | |
1091 | XK_Z, 0x0224, | |
1092 | XK_b, 0x0253, | |
1093 | XK_c, 0x0188, | |
1094 | XK_d, 0x0257, | |
1095 | XK_f, 0x0192, | |
1096 | XK_g, 0x0260, | |
1097 | XK_h, 0x0266, | |
1098 | XK_k, 0x0199, | |
1099 | XK_m, 0x0271, | |
1100 | XK_n, 0x0272, | |
1101 | XK_p, 0x01A5, | |
1102 | XK_q, 0x02A0, | |
1103 | XK_s, 0x0282, | |
1104 | XK_t, 0x01AD, | |
1105 | XK_v, 0x028B, | |
1106 | XK_w, 0x2C73, | |
1107 | XK_z, 0x0225, | |
1108 | XK_nobreakspace, 0x0309, | |
1109 | XK_Abreve, 0x1EB2, | |
1110 | XK_abreve, 0x1EB3, | |
1111 | 0x0256, 0x1D91, | |
1112 | XK_schwa, 0x025A, | |
1113 | 0x025C, 0x025D, | |
1114 | 0x025F, 0x0284, | |
1115 | 0x0279, 0x027B, | |
1116 | XK_dead_hook, 0x0309, | |
1117 | XK_Multi_key, XK_plus, XK_O, 0x1EDE, | |
1118 | XK_Multi_key, XK_plus, XK_U, 0x1EEC, | |
1119 | XK_Multi_key, XK_plus, XK_o, 0x1EDF, | |
1120 | XK_Multi_key, XK_plus, XK_u, 0x1EED, | |
1121 | XK_Multi_key, XK_U, XK_A, 0x1EB2, | |
1122 | XK_Multi_key, XK_U, XK_a, 0x1EB3, | |
1123 | XK_Multi_key, XK_asciicircum, XK_A, 0x1EA8, | |
1124 | XK_Multi_key, XK_asciicircum, XK_E, 0x1EC2, | |
1125 | XK_Multi_key, XK_asciicircum, XK_O, 0x1ED4, | |
1126 | XK_Multi_key, XK_asciicircum, XK_a, 0x1EA9, | |
1127 | XK_Multi_key, XK_asciicircum, XK_e, 0x1EC3, | |
1128 | XK_Multi_key, XK_asciicircum, XK_o, 0x1ED5, | |
1129 | XK_Multi_key, XK_b, XK_A, 0x1EB2, | |
1130 | XK_Multi_key, XK_b, XK_a, 0x1EB3, | |
1131 | XK_Greek_ALPHA, 0x1F08, | |
1132 | XK_Greek_EPSILON, 0x1F18, | |
1133 | XK_Greek_ETA, 0x1F28, | |
1134 | XK_Greek_IOTA, 0x1F38, | |
1135 | XK_Greek_OMICRON, 0x1F48, | |
1136 | XK_Greek_OMEGA, 0x1F68, | |
1137 | XK_Greek_alpha, 0x1F00, | |
1138 | XK_Greek_epsilon, 0x1F10, | |
1139 | XK_Greek_eta, 0x1F20, | |
1140 | XK_Greek_iota, 0x1F30, | |
1141 | XK_Greek_omicron, 0x1F40, | |
1142 | XK_Greek_rho, 0x1FE4, | |
1143 | XK_Greek_upsilon, 0x1F50, | |
1144 | XK_Greek_omega, 0x1F60, | |
1145 | XK_Greek_ALPHA, 0x1F09, | |
1146 | XK_Greek_EPSILON, 0x1F19, | |
1147 | XK_Greek_ETA, 0x1F29, | |
1148 | XK_Greek_IOTA, 0x1F39, | |
1149 | XK_Greek_OMICRON, 0x1F49, | |
1150 | XK_Greek_RHO, 0x1FEC, | |
1151 | XK_Greek_UPSILON, 0x1F59, | |
1152 | XK_Greek_OMEGA, 0x1F69, | |
1153 | XK_Greek_alpha, 0x1F01, | |
1154 | XK_Greek_epsilon, 0x1F11, | |
1155 | XK_Greek_eta, 0x1F21, | |
1156 | XK_Greek_iota, 0x1F31, | |
1157 | XK_Greek_omicron, 0x1F41, | |
1158 | XK_Greek_rho, 0x1FE5, | |
1159 | XK_Greek_upsilon, 0x1F51, | |
1160 | XK_Greek_omega, 0x1F61, | |
1161 | XK_space, XK_space, 0x00A0, | |
1162 | XK_space, XK_apostrophe, 0x0027, | |
1163 | XK_space, XK_parenleft, 0x02D8, | |
1164 | XK_space, XK_comma, 0x00B8, | |
1165 | XK_space, XK_minus, 0x007E, | |
1166 | XK_space, XK_period, 0x2008, | |
1167 | XK_space, XK_less, 0x02C7, | |
1168 | XK_space, XK_greater, 0x005E, | |
1169 | XK_space, XK_asciicircum, 0x005E, | |
1170 | XK_space, XK_grave, 0x0060, | |
1171 | XK_space, XK_asciitilde, 0x007E, | |
1172 | XK_exclam, XK_exclam, 0x00A1, | |
1173 | XK_exclam, XK_question, 0x203D, | |
1174 | XK_exclam, XK_A, 0x1EA0, | |
1175 | XK_exclam, XK_B, 0x1E04, | |
1176 | XK_exclam, XK_D, 0x1E0C, | |
1177 | XK_exclam, XK_E, 0x1EB8, | |
1178 | XK_exclam, XK_H, 0x1E24, | |
1179 | XK_exclam, XK_I, 0x1ECA, | |
1180 | XK_exclam, XK_K, 0x1E32, | |
1181 | XK_exclam, XK_L, 0x1E36, | |
1182 | XK_exclam, XK_M, 0x1E42, | |
1183 | XK_exclam, XK_N, 0x1E46, | |
1184 | XK_exclam, XK_O, 0x1ECC, | |
1185 | XK_exclam, XK_P, 0x00B6, | |
1186 | XK_exclam, XK_R, 0x1E5A, | |
1187 | XK_exclam, XK_S, 0x00A7, | |
1188 | XK_exclam, XK_T, 0x1E6C, | |
1189 | XK_exclam, XK_U, 0x1EE4, | |
1190 | XK_exclam, XK_V, 0x1E7E, | |
1191 | XK_exclam, XK_W, 0x1E88, | |
1192 | XK_exclam, XK_Y, 0x1EF4, | |
1193 | XK_exclam, XK_Z, 0x1E92, | |
1194 | XK_exclam, XK_asciicircum, 0x00A6, | |
1195 | XK_exclam, XK_a, 0x1EA1, | |
1196 | XK_exclam, XK_b, 0x1E05, | |
1197 | XK_exclam, XK_d, 0x1E0D, | |
1198 | XK_exclam, XK_e, 0x1EB9, | |
1199 | XK_exclam, XK_h, 0x1E25, | |
1200 | XK_exclam, XK_i, 0x1ECB, | |
1201 | XK_exclam, XK_k, 0x1E33, | |
1202 | XK_exclam, XK_l, 0x1E37, | |
1203 | XK_exclam, XK_m, 0x1E43, | |
1204 | XK_exclam, XK_n, 0x1E47, | |
1205 | XK_exclam, XK_o, 0x1ECD, | |
1206 | XK_exclam, XK_p, 0x00B6, | |
1207 | XK_exclam, XK_r, 0x1E5B, | |
1208 | XK_exclam, XK_s, 0x00A7, | |
1209 | XK_exclam, XK_t, 0x1E6D, | |
1210 | XK_exclam, XK_u, 0x1EE5, | |
1211 | XK_exclam, XK_v, 0x1E7F, | |
1212 | XK_exclam, XK_w, 0x1E89, | |
1213 | XK_exclam, XK_y, 0x1EF5, | |
1214 | XK_exclam, XK_z, 0x1E93, | |
1215 | XK_exclam, XK_Ohorn, 0x1EE2, | |
1216 | XK_exclam, XK_ohorn, 0x1EE3, | |
1217 | XK_exclam, XK_Uhorn, 0x1EF0, | |
1218 | XK_exclam, XK_uhorn, 0x1EF1, | |
1219 | XK_quotedbl, XK_quotedbl, 0x00A8, | |
1220 | XK_quotedbl, XK_apostrophe, 0x0344, | |
1221 | XK_quotedbl, XK_comma, 0x201E, | |
1222 | XK_quotedbl, XK_slash, 0x301E, | |
1223 | XK_quotedbl, XK_less, 0x201C, | |
1224 | XK_quotedbl, XK_greater, 0x201D, | |
1225 | XK_quotedbl, XK_A, 0x00C4, | |
1226 | XK_quotedbl, XK_E, 0x00CB, | |
1227 | XK_quotedbl, XK_H, 0x1E26, | |
1228 | XK_quotedbl, XK_I, 0x00CF, | |
1229 | XK_quotedbl, XK_O, 0x00D6, | |
1230 | XK_quotedbl, XK_U, 0x00DC, | |
1231 | XK_quotedbl, XK_W, 0x1E84, | |
1232 | XK_quotedbl, XK_X, 0x1E8C, | |
1233 | XK_quotedbl, XK_Y, 0x0178, | |
1234 | XK_quotedbl, XK_backslash, 0x301D, | |
1235 | XK_quotedbl, XK_a, 0x00E4, | |
1236 | XK_quotedbl, XK_e, 0x00EB, | |
1237 | XK_quotedbl, XK_h, 0x1E27, | |
1238 | XK_quotedbl, XK_i, 0x00EF, | |
1239 | XK_quotedbl, XK_o, 0x00F6, | |
1240 | XK_quotedbl, XK_t, 0x1E97, | |
1241 | XK_quotedbl, XK_u, 0x00FC, | |
1242 | XK_quotedbl, XK_w, 0x1E85, | |
1243 | XK_quotedbl, XK_x, 0x1E8D, | |
1244 | XK_quotedbl, XK_y, 0x00FF, | |
1245 | XK_quotedbl, XK_acute, 0x0344, | |
1246 | XK_quotedbl, XK_Otilde, 0x1E4E, | |
1247 | XK_quotedbl, XK_otilde, 0x1E4F, | |
1248 | XK_quotedbl, 0x03D2, 0x03D4, | |
1249 | XK_quotedbl, XK_Umacron, 0x1E7A, | |
1250 | XK_quotedbl, XK_umacron, 0x1E7B, | |
1251 | XK_quotedbl, 0x04D8, 0x04DA, | |
1252 | XK_quotedbl, 0x04D9, 0x04DB, | |
1253 | XK_quotedbl, 0x04E8, 0x04EA, | |
1254 | XK_quotedbl, 0x04E9, 0x04EB, | |
1255 | XK_quotedbl, XK_Ukrainian_i, 0x0457, | |
1256 | XK_quotedbl, XK_Ukrainian_I, 0x0407, | |
1257 | XK_quotedbl, XK_Cyrillic_a, 0x04D3, | |
1258 | XK_quotedbl, XK_Cyrillic_ie, 0x0451, | |
1259 | XK_quotedbl, XK_Cyrillic_i, 0x04E5, | |
1260 | XK_quotedbl, XK_Cyrillic_o, 0x04E7, | |
1261 | XK_quotedbl, XK_Cyrillic_u, 0x04F1, | |
1262 | XK_quotedbl, XK_Cyrillic_zhe, 0x04DD, | |
1263 | XK_quotedbl, XK_Cyrillic_yeru, 0x04F9, | |
1264 | XK_quotedbl, XK_Cyrillic_ze, 0x04DF, | |
1265 | XK_quotedbl, XK_Cyrillic_e, 0x04ED, | |
1266 | XK_quotedbl, XK_Cyrillic_che, 0x04F5, | |
1267 | XK_quotedbl, XK_Cyrillic_A, 0x04D2, | |
1268 | XK_quotedbl, XK_Cyrillic_IE, 0x0401, | |
1269 | XK_quotedbl, XK_Cyrillic_I, 0x04E4, | |
1270 | XK_quotedbl, XK_Cyrillic_O, 0x04E6, | |
1271 | XK_quotedbl, XK_Cyrillic_U, 0x04F0, | |
1272 | XK_quotedbl, XK_Cyrillic_ZHE, 0x04DC, | |
1273 | XK_quotedbl, XK_Cyrillic_YERU, 0x04F8, | |
1274 | XK_quotedbl, XK_Cyrillic_ZE, 0x04DE, | |
1275 | XK_quotedbl, XK_Cyrillic_E, 0x04EC, | |
1276 | XK_quotedbl, XK_Cyrillic_CHE, 0x04F4, | |
1277 | XK_quotedbl, XK_Greek_IOTA, 0x03AA, | |
1278 | XK_quotedbl, XK_Greek_UPSILON, 0x03AB, | |
1279 | XK_quotedbl, XK_Greek_iota, 0x03CA, | |
1280 | XK_quotedbl, XK_Greek_upsilon, 0x03CB, | |
1281 | XK_quotedbl, XK_dead_acute, 0x0344, | |
1282 | XK_numbersign, XK_numbersign, 0x266F, | |
1283 | XK_numbersign, XK_b, 0x266D, | |
1284 | XK_numbersign, XK_f, 0x266E, | |
1285 | XK_percent, XK_o, 0x2030, | |
1286 | XK_apostrophe, XK_space, 0x0027, | |
1287 | XK_apostrophe, XK_apostrophe, 0x00B4, | |
1288 | XK_apostrophe, XK_comma, 0x201A, | |
1289 | XK_apostrophe, XK_less, 0x2018, | |
1290 | XK_apostrophe, XK_greater, 0x2019, | |
1291 | XK_apostrophe, XK_A, 0x00C1, | |
1292 | XK_apostrophe, XK_C, 0x0106, | |
1293 | XK_apostrophe, XK_E, 0x00C9, | |
1294 | XK_apostrophe, XK_G, 0x01F4, | |
1295 | XK_apostrophe, XK_I, 0x00CD, | |
1296 | XK_apostrophe, XK_K, 0x1E30, | |
1297 | XK_apostrophe, XK_L, 0x0139, | |
1298 | XK_apostrophe, XK_M, 0x1E3E, | |
1299 | XK_apostrophe, XK_N, 0x0143, | |
1300 | XK_apostrophe, XK_O, 0x00D3, | |
1301 | XK_apostrophe, XK_P, 0x1E54, | |
1302 | XK_apostrophe, XK_R, 0x0154, | |
1303 | XK_apostrophe, XK_S, 0x015A, | |
1304 | XK_apostrophe, XK_U, 0x00DA, | |
1305 | XK_apostrophe, XK_W, 0x1E82, | |
1306 | XK_apostrophe, XK_Y, 0x00DD, | |
1307 | XK_apostrophe, XK_Z, 0x0179, | |
1308 | XK_apostrophe, XK_a, 0x00E1, | |
1309 | XK_apostrophe, XK_c, 0x0107, | |
1310 | XK_apostrophe, XK_e, 0x00E9, | |
1311 | XK_apostrophe, XK_g, 0x01F5, | |
1312 | XK_apostrophe, XK_i, 0x00ED, | |
1313 | XK_apostrophe, XK_k, 0x1E31, | |
1314 | XK_apostrophe, XK_l, 0x013A, | |
1315 | XK_apostrophe, XK_m, 0x1E3F, | |
1316 | XK_apostrophe, XK_n, 0x0144, | |
1317 | XK_apostrophe, XK_o, 0x00F3, | |
1318 | XK_apostrophe, XK_p, 0x1E55, | |
1319 | XK_apostrophe, XK_r, 0x0155, | |
1320 | XK_apostrophe, XK_s, 0x015B, | |
1321 | XK_apostrophe, XK_u, 0x00FA, | |
1322 | XK_apostrophe, XK_w, 0x1E83, | |
1323 | XK_apostrophe, XK_y, 0x00FD, | |
1324 | XK_apostrophe, XK_z, 0x017A, | |
1325 | XK_apostrophe, XK_Acircumflex, 0x1EA4, | |
1326 | XK_apostrophe, XK_Aring, 0x01FA, | |
1327 | XK_apostrophe, XK_AE, 0x01FC, | |
1328 | XK_apostrophe, XK_Ccedilla, 0x1E08, | |
1329 | XK_apostrophe, XK_Ecircumflex, 0x1EBE, | |
1330 | XK_apostrophe, XK_Idiaeresis, 0x1E2E, | |
1331 | XK_apostrophe, XK_Ocircumflex, 0x1ED0, | |
1332 | XK_apostrophe, XK_Otilde, 0x1E4C, | |
1333 | XK_apostrophe, XK_Ooblique, 0x01FE, | |
1334 | XK_apostrophe, 0x00DC, 0x01D7, | |
1335 | XK_apostrophe, XK_acircumflex, 0x1EA5, | |
1336 | XK_apostrophe, XK_aring, 0x01FB, | |
1337 | XK_apostrophe, XK_ae, 0x01FD, | |
1338 | XK_apostrophe, XK_ccedilla, 0x1E09, | |
1339 | XK_apostrophe, XK_ecircumflex, 0x1EBF, | |
1340 | XK_apostrophe, XK_idiaeresis, 0x1E2F, | |
1341 | XK_apostrophe, XK_ocircumflex, 0x1ED1, | |
1342 | XK_apostrophe, XK_otilde, 0x1E4D, | |
1343 | XK_apostrophe, XK_oslash, 0x01FF, | |
1344 | XK_apostrophe, XK_udiaeresis, 0x01D8, | |
1345 | XK_apostrophe, XK_Ohorn, 0x1EDA, | |
1346 | XK_apostrophe, XK_ohorn, 0x1EDB, | |
1347 | XK_apostrophe, XK_Uhorn, 0x1EE8, | |
1348 | XK_apostrophe, XK_uhorn, 0x1EE9, | |
1349 | XK_apostrophe, XK_Abreve, 0x1EAE, | |
1350 | XK_apostrophe, XK_abreve, 0x1EAF, | |
1351 | XK_apostrophe, XK_Emacron, 0x1E16, | |
1352 | XK_apostrophe, XK_emacron, 0x1E17, | |
1353 | XK_apostrophe, XK_Omacron, 0x1E52, | |
1354 | XK_apostrophe, XK_Utilde, 0x1E78, | |
1355 | XK_apostrophe, XK_omacron, 0x1E53, | |
1356 | XK_apostrophe, XK_utilde, 0x1E79, | |
1357 | XK_apostrophe, XK_Cyrillic_ghe, 0x0453, | |
1358 | XK_apostrophe, XK_Cyrillic_ka, 0x045C, | |
1359 | XK_apostrophe, XK_Cyrillic_GHE, 0x0403, | |
1360 | XK_apostrophe, XK_Cyrillic_KA, 0x040C, | |
1361 | XK_apostrophe, XK_Greek_iotadieresis, 0x0390, | |
1362 | XK_apostrophe, XK_Greek_upsilondieresis, 0x03B0, | |
1363 | XK_apostrophe, XK_Greek_ALPHA, 0x0386, | |
1364 | XK_apostrophe, XK_Greek_EPSILON, 0x0388, | |
1365 | XK_apostrophe, XK_Greek_ETA, 0x0389, | |
1366 | XK_apostrophe, XK_Greek_IOTA, 0x038A, | |
1367 | XK_apostrophe, XK_Greek_OMICRON, 0x038C, | |
1368 | XK_apostrophe, XK_Greek_UPSILON, 0x038E, | |
1369 | XK_apostrophe, XK_Greek_OMEGA, 0x038F, | |
1370 | XK_apostrophe, XK_Greek_alpha, 0x03AC, | |
1371 | XK_apostrophe, XK_Greek_epsilon, 0x03AD, | |
1372 | XK_apostrophe, XK_Greek_eta, 0x03AE, | |
1373 | XK_apostrophe, XK_Greek_iota, 0x03AF, | |
1374 | XK_apostrophe, XK_Greek_omicron, 0x03CC, | |
1375 | XK_apostrophe, XK_Greek_upsilon, 0x03CD, | |
1376 | XK_apostrophe, XK_Greek_omega, 0x03CE, | |
1377 | XK_apostrophe, 0x1F00, 0x1F04, | |
1378 | XK_apostrophe, 0x1F01, 0x1F05, | |
1379 | XK_apostrophe, 0x1F08, 0x1F0C, | |
1380 | XK_apostrophe, 0x1F09, 0x1F0D, | |
1381 | XK_apostrophe, 0x1F10, 0x1F14, | |
1382 | XK_apostrophe, 0x1F11, 0x1F15, | |
1383 | XK_apostrophe, 0x1F18, 0x1F1C, | |
1384 | XK_apostrophe, 0x1F19, 0x1F1D, | |
1385 | XK_apostrophe, 0x1F20, 0x1F24, | |
1386 | XK_apostrophe, 0x1F21, 0x1F25, | |
1387 | XK_apostrophe, 0x1F28, 0x1F2C, | |
1388 | XK_apostrophe, 0x1F29, 0x1F2D, | |
1389 | XK_apostrophe, 0x1F30, 0x1F34, | |
1390 | XK_apostrophe, 0x1F31, 0x1F35, | |
1391 | XK_apostrophe, 0x1F38, 0x1F3C, | |
1392 | XK_apostrophe, 0x1F39, 0x1F3D, | |
1393 | XK_apostrophe, 0x1F40, 0x1F44, | |
1394 | XK_apostrophe, 0x1F41, 0x1F45, | |
1395 | XK_apostrophe, 0x1F48, 0x1F4C, | |
1396 | XK_apostrophe, 0x1F49, 0x1F4D, | |
1397 | XK_apostrophe, 0x1F50, 0x1F54, | |
1398 | XK_apostrophe, 0x1F51, 0x1F55, | |
1399 | XK_apostrophe, 0x1F59, 0x1F5D, | |
1400 | XK_apostrophe, 0x1F60, 0x1F64, | |
1401 | XK_apostrophe, 0x1F61, 0x1F65, | |
1402 | XK_apostrophe, 0x1F68, 0x1F6C, | |
1403 | XK_apostrophe, 0x1F69, 0x1F6D, | |
1404 | XK_parenleft, XK_space, 0x02D8, | |
1405 | XK_parenleft, XK_parenleft, 0x005B, | |
1406 | XK_parenleft, XK_minus, 0x007B, | |
1407 | XK_parenleft, XK_A, 0x0102, | |
1408 | XK_parenleft, XK_G, 0x011E, | |
1409 | XK_parenleft, XK_a, 0x0103, | |
1410 | XK_parenleft, XK_c, 0x00A9, | |
1411 | XK_parenleft, XK_g, 0x011F, | |
1412 | XK_parenleft, XK_r, 0x00AE, | |
1413 | XK_parenleft, XK_Greek_ALPHA, 0x1F09, | |
1414 | XK_parenleft, XK_Greek_EPSILON, 0x1F19, | |
1415 | XK_parenleft, XK_Greek_ETA, 0x1F29, | |
1416 | XK_parenleft, XK_Greek_IOTA, 0x1F39, | |
1417 | XK_parenleft, XK_Greek_OMICRON, 0x1F49, | |
1418 | XK_parenleft, XK_Greek_RHO, 0x1FEC, | |
1419 | XK_parenleft, XK_Greek_UPSILON, 0x1F59, | |
1420 | XK_parenleft, XK_Greek_OMEGA, 0x1F69, | |
1421 | XK_parenleft, XK_Greek_alpha, 0x1F01, | |
1422 | XK_parenleft, XK_Greek_epsilon, 0x1F11, | |
1423 | XK_parenleft, XK_Greek_eta, 0x1F21, | |
1424 | XK_parenleft, XK_Greek_iota, 0x1F31, | |
1425 | XK_parenleft, XK_Greek_omicron, 0x1F41, | |
1426 | XK_parenleft, XK_Greek_rho, 0x1FE5, | |
1427 | XK_parenleft, XK_Greek_upsilon, 0x1F51, | |
1428 | XK_parenleft, XK_Greek_omega, 0x1F61, | |
1429 | XK_parenright, XK_parenright, 0x005D, | |
1430 | XK_parenright, XK_minus, 0x007D, | |
1431 | XK_parenright, XK_Greek_ALPHA, 0x1F08, | |
1432 | XK_parenright, XK_Greek_EPSILON, 0x1F18, | |
1433 | XK_parenright, XK_Greek_ETA, 0x1F28, | |
1434 | XK_parenright, XK_Greek_IOTA, 0x1F38, | |
1435 | XK_parenright, XK_Greek_OMICRON, 0x1F48, | |
1436 | XK_parenright, XK_Greek_OMEGA, 0x1F68, | |
1437 | XK_parenright, XK_Greek_alpha, 0x1F00, | |
1438 | XK_parenright, XK_Greek_epsilon, 0x1F10, | |
1439 | XK_parenright, XK_Greek_eta, 0x1F20, | |
1440 | XK_parenright, XK_Greek_iota, 0x1F30, | |
1441 | XK_parenright, XK_Greek_omicron, 0x1F40, | |
1442 | XK_parenright, XK_Greek_rho, 0x1FE4, | |
1443 | XK_parenright, XK_Greek_upsilon, 0x1F50, | |
1444 | XK_parenright, XK_Greek_omega, 0x1F60, | |
1445 | XK_asterisk, XK_0, 0x00B0, | |
1446 | XK_asterisk, XK_A, 0x00C5, | |
1447 | XK_asterisk, XK_U, 0x016E, | |
1448 | XK_asterisk, XK_a, 0x00E5, | |
1449 | XK_asterisk, XK_u, 0x016F, | |
1450 | XK_plus, XK_plus, 0x0023, | |
1451 | XK_plus, XK_minus, 0x00B1, | |
1452 | XK_plus, XK_O, 0x01A0, | |
1453 | XK_plus, XK_U, 0x01AF, | |
1454 | XK_plus, XK_o, 0x01A1, | |
1455 | XK_plus, XK_u, 0x01B0, | |
1456 | XK_comma, XK_space, 0x00B8, | |
1457 | XK_comma, XK_quotedbl, 0x201E, | |
1458 | XK_comma, XK_apostrophe, 0x201A, | |
1459 | XK_comma, XK_comma, 0x00B8, | |
1460 | XK_comma, XK_minus, 0x00AC, | |
1461 | XK_comma, XK_A, 0x0104, | |
1462 | XK_comma, XK_C, 0x00C7, | |
1463 | XK_comma, XK_D, 0x1E10, | |
1464 | XK_comma, XK_E, 0x0118, | |
1465 | XK_comma, XK_G, 0x0122, | |
1466 | XK_comma, XK_H, 0x1E28, | |
1467 | XK_comma, XK_I, 0x012E, | |
1468 | XK_comma, XK_K, 0x0136, | |
1469 | XK_comma, XK_L, 0x013B, | |
1470 | XK_comma, XK_N, 0x0145, | |
1471 | XK_comma, XK_R, 0x0156, | |
1472 | XK_comma, XK_S, 0x015E, | |
1473 | XK_comma, XK_T, 0x0162, | |
1474 | XK_comma, XK_U, 0x0172, | |
1475 | XK_comma, XK_a, 0x0105, | |
1476 | XK_comma, XK_c, 0x00E7, | |
1477 | XK_comma, XK_d, 0x1E11, | |
1478 | XK_comma, XK_e, 0x0119, | |
1479 | XK_comma, XK_g, 0x0123, | |
1480 | XK_comma, XK_h, 0x1E29, | |
1481 | XK_comma, XK_i, 0x012F, | |
1482 | XK_comma, XK_k, 0x0137, | |
1483 | XK_comma, XK_l, 0x013C, | |
1484 | XK_comma, XK_n, 0x0146, | |
1485 | XK_comma, XK_r, 0x0157, | |
1486 | XK_comma, XK_s, 0x015F, | |
1487 | XK_comma, XK_t, 0x0163, | |
1488 | XK_comma, XK_u, 0x0173, | |
1489 | XK_minus, XK_space, 0x007E, | |
1490 | XK_minus, XK_parenleft, 0x007B, | |
1491 | XK_minus, XK_parenright, 0x007D, | |
1492 | XK_minus, XK_plus, 0x00B1, | |
1493 | XK_minus, XK_comma, 0x00AC, | |
1494 | XK_minus, XK_colon, 0x00F7, | |
1495 | XK_minus, XK_A, 0x00C3, | |
1496 | XK_minus, XK_D, 0x0110, | |
1497 | XK_minus, XK_E, 0x0112, | |
1498 | XK_minus, XK_I, 0x012A, | |
1499 | XK_minus, XK_L, 0x00A3, | |
1500 | XK_minus, XK_N, 0x00D1, | |
1501 | XK_minus, XK_O, 0x00D5, | |
1502 | XK_minus, XK_U, 0x016A, | |
1503 | XK_minus, XK_Y, 0x00A5, | |
1504 | XK_minus, XK_asciicircum, 0x00AF, | |
1505 | XK_minus, XK_a, 0x00E3, | |
1506 | XK_minus, XK_d, 0x0111, | |
1507 | XK_minus, XK_e, 0x0113, | |
1508 | XK_minus, XK_i, 0x012B, | |
1509 | XK_minus, XK_l, 0x00A3, | |
1510 | XK_minus, XK_n, 0x00F1, | |
1511 | XK_minus, XK_o, 0x00F5, | |
1512 | XK_minus, XK_u, 0x016B, | |
1513 | XK_minus, XK_y, 0x00A5, | |
1514 | XK_period, XK_minus, 0x00B7, | |
1515 | XK_period, XK_period, 0x02D9, | |
1516 | XK_period, XK_less, 0x2039, | |
1517 | XK_period, XK_equal, 0x2022, | |
1518 | XK_period, XK_greater, 0x203A, | |
1519 | XK_period, XK_A, 0x0226, | |
1520 | XK_period, XK_B, 0x1E02, | |
1521 | XK_period, XK_C, 0x010A, | |
1522 | XK_period, XK_D, 0x1E0A, | |
1523 | XK_period, XK_E, 0x0116, | |
1524 | XK_period, XK_F, 0x1E1E, | |
1525 | XK_period, XK_G, 0x0120, | |
1526 | XK_period, XK_H, 0x1E22, | |
1527 | XK_period, XK_I, 0x0130, | |
1528 | XK_period, XK_M, 0x1E40, | |
1529 | XK_period, XK_N, 0x1E44, | |
1530 | XK_period, XK_O, 0x022E, | |
1531 | XK_period, XK_P, 0x1E56, | |
1532 | XK_period, XK_R, 0x1E58, | |
1533 | XK_period, XK_S, 0x1E60, | |
1534 | XK_period, XK_T, 0x1E6A, | |
1535 | XK_period, XK_W, 0x1E86, | |
1536 | XK_period, XK_X, 0x1E8A, | |
1537 | XK_period, XK_Y, 0x1E8E, | |
1538 | XK_period, XK_Z, 0x017B, | |
1539 | XK_period, XK_asciicircum, 0x00B7, | |
1540 | XK_period, XK_a, 0x0227, | |
1541 | XK_period, XK_b, 0x1E03, | |
1542 | XK_period, XK_c, 0x010B, | |
1543 | XK_period, XK_d, 0x1E0B, | |
1544 | XK_period, XK_e, 0x0117, | |
1545 | XK_period, XK_f, 0x1E1F, | |
1546 | XK_period, XK_g, 0x0121, | |
1547 | XK_period, XK_h, 0x1E23, | |
1548 | XK_period, XK_i, 0x0131, | |
1549 | XK_period, XK_m, 0x1E41, | |
1550 | XK_period, XK_n, 0x1E45, | |
1551 | XK_period, XK_o, 0x022F, | |
1552 | XK_period, XK_p, 0x1E57, | |
1553 | XK_period, XK_r, 0x1E59, | |
1554 | XK_period, XK_s, 0x1E61, | |
1555 | XK_period, XK_t, 0x1E6B, | |
1556 | XK_period, XK_w, 0x1E87, | |
1557 | XK_period, XK_x, 0x1E8B, | |
1558 | XK_period, XK_y, 0x1E8F, | |
1559 | XK_period, XK_z, 0x017C, | |
1560 | XK_period, 0x017F, 0x1E9B, | |
1561 | XK_period, XK_Sacute, 0x1E64, | |
1562 | XK_period, XK_Scaron, 0x1E66, | |
1563 | XK_period, XK_sacute, 0x1E65, | |
1564 | XK_period, XK_scaron, 0x1E67, | |
1565 | XK_period, 0x1E62, 0x1E68, | |
1566 | XK_period, 0x1E63, 0x1E69, | |
1567 | XK_slash, XK_slash, 0x005C, | |
1568 | XK_slash, XK_less, 0x005C, | |
1569 | XK_slash, XK_C, 0x00A2, | |
1570 | XK_slash, XK_D, 0x0110, | |
1571 | XK_slash, XK_G, 0x01E4, | |
1572 | XK_slash, XK_H, 0x0126, | |
1573 | XK_slash, XK_I, 0x0197, | |
1574 | XK_slash, XK_L, 0x0141, | |
1575 | XK_slash, XK_O, 0x00D8, | |
1576 | XK_slash, XK_T, 0x0166, | |
1577 | XK_slash, XK_U, 0x00B5, | |
1578 | XK_slash, XK_Z, 0x01B5, | |
1579 | XK_slash, XK_asciicircum, 0x007C, | |
1580 | XK_slash, XK_b, 0x0180, | |
1581 | XK_slash, XK_c, 0x00A2, | |
1582 | XK_slash, XK_d, 0x0111, | |
1583 | XK_slash, XK_g, 0x01E5, | |
1584 | XK_slash, XK_h, 0x0127, | |
1585 | XK_slash, XK_i, 0x0268, | |
1586 | XK_slash, XK_l, 0x0142, | |
1587 | XK_slash, XK_m, 0x20A5, | |
1588 | XK_slash, XK_o, 0x00F8, | |
1589 | XK_slash, XK_t, 0x0167, | |
1590 | XK_slash, XK_u, 0x00B5, | |
1591 | XK_slash, XK_z, 0x01B6, | |
1592 | XK_slash, 0x0294, 0x02A1, | |
1593 | XK_slash, 0x04AE, 0x04B0, | |
1594 | XK_slash, 0x04AF, 0x04B1, | |
1595 | XK_slash, XK_Cyrillic_ghe, 0x0493, | |
1596 | XK_slash, XK_Cyrillic_ka, 0x049F, | |
1597 | XK_slash, XK_Cyrillic_GHE, 0x0492, | |
1598 | XK_slash, XK_Cyrillic_KA, 0x049E, | |
1599 | XK_slash, XK_leftarrow, 0x219A, | |
1600 | XK_slash, XK_rightarrow, 0x219B, | |
1601 | XK_slash, 0x2194, 0x21AE, | |
1602 | XK_0, XK_asterisk, 0x00B0, | |
1603 | XK_0, XK_C, 0x00A9, | |
1604 | XK_0, XK_S, 0x00A7, | |
1605 | XK_0, XK_X, 0x00A4, | |
1606 | XK_0, XK_asciicircum, 0x00B0, | |
1607 | XK_0, XK_c, 0x00A9, | |
1608 | XK_0, XK_s, 0x00A7, | |
1609 | XK_0, XK_x, 0x00A4, | |
1610 | XK_1, XK_2, 0x00BD, | |
1611 | XK_1, XK_3, 0x2153, | |
1612 | XK_1, XK_4, 0x00BC, | |
1613 | XK_1, XK_5, 0x2155, | |
1614 | XK_1, XK_6, 0x2159, | |
1615 | XK_1, XK_8, 0x215B, | |
1616 | XK_1, XK_S, 0x00B9, | |
1617 | XK_1, XK_asciicircum, 0x00B9, | |
1618 | XK_1, XK_s, 0x00B9, | |
1619 | XK_2, XK_3, 0x2154, | |
1620 | XK_2, XK_5, 0x2156, | |
1621 | XK_2, XK_S, 0x00B2, | |
1622 | XK_2, XK_asciicircum, 0x00B2, | |
1623 | XK_2, XK_s, 0x00B2, | |
1624 | XK_3, XK_4, 0x00BE, | |
1625 | XK_3, XK_5, 0x2157, | |
1626 | XK_3, XK_8, 0x215C, | |
1627 | XK_3, XK_S, 0x00B3, | |
1628 | XK_3, XK_asciicircum, 0x00B3, | |
1629 | XK_3, XK_s, 0x00B3, | |
1630 | XK_4, XK_5, 0x2158, | |
1631 | XK_5, XK_6, 0x215A, | |
1632 | XK_5, XK_8, 0x215D, | |
1633 | XK_7, XK_8, 0x215E, | |
1634 | XK_colon, XK_minus, 0x00F7, | |
1635 | XK_semicolon, XK_A, 0x0104, | |
1636 | XK_semicolon, XK_E, 0x0118, | |
1637 | XK_semicolon, XK_I, 0x012E, | |
1638 | XK_semicolon, XK_O, 0x01EA, | |
1639 | XK_semicolon, XK_U, 0x0172, | |
1640 | XK_semicolon, XK_a, 0x0105, | |
1641 | XK_semicolon, XK_e, 0x0119, | |
1642 | XK_semicolon, XK_i, 0x012F, | |
1643 | XK_semicolon, XK_o, 0x01EB, | |
1644 | XK_semicolon, XK_u, 0x0173, | |
1645 | XK_less, XK_space, 0x02C7, | |
1646 | XK_less, XK_quotedbl, 0x201C, | |
1647 | XK_less, XK_apostrophe, 0x2018, | |
1648 | XK_less, XK_slash, 0x005C, | |
1649 | XK_less, XK_less, 0x00AB, | |
1650 | XK_less, XK_C, 0x010C, | |
1651 | XK_less, XK_D, 0x010E, | |
1652 | XK_less, XK_E, 0x011A, | |
1653 | XK_less, XK_L, 0x013D, | |
1654 | XK_less, XK_N, 0x0147, | |
1655 | XK_less, XK_R, 0x0158, | |
1656 | XK_less, XK_S, 0x0160, | |
1657 | XK_less, XK_T, 0x0164, | |
1658 | XK_less, XK_Z, 0x017D, | |
1659 | XK_less, XK_c, 0x010D, | |
1660 | XK_less, XK_d, 0x010F, | |
1661 | XK_less, XK_e, 0x011B, | |
1662 | XK_less, XK_l, 0x013E, | |
1663 | XK_less, XK_n, 0x0148, | |
1664 | XK_less, XK_r, 0x0159, | |
1665 | XK_less, XK_s, 0x0161, | |
1666 | XK_less, XK_t, 0x0165, | |
1667 | XK_less, XK_z, 0x017E, | |
1668 | XK_less, 0x0338, 0x226E, | |
1669 | XK_equal, XK_C, 0x20AC, | |
1670 | XK_equal, XK_E, 0x20AC, | |
1671 | XK_equal, XK_L, 0x00A3, | |
1672 | XK_equal, XK_N, 0x20A6, | |
1673 | XK_equal, XK_O, 0x0150, | |
1674 | XK_equal, XK_U, 0x0170, | |
1675 | XK_equal, XK_W, 0x20A9, | |
1676 | XK_equal, XK_Y, 0x00A5, | |
1677 | XK_equal, XK_c, 0x20AC, | |
1678 | XK_equal, XK_e, 0x20AC, | |
1679 | XK_equal, XK_l, 0x00A3, | |
1680 | XK_equal, XK_o, 0x0151, | |
1681 | XK_equal, XK_u, 0x0171, | |
1682 | XK_equal, XK_y, 0x00A5, | |
1683 | XK_equal, 0x0338, 0x2260, | |
1684 | XK_equal, XK_Cyrillic_u, 0x04F3, | |
1685 | XK_equal, XK_Cyrillic_IE, 0x20AC, | |
1686 | XK_equal, XK_Cyrillic_ES, 0x20AC, | |
1687 | XK_equal, XK_Cyrillic_U, 0x04F2, | |
1688 | XK_greater, XK_space, 0x005E, | |
1689 | XK_greater, XK_quotedbl, 0x201D, | |
1690 | XK_greater, XK_apostrophe, 0x2019, | |
1691 | XK_greater, XK_greater, 0x00BB, | |
1692 | XK_greater, XK_A, 0x00C2, | |
1693 | XK_greater, XK_E, 0x00CA, | |
1694 | XK_greater, XK_I, 0x00CE, | |
1695 | XK_greater, XK_O, 0x00D4, | |
1696 | XK_greater, XK_U, 0x00DB, | |
1697 | XK_greater, XK_a, 0x00E2, | |
1698 | XK_greater, XK_e, 0x00EA, | |
1699 | XK_greater, XK_i, 0x00EE, | |
1700 | XK_greater, XK_o, 0x00F4, | |
1701 | XK_greater, XK_u, 0x00FB, | |
1702 | XK_greater, 0x0338, 0x226F, | |
1703 | XK_question, XK_exclam, 0x203D, | |
1704 | XK_question, XK_question, 0x00BF, | |
1705 | XK_question, XK_A, 0x1EA2, | |
1706 | XK_question, XK_E, 0x1EBA, | |
1707 | XK_question, XK_I, 0x1EC8, | |
1708 | XK_question, XK_O, 0x1ECE, | |
1709 | XK_question, XK_U, 0x1EE6, | |
1710 | XK_question, XK_Y, 0x1EF6, | |
1711 | XK_question, XK_a, 0x1EA3, | |
1712 | XK_question, XK_e, 0x1EBB, | |
1713 | XK_question, XK_i, 0x1EC9, | |
1714 | XK_question, XK_o, 0x1ECF, | |
1715 | XK_question, XK_u, 0x1EE7, | |
1716 | XK_question, XK_y, 0x1EF7, | |
1717 | XK_question, XK_Acircumflex, 0x1EA8, | |
1718 | XK_question, XK_Ecircumflex, 0x1EC2, | |
1719 | XK_question, XK_Ocircumflex, 0x1ED4, | |
1720 | XK_question, XK_acircumflex, 0x1EA9, | |
1721 | XK_question, XK_ecircumflex, 0x1EC3, | |
1722 | XK_question, XK_ocircumflex, 0x1ED5, | |
1723 | XK_question, XK_Ohorn, 0x1EDE, | |
1724 | XK_question, XK_ohorn, 0x1EDF, | |
1725 | XK_question, XK_Uhorn, 0x1EEC, | |
1726 | XK_question, XK_uhorn, 0x1EED, | |
1727 | XK_question, XK_Abreve, 0x1EB2, | |
1728 | XK_question, XK_abreve, 0x1EB3, | |
1729 | XK_A, XK_quotedbl, 0x00C4, | |
1730 | XK_A, XK_apostrophe, 0x00C1, | |
1731 | XK_A, XK_parenleft, 0x0102, | |
1732 | XK_A, XK_asterisk, 0x00C5, | |
1733 | XK_A, XK_comma, 0x0104, | |
1734 | XK_A, XK_minus, 0x00C3, | |
1735 | XK_A, XK_greater, 0x00C2, | |
1736 | XK_A, XK_A, 0x00C5, | |
1737 | XK_A, XK_E, 0x00C6, | |
1738 | XK_A, XK_T, 0x0040, | |
1739 | XK_A, XK_asciicircum, 0x00C2, | |
1740 | XK_A, XK_underscore, 0x00AA, | |
1741 | XK_A, XK_grave, 0x00C0, | |
1742 | XK_A, XK_asciitilde, 0x00C3, | |
1743 | XK_A, XK_diaeresis, 0x00C4, | |
1744 | XK_A, XK_acute, 0x00C1, | |
1745 | XK_B, XK_period, 0x1E02, | |
1746 | XK_C, XK_apostrophe, 0x0106, | |
1747 | XK_C, XK_comma, 0x00C7, | |
1748 | XK_C, XK_period, 0x010A, | |
1749 | XK_C, XK_slash, 0x00A2, | |
1750 | XK_C, XK_0, 0x00A9, | |
1751 | XK_C, XK_less, 0x010C, | |
1752 | XK_C, XK_equal, 0x20AC, | |
1753 | XK_C, XK_E, 0x20A0, | |
1754 | XK_C, XK_O, 0x00A9, | |
1755 | XK_C, XK_o, 0x00A9, | |
1756 | XK_C, XK_r, 0x20A2, | |
1757 | XK_C, XK_bar, 0x00A2, | |
1758 | XK_D, XK_minus, 0x0110, | |
1759 | XK_D, XK_period, 0x1E0A, | |
1760 | XK_D, XK_less, 0x010E, | |
1761 | XK_D, XK_H, 0x00D0, | |
1762 | XK_E, XK_quotedbl, 0x00CB, | |
1763 | XK_E, XK_apostrophe, 0x00C9, | |
1764 | XK_E, XK_comma, 0x0118, | |
1765 | XK_E, XK_minus, 0x0112, | |
1766 | XK_E, XK_period, 0x0116, | |
1767 | XK_E, XK_less, 0x011A, | |
1768 | XK_E, XK_equal, 0x20AC, | |
1769 | XK_E, XK_greater, 0x00CA, | |
1770 | XK_E, XK_asciicircum, 0x00CA, | |
1771 | XK_E, XK_underscore, 0x0112, | |
1772 | XK_E, XK_grave, 0x00C8, | |
1773 | XK_E, XK_diaeresis, 0x00CB, | |
1774 | XK_E, XK_acute, 0x00C9, | |
1775 | XK_F, XK_period, 0x1E1E, | |
1776 | XK_F, XK_r, 0x20A3, | |
1777 | XK_G, XK_parenleft, 0x011E, | |
1778 | XK_G, XK_comma, 0x0122, | |
1779 | XK_G, XK_period, 0x0120, | |
1780 | XK_G, XK_U, 0x011E, | |
1781 | XK_G, XK_breve, 0x011E, | |
1782 | XK_I, XK_quotedbl, 0x00CF, | |
1783 | XK_I, XK_apostrophe, 0x00CD, | |
1784 | XK_I, XK_comma, 0x012E, | |
1785 | XK_I, XK_minus, 0x012A, | |
1786 | XK_I, XK_period, 0x0130, | |
1787 | XK_I, XK_greater, 0x00CE, | |
1788 | XK_I, XK_asciicircum, 0x00CE, | |
1789 | XK_I, XK_underscore, 0x012A, | |
1790 | XK_I, XK_grave, 0x00CC, | |
1791 | XK_I, XK_asciitilde, 0x0128, | |
1792 | XK_I, XK_diaeresis, 0x00CF, | |
1793 | XK_I, XK_acute, 0x00CD, | |
1794 | XK_K, XK_comma, 0x0136, | |
1795 | XK_L, XK_apostrophe, 0x0139, | |
1796 | XK_L, XK_comma, 0x013B, | |
1797 | XK_L, XK_minus, 0x00A3, | |
1798 | XK_L, XK_slash, 0x0141, | |
1799 | XK_L, XK_less, 0x013D, | |
1800 | XK_L, XK_equal, 0x00A3, | |
1801 | XK_L, XK_V, 0x007C, | |
1802 | XK_M, XK_period, 0x1E40, | |
1803 | XK_N, XK_apostrophe, 0x0143, | |
1804 | XK_N, XK_comma, 0x0145, | |
1805 | XK_N, XK_minus, 0x00D1, | |
1806 | XK_N, XK_less, 0x0147, | |
1807 | XK_N, XK_equal, 0x20A6, | |
1808 | XK_N, XK_G, 0x014A, | |
1809 | XK_N, XK_O, 0x2116, | |
1810 | XK_N, XK_o, 0x2116, | |
1811 | XK_N, XK_asciitilde, 0x00D1, | |
1812 | XK_O, XK_quotedbl, 0x00D6, | |
1813 | XK_O, XK_apostrophe, 0x00D3, | |
1814 | XK_O, XK_minus, 0x00D5, | |
1815 | XK_O, XK_slash, 0x00D8, | |
1816 | XK_O, XK_greater, 0x00D4, | |
1817 | XK_O, XK_C, 0x00A9, | |
1818 | XK_O, XK_E, 0x0152, | |
1819 | XK_O, XK_R, 0x00AE, | |
1820 | XK_O, XK_S, 0x00A7, | |
1821 | XK_O, XK_X, 0x00A4, | |
1822 | XK_O, XK_asciicircum, 0x00D4, | |
1823 | XK_O, XK_underscore, 0x00BA, | |
1824 | XK_O, XK_grave, 0x00D2, | |
1825 | XK_O, XK_c, 0x00A9, | |
1826 | XK_O, XK_r, 0x00AE, | |
1827 | XK_O, XK_x, 0x00A4, | |
1828 | XK_O, XK_asciitilde, 0x00D5, | |
1829 | XK_O, XK_diaeresis, 0x00D6, | |
1830 | XK_O, XK_acute, 0x00D3, | |
1831 | XK_P, XK_exclam, 0x00B6, | |
1832 | XK_P, XK_period, 0x1E56, | |
1833 | XK_P, XK_P, 0x00B6, | |
1834 | XK_P, XK_t, 0x20A7, | |
1835 | XK_R, XK_apostrophe, 0x0154, | |
1836 | XK_R, XK_comma, 0x0156, | |
1837 | XK_R, XK_less, 0x0158, | |
1838 | XK_R, XK_O, 0x00AE, | |
1839 | XK_R, XK_s, 0x20A8, | |
1840 | XK_S, XK_exclam, 0x00A7, | |
1841 | XK_S, XK_apostrophe, 0x015A, | |
1842 | XK_S, XK_comma, 0x015E, | |
1843 | XK_S, XK_period, 0x1E60, | |
1844 | XK_S, XK_0, 0x00A7, | |
1845 | XK_S, XK_1, 0x00B9, | |
1846 | XK_S, XK_2, 0x00B2, | |
1847 | XK_S, XK_3, 0x00B3, | |
1848 | XK_S, XK_less, 0x0160, | |
1849 | XK_S, XK_M, 0x2120, | |
1850 | XK_S, XK_O, 0x00A7, | |
1851 | XK_S, XK_m, 0x2120, | |
1852 | XK_S, XK_cedilla, 0x015E, | |
1853 | XK_T, XK_minus, 0x0166, | |
1854 | XK_T, XK_period, 0x1E6A, | |
1855 | XK_T, XK_slash, 0x0166, | |
1856 | XK_T, XK_less, 0x0164, | |
1857 | XK_T, XK_H, 0x00DE, | |
1858 | XK_T, XK_M, 0x2122, | |
1859 | XK_T, XK_m, 0x2122, | |
1860 | XK_U, XK_quotedbl, 0x00DC, | |
1861 | XK_U, XK_apostrophe, 0x00DA, | |
1862 | XK_U, XK_asterisk, 0x016E, | |
1863 | XK_U, XK_comma, 0x0172, | |
1864 | XK_U, XK_minus, 0x016A, | |
1865 | XK_U, XK_slash, 0x00B5, | |
1866 | XK_U, XK_greater, 0x00DB, | |
1867 | XK_U, XK_A, 0x0102, | |
1868 | XK_U, XK_E, 0x0114, | |
1869 | XK_U, XK_G, 0x011E, | |
1870 | XK_U, XK_I, 0x012C, | |
1871 | XK_U, XK_O, 0x014E, | |
1872 | XK_U, XK_U, 0x016C, | |
1873 | XK_U, XK_asciicircum, 0x00DB, | |
1874 | XK_U, XK_underscore, 0x016A, | |
1875 | XK_U, XK_grave, 0x00D9, | |
1876 | XK_U, XK_a, 0x0103, | |
1877 | XK_U, XK_e, 0x0115, | |
1878 | XK_U, XK_g, 0x011F, | |
1879 | XK_U, XK_i, 0x012D, | |
1880 | XK_U, XK_o, 0x014F, | |
1881 | XK_U, XK_u, 0x016D, | |
1882 | XK_U, XK_asciitilde, 0x0168, | |
1883 | XK_U, XK_diaeresis, 0x00DC, | |
1884 | XK_U, XK_acute, 0x00DA, | |
1885 | XK_U, 0x0228, 0x1E1C, | |
1886 | XK_U, 0x0229, 0x1E1D, | |
1887 | XK_U, XK_Cyrillic_a, 0x04D1, | |
1888 | XK_U, XK_Cyrillic_ie, 0x04D7, | |
1889 | XK_U, XK_Cyrillic_i, 0x0439, | |
1890 | XK_U, XK_Cyrillic_u, 0x045E, | |
1891 | XK_U, XK_Cyrillic_zhe, 0x04C2, | |
1892 | XK_U, XK_Cyrillic_A, 0x04D0, | |
1893 | XK_U, XK_Cyrillic_IE, 0x04D6, | |
1894 | XK_U, XK_Cyrillic_I, 0x0419, | |
1895 | XK_U, XK_Cyrillic_U, 0x040E, | |
1896 | XK_U, XK_Cyrillic_ZHE, 0x04C1, | |
1897 | XK_U, XK_Greek_ALPHA, 0x1FB8, | |
1898 | XK_U, XK_Greek_IOTA, 0x1FD8, | |
1899 | XK_U, XK_Greek_UPSILON, 0x1FE8, | |
1900 | XK_U, XK_Greek_alpha, 0x1FB0, | |
1901 | XK_U, XK_Greek_iota, 0x1FD0, | |
1902 | XK_U, XK_Greek_upsilon, 0x1FE0, | |
1903 | XK_U, 0x1EA0, 0x1EB6, | |
1904 | XK_U, 0x1EA1, 0x1EB7, | |
1905 | XK_V, XK_L, 0x007C, | |
1906 | XK_W, XK_equal, 0x20A9, | |
1907 | XK_W, XK_asciicircum, 0x0174, | |
1908 | XK_X, XK_0, 0x00A4, | |
1909 | XK_X, XK_O, 0x00A4, | |
1910 | XK_X, XK_o, 0x00A4, | |
1911 | XK_Y, XK_quotedbl, 0x0178, | |
1912 | XK_Y, XK_apostrophe, 0x00DD, | |
1913 | XK_Y, XK_minus, 0x00A5, | |
1914 | XK_Y, XK_equal, 0x00A5, | |
1915 | XK_Y, XK_asciicircum, 0x0176, | |
1916 | XK_Y, XK_diaeresis, 0x0178, | |
1917 | XK_Y, XK_acute, 0x00DD, | |
1918 | XK_Z, XK_apostrophe, 0x0179, | |
1919 | XK_Z, XK_period, 0x017B, | |
1920 | XK_Z, XK_less, 0x017D, | |
1921 | XK_asciicircum, XK_space, 0x005E, | |
1922 | XK_asciicircum, XK_parenleft, 0x207D, | |
1923 | XK_asciicircum, XK_parenright, 0x207E, | |
1924 | XK_asciicircum, XK_plus, 0x207A, | |
1925 | XK_asciicircum, XK_minus, 0x00AF, | |
1926 | XK_asciicircum, XK_period, 0x00B7, | |
1927 | XK_asciicircum, XK_slash, 0x007C, | |
1928 | XK_asciicircum, XK_0, 0x00B0, | |
1929 | XK_asciicircum, XK_1, 0x00B9, | |
1930 | XK_asciicircum, XK_2, 0x00B2, | |
1931 | XK_asciicircum, XK_3, 0x00B3, | |
1932 | XK_asciicircum, XK_4, 0x2074, | |
1933 | XK_asciicircum, XK_5, 0x2075, | |
1934 | XK_asciicircum, XK_6, 0x2076, | |
1935 | XK_asciicircum, XK_7, 0x2077, | |
1936 | XK_asciicircum, XK_8, 0x2078, | |
1937 | XK_asciicircum, XK_9, 0x2079, | |
1938 | XK_asciicircum, XK_equal, 0x207C, | |
1939 | XK_asciicircum, XK_A, 0x00C2, | |
1940 | XK_asciicircum, XK_C, 0x0108, | |
1941 | XK_asciicircum, XK_E, 0x00CA, | |
1942 | XK_asciicircum, XK_G, 0x011C, | |
1943 | XK_asciicircum, XK_H, 0x0124, | |
1944 | XK_asciicircum, XK_I, 0x00CE, | |
1945 | XK_asciicircum, XK_J, 0x0134, | |
1946 | XK_asciicircum, XK_O, 0x00D4, | |
1947 | XK_asciicircum, XK_S, 0x015C, | |
1948 | XK_asciicircum, XK_U, 0x00DB, | |
1949 | XK_asciicircum, XK_W, 0x0174, | |
1950 | XK_asciicircum, XK_Y, 0x0176, | |
1951 | XK_asciicircum, XK_Z, 0x1E90, | |
1952 | XK_asciicircum, XK_underscore, 0x00AF, | |
1953 | XK_asciicircum, XK_a, 0x00E2, | |
1954 | XK_asciicircum, XK_c, 0x0109, | |
1955 | XK_asciicircum, XK_e, 0x00EA, | |
1956 | XK_asciicircum, XK_g, 0x011D, | |
1957 | XK_asciicircum, XK_h, 0x0125, | |
1958 | XK_asciicircum, XK_i, 0x00EE, | |
1959 | XK_asciicircum, XK_j, 0x0135, | |
1960 | XK_asciicircum, XK_o, 0x00F4, | |
1961 | XK_asciicircum, XK_s, 0x015D, | |
1962 | XK_asciicircum, XK_u, 0x00FB, | |
1963 | XK_asciicircum, XK_w, 0x0175, | |
1964 | XK_asciicircum, XK_y, 0x0177, | |
1965 | XK_asciicircum, XK_z, 0x1E91, | |
1966 | XK_asciicircum, 0x1EA0, 0x1EAC, | |
1967 | XK_asciicircum, 0x1EA1, 0x1EAD, | |
1968 | XK_asciicircum, 0x1EB8, 0x1EC6, | |
1969 | XK_asciicircum, 0x1EB9, 0x1EC7, | |
1970 | XK_asciicircum, 0x1ECC, 0x1ED8, | |
1971 | XK_asciicircum, 0x1ECD, 0x1ED9, | |
1972 | XK_asciicircum, 0x2212, 0x207B, | |
1973 | XK_asciicircum, 0x4E00, 0x3192, | |
1974 | XK_asciicircum, 0x4E01, 0x319C, | |
1975 | XK_asciicircum, 0x4E09, 0x3194, | |
1976 | XK_asciicircum, 0x4E0A, 0x3196, | |
1977 | XK_asciicircum, 0x4E0B, 0x3198, | |
1978 | XK_asciicircum, 0x4E19, 0x319B, | |
1979 | XK_asciicircum, 0x4E2D, 0x3197, | |
1980 | XK_asciicircum, 0x4E59, 0x319A, | |
1981 | XK_asciicircum, 0x4E8C, 0x3193, | |
1982 | XK_asciicircum, 0x4EBA, 0x319F, | |
1983 | XK_asciicircum, 0x56DB, 0x3195, | |
1984 | XK_asciicircum, 0x5730, 0x319E, | |
1985 | XK_asciicircum, 0x5929, 0x319D, | |
1986 | XK_asciicircum, 0x7532, 0x3199, | |
1987 | XK_asciicircum, XK_KP_Space, 0x00B2, | |
1988 | XK_asciicircum, XK_KP_Add, 0x207A, | |
1989 | XK_asciicircum, XK_KP_0, 0x2070, | |
1990 | XK_asciicircum, XK_KP_1, 0x00B9, | |
1991 | XK_asciicircum, XK_KP_2, 0x00B2, | |
1992 | XK_asciicircum, XK_KP_3, 0x00B3, | |
1993 | XK_asciicircum, XK_KP_4, 0x2074, | |
1994 | XK_asciicircum, XK_KP_5, 0x2075, | |
1995 | XK_asciicircum, XK_KP_6, 0x2076, | |
1996 | XK_asciicircum, XK_KP_7, 0x2077, | |
1997 | XK_asciicircum, XK_KP_8, 0x2078, | |
1998 | XK_asciicircum, XK_KP_9, 0x2079, | |
1999 | XK_asciicircum, XK_KP_Equal, 0x207C, | |
2000 | XK_underscore, XK_parenleft, 0x208D, | |
2001 | XK_underscore, XK_parenright, 0x208E, | |
2002 | XK_underscore, XK_plus, 0x208A, | |
2003 | XK_underscore, XK_0, 0x2080, | |
2004 | XK_underscore, XK_1, 0x2081, | |
2005 | XK_underscore, XK_2, 0x2082, | |
2006 | XK_underscore, XK_3, 0x2083, | |
2007 | XK_underscore, XK_4, 0x2084, | |
2008 | XK_underscore, XK_5, 0x2085, | |
2009 | XK_underscore, XK_6, 0x2086, | |
2010 | XK_underscore, XK_7, 0x2087, | |
2011 | XK_underscore, XK_8, 0x2088, | |
2012 | XK_underscore, XK_9, 0x2089, | |
2013 | XK_underscore, XK_equal, 0x208C, | |
2014 | XK_underscore, XK_A, 0x00AA, | |
2015 | XK_underscore, XK_E, 0x0112, | |
2016 | XK_underscore, XK_G, 0x1E20, | |
2017 | XK_underscore, XK_I, 0x012A, | |
2018 | XK_underscore, XK_O, 0x00BA, | |
2019 | XK_underscore, XK_U, 0x016A, | |
2020 | XK_underscore, XK_Y, 0x0232, | |
2021 | XK_underscore, XK_asciicircum, 0x00AF, | |
2022 | XK_underscore, XK_underscore, 0x00AF, | |
2023 | XK_underscore, XK_a, 0x00AA, | |
2024 | XK_underscore, XK_e, 0x0113, | |
2025 | XK_underscore, XK_g, 0x1E21, | |
2026 | XK_underscore, XK_i, 0x012B, | |
2027 | XK_underscore, XK_o, 0x00BA, | |
2028 | XK_underscore, XK_u, 0x016B, | |
2029 | XK_underscore, XK_y, 0x0233, | |
2030 | XK_underscore, XK_Adiaeresis, 0x01DE, | |
2031 | XK_underscore, XK_AE, 0x01E2, | |
2032 | XK_underscore, XK_Otilde, 0x022C, | |
2033 | XK_underscore, XK_Odiaeresis, 0x022A, | |
2034 | XK_underscore, 0x00DC, 0x01D5, | |
2035 | XK_underscore, XK_adiaeresis, 0x01DF, | |
2036 | XK_underscore, XK_ae, 0x01E3, | |
2037 | XK_underscore, XK_otilde, 0x022D, | |
2038 | XK_underscore, XK_odiaeresis, 0x022B, | |
2039 | XK_underscore, XK_udiaeresis, 0x01D6, | |
2040 | XK_underscore, 0x01EA, 0x01EC, | |
2041 | XK_underscore, 0x01EB, 0x01ED, | |
2042 | XK_underscore, 0x0226, 0x01E0, | |
2043 | XK_underscore, 0x0227, 0x01E1, | |
2044 | XK_underscore, 0x022E, 0x0230, | |
2045 | XK_underscore, 0x022F, 0x0231, | |
2046 | XK_underscore, XK_Cyrillic_i, 0x04E3, | |
2047 | XK_underscore, XK_Cyrillic_u, 0x04EF, | |
2048 | XK_underscore, XK_Cyrillic_I, 0x04E2, | |
2049 | XK_underscore, XK_Cyrillic_U, 0x04EE, | |
2050 | XK_underscore, XK_Greek_ALPHA, 0x1FB9, | |
2051 | XK_underscore, XK_Greek_IOTA, 0x1FD9, | |
2052 | XK_underscore, XK_Greek_UPSILON, 0x1FE9, | |
2053 | XK_underscore, XK_Greek_alpha, 0x1FB1, | |
2054 | XK_underscore, XK_Greek_iota, 0x1FD1, | |
2055 | XK_underscore, XK_Greek_upsilon, 0x1FE1, | |
2056 | XK_underscore, 0x1E36, 0x1E38, | |
2057 | XK_underscore, 0x1E37, 0x1E39, | |
2058 | XK_underscore, 0x1E5A, 0x1E5C, | |
2059 | XK_underscore, 0x1E5B, 0x1E5D, | |
2060 | XK_underscore, 0x2212, 0x208B, | |
2061 | XK_underscore, XK_KP_Space, 0x2082, | |
2062 | XK_underscore, XK_KP_Add, 0x208A, | |
2063 | XK_underscore, XK_KP_0, 0x2080, | |
2064 | XK_underscore, XK_KP_1, 0x2081, | |
2065 | XK_underscore, XK_KP_2, 0x2082, | |
2066 | XK_underscore, XK_KP_3, 0x2083, | |
2067 | XK_underscore, XK_KP_4, 0x2084, | |
2068 | XK_underscore, XK_KP_5, 0x2085, | |
2069 | XK_underscore, XK_KP_6, 0x2086, | |
2070 | XK_underscore, XK_KP_7, 0x2087, | |
2071 | XK_underscore, XK_KP_8, 0x2088, | |
2072 | XK_underscore, XK_KP_9, 0x2089, | |
2073 | XK_underscore, XK_KP_Equal, 0x208C, | |
2074 | XK_grave, XK_space, 0x0060, | |
2075 | XK_grave, XK_A, 0x00C0, | |
2076 | XK_grave, XK_E, 0x00C8, | |
2077 | XK_grave, XK_I, 0x00CC, | |
2078 | XK_grave, XK_N, 0x01F8, | |
2079 | XK_grave, XK_O, 0x00D2, | |
2080 | XK_grave, XK_U, 0x00D9, | |
2081 | XK_grave, XK_W, 0x1E80, | |
2082 | XK_grave, XK_Y, 0x1EF2, | |
2083 | XK_grave, XK_a, 0x00E0, | |
2084 | XK_grave, XK_e, 0x00E8, | |
2085 | XK_grave, XK_i, 0x00EC, | |
2086 | XK_grave, XK_n, 0x01F9, | |
2087 | XK_grave, XK_o, 0x00F2, | |
2088 | XK_grave, XK_u, 0x00F9, | |
2089 | XK_grave, XK_w, 0x1E81, | |
2090 | XK_grave, XK_y, 0x1EF3, | |
2091 | XK_grave, XK_Acircumflex, 0x1EA6, | |
2092 | XK_grave, XK_Ecircumflex, 0x1EC0, | |
2093 | XK_grave, XK_Ocircumflex, 0x1ED2, | |
2094 | XK_grave, 0x00DC, 0x01DB, | |
2095 | XK_grave, XK_acircumflex, 0x1EA7, | |
2096 | XK_grave, XK_ecircumflex, 0x1EC1, | |
2097 | XK_grave, XK_ocircumflex, 0x1ED3, | |
2098 | XK_grave, XK_udiaeresis, 0x01DC, | |
2099 | XK_grave, XK_Ohorn, 0x1EDC, | |
2100 | XK_grave, XK_ohorn, 0x1EDD, | |
2101 | XK_grave, XK_Uhorn, 0x1EEA, | |
2102 | XK_grave, XK_uhorn, 0x1EEB, | |
2103 | XK_grave, XK_Abreve, 0x1EB0, | |
2104 | XK_grave, XK_abreve, 0x1EB1, | |
2105 | XK_grave, XK_Emacron, 0x1E14, | |
2106 | XK_grave, XK_emacron, 0x1E15, | |
2107 | XK_grave, XK_Omacron, 0x1E50, | |
2108 | XK_grave, XK_omacron, 0x1E51, | |
2109 | XK_grave, XK_Cyrillic_ie, 0x0450, | |
2110 | XK_grave, XK_Cyrillic_i, 0x045D, | |
2111 | XK_grave, XK_Cyrillic_IE, 0x0400, | |
2112 | XK_grave, XK_Cyrillic_I, 0x040D, | |
2113 | XK_grave, XK_Greek_iotadieresis, 0x1FD2, | |
2114 | XK_grave, XK_Greek_upsilondieresis, 0x1FE2, | |
2115 | XK_grave, XK_Greek_ALPHA, 0x1FBA, | |
2116 | XK_grave, XK_Greek_EPSILON, 0x1FC8, | |
2117 | XK_grave, XK_Greek_ETA, 0x1FCA, | |
2118 | XK_grave, XK_Greek_IOTA, 0x1FDA, | |
2119 | XK_grave, XK_Greek_OMICRON, 0x1FF8, | |
2120 | XK_grave, XK_Greek_UPSILON, 0x1FEA, | |
2121 | XK_grave, XK_Greek_OMEGA, 0x1FFA, | |
2122 | XK_grave, XK_Greek_alpha, 0x1F70, | |
2123 | XK_grave, XK_Greek_epsilon, 0x1F72, | |
2124 | XK_grave, XK_Greek_eta, 0x1F74, | |
2125 | XK_grave, XK_Greek_iota, 0x1F76, | |
2126 | XK_grave, XK_Greek_omicron, 0x1F78, | |
2127 | XK_grave, XK_Greek_upsilon, 0x1F7A, | |
2128 | XK_grave, XK_Greek_omega, 0x1F7C, | |
2129 | XK_grave, 0x1F00, 0x1F02, | |
2130 | XK_grave, 0x1F01, 0x1F03, | |
2131 | XK_grave, 0x1F08, 0x1F0A, | |
2132 | XK_grave, 0x1F09, 0x1F0B, | |
2133 | XK_grave, 0x1F10, 0x1F12, | |
2134 | XK_grave, 0x1F11, 0x1F13, | |
2135 | XK_grave, 0x1F18, 0x1F1A, | |
2136 | XK_grave, 0x1F19, 0x1F1B, | |
2137 | XK_grave, 0x1F20, 0x1F22, | |
2138 | XK_grave, 0x1F21, 0x1F23, | |
2139 | XK_grave, 0x1F28, 0x1F2A, | |
2140 | XK_grave, 0x1F29, 0x1F2B, | |
2141 | XK_grave, 0x1F30, 0x1F32, | |
2142 | XK_grave, 0x1F31, 0x1F33, | |
2143 | XK_grave, 0x1F38, 0x1F3A, | |
2144 | XK_grave, 0x1F39, 0x1F3B, | |
2145 | XK_grave, 0x1F40, 0x1F42, | |
2146 | XK_grave, 0x1F41, 0x1F43, | |
2147 | XK_grave, 0x1F48, 0x1F4A, | |
2148 | XK_grave, 0x1F49, 0x1F4B, | |
2149 | XK_grave, 0x1F50, 0x1F52, | |
2150 | XK_grave, 0x1F51, 0x1F53, | |
2151 | XK_grave, 0x1F59, 0x1F5B, | |
2152 | XK_grave, 0x1F60, 0x1F62, | |
2153 | XK_grave, 0x1F61, 0x1F63, | |
2154 | XK_grave, 0x1F68, 0x1F6A, | |
2155 | XK_grave, 0x1F69, 0x1F6B, | |
2156 | XK_a, XK_quotedbl, 0x00E4, | |
2157 | XK_a, XK_apostrophe, 0x00E1, | |
2158 | XK_a, XK_parenleft, 0x0103, | |
2159 | XK_a, XK_asterisk, 0x00E5, | |
2160 | XK_a, XK_comma, 0x0105, | |
2161 | XK_a, XK_minus, 0x00E3, | |
2162 | XK_a, XK_greater, 0x00E2, | |
2163 | XK_a, XK_asciicircum, 0x00E2, | |
2164 | XK_a, XK_underscore, 0x00AA, | |
2165 | XK_a, XK_grave, 0x00E0, | |
2166 | XK_a, XK_a, 0x00E5, | |
2167 | XK_a, XK_e, 0x00E6, | |
2168 | XK_a, XK_asciitilde, 0x00E3, | |
2169 | XK_a, XK_diaeresis, 0x00E4, | |
2170 | XK_a, XK_acute, 0x00E1, | |
2171 | XK_b, XK_period, 0x1E03, | |
2172 | XK_b, XK_A, 0x0102, | |
2173 | XK_b, XK_E, 0x0114, | |
2174 | XK_b, XK_G, 0x011E, | |
2175 | XK_b, XK_I, 0x012C, | |
2176 | XK_b, XK_O, 0x014E, | |
2177 | XK_b, XK_U, 0x016C, | |
2178 | XK_b, XK_a, 0x0103, | |
2179 | XK_b, XK_e, 0x0115, | |
2180 | XK_b, XK_g, 0x011F, | |
2181 | XK_b, XK_i, 0x012D, | |
2182 | XK_b, XK_o, 0x014F, | |
2183 | XK_b, XK_u, 0x016D, | |
2184 | XK_b, 0x0228, 0x1E1C, | |
2185 | XK_b, 0x0229, 0x1E1D, | |
2186 | XK_b, XK_Cyrillic_a, 0x04D1, | |
2187 | XK_b, XK_Cyrillic_ie, 0x04D7, | |
2188 | XK_b, XK_Cyrillic_i, 0x0439, | |
2189 | XK_b, XK_Cyrillic_u, 0x045E, | |
2190 | XK_b, XK_Cyrillic_zhe, 0x04C2, | |
2191 | XK_b, XK_Cyrillic_A, 0x04D0, | |
2192 | XK_b, XK_Cyrillic_IE, 0x04D6, | |
2193 | XK_b, XK_Cyrillic_I, 0x0419, | |
2194 | XK_b, XK_Cyrillic_U, 0x040E, | |
2195 | XK_b, XK_Cyrillic_ZHE, 0x04C1, | |
2196 | XK_b, XK_Greek_ALPHA, 0x1FB8, | |
2197 | XK_b, XK_Greek_IOTA, 0x1FD8, | |
2198 | XK_b, XK_Greek_UPSILON, 0x1FE8, | |
2199 | XK_b, XK_Greek_alpha, 0x1FB0, | |
2200 | XK_b, XK_Greek_iota, 0x1FD0, | |
2201 | XK_b, XK_Greek_upsilon, 0x1FE0, | |
2202 | XK_b, 0x1EA0, 0x1EB6, | |
2203 | XK_b, 0x1EA1, 0x1EB7, | |
2204 | XK_c, XK_apostrophe, 0x0107, | |
2205 | XK_c, XK_comma, 0x00E7, | |
2206 | XK_c, XK_period, 0x010B, | |
2207 | XK_c, XK_slash, 0x00A2, | |
2208 | XK_c, XK_0, 0x00A9, | |
2209 | XK_c, XK_less, 0x010D, | |
2210 | XK_c, XK_equal, 0x20AC, | |
2211 | XK_c, XK_A, 0x01CD, | |
2212 | XK_c, XK_C, 0x010C, | |
2213 | XK_c, XK_D, 0x010E, | |
2214 | XK_c, XK_E, 0x011A, | |
2215 | XK_c, XK_G, 0x01E6, | |
2216 | XK_c, XK_H, 0x021E, | |
2217 | XK_c, XK_I, 0x01CF, | |
2218 | XK_c, XK_K, 0x01E8, | |
2219 | XK_c, XK_L, 0x013D, | |
2220 | XK_c, XK_N, 0x0147, | |
2221 | XK_c, XK_O, 0x00A9, | |
2222 | XK_c, XK_R, 0x0158, | |
2223 | XK_c, XK_S, 0x0160, | |
2224 | XK_c, XK_T, 0x0164, | |
2225 | XK_c, XK_U, 0x01D3, | |
2226 | XK_c, XK_Z, 0x017D, | |
2227 | XK_c, XK_a, 0x01CE, | |
2228 | XK_c, XK_c, 0x010D, | |
2229 | XK_c, XK_d, 0x010F, | |
2230 | XK_c, XK_e, 0x011B, | |
2231 | XK_c, XK_g, 0x01E7, | |
2232 | XK_c, XK_h, 0x021F, | |
2233 | XK_c, XK_i, 0x01D0, | |
2234 | XK_c, XK_j, 0x01F0, | |
2235 | XK_c, XK_k, 0x01E9, | |
2236 | XK_c, XK_l, 0x013E, | |
2237 | XK_c, XK_n, 0x0148, | |
2238 | XK_c, XK_o, 0x00A9, | |
2239 | XK_c, XK_r, 0x0159, | |
2240 | XK_c, XK_s, 0x0161, | |
2241 | XK_c, XK_t, 0x0165, | |
2242 | XK_c, XK_u, 0x01D4, | |
2243 | XK_c, XK_z, 0x017E, | |
2244 | XK_c, XK_bar, 0x00A2, | |
2245 | XK_c, 0x00DC, 0x01D9, | |
2246 | XK_c, XK_udiaeresis, 0x01DA, | |
2247 | XK_c, 0x01B7, 0x01EE, | |
2248 | XK_c, 0x0292, 0x01EF, | |
2249 | XK_d, XK_minus, 0x0111, | |
2250 | XK_d, XK_period, 0x1E0B, | |
2251 | XK_d, XK_less, 0x010F, | |
2252 | XK_d, XK_h, 0x00F0, | |
2253 | XK_e, XK_quotedbl, 0x00EB, | |
2254 | XK_e, XK_apostrophe, 0x00E9, | |
2255 | XK_e, XK_comma, 0x0119, | |
2256 | XK_e, XK_minus, 0x0113, | |
2257 | XK_e, XK_period, 0x0117, | |
2258 | XK_e, XK_less, 0x011B, | |
2259 | XK_e, XK_equal, 0x20AC, | |
2260 | XK_e, XK_greater, 0x00EA, | |
2261 | XK_e, XK_asciicircum, 0x00EA, | |
2262 | XK_e, XK_underscore, 0x0113, | |
2263 | XK_e, XK_grave, 0x00E8, | |
2264 | XK_e, XK_e, 0x0259, | |
2265 | XK_e, XK_diaeresis, 0x00EB, | |
2266 | XK_e, XK_acute, 0x00E9, | |
2267 | XK_f, XK_period, 0x1E1F, | |
2268 | XK_f, XK_S, 0x017F, | |
2269 | XK_f, XK_s, 0x017F, | |
2270 | XK_g, XK_parenleft, 0x011F, | |
2271 | XK_g, XK_comma, 0x0123, | |
2272 | XK_g, XK_period, 0x0121, | |
2273 | XK_g, XK_U, 0x011F, | |
2274 | XK_g, XK_breve, 0x011F, | |
2275 | XK_i, XK_quotedbl, 0x00EF, | |
2276 | XK_i, XK_apostrophe, 0x00ED, | |
2277 | XK_i, XK_comma, 0x012F, | |
2278 | XK_i, XK_minus, 0x012B, | |
2279 | XK_i, XK_period, 0x0131, | |
2280 | XK_i, XK_greater, 0x00EE, | |
2281 | XK_i, XK_asciicircum, 0x00EE, | |
2282 | XK_i, XK_underscore, 0x012B, | |
2283 | XK_i, XK_grave, 0x00EC, | |
2284 | XK_i, XK_asciitilde, 0x0129, | |
2285 | XK_i, XK_diaeresis, 0x00EF, | |
2286 | XK_i, XK_acute, 0x00ED, | |
2287 | XK_k, XK_comma, 0x0137, | |
2288 | XK_k, XK_k, 0x0138, | |
2289 | XK_l, XK_apostrophe, 0x013A, | |
2290 | XK_l, XK_comma, 0x013C, | |
2291 | XK_l, XK_minus, 0x00A3, | |
2292 | XK_l, XK_slash, 0x0142, | |
2293 | XK_l, XK_less, 0x013E, | |
2294 | XK_l, XK_equal, 0x00A3, | |
2295 | XK_l, XK_v, 0x007C, | |
2296 | XK_m, XK_period, 0x1E41, | |
2297 | XK_m, XK_slash, 0x20A5, | |
2298 | XK_m, XK_u, 0x00B5, | |
2299 | XK_n, XK_apostrophe, 0x0144, | |
2300 | XK_n, XK_comma, 0x0146, | |
2301 | XK_n, XK_minus, 0x00F1, | |
2302 | XK_n, XK_less, 0x0148, | |
2303 | XK_n, XK_g, 0x014B, | |
2304 | XK_n, XK_asciitilde, 0x00F1, | |
2305 | XK_o, XK_quotedbl, 0x00F6, | |
2306 | XK_o, XK_apostrophe, 0x00F3, | |
2307 | XK_o, XK_minus, 0x00F5, | |
2308 | XK_o, XK_slash, 0x00F8, | |
2309 | XK_o, XK_greater, 0x00F4, | |
2310 | XK_o, XK_A, 0x00C5, | |
2311 | XK_o, XK_C, 0x00A9, | |
2312 | XK_o, XK_R, 0x00AE, | |
2313 | XK_o, XK_U, 0x016E, | |
2314 | XK_o, XK_X, 0x00A4, | |
2315 | XK_o, XK_asciicircum, 0x00F4, | |
2316 | XK_o, XK_underscore, 0x00BA, | |
2317 | XK_o, XK_grave, 0x00F2, | |
2318 | XK_o, XK_a, 0x00E5, | |
2319 | XK_o, XK_c, 0x00A9, | |
2320 | XK_o, XK_e, 0x0153, | |
2321 | XK_o, XK_o, 0x00B0, | |
2322 | XK_o, XK_r, 0x00AE, | |
2323 | XK_o, XK_s, 0x00A7, | |
2324 | XK_o, XK_u, 0x016F, | |
2325 | XK_o, XK_w, 0x1E98, | |
2326 | XK_o, XK_x, 0x00A4, | |
2327 | XK_o, XK_y, 0x1E99, | |
2328 | XK_o, XK_asciitilde, 0x00F5, | |
2329 | XK_o, XK_diaeresis, 0x00F6, | |
2330 | XK_o, XK_acute, 0x00F3, | |
2331 | XK_p, XK_exclam, 0x00B6, | |
2332 | XK_p, XK_period, 0x1E57, | |
2333 | XK_r, XK_apostrophe, 0x0155, | |
2334 | XK_r, XK_comma, 0x0157, | |
2335 | XK_r, XK_less, 0x0159, | |
2336 | XK_s, XK_exclam, 0x00A7, | |
2337 | XK_s, XK_apostrophe, 0x015B, | |
2338 | XK_s, XK_comma, 0x015F, | |
2339 | XK_s, XK_period, 0x1E61, | |
2340 | XK_s, XK_0, 0x00A7, | |
2341 | XK_s, XK_1, 0x00B9, | |
2342 | XK_s, XK_2, 0x00B2, | |
2343 | XK_s, XK_3, 0x00B3, | |
2344 | XK_s, XK_less, 0x0161, | |
2345 | XK_s, XK_M, 0x2120, | |
2346 | XK_s, XK_m, 0x2120, | |
2347 | XK_s, XK_o, 0x00A7, | |
2348 | XK_s, XK_s, 0x00DF, | |
2349 | XK_s, XK_cedilla, 0x015F, | |
2350 | XK_t, XK_minus, 0x0167, | |
2351 | XK_t, XK_period, 0x1E6B, | |
2352 | XK_t, XK_slash, 0x0167, | |
2353 | XK_t, XK_less, 0x0165, | |
2354 | XK_t, XK_M, 0x2122, | |
2355 | XK_t, XK_h, 0x00FE, | |
2356 | XK_t, XK_m, 0x2122, | |
2357 | XK_u, XK_quotedbl, 0x00FC, | |
2358 | XK_u, XK_apostrophe, 0x00FA, | |
2359 | XK_u, XK_asterisk, 0x016F, | |
2360 | XK_u, XK_comma, 0x0173, | |
2361 | XK_u, XK_minus, 0x016B, | |
2362 | XK_u, XK_slash, 0x00B5, | |
2363 | XK_u, XK_greater, 0x00FB, | |
2364 | XK_u, XK_asciicircum, 0x00FB, | |
2365 | XK_u, XK_underscore, 0x016B, | |
2366 | XK_u, XK_grave, 0x00F9, | |
2367 | XK_u, XK_u, 0x016D, | |
2368 | XK_u, XK_asciitilde, 0x0169, | |
2369 | XK_u, XK_diaeresis, 0x00FC, | |
2370 | XK_u, XK_acute, 0x00FA, | |
2371 | XK_v, XK_Z, 0x017D, | |
2372 | XK_v, XK_l, 0x007C, | |
2373 | XK_v, XK_z, 0x017E, | |
2374 | XK_w, XK_asciicircum, 0x0175, | |
2375 | XK_x, XK_0, 0x00A4, | |
2376 | XK_x, XK_O, 0x00A4, | |
2377 | XK_x, XK_o, 0x00A4, | |
2378 | XK_x, XK_x, 0x00D7, | |
2379 | XK_y, XK_quotedbl, 0x00FF, | |
2380 | XK_y, XK_apostrophe, 0x00FD, | |
2381 | XK_y, XK_minus, 0x00A5, | |
2382 | XK_y, XK_equal, 0x00A5, | |
2383 | XK_y, XK_asciicircum, 0x0177, | |
2384 | XK_y, XK_diaeresis, 0x00FF, | |
2385 | XK_y, XK_acute, 0x00FD, | |
2386 | XK_z, XK_apostrophe, 0x017A, | |
2387 | XK_z, XK_period, 0x017C, | |
2388 | XK_z, XK_less, 0x017E, | |
2389 | XK_bar, XK_C, 0x00A2, | |
2390 | XK_bar, XK_c, 0x00A2, | |
2391 | XK_asciitilde, XK_space, 0x007E, | |
2392 | XK_asciitilde, XK_A, 0x00C3, | |
2393 | XK_asciitilde, XK_E, 0x1EBC, | |
2394 | XK_asciitilde, XK_I, 0x0128, | |
2395 | XK_asciitilde, XK_N, 0x00D1, | |
2396 | XK_asciitilde, XK_O, 0x00D5, | |
2397 | XK_asciitilde, XK_U, 0x0168, | |
2398 | XK_asciitilde, XK_V, 0x1E7C, | |
2399 | XK_asciitilde, XK_Y, 0x1EF8, | |
2400 | XK_asciitilde, XK_a, 0x00E3, | |
2401 | XK_asciitilde, XK_e, 0x1EBD, | |
2402 | XK_asciitilde, XK_i, 0x0129, | |
2403 | XK_asciitilde, XK_n, 0x00F1, | |
2404 | XK_asciitilde, XK_o, 0x00F5, | |
2405 | XK_asciitilde, XK_u, 0x0169, | |
2406 | XK_asciitilde, XK_v, 0x1E7D, | |
2407 | XK_asciitilde, XK_y, 0x1EF9, | |
2408 | XK_asciitilde, XK_Acircumflex, 0x1EAA, | |
2409 | XK_asciitilde, XK_Ecircumflex, 0x1EC4, | |
2410 | XK_asciitilde, XK_Ocircumflex, 0x1ED6, | |
2411 | XK_asciitilde, XK_acircumflex, 0x1EAB, | |
2412 | XK_asciitilde, XK_ecircumflex, 0x1EC5, | |
2413 | XK_asciitilde, XK_ocircumflex, 0x1ED7, | |
2414 | XK_asciitilde, XK_Ohorn, 0x1EE0, | |
2415 | XK_asciitilde, XK_ohorn, 0x1EE1, | |
2416 | XK_asciitilde, XK_Uhorn, 0x1EEE, | |
2417 | XK_asciitilde, XK_uhorn, 0x1EEF, | |
2418 | XK_asciitilde, XK_Abreve, 0x1EB4, | |
2419 | XK_asciitilde, XK_abreve, 0x1EB5, | |
2420 | XK_asciitilde, XK_Greek_iotadieresis, 0x1FD7, | |
2421 | XK_asciitilde, XK_Greek_upsilondieresis, 0x1FE7, | |
2422 | XK_asciitilde, XK_Greek_alpha, 0x1FB6, | |
2423 | XK_asciitilde, XK_Greek_eta, 0x1FC6, | |
2424 | XK_asciitilde, XK_Greek_iota, 0x1FD6, | |
2425 | XK_asciitilde, XK_Greek_upsilon, 0x1FE6, | |
2426 | XK_asciitilde, XK_Greek_omega, 0x1FF6, | |
2427 | XK_asciitilde, 0x1F00, 0x1F06, | |
2428 | XK_asciitilde, 0x1F01, 0x1F07, | |
2429 | XK_asciitilde, 0x1F08, 0x1F0E, | |
2430 | XK_asciitilde, 0x1F09, 0x1F0F, | |
2431 | XK_asciitilde, 0x1F20, 0x1F26, | |
2432 | XK_asciitilde, 0x1F21, 0x1F27, | |
2433 | XK_asciitilde, 0x1F28, 0x1F2E, | |
2434 | XK_asciitilde, 0x1F29, 0x1F2F, | |
2435 | XK_asciitilde, 0x1F30, 0x1F36, | |
2436 | XK_asciitilde, 0x1F31, 0x1F37, | |
2437 | XK_asciitilde, 0x1F38, 0x1F3E, | |
2438 | XK_asciitilde, 0x1F39, 0x1F3F, | |
2439 | XK_asciitilde, 0x1F50, 0x1F56, | |
2440 | XK_asciitilde, 0x1F51, 0x1F57, | |
2441 | XK_asciitilde, 0x1F59, 0x1F5F, | |
2442 | XK_asciitilde, 0x1F60, 0x1F66, | |
2443 | XK_asciitilde, 0x1F61, 0x1F67, | |
2444 | XK_asciitilde, 0x1F68, 0x1F6E, | |
2445 | XK_asciitilde, 0x1F69, 0x1F6F, | |
2446 | XK_diaeresis, XK_apostrophe, 0x0385, | |
2447 | XK_diaeresis, XK_A, 0x00C4, | |
2448 | XK_diaeresis, XK_E, 0x00CB, | |
2449 | XK_diaeresis, XK_I, 0x00CF, | |
2450 | XK_diaeresis, XK_O, 0x00D6, | |
2451 | XK_diaeresis, XK_U, 0x00DC, | |
2452 | XK_diaeresis, XK_Y, 0x0178, | |
2453 | XK_diaeresis, XK_grave, 0x1FED, | |
2454 | XK_diaeresis, XK_a, 0x00E4, | |
2455 | XK_diaeresis, XK_e, 0x00EB, | |
2456 | XK_diaeresis, XK_i, 0x00EF, | |
2457 | XK_diaeresis, XK_o, 0x00F6, | |
2458 | XK_diaeresis, XK_u, 0x00FC, | |
2459 | XK_diaeresis, XK_y, 0x00FF, | |
2460 | XK_diaeresis, XK_asciitilde, 0x1FC1, | |
2461 | XK_diaeresis, XK_acute, 0x0385, | |
2462 | XK_diaeresis, XK_dead_grave, 0x1FED, | |
2463 | XK_diaeresis, XK_dead_acute, 0x0385, | |
2464 | XK_diaeresis, XK_dead_tilde, 0x1FC1, | |
2465 | XK_macron, XK_A, 0x0100, | |
2466 | XK_macron, XK_E, 0x0112, | |
2467 | XK_macron, XK_G, 0x1E20, | |
2468 | XK_macron, XK_I, 0x012A, | |
2469 | XK_macron, XK_O, 0x014C, | |
2470 | XK_macron, XK_U, 0x016A, | |
2471 | XK_macron, XK_Y, 0x0232, | |
2472 | XK_macron, XK_a, 0x0101, | |
2473 | XK_macron, XK_e, 0x0113, | |
2474 | XK_macron, XK_g, 0x1E21, | |
2475 | XK_macron, XK_i, 0x012B, | |
2476 | XK_macron, XK_o, 0x014D, | |
2477 | XK_macron, XK_u, 0x016B, | |
2478 | XK_macron, XK_y, 0x0233, | |
2479 | XK_macron, XK_Adiaeresis, 0x01DE, | |
2480 | XK_macron, XK_AE, 0x01E2, | |
2481 | XK_macron, XK_Otilde, 0x022C, | |
2482 | XK_macron, XK_Odiaeresis, 0x022A, | |
2483 | XK_macron, 0x00DC, 0x01D5, | |
2484 | XK_macron, XK_adiaeresis, 0x01DF, | |
2485 | XK_macron, XK_ae, 0x01E3, | |
2486 | XK_macron, XK_otilde, 0x022D, | |
2487 | XK_macron, XK_odiaeresis, 0x022B, | |
2488 | XK_macron, XK_udiaeresis, 0x01D6, | |
2489 | XK_macron, 0x01EA, 0x01EC, | |
2490 | XK_macron, 0x01EB, 0x01ED, | |
2491 | XK_macron, 0x0226, 0x01E0, | |
2492 | XK_macron, 0x0227, 0x01E1, | |
2493 | XK_macron, 0x022E, 0x0230, | |
2494 | XK_macron, 0x022F, 0x0231, | |
2495 | XK_macron, XK_Cyrillic_i, 0x04E3, | |
2496 | XK_macron, XK_Cyrillic_u, 0x04EF, | |
2497 | XK_macron, XK_Cyrillic_I, 0x04E2, | |
2498 | XK_macron, XK_Cyrillic_U, 0x04EE, | |
2499 | XK_macron, XK_Greek_ALPHA, 0x1FB9, | |
2500 | XK_macron, XK_Greek_IOTA, 0x1FD9, | |
2501 | XK_macron, XK_Greek_UPSILON, 0x1FE9, | |
2502 | XK_macron, XK_Greek_alpha, 0x1FB1, | |
2503 | XK_macron, XK_Greek_iota, 0x1FD1, | |
2504 | XK_macron, XK_Greek_upsilon, 0x1FE1, | |
2505 | XK_macron, 0x1E36, 0x1E38, | |
2506 | XK_macron, 0x1E37, 0x1E39, | |
2507 | XK_macron, 0x1E5A, 0x1E5C, | |
2508 | XK_macron, 0x1E5B, 0x1E5D, | |
2509 | XK_acute, XK_A, 0x00C1, | |
2510 | XK_acute, XK_C, 0x0106, | |
2511 | XK_acute, XK_E, 0x00C9, | |
2512 | XK_acute, XK_G, 0x01F4, | |
2513 | XK_acute, XK_I, 0x00CD, | |
2514 | XK_acute, XK_K, 0x1E30, | |
2515 | XK_acute, XK_L, 0x0139, | |
2516 | XK_acute, XK_M, 0x1E3E, | |
2517 | XK_acute, XK_N, 0x0143, | |
2518 | XK_acute, XK_O, 0x00D3, | |
2519 | XK_acute, XK_P, 0x1E54, | |
2520 | XK_acute, XK_R, 0x0154, | |
2521 | XK_acute, XK_S, 0x015A, | |
2522 | XK_acute, XK_U, 0x00DA, | |
2523 | XK_acute, XK_W, 0x1E82, | |
2524 | XK_acute, XK_Y, 0x00DD, | |
2525 | XK_acute, XK_Z, 0x0179, | |
2526 | XK_acute, XK_a, 0x00E1, | |
2527 | XK_acute, XK_c, 0x0107, | |
2528 | XK_acute, XK_e, 0x00E9, | |
2529 | XK_acute, XK_g, 0x01F5, | |
2530 | XK_acute, XK_i, 0x00ED, | |
2531 | XK_acute, XK_k, 0x1E31, | |
2532 | XK_acute, XK_l, 0x013A, | |
2533 | XK_acute, XK_m, 0x1E3F, | |
2534 | XK_acute, XK_n, 0x0144, | |
2535 | XK_acute, XK_o, 0x00F3, | |
2536 | XK_acute, XK_p, 0x1E55, | |
2537 | XK_acute, XK_r, 0x0155, | |
2538 | XK_acute, XK_s, 0x015B, | |
2539 | XK_acute, XK_u, 0x00FA, | |
2540 | XK_acute, XK_w, 0x1E83, | |
2541 | XK_acute, XK_y, 0x00FD, | |
2542 | XK_acute, XK_z, 0x017A, | |
2543 | XK_acute, XK_Acircumflex, 0x1EA4, | |
2544 | XK_acute, XK_Aring, 0x01FA, | |
2545 | XK_acute, XK_AE, 0x01FC, | |
2546 | XK_acute, XK_Ccedilla, 0x1E08, | |
2547 | XK_acute, XK_Ecircumflex, 0x1EBE, | |
2548 | XK_acute, XK_Idiaeresis, 0x1E2E, | |
2549 | XK_acute, XK_Ocircumflex, 0x1ED0, | |
2550 | XK_acute, XK_Otilde, 0x1E4C, | |
2551 | XK_acute, XK_Ooblique, 0x01FE, | |
2552 | XK_acute, 0x00DC, 0x01D7, | |
2553 | XK_acute, XK_acircumflex, 0x1EA5, | |
2554 | XK_acute, XK_aring, 0x01FB, | |
2555 | XK_acute, XK_ae, 0x01FD, | |
2556 | XK_acute, XK_ccedilla, 0x1E09, | |
2557 | XK_acute, XK_ecircumflex, 0x1EBF, | |
2558 | XK_acute, XK_idiaeresis, 0x1E2F, | |
2559 | XK_acute, XK_ocircumflex, 0x1ED1, | |
2560 | XK_acute, XK_otilde, 0x1E4D, | |
2561 | XK_acute, XK_oslash, 0x01FF, | |
2562 | XK_acute, XK_udiaeresis, 0x01D8, | |
2563 | XK_acute, XK_Ohorn, 0x1EDA, | |
2564 | XK_acute, XK_ohorn, 0x1EDB, | |
2565 | XK_acute, XK_Uhorn, 0x1EE8, | |
2566 | XK_acute, XK_uhorn, 0x1EE9, | |
2567 | XK_acute, XK_Abreve, 0x1EAE, | |
2568 | XK_acute, XK_abreve, 0x1EAF, | |
2569 | XK_acute, XK_Emacron, 0x1E16, | |
2570 | XK_acute, XK_emacron, 0x1E17, | |
2571 | XK_acute, XK_Omacron, 0x1E52, | |
2572 | XK_acute, XK_Utilde, 0x1E78, | |
2573 | XK_acute, XK_omacron, 0x1E53, | |
2574 | XK_acute, XK_utilde, 0x1E79, | |
2575 | XK_acute, XK_Cyrillic_ghe, 0x0453, | |
2576 | XK_acute, XK_Cyrillic_ka, 0x045C, | |
2577 | XK_acute, XK_Cyrillic_GHE, 0x0403, | |
2578 | XK_acute, XK_Cyrillic_KA, 0x040C, | |
2579 | XK_acute, XK_Greek_iotadieresis, 0x0390, | |
2580 | XK_acute, XK_Greek_upsilondieresis, 0x03B0, | |
2581 | XK_acute, XK_Greek_ALPHA, 0x0386, | |
2582 | XK_acute, XK_Greek_EPSILON, 0x0388, | |
2583 | XK_acute, XK_Greek_ETA, 0x0389, | |
2584 | XK_acute, XK_Greek_IOTA, 0x038A, | |
2585 | XK_acute, XK_Greek_OMICRON, 0x038C, | |
2586 | XK_acute, XK_Greek_UPSILON, 0x038E, | |
2587 | XK_acute, XK_Greek_OMEGA, 0x038F, | |
2588 | XK_acute, XK_Greek_alpha, 0x03AC, | |
2589 | XK_acute, XK_Greek_epsilon, 0x03AD, | |
2590 | XK_acute, XK_Greek_eta, 0x03AE, | |
2591 | XK_acute, XK_Greek_iota, 0x03AF, | |
2592 | XK_acute, XK_Greek_omicron, 0x03CC, | |
2593 | XK_acute, XK_Greek_upsilon, 0x03CD, | |
2594 | XK_acute, XK_Greek_omega, 0x03CE, | |
2595 | XK_acute, 0x1F00, 0x1F04, | |
2596 | XK_acute, 0x1F01, 0x1F05, | |
2597 | XK_acute, 0x1F08, 0x1F0C, | |
2598 | XK_acute, 0x1F09, 0x1F0D, | |
2599 | XK_acute, 0x1F10, 0x1F14, | |
2600 | XK_acute, 0x1F11, 0x1F15, | |
2601 | XK_acute, 0x1F18, 0x1F1C, | |
2602 | XK_acute, 0x1F19, 0x1F1D, | |
2603 | XK_acute, 0x1F20, 0x1F24, | |
2604 | XK_acute, 0x1F21, 0x1F25, | |
2605 | XK_acute, 0x1F28, 0x1F2C, | |
2606 | XK_acute, 0x1F29, 0x1F2D, | |
2607 | XK_acute, 0x1F30, 0x1F34, | |
2608 | XK_acute, 0x1F31, 0x1F35, | |
2609 | XK_acute, 0x1F38, 0x1F3C, | |
2610 | XK_acute, 0x1F39, 0x1F3D, | |
2611 | XK_acute, 0x1F40, 0x1F44, | |
2612 | XK_acute, 0x1F41, 0x1F45, | |
2613 | XK_acute, 0x1F48, 0x1F4C, | |
2614 | XK_acute, 0x1F49, 0x1F4D, | |
2615 | XK_acute, 0x1F50, 0x1F54, | |
2616 | XK_acute, 0x1F51, 0x1F55, | |
2617 | XK_acute, 0x1F59, 0x1F5D, | |
2618 | XK_acute, 0x1F60, 0x1F64, | |
2619 | XK_acute, 0x1F61, 0x1F65, | |
2620 | XK_acute, 0x1F68, 0x1F6C, | |
2621 | XK_acute, 0x1F69, 0x1F6D, | |
2622 | XK_cedilla, XK_C, 0x00C7, | |
2623 | XK_cedilla, XK_D, 0x1E10, | |
2624 | XK_cedilla, XK_E, 0x0228, | |
2625 | XK_cedilla, XK_G, 0x0122, | |
2626 | XK_cedilla, XK_H, 0x1E28, | |
2627 | XK_cedilla, XK_K, 0x0136, | |
2628 | XK_cedilla, XK_L, 0x013B, | |
2629 | XK_cedilla, XK_N, 0x0145, | |
2630 | XK_cedilla, XK_R, 0x0156, | |
2631 | XK_cedilla, XK_S, 0x015E, | |
2632 | XK_cedilla, XK_T, 0x0162, | |
2633 | XK_cedilla, XK_c, 0x00E7, | |
2634 | XK_cedilla, XK_d, 0x1E11, | |
2635 | XK_cedilla, XK_e, 0x0229, | |
2636 | XK_cedilla, XK_g, 0x0123, | |
2637 | XK_cedilla, XK_h, 0x1E29, | |
2638 | XK_cedilla, XK_k, 0x0137, | |
2639 | XK_cedilla, XK_l, 0x013C, | |
2640 | XK_cedilla, XK_n, 0x0146, | |
2641 | XK_cedilla, XK_r, 0x0157, | |
2642 | XK_cedilla, XK_s, 0x015F, | |
2643 | XK_cedilla, XK_t, 0x0163, | |
2644 | XK_breve, XK_G, 0x011E, | |
2645 | XK_breve, XK_g, 0x011F, | |
2646 | 0x05B4, XK_hebrew_yod, 0xFB1D, | |
2647 | 0x05B7, 0x05F2, 0xFB1F, | |
2648 | 0x05B7, XK_hebrew_aleph, 0xFB2E, | |
2649 | 0x05B8, XK_hebrew_aleph, 0xFB2F, | |
2650 | 0x05B9, XK_hebrew_waw, 0xFB4B, | |
2651 | 0x05BC, XK_hebrew_aleph, 0xFB30, | |
2652 | 0x05BC, XK_hebrew_beth, 0xFB31, | |
2653 | 0x05BC, XK_hebrew_gimmel, 0xFB32, | |
2654 | 0x05BC, XK_hebrew_daleth, 0xFB33, | |
2655 | 0x05BC, XK_hebrew_he, 0xFB34, | |
2656 | 0x05BC, XK_hebrew_waw, 0xFB35, | |
2657 | 0x05BC, XK_hebrew_zayin, 0xFB36, | |
2658 | 0x05BC, XK_hebrew_teth, 0xFB38, | |
2659 | 0x05BC, XK_hebrew_yod, 0xFB39, | |
2660 | 0x05BC, XK_hebrew_finalkaph, 0xFB3A, | |
2661 | 0x05BC, XK_hebrew_kaph, 0xFB3B, | |
2662 | 0x05BC, XK_hebrew_lamed, 0xFB3C, | |
2663 | 0x05BC, XK_hebrew_mem, 0xFB3E, | |
2664 | 0x05BC, XK_hebrew_nun, 0xFB40, | |
2665 | 0x05BC, XK_hebrew_samekh, 0xFB41, | |
2666 | 0x05BC, XK_hebrew_finalpe, 0xFB43, | |
2667 | 0x05BC, XK_hebrew_pe, 0xFB44, | |
2668 | 0x05BC, XK_hebrew_zadi, 0xFB46, | |
2669 | 0x05BC, XK_hebrew_qoph, 0xFB47, | |
2670 | 0x05BC, XK_hebrew_resh, 0xFB48, | |
2671 | 0x05BC, XK_hebrew_shin, 0xFB49, | |
2672 | 0x05BC, XK_hebrew_taw, 0xFB4A, | |
2673 | 0x05BF, XK_hebrew_beth, 0xFB4C, | |
2674 | 0x05BF, XK_hebrew_kaph, 0xFB4D, | |
2675 | 0x05BF, XK_hebrew_pe, 0xFB4E, | |
2676 | 0x05C1, XK_hebrew_shin, 0xFB2A, | |
2677 | 0x05C1, 0xFB49, 0xFB2C, | |
2678 | 0x05C2, XK_hebrew_shin, 0xFB2B, | |
2679 | 0x05C2, 0xFB49, 0xFB2D, | |
2680 | 0x0653, XK_Arabic_alef, 0x0622, | |
2681 | 0x0654, XK_Arabic_alef, 0x0623, | |
2682 | 0x0654, XK_Arabic_waw, 0x0624, | |
2683 | 0x0654, XK_Arabic_yeh, 0x0626, | |
2684 | 0x0654, 0x06C1, 0x06C2, | |
2685 | 0x0654, 0x06D2, 0x06D3, | |
2686 | 0x0654, 0x06D5, 0x06C0, | |
2687 | 0x0655, XK_Arabic_alef, 0x0625, | |
2688 | XK_Cyrillic_pe, XK_Cyrillic_a, 0x00A7, | |
2689 | XK_Cyrillic_IE, XK_equal, 0x20AC, | |
2690 | XK_Cyrillic_EN, XK_Cyrillic_o, 0x2116, | |
2691 | XK_Cyrillic_EN, XK_Cyrillic_O, 0x2116, | |
2692 | XK_Cyrillic_ES, XK_equal, 0x20AC, | |
2693 | XK_Greek_ALPHA, XK_apostrophe, 0x0386, | |
2694 | XK_Greek_EPSILON, XK_apostrophe, 0x0388, | |
2695 | XK_Greek_ETA, XK_apostrophe, 0x0389, | |
2696 | XK_Greek_IOTA, XK_quotedbl, 0x03AA, | |
2697 | XK_Greek_IOTA, XK_apostrophe, 0x038A, | |
2698 | XK_Greek_OMICRON, XK_apostrophe, 0x038C, | |
2699 | XK_Greek_UPSILON, XK_quotedbl, 0x03AB, | |
2700 | XK_Greek_UPSILON, XK_apostrophe, 0x038E, | |
2701 | XK_Greek_OMEGA, XK_apostrophe, 0x038F, | |
2702 | XK_Greek_alpha, XK_apostrophe, 0x03AC, | |
2703 | XK_Greek_epsilon, XK_apostrophe, 0x03AD, | |
2704 | XK_Greek_eta, XK_apostrophe, 0x03AE, | |
2705 | XK_Greek_iota, XK_quotedbl, 0x03CA, | |
2706 | XK_Greek_iota, XK_apostrophe, 0x03AF, | |
2707 | XK_Greek_iota, XK_Greek_alphaaccent, 0x1FB4, | |
2708 | XK_Greek_iota, XK_Greek_etaaccent, 0x1FC4, | |
2709 | XK_Greek_iota, XK_Greek_omegaaccent, 0x1FF4, | |
2710 | XK_Greek_iota, XK_Greek_ALPHA, 0x1FBC, | |
2711 | XK_Greek_iota, XK_Greek_ETA, 0x1FCC, | |
2712 | XK_Greek_iota, XK_Greek_OMEGA, 0x1FFC, | |
2713 | XK_Greek_iota, XK_Greek_alpha, 0x1FB3, | |
2714 | XK_Greek_iota, XK_Greek_eta, 0x1FC3, | |
2715 | XK_Greek_iota, XK_Greek_omega, 0x1FF3, | |
2716 | XK_Greek_iota, 0x1F00, 0x1F80, | |
2717 | XK_Greek_iota, 0x1F01, 0x1F81, | |
2718 | XK_Greek_iota, 0x1F02, 0x1F82, | |
2719 | XK_Greek_iota, 0x1F03, 0x1F83, | |
2720 | XK_Greek_iota, 0x1F04, 0x1F84, | |
2721 | XK_Greek_iota, 0x1F05, 0x1F85, | |
2722 | XK_Greek_iota, 0x1F06, 0x1F86, | |
2723 | XK_Greek_iota, 0x1F07, 0x1F87, | |
2724 | XK_Greek_iota, 0x1F08, 0x1F88, | |
2725 | XK_Greek_iota, 0x1F09, 0x1F89, | |
2726 | XK_Greek_iota, 0x1F0A, 0x1F8A, | |
2727 | XK_Greek_iota, 0x1F0B, 0x1F8B, | |
2728 | XK_Greek_iota, 0x1F0C, 0x1F8C, | |
2729 | XK_Greek_iota, 0x1F0D, 0x1F8D, | |
2730 | XK_Greek_iota, 0x1F0E, 0x1F8E, | |
2731 | XK_Greek_iota, 0x1F0F, 0x1F8F, | |
2732 | XK_Greek_iota, 0x1F20, 0x1F90, | |
2733 | XK_Greek_iota, 0x1F21, 0x1F91, | |
2734 | XK_Greek_iota, 0x1F22, 0x1F92, | |
2735 | XK_Greek_iota, 0x1F23, 0x1F93, | |
2736 | XK_Greek_iota, 0x1F24, 0x1F94, | |
2737 | XK_Greek_iota, 0x1F25, 0x1F95, | |
2738 | XK_Greek_iota, 0x1F26, 0x1F96, | |
2739 | XK_Greek_iota, 0x1F27, 0x1F97, | |
2740 | XK_Greek_iota, 0x1F28, 0x1F98, | |
2741 | XK_Greek_iota, 0x1F29, 0x1F99, | |
2742 | XK_Greek_iota, 0x1F2A, 0x1F9A, | |
2743 | XK_Greek_iota, 0x1F2B, 0x1F9B, | |
2744 | XK_Greek_iota, 0x1F2C, 0x1F9C, | |
2745 | XK_Greek_iota, 0x1F2D, 0x1F9D, | |
2746 | XK_Greek_iota, 0x1F2E, 0x1F9E, | |
2747 | XK_Greek_iota, 0x1F2F, 0x1F9F, | |
2748 | XK_Greek_iota, 0x1F60, 0x1FA0, | |
2749 | XK_Greek_iota, 0x1F61, 0x1FA1, | |
2750 | XK_Greek_iota, 0x1F62, 0x1FA2, | |
2751 | XK_Greek_iota, 0x1F63, 0x1FA3, | |
2752 | XK_Greek_iota, 0x1F64, 0x1FA4, | |
2753 | XK_Greek_iota, 0x1F65, 0x1FA5, | |
2754 | XK_Greek_iota, 0x1F66, 0x1FA6, | |
2755 | XK_Greek_iota, 0x1F67, 0x1FA7, | |
2756 | XK_Greek_iota, 0x1F68, 0x1FA8, | |
2757 | XK_Greek_iota, 0x1F69, 0x1FA9, | |
2758 | XK_Greek_iota, 0x1F6A, 0x1FAA, | |
2759 | XK_Greek_iota, 0x1F6B, 0x1FAB, | |
2760 | XK_Greek_iota, 0x1F6C, 0x1FAC, | |
2761 | XK_Greek_iota, 0x1F6D, 0x1FAD, | |
2762 | XK_Greek_iota, 0x1F6E, 0x1FAE, | |
2763 | XK_Greek_iota, 0x1F6F, 0x1FAF, | |
2764 | XK_Greek_iota, 0x1F70, 0x1FB2, | |
2765 | XK_Greek_iota, 0x1F74, 0x1FC2, | |
2766 | XK_Greek_iota, 0x1F7C, 0x1FF2, | |
2767 | XK_Greek_iota, 0x1FB6, 0x1FB7, | |
2768 | XK_Greek_iota, 0x1FC6, 0x1FC7, | |
2769 | XK_Greek_iota, 0x1FF6, 0x1FF7, | |
2770 | XK_Greek_omicron, XK_apostrophe, 0x03CC, | |
2771 | XK_Greek_upsilon, XK_quotedbl, 0x03CB, | |
2772 | XK_Greek_upsilon, XK_apostrophe, 0x03CD, | |
2773 | XK_Greek_omega, XK_apostrophe, 0x03CE, | |
2774 | XK_lessthanequal, 0x0338, 0x2270, | |
2775 | XK_greaterthanequal, 0x0338, 0x2271, | |
2776 | XK_approximate, 0x0338, 0x2247, | |
2777 | XK_identical, 0x0338, 0x2262, | |
2778 | XK_includedin, 0x0338, 0x2284, | |
2779 | XK_includes, 0x0338, 0x2285, | |
2780 | 0x093C, 0x0915, 0x0958, | |
2781 | 0x093C, 0x0916, 0x0959, | |
2782 | 0x093C, 0x0917, 0x095A, | |
2783 | 0x093C, 0x091C, 0x095B, | |
2784 | 0x093C, 0x0921, 0x095C, | |
2785 | 0x093C, 0x0922, 0x095D, | |
2786 | 0x093C, 0x0928, 0x0929, | |
2787 | 0x093C, 0x092B, 0x095E, | |
2788 | 0x093C, 0x092F, 0x095F, | |
2789 | 0x093C, 0x0930, 0x0931, | |
2790 | 0x093C, 0x0933, 0x0934, | |
2791 | 0x09BC, 0x09A1, 0x09DC, | |
2792 | 0x09BC, 0x09A2, 0x09DD, | |
2793 | 0x09BC, 0x09AF, 0x09DF, | |
2794 | 0x09C7, 0x09BE, 0x09CB, | |
2795 | 0x09C7, 0x09D7, 0x09CC, | |
2796 | 0x0A3C, 0x0A16, 0x0A59, | |
2797 | 0x0A3C, 0x0A17, 0x0A5A, | |
2798 | 0x0A3C, 0x0A1C, 0x0A5B, | |
2799 | 0x0A3C, 0x0A2B, 0x0A5E, | |
2800 | 0x0A3C, 0x0A32, 0x0A33, | |
2801 | 0x0A3C, 0x0A38, 0x0A36, | |
2802 | 0x0B3C, 0x0B21, 0x0B5C, | |
2803 | 0x0B3C, 0x0B22, 0x0B5D, | |
2804 | 0x0B47, 0x0B3E, 0x0B4B, | |
2805 | 0x0B47, 0x0B56, 0x0B48, | |
2806 | 0x0B47, 0x0B57, 0x0B4C, | |
2807 | XK_leftcaret, 0x0338, 0x226E, | |
2808 | XK_rightcaret, 0x0338, 0x226F, | |
2809 | XK_underbar, XK_parenleft, 0x208D, | |
2810 | XK_underbar, XK_parenright, 0x208E, | |
2811 | XK_underbar, XK_plus, 0x208A, | |
2812 | XK_underbar, XK_0, 0x2080, | |
2813 | XK_underbar, XK_1, 0x2081, | |
2814 | XK_underbar, XK_2, 0x2082, | |
2815 | XK_underbar, XK_3, 0x2083, | |
2816 | XK_underbar, XK_4, 0x2084, | |
2817 | XK_underbar, XK_5, 0x2085, | |
2818 | XK_underbar, XK_6, 0x2086, | |
2819 | XK_underbar, XK_7, 0x2087, | |
2820 | XK_underbar, XK_8, 0x2088, | |
2821 | XK_underbar, XK_9, 0x2089, | |
2822 | XK_underbar, XK_equal, 0x208C, | |
2823 | 0x0BC6, 0x0BBE, 0x0BCA, | |
2824 | 0x0BC6, 0x0BD7, 0x0BCC, | |
2825 | XK_underbar, 0x2212, 0x208B, | |
2826 | XK_underbar, XK_KP_Space, 0x2082, | |
2827 | XK_underbar, XK_KP_Add, 0x208A, | |
2828 | XK_underbar, XK_KP_0, 0x2080, | |
2829 | XK_underbar, XK_KP_1, 0x2081, | |
2830 | XK_underbar, XK_KP_2, 0x2082, | |
2831 | XK_underbar, XK_KP_3, 0x2083, | |
2832 | XK_underbar, XK_KP_4, 0x2084, | |
2833 | XK_underbar, XK_KP_5, 0x2085, | |
2834 | XK_underbar, XK_KP_6, 0x2086, | |
2835 | XK_underbar, XK_KP_7, 0x2087, | |
2836 | XK_underbar, XK_KP_8, 0x2088, | |
2837 | XK_underbar, XK_KP_9, 0x2089, | |
2838 | XK_underbar, XK_KP_Equal, 0x208C, | |
2839 | 0x0BC7, 0x0BBE, 0x0BCB, | |
2840 | 0x0BD7, 0x0B92, 0x0B94, | |
2841 | XK_rightshoe, 0x0338, 0x2285, | |
2842 | XK_leftshoe, 0x0338, 0x2284, | |
2843 | XK_righttack, 0x0338, 0x22AC, | |
2844 | 0x0C46, 0x0C56, 0x0C48, | |
2845 | 0x0CBF, 0x0CD5, 0x0CC0, | |
2846 | 0x0CC6, 0x0CC2, 0x0CCA, | |
2847 | 0x0CC6, 0x0CD5, 0x0CC7, | |
2848 | 0x0CC6, 0x0CD6, 0x0CC8, | |
2849 | 0x0CCA, 0x0CD5, 0x0CCB, | |
2850 | 0x0D46, 0x0D3E, 0x0D4A, | |
2851 | 0x0D46, 0x0D57, 0x0D4C, | |
2852 | 0x0D47, 0x0D3E, 0x0D4B, | |
2853 | 0x0DD9, 0x0DCA, 0x0DDA, | |
2854 | 0x0DD9, 0x0DCF, 0x0DDC, | |
2855 | 0x0DD9, 0x0DDF, 0x0DDE, | |
2856 | 0x0DDC, 0x0DCA, 0x0DDD, | |
2857 | 0x0F71, 0x0F72, 0x0F73, | |
2858 | 0x0F71, 0x0F74, 0x0F75, | |
2859 | 0x0F71, 0x0F80, 0x0F81, | |
2860 | 0x0F90, 0x0FB5, 0x0FB9, | |
2861 | 0x0F92, 0x0FB7, 0x0F93, | |
2862 | 0x0F9C, 0x0FB7, 0x0F9D, | |
2863 | 0x0FA1, 0x0FB7, 0x0FA2, | |
2864 | 0x0FA6, 0x0FB7, 0x0FA7, | |
2865 | 0x0FAB, 0x0FB7, 0x0FAC, | |
2866 | 0x0FB2, 0x0F80, 0x0F76, | |
2867 | 0x0FB3, 0x0F80, 0x0F78, | |
2868 | 0x0FB5, 0x0F40, 0x0F69, | |
2869 | 0x0FB7, 0x0F42, 0x0F43, | |
2870 | 0x0FB7, 0x0F4C, 0x0F4D, | |
2871 | 0x0FB7, 0x0F51, 0x0F52, | |
2872 | 0x0FB7, 0x0F56, 0x0F57, | |
2873 | 0x0FB7, 0x0F5B, 0x0F5C, | |
2874 | 0x102E, 0x1025, 0x1026, | |
2875 | 0x1100, 0x1100, 0x1101, | |
2876 | 0x1102, 0x1100, 0x1113, | |
2877 | 0x1102, 0x1102, 0x1114, | |
2878 | 0x1102, 0x1103, 0x1115, | |
2879 | 0x1102, 0x1107, 0x1116, | |
2880 | 0x1103, 0x1100, 0x1117, | |
2881 | 0x1103, 0x1103, 0x1104, | |
2882 | 0x1105, 0x1102, 0x1118, | |
2883 | 0x1105, 0x1105, 0x1119, | |
2884 | 0x1105, 0x110B, 0x111B, | |
2885 | 0x1105, 0x1112, 0x111A, | |
2886 | 0x1106, 0x1107, 0x111C, | |
2887 | 0x1106, 0x110B, 0x111D, | |
2888 | 0x1107, 0x1100, 0x111E, | |
2889 | 0x1107, 0x1102, 0x111F, | |
2890 | 0x1107, 0x1103, 0x1120, | |
2891 | 0x1107, 0x1107, 0x1108, | |
2892 | 0x1107, 0x1109, 0x1121, | |
2893 | 0x1107, 0x110A, 0x1125, | |
2894 | 0x1107, 0x110B, 0x112B, | |
2895 | 0x1107, 0x110C, 0x1127, | |
2896 | 0x1107, 0x110E, 0x1128, | |
2897 | 0x1107, 0x1110, 0x1129, | |
2898 | 0x1107, 0x1111, 0x112A, | |
2899 | 0x1107, 0x112B, 0x112C, | |
2900 | 0x1107, 0x112D, 0x1122, | |
2901 | 0x1107, 0x112F, 0x1123, | |
2902 | 0x1107, 0x1132, 0x1124, | |
2903 | 0x1107, 0x1136, 0x1126, | |
2904 | 0x1108, 0x110B, 0x112C, | |
2905 | 0x1109, 0x1100, 0x112D, | |
2906 | 0x1109, 0x1102, 0x112E, | |
2907 | 0x1109, 0x1103, 0x112F, | |
2908 | 0x1109, 0x1105, 0x1130, | |
2909 | 0x1109, 0x1106, 0x1131, | |
2910 | 0x1109, 0x1107, 0x1132, | |
2911 | 0x1109, 0x1109, 0x110A, | |
2912 | 0x1109, 0x110A, 0x1134, | |
2913 | 0x1109, 0x110B, 0x1135, | |
2914 | 0x1109, 0x110C, 0x1136, | |
2915 | 0x1109, 0x110E, 0x1137, | |
2916 | 0x1109, 0x110F, 0x1138, | |
2917 | 0x1109, 0x1110, 0x1139, | |
2918 | 0x1109, 0x1111, 0x113A, | |
2919 | 0x1109, 0x1112, 0x113B, | |
2920 | 0x1109, 0x111E, 0x1133, | |
2921 | 0x110A, 0x1109, 0x1134, | |
2922 | 0x110B, 0x1100, 0x1141, | |
2923 | 0x110B, 0x1103, 0x1142, | |
2924 | 0x110B, 0x1106, 0x1143, | |
2925 | 0x110B, 0x1107, 0x1144, | |
2926 | 0x110B, 0x1109, 0x1145, | |
2927 | 0x110B, 0x110B, 0x1147, | |
2928 | 0x110B, 0x110C, 0x1148, | |
2929 | 0x110B, 0x110E, 0x1149, | |
2930 | 0x110B, 0x1110, 0x114A, | |
2931 | 0x110B, 0x1111, 0x114B, | |
2932 | 0x110B, 0x1140, 0x1146, | |
2933 | 0x110C, 0x110B, 0x114D, | |
2934 | 0x110C, 0x110C, 0x110D, | |
2935 | 0x110E, 0x110F, 0x1152, | |
2936 | 0x110E, 0x1112, 0x1153, | |
2937 | 0x1111, 0x1107, 0x1156, | |
2938 | 0x1111, 0x110B, 0x1157, | |
2939 | 0x1112, 0x1112, 0x1158, | |
2940 | 0x1121, 0x1100, 0x1122, | |
2941 | 0x1121, 0x1103, 0x1123, | |
2942 | 0x1121, 0x1107, 0x1124, | |
2943 | 0x1121, 0x1109, 0x1125, | |
2944 | 0x1121, 0x110C, 0x1126, | |
2945 | 0x1132, 0x1100, 0x1133, | |
2946 | 0x113C, 0x113C, 0x113D, | |
2947 | 0x113E, 0x113E, 0x113F, | |
2948 | 0x114E, 0x114E, 0x114F, | |
2949 | 0x1150, 0x1150, 0x1151, | |
2950 | 0x1161, 0x1169, 0x1176, | |
2951 | 0x1161, 0x116E, 0x1177, | |
2952 | 0x1161, 0x1175, 0x1162, | |
2953 | 0x1163, 0x1169, 0x1178, | |
2954 | 0x1163, 0x116D, 0x1179, | |
2955 | 0x1163, 0x1175, 0x1164, | |
2956 | 0x1165, 0x1169, 0x117A, | |
2957 | 0x1165, 0x116E, 0x117B, | |
2958 | 0x1165, 0x1173, 0x117C, | |
2959 | 0x1165, 0x1175, 0x1166, | |
2960 | 0x1167, 0x1169, 0x117D, | |
2961 | 0x1167, 0x116E, 0x117E, | |
2962 | 0x1167, 0x1175, 0x1168, | |
2963 | 0x1169, 0x1161, 0x116A, | |
2964 | 0x1169, 0x1162, 0x116B, | |
2965 | 0x1169, 0x1165, 0x117F, | |
2966 | 0x1169, 0x1166, 0x1180, | |
2967 | 0x1169, 0x1168, 0x1181, | |
2968 | 0x1169, 0x1169, 0x1182, | |
2969 | 0x1169, 0x116E, 0x1183, | |
2970 | 0x1169, 0x1175, 0x116C, | |
2971 | 0x116A, 0x1175, 0x116B, | |
2972 | 0x116D, 0x1163, 0x1184, | |
2973 | 0x116D, 0x1164, 0x1185, | |
2974 | 0x116D, 0x1167, 0x1186, | |
2975 | 0x116D, 0x1169, 0x1187, | |
2976 | 0x116D, 0x1175, 0x1188, | |
2977 | 0x116E, 0x1161, 0x1189, | |
2978 | 0x116E, 0x1162, 0x118A, | |
2979 | 0x116E, 0x1165, 0x116F, | |
2980 | 0x116E, 0x1166, 0x1170, | |
2981 | 0x116E, 0x1168, 0x118C, | |
2982 | 0x116E, 0x116E, 0x118D, | |
2983 | 0x116E, 0x1175, 0x1171, | |
2984 | 0x116E, 0x117C, 0x118B, | |
2985 | 0x116F, 0x1173, 0x118B, | |
2986 | 0x116F, 0x1175, 0x1170, | |
2987 | 0x1172, 0x1161, 0x118E, | |
2988 | 0x1172, 0x1165, 0x118F, | |
2989 | 0x1172, 0x1166, 0x1190, | |
2990 | 0x1172, 0x1167, 0x1191, | |
2991 | 0x1172, 0x1168, 0x1192, | |
2992 | 0x1172, 0x116E, 0x1193, | |
2993 | 0x1172, 0x1175, 0x1194, | |
2994 | 0x1173, 0x116E, 0x1195, | |
2995 | 0x1173, 0x1173, 0x1196, | |
2996 | 0x1173, 0x1175, 0x1174, | |
2997 | 0x1174, 0x116E, 0x1197, | |
2998 | 0x1175, 0x1161, 0x1198, | |
2999 | 0x1175, 0x1163, 0x1199, | |
3000 | 0x1175, 0x1169, 0x119A, | |
3001 | 0x1175, 0x116E, 0x119B, | |
3002 | 0x1175, 0x1173, 0x119C, | |
3003 | 0x1175, 0x119E, 0x119D, | |
3004 | 0x119E, 0x1165, 0x119F, | |
3005 | 0x119E, 0x116E, 0x11A0, | |
3006 | 0x119E, 0x1175, 0x11A1, | |
3007 | 0x119E, 0x119E, 0x11A2, | |
3008 | 0x11A8, 0x11A8, 0x11A9, | |
3009 | 0x11A8, 0x11AF, 0x11C3, | |
3010 | 0x11A8, 0x11BA, 0x11AA, | |
3011 | 0x11A8, 0x11E7, 0x11C4, | |
3012 | 0x11AA, 0x11A8, 0x11C4, | |
3013 | 0x11AB, 0x11A8, 0x11C5, | |
3014 | 0x11AB, 0x11AE, 0x11C6, | |
3015 | 0x11AB, 0x11BA, 0x11C7, | |
3016 | 0x11AB, 0x11BD, 0x11AC, | |
3017 | 0x11AB, 0x11C0, 0x11C9, | |
3018 | 0x11AB, 0x11C2, 0x11AD, | |
3019 | 0x11AB, 0x11EB, 0x11C8, | |
3020 | 0x11AE, 0x11A8, 0x11CA, | |
3021 | 0x11AE, 0x11AF, 0x11CB, | |
3022 | 0x11AF, 0x11A8, 0x11B0, | |
3023 | 0x11AF, 0x11AA, 0x11CC, | |
3024 | 0x11AF, 0x11AB, 0x11CD, | |
3025 | 0x11AF, 0x11AE, 0x11CE, | |
3026 | 0x11AF, 0x11AF, 0x11D0, | |
3027 | 0x11AF, 0x11B7, 0x11B1, | |
3028 | 0x11AF, 0x11B8, 0x11B2, | |
3029 | 0x11AF, 0x11B9, 0x11D3, | |
3030 | 0x11AF, 0x11BA, 0x11B3, | |
3031 | 0x11AF, 0x11BB, 0x11D6, | |
3032 | 0x11AF, 0x11BF, 0x11D8, | |
3033 | 0x11AF, 0x11C0, 0x11B4, | |
3034 | 0x11AF, 0x11C1, 0x11B5, | |
3035 | 0x11AF, 0x11C2, 0x11B6, | |
3036 | 0x11AF, 0x11DA, 0x11D1, | |
3037 | 0x11AF, 0x11DD, 0x11D2, | |
3038 | 0x11AF, 0x11E5, 0x11D4, | |
3039 | 0x11AF, 0x11E6, 0x11D5, | |
3040 | 0x11AF, 0x11EB, 0x11D7, | |
3041 | 0x11AF, 0x11F9, 0x11D9, | |
3042 | 0x11B0, 0x11BA, 0x11CC, | |
3043 | 0x11B1, 0x11A8, 0x11D1, | |
3044 | 0x11B1, 0x11BA, 0x11D2, | |
3045 | 0x11B2, 0x11BA, 0x11D3, | |
3046 | 0x11B2, 0x11BC, 0x11D5, | |
3047 | 0x11B2, 0x11C2, 0x11D4, | |
3048 | 0x11B3, 0x11BA, 0x11D6, | |
3049 | 0x11B7, 0x11A8, 0x11DA, | |
3050 | 0x11B7, 0x11AF, 0x11DB, | |
3051 | 0x11B7, 0x11B8, 0x11DC, | |
3052 | 0x11B7, 0x11BA, 0x11DD, | |
3053 | 0x11B7, 0x11BB, 0x11DE, | |
3054 | 0x11B7, 0x11BC, 0x11E2, | |
3055 | 0x11B7, 0x11BE, 0x11E0, | |
3056 | 0x11B7, 0x11C2, 0x11E1, | |
3057 | 0x11B7, 0x11EB, 0x11DF, | |
3058 | 0x11B8, 0x11AF, 0x11E3, | |
3059 | 0x11B8, 0x11BA, 0x11B9, | |
3060 | 0x11B8, 0x11BC, 0x11E6, | |
3061 | 0x11B8, 0x11C1, 0x11E4, | |
3062 | 0x11B8, 0x11C2, 0x11E5, | |
3063 | 0x11BA, 0x11A8, 0x11E7, | |
3064 | 0x11BA, 0x11AE, 0x11E8, | |
3065 | 0x11BA, 0x11AF, 0x11E9, | |
3066 | 0x11BA, 0x11B8, 0x11EA, | |
3067 | 0x11BA, 0x11BA, 0x11BB, | |
3068 | 0x11BC, 0x11A8, 0x11EC, | |
3069 | 0x11BC, 0x11A9, 0x11ED, | |
3070 | 0x11BC, 0x11BC, 0x11EE, | |
3071 | 0x11BC, 0x11BF, 0x11EF, | |
3072 | 0x11C1, 0x11B8, 0x11F3, | |
3073 | 0x11C1, 0x11BC, 0x11F4, | |
3074 | 0x11C2, 0x11AB, 0x11F5, | |
3075 | 0x11C2, 0x11AF, 0x11F6, | |
3076 | 0x11C2, 0x11B7, 0x11F7, | |
3077 | 0x11C2, 0x11B8, 0x11F8, | |
3078 | 0x11CE, 0x11C2, 0x11CF, | |
3079 | 0x11DD, 0x11BA, 0x11DE, | |
3080 | 0x11EC, 0x11A8, 0x11ED, | |
3081 | 0x11F0, 0x11BA, 0x11F1, | |
3082 | 0x11F0, 0x11EB, 0x11F2, | |
3083 | 0x1FBF, XK_apostrophe, 0x1FCE, | |
3084 | 0x1FBF, XK_grave, 0x1FCD, | |
3085 | 0x1FBF, XK_asciitilde, 0x1FCF, | |
3086 | 0x1FBF, XK_acute, 0x1FCE, | |
3087 | 0x1FBF, XK_dead_grave, 0x1FCD, | |
3088 | 0x1FBF, XK_dead_acute, 0x1FCE, | |
3089 | 0x1FBF, XK_dead_tilde, 0x1FCF, | |
3090 | 0x1FFE, XK_apostrophe, 0x1FDE, | |
3091 | 0x1FFE, XK_grave, 0x1FDD, | |
3092 | 0x1FFE, XK_asciitilde, 0x1FDF, | |
3093 | 0x1FFE, XK_acute, 0x1FDE, | |
3094 | 0x1FFE, XK_dead_grave, 0x1FDD, | |
3095 | 0x1FFE, XK_dead_acute, 0x1FDE, | |
3096 | 0x1FFE, XK_dead_tilde, 0x1FDF, | |
3097 | 0x2203, 0x0338, 0x2204, | |
3098 | 0x2208, 0x0338, 0x2209, | |
3099 | 0x220B, 0x0338, 0x220C, | |
3100 | 0x2223, 0x0338, 0x2224, | |
3101 | 0x2225, 0x0338, 0x2226, | |
3102 | 0x223C, 0x0338, 0x2241, | |
3103 | 0x2243, 0x0338, 0x2244, | |
3104 | 0x2248, 0x0338, 0x2249, | |
3105 | 0x224D, 0x0338, 0x226D, | |
3106 | 0x2272, 0x0338, 0x2274, | |
3107 | 0x2273, 0x0338, 0x2275, | |
3108 | 0x2276, 0x0338, 0x2278, | |
3109 | 0x2277, 0x0338, 0x2279, | |
3110 | 0x227A, 0x0338, 0x2280, | |
3111 | 0x227B, 0x0338, 0x2281, | |
3112 | 0x227C, 0x0338, 0x22E0, | |
3113 | 0x227D, 0x0338, 0x22E1, | |
3114 | 0x2286, 0x0338, 0x2288, | |
3115 | 0x2287, 0x0338, 0x2289, | |
3116 | 0x2291, 0x0338, 0x22E2, | |
3117 | 0x2292, 0x0338, 0x22E3, | |
3118 | 0x22A8, 0x0338, 0x22AD, | |
3119 | 0x22A9, 0x0338, 0x22AE, | |
3120 | 0x22AB, 0x0338, 0x22AF, | |
3121 | 0x22B2, 0x0338, 0x22EA, | |
3122 | 0x22B3, 0x0338, 0x22EB, | |
3123 | 0x22B4, 0x0338, 0x22EC, | |
3124 | 0x22B5, 0x0338, 0x22ED, | |
3125 | 0x2ADD, 0x0338, 0x2ADC, | |
3126 | XK_KP_Divide, XK_D, 0x0110, | |
3127 | XK_KP_Divide, XK_G, 0x01E4, | |
3128 | XK_KP_Divide, XK_H, 0x0126, | |
3129 | XK_KP_Divide, XK_I, 0x0197, | |
3130 | XK_KP_Divide, XK_L, 0x0141, | |
3131 | XK_KP_Divide, XK_O, 0x00D8, | |
3132 | XK_KP_Divide, XK_T, 0x0166, | |
3133 | XK_KP_Divide, XK_Z, 0x01B5, | |
3134 | XK_KP_Divide, XK_b, 0x0180, | |
3135 | XK_KP_Divide, XK_d, 0x0111, | |
3136 | XK_KP_Divide, XK_g, 0x01E5, | |
3137 | XK_KP_Divide, XK_h, 0x0127, | |
3138 | XK_KP_Divide, XK_i, 0x0268, | |
3139 | XK_KP_Divide, XK_l, 0x0142, | |
3140 | XK_KP_Divide, XK_o, 0x00F8, | |
3141 | XK_KP_Divide, XK_t, 0x0167, | |
3142 | XK_KP_Divide, XK_z, 0x01B6, | |
3143 | XK_KP_Divide, 0x0294, 0x02A1, | |
3144 | XK_KP_Divide, 0x04AE, 0x04B0, | |
3145 | XK_KP_Divide, 0x04AF, 0x04B1, | |
3146 | XK_KP_Divide, XK_Cyrillic_ghe, 0x0493, | |
3147 | XK_KP_Divide, XK_Cyrillic_ka, 0x049F, | |
3148 | XK_KP_Divide, XK_Cyrillic_GHE, 0x0492, | |
3149 | XK_KP_Divide, XK_Cyrillic_KA, 0x049E, | |
3150 | XK_KP_Divide, XK_leftarrow, 0x219A, | |
3151 | XK_KP_Divide, XK_rightarrow, 0x219B, | |
3152 | XK_KP_Divide, 0x2194, 0x21AE, | |
3153 | XK_KP_Equal, 0x0338, 0x2260, | |
3154 | XK_exclam, XK_plus, XK_O, 0x1EE2, | |
3155 | XK_exclam, XK_plus, XK_U, 0x1EF0, | |
3156 | XK_exclam, XK_plus, XK_o, 0x1EE3, | |
3157 | XK_exclam, XK_plus, XK_u, 0x1EF1, | |
3158 | XK_exclam, XK_dead_horn, XK_O, 0x1EE2, | |
3159 | XK_exclam, XK_dead_horn, XK_U, 0x1EF0, | |
3160 | XK_exclam, XK_dead_horn, XK_o, 0x1EE3, | |
3161 | XK_exclam, XK_dead_horn, XK_u, 0x1EF1, | |
3162 | XK_quotedbl, XK_apostrophe, XK_space, 0x0385, | |
3163 | XK_quotedbl, XK_apostrophe, XK_Greek_iota, 0x0390, | |
3164 | XK_quotedbl, XK_apostrophe, XK_Greek_upsilon, 0x03B0, | |
3165 | XK_quotedbl, XK_underscore, XK_U, 0x1E7A, | |
3166 | XK_quotedbl, XK_underscore, XK_u, 0x1E7B, | |
3167 | XK_quotedbl, XK_asciitilde, XK_O, 0x1E4E, | |
3168 | XK_quotedbl, XK_asciitilde, XK_o, 0x1E4F, | |
3169 | XK_quotedbl, XK_macron, XK_U, 0x1E7A, | |
3170 | XK_quotedbl, XK_macron, XK_u, 0x1E7B, | |
3171 | XK_quotedbl, XK_dead_tilde, XK_O, 0x1E4E, | |
3172 | XK_quotedbl, XK_dead_tilde, XK_o, 0x1E4F, | |
3173 | XK_quotedbl, XK_dead_macron, XK_U, 0x1E7A, | |
3174 | XK_quotedbl, XK_dead_macron, XK_u, 0x1E7B, | |
3175 | XK_apostrophe, XK_quotedbl, XK_space, 0x0385, | |
3176 | XK_apostrophe, XK_quotedbl, XK_I, 0x1E2E, | |
3177 | XK_apostrophe, XK_quotedbl, XK_U, 0x01D7, | |
3178 | XK_apostrophe, XK_quotedbl, XK_i, 0x1E2F, | |
3179 | XK_apostrophe, XK_quotedbl, XK_u, 0x01D8, | |
3180 | XK_apostrophe, XK_quotedbl, XK_Greek_iota, 0x0390, | |
3181 | XK_apostrophe, XK_quotedbl, XK_Greek_upsilon, 0x03B0, | |
3182 | XK_apostrophe, XK_parenleft, XK_Greek_ALPHA, 0x1F0D, | |
3183 | XK_apostrophe, XK_parenleft, XK_Greek_EPSILON, 0x1F1D, | |
3184 | XK_apostrophe, XK_parenleft, XK_Greek_ETA, 0x1F2D, | |
3185 | XK_apostrophe, XK_parenleft, XK_Greek_IOTA, 0x1F3D, | |
3186 | XK_apostrophe, XK_parenleft, XK_Greek_OMICRON, 0x1F4D, | |
3187 | XK_apostrophe, XK_parenleft, XK_Greek_UPSILON, 0x1F5D, | |
3188 | XK_apostrophe, XK_parenleft, XK_Greek_OMEGA, 0x1F6D, | |
3189 | XK_apostrophe, XK_parenleft, XK_Greek_alpha, 0x1F05, | |
3190 | XK_apostrophe, XK_parenleft, XK_Greek_epsilon, 0x1F15, | |
3191 | XK_apostrophe, XK_parenleft, XK_Greek_eta, 0x1F25, | |
3192 | XK_apostrophe, XK_parenleft, XK_Greek_iota, 0x1F35, | |
3193 | XK_apostrophe, XK_parenleft, XK_Greek_omicron, 0x1F45, | |
3194 | XK_apostrophe, XK_parenleft, XK_Greek_upsilon, 0x1F55, | |
3195 | XK_apostrophe, XK_parenleft, XK_Greek_omega, 0x1F65, | |
3196 | XK_apostrophe, XK_parenright, XK_Greek_ALPHA, 0x1F0C, | |
3197 | XK_apostrophe, XK_parenright, XK_Greek_EPSILON, 0x1F1C, | |
3198 | XK_apostrophe, XK_parenright, XK_Greek_ETA, 0x1F2C, | |
3199 | XK_apostrophe, XK_parenright, XK_Greek_IOTA, 0x1F3C, | |
3200 | XK_apostrophe, XK_parenright, XK_Greek_OMICRON, 0x1F4C, | |
3201 | XK_apostrophe, XK_parenright, XK_Greek_OMEGA, 0x1F6C, | |
3202 | XK_apostrophe, XK_parenright, XK_Greek_alpha, 0x1F04, | |
3203 | XK_apostrophe, XK_parenright, XK_Greek_epsilon, 0x1F14, | |
3204 | XK_apostrophe, XK_parenright, XK_Greek_eta, 0x1F24, | |
3205 | XK_apostrophe, XK_parenright, XK_Greek_iota, 0x1F34, | |
3206 | XK_apostrophe, XK_parenright, XK_Greek_omicron, 0x1F44, | |
3207 | XK_apostrophe, XK_parenright, XK_Greek_upsilon, 0x1F54, | |
3208 | XK_apostrophe, XK_parenright, XK_Greek_omega, 0x1F64, | |
3209 | XK_apostrophe, XK_plus, XK_O, 0x1EDA, | |
3210 | XK_apostrophe, XK_plus, XK_U, 0x1EE8, | |
3211 | XK_apostrophe, XK_plus, XK_o, 0x1EDB, | |
3212 | XK_apostrophe, XK_plus, XK_u, 0x1EE9, | |
3213 | XK_apostrophe, XK_slash, XK_O, 0x01FE, | |
3214 | XK_apostrophe, XK_slash, XK_o, 0x01FF, | |
3215 | XK_apostrophe, XK_asciicircum, XK_A, 0x1EA4, | |
3216 | XK_apostrophe, XK_asciicircum, XK_E, 0x1EBE, | |
3217 | XK_apostrophe, XK_asciicircum, XK_O, 0x1ED0, | |
3218 | XK_apostrophe, XK_asciicircum, XK_a, 0x1EA5, | |
3219 | XK_apostrophe, XK_asciicircum, XK_e, 0x1EBF, | |
3220 | XK_apostrophe, XK_asciicircum, XK_o, 0x1ED1, | |
3221 | XK_apostrophe, XK_underscore, XK_E, 0x1E16, | |
3222 | XK_apostrophe, XK_underscore, XK_O, 0x1E52, | |
3223 | XK_apostrophe, XK_underscore, XK_e, 0x1E17, | |
3224 | XK_apostrophe, XK_underscore, XK_o, 0x1E53, | |
3225 | XK_apostrophe, XK_b, XK_A, 0x1EAE, | |
3226 | XK_apostrophe, XK_b, XK_a, 0x1EAF, | |
3227 | XK_apostrophe, XK_asciitilde, XK_O, 0x1E4C, | |
3228 | XK_apostrophe, XK_asciitilde, XK_U, 0x1E78, | |
3229 | XK_apostrophe, XK_asciitilde, XK_o, 0x1E4D, | |
3230 | XK_apostrophe, XK_asciitilde, XK_u, 0x1E79, | |
3231 | XK_apostrophe, XK_macron, XK_E, 0x1E16, | |
3232 | XK_apostrophe, XK_macron, XK_O, 0x1E52, | |
3233 | XK_apostrophe, XK_macron, XK_e, 0x1E17, | |
3234 | XK_apostrophe, XK_macron, XK_o, 0x1E53, | |
3235 | XK_apostrophe, XK_cedilla, XK_C, 0x1E08, | |
3236 | XK_apostrophe, XK_cedilla, XK_c, 0x1E09, | |
3237 | XK_apostrophe, XK_dead_circumflex, XK_A, 0x1EA4, | |
3238 | XK_apostrophe, XK_dead_circumflex, XK_E, 0x1EBE, | |
3239 | XK_apostrophe, XK_dead_circumflex, XK_O, 0x1ED0, | |
3240 | XK_apostrophe, XK_dead_circumflex, XK_a, 0x1EA5, | |
3241 | XK_apostrophe, XK_dead_circumflex, XK_e, 0x1EBF, | |
3242 | XK_apostrophe, XK_dead_circumflex, XK_o, 0x1ED1, | |
3243 | XK_apostrophe, XK_dead_tilde, XK_O, 0x1E4C, | |
3244 | XK_apostrophe, XK_dead_tilde, XK_U, 0x1E78, | |
3245 | XK_apostrophe, XK_dead_tilde, XK_o, 0x1E4D, | |
3246 | XK_apostrophe, XK_dead_tilde, XK_u, 0x1E79, | |
3247 | XK_apostrophe, XK_dead_macron, XK_E, 0x1E16, | |
3248 | XK_apostrophe, XK_dead_macron, XK_O, 0x1E52, | |
3249 | XK_apostrophe, XK_dead_macron, XK_e, 0x1E17, | |
3250 | XK_apostrophe, XK_dead_macron, XK_o, 0x1E53, | |
3251 | XK_apostrophe, XK_dead_breve, XK_A, 0x1EAE, | |
3252 | XK_apostrophe, XK_dead_breve, XK_a, 0x1EAF, | |
3253 | XK_apostrophe, XK_dead_diaeresis, XK_I, 0x1E2E, | |
3254 | XK_apostrophe, XK_dead_diaeresis, XK_U, 0x01D7, | |
3255 | XK_apostrophe, XK_dead_diaeresis, XK_i, 0x1E2F, | |
3256 | XK_apostrophe, XK_dead_diaeresis, XK_u, 0x01D8, | |
3257 | XK_apostrophe, XK_dead_diaeresis, XK_Greek_iota, 0x0390, | |
3258 | XK_apostrophe, XK_dead_diaeresis, XK_Greek_upsilon, 0x03B0, | |
3259 | XK_apostrophe, XK_dead_abovering, XK_A, 0x01FA, | |
3260 | XK_apostrophe, XK_dead_abovering, XK_a, 0x01FB, | |
3261 | XK_apostrophe, XK_dead_cedilla, XK_C, 0x1E08, | |
3262 | XK_apostrophe, XK_dead_cedilla, XK_c, 0x1E09, | |
3263 | XK_apostrophe, XK_dead_horn, XK_O, 0x1EDA, | |
3264 | XK_apostrophe, XK_dead_horn, XK_U, 0x1EE8, | |
3265 | XK_apostrophe, XK_dead_horn, XK_o, 0x1EDB, | |
3266 | XK_apostrophe, XK_dead_horn, XK_u, 0x1EE9, | |
3267 | XK_apostrophe, XK_dead_psili, XK_Greek_ALPHA, 0x1F0C, | |
3268 | XK_apostrophe, XK_dead_psili, XK_Greek_EPSILON, 0x1F1C, | |
3269 | XK_apostrophe, XK_dead_psili, XK_Greek_ETA, 0x1F2C, | |
3270 | XK_apostrophe, XK_dead_psili, XK_Greek_IOTA, 0x1F3C, | |
3271 | XK_apostrophe, XK_dead_psili, XK_Greek_OMICRON, 0x1F4C, | |
3272 | XK_apostrophe, XK_dead_psili, XK_Greek_OMEGA, 0x1F6C, | |
3273 | XK_apostrophe, XK_dead_psili, XK_Greek_alpha, 0x1F04, | |
3274 | XK_apostrophe, XK_dead_psili, XK_Greek_epsilon, 0x1F14, | |
3275 | XK_apostrophe, XK_dead_psili, XK_Greek_eta, 0x1F24, | |
3276 | XK_apostrophe, XK_dead_psili, XK_Greek_iota, 0x1F34, | |
3277 | XK_apostrophe, XK_dead_psili, XK_Greek_omicron, 0x1F44, | |
3278 | XK_apostrophe, XK_dead_psili, XK_Greek_upsilon, 0x1F54, | |
3279 | XK_apostrophe, XK_dead_psili, XK_Greek_omega, 0x1F64, | |
3280 | XK_apostrophe, XK_dead_dasia, XK_Greek_ALPHA, 0x1F0D, | |
3281 | XK_apostrophe, XK_dead_dasia, XK_Greek_EPSILON, 0x1F1D, | |
3282 | XK_apostrophe, XK_dead_dasia, XK_Greek_ETA, 0x1F2D, | |
3283 | XK_apostrophe, XK_dead_dasia, XK_Greek_IOTA, 0x1F3D, | |
3284 | XK_apostrophe, XK_dead_dasia, XK_Greek_OMICRON, 0x1F4D, | |
3285 | XK_apostrophe, XK_dead_dasia, XK_Greek_UPSILON, 0x1F5D, | |
3286 | XK_apostrophe, XK_dead_dasia, XK_Greek_OMEGA, 0x1F6D, | |
3287 | XK_apostrophe, XK_dead_dasia, XK_Greek_alpha, 0x1F05, | |
3288 | XK_apostrophe, XK_dead_dasia, XK_Greek_epsilon, 0x1F15, | |
3289 | XK_apostrophe, XK_dead_dasia, XK_Greek_eta, 0x1F25, | |
3290 | XK_apostrophe, XK_dead_dasia, XK_Greek_iota, 0x1F35, | |
3291 | XK_apostrophe, XK_dead_dasia, XK_Greek_omicron, 0x1F45, | |
3292 | XK_apostrophe, XK_dead_dasia, XK_Greek_upsilon, 0x1F55, | |
3293 | XK_apostrophe, XK_dead_dasia, XK_Greek_omega, 0x1F65, | |
3294 | XK_apostrophe, XK_KP_Divide, XK_O, 0x01FE, | |
3295 | XK_apostrophe, XK_KP_Divide, XK_o, 0x01FF, | |
3296 | XK_parenleft, XK_0, XK_parenright, 0x24EA, | |
3297 | XK_parenleft, XK_1, XK_parenright, 0x2460, | |
3298 | XK_parenleft, XK_2, XK_parenright, 0x2461, | |
3299 | XK_parenleft, XK_3, XK_parenright, 0x2462, | |
3300 | XK_parenleft, XK_4, XK_parenright, 0x2463, | |
3301 | XK_parenleft, XK_5, XK_parenright, 0x2464, | |
3302 | XK_parenleft, XK_6, XK_parenright, 0x2465, | |
3303 | XK_parenleft, XK_7, XK_parenright, 0x2466, | |
3304 | XK_parenleft, XK_8, XK_parenright, 0x2467, | |
3305 | XK_parenleft, XK_9, XK_parenright, 0x2468, | |
3306 | XK_parenleft, XK_A, XK_parenright, 0x24B6, | |
3307 | XK_parenleft, XK_B, XK_parenright, 0x24B7, | |
3308 | XK_parenleft, XK_C, XK_parenright, 0x24B8, | |
3309 | XK_parenleft, XK_D, XK_parenright, 0x24B9, | |
3310 | XK_parenleft, XK_E, XK_parenright, 0x24BA, | |
3311 | XK_parenleft, XK_F, XK_parenright, 0x24BB, | |
3312 | XK_parenleft, XK_G, XK_parenright, 0x24BC, | |
3313 | XK_parenleft, XK_H, XK_parenright, 0x24BD, | |
3314 | XK_parenleft, XK_I, XK_parenright, 0x24BE, | |
3315 | XK_parenleft, XK_J, XK_parenright, 0x24BF, | |
3316 | XK_parenleft, XK_K, XK_parenright, 0x24C0, | |
3317 | XK_parenleft, XK_L, XK_parenright, 0x24C1, | |
3318 | XK_parenleft, XK_M, XK_parenright, 0x24C2, | |
3319 | XK_parenleft, XK_N, XK_parenright, 0x24C3, | |
3320 | XK_parenleft, XK_O, XK_parenright, 0x24C4, | |
3321 | XK_parenleft, XK_P, XK_parenright, 0x24C5, | |
3322 | XK_parenleft, XK_Q, XK_parenright, 0x24C6, | |
3323 | XK_parenleft, XK_R, XK_parenright, 0x24C7, | |
3324 | XK_parenleft, XK_S, XK_parenright, 0x24C8, | |
3325 | XK_parenleft, XK_T, XK_parenright, 0x24C9, | |
3326 | XK_parenleft, XK_U, XK_parenright, 0x24CA, | |
3327 | XK_parenleft, XK_V, XK_parenright, 0x24CB, | |
3328 | XK_parenleft, XK_W, XK_parenright, 0x24CC, | |
3329 | XK_parenleft, XK_X, XK_parenright, 0x24CD, | |
3330 | XK_parenleft, XK_Y, XK_parenright, 0x24CE, | |
3331 | XK_parenleft, XK_Z, XK_parenright, 0x24CF, | |
3332 | XK_parenleft, XK_a, XK_parenright, 0x24D0, | |
3333 | XK_parenleft, XK_b, XK_parenright, 0x24D1, | |
3334 | XK_parenleft, XK_c, XK_parenright, 0x24D2, | |
3335 | XK_parenleft, XK_d, XK_parenright, 0x24D3, | |
3336 | XK_parenleft, XK_e, XK_parenright, 0x24D4, | |
3337 | XK_parenleft, XK_f, XK_parenright, 0x24D5, | |
3338 | XK_parenleft, XK_g, XK_parenright, 0x24D6, | |
3339 | XK_parenleft, XK_h, XK_parenright, 0x24D7, | |
3340 | XK_parenleft, XK_i, XK_parenright, 0x24D8, | |
3341 | XK_parenleft, XK_j, XK_parenright, 0x24D9, | |
3342 | XK_parenleft, XK_k, XK_parenright, 0x24DA, | |
3343 | XK_parenleft, XK_l, XK_parenright, 0x24DB, | |
3344 | XK_parenleft, XK_m, XK_parenright, 0x24DC, | |
3345 | XK_parenleft, XK_n, XK_parenright, 0x24DD, | |
3346 | XK_parenleft, XK_o, XK_parenright, 0x24DE, | |
3347 | XK_parenleft, XK_p, XK_parenright, 0x24DF, | |
3348 | XK_parenleft, XK_q, XK_parenright, 0x24E0, | |
3349 | XK_parenleft, XK_r, XK_parenright, 0x24E1, | |
3350 | XK_parenleft, XK_s, XK_parenright, 0x24E2, | |
3351 | XK_parenleft, XK_t, XK_parenright, 0x24E3, | |
3352 | XK_parenleft, XK_u, XK_parenright, 0x24E4, | |
3353 | XK_parenleft, XK_v, XK_parenright, 0x24E5, | |
3354 | XK_parenleft, XK_w, XK_parenright, 0x24E6, | |
3355 | XK_parenleft, XK_x, XK_parenright, 0x24E7, | |
3356 | XK_parenleft, XK_y, XK_parenright, 0x24E8, | |
3357 | XK_parenleft, XK_z, XK_parenright, 0x24E9, | |
3358 | XK_parenleft, XK_kana_WO, XK_parenright, 0x32FE, | |
3359 | XK_parenleft, XK_kana_A, XK_parenright, 0x32D0, | |
3360 | XK_parenleft, XK_kana_I, XK_parenright, 0x32D1, | |
3361 | XK_parenleft, XK_kana_U, XK_parenright, 0x32D2, | |
3362 | XK_parenleft, XK_kana_E, XK_parenright, 0x32D3, | |
3363 | XK_parenleft, XK_kana_O, XK_parenright, 0x32D4, | |
3364 | XK_parenleft, XK_kana_KA, XK_parenright, 0x32D5, | |
3365 | XK_parenleft, XK_kana_KI, XK_parenright, 0x32D6, | |
3366 | XK_parenleft, XK_kana_KU, XK_parenright, 0x32D7, | |
3367 | XK_parenleft, XK_kana_KE, XK_parenright, 0x32D8, | |
3368 | XK_parenleft, XK_kana_KO, XK_parenright, 0x32D9, | |
3369 | XK_parenleft, XK_kana_SA, XK_parenright, 0x32DA, | |
3370 | XK_parenleft, XK_kana_SHI, XK_parenright, 0x32DB, | |
3371 | XK_parenleft, XK_kana_SU, XK_parenright, 0x32DC, | |
3372 | XK_parenleft, XK_kana_SE, XK_parenright, 0x32DD, | |
3373 | XK_parenleft, XK_kana_SO, XK_parenright, 0x32DE, | |
3374 | XK_parenleft, XK_kana_TA, XK_parenright, 0x32DF, | |
3375 | XK_parenleft, XK_kana_CHI, XK_parenright, 0x32E0, | |
3376 | XK_parenleft, XK_kana_TSU, XK_parenright, 0x32E1, | |
3377 | XK_parenleft, XK_kana_TE, XK_parenright, 0x32E2, | |
3378 | XK_parenleft, XK_kana_TO, XK_parenright, 0x32E3, | |
3379 | XK_parenleft, XK_kana_NA, XK_parenright, 0x32E4, | |
3380 | XK_parenleft, XK_kana_NI, XK_parenright, 0x32E5, | |
3381 | XK_parenleft, XK_kana_NU, XK_parenright, 0x32E6, | |
3382 | XK_parenleft, XK_kana_NE, XK_parenright, 0x32E7, | |
3383 | XK_parenleft, XK_kana_NO, XK_parenright, 0x32E8, | |
3384 | XK_parenleft, XK_kana_HA, XK_parenright, 0x32E9, | |
3385 | XK_parenleft, XK_kana_HI, XK_parenright, 0x32EA, | |
3386 | XK_parenleft, XK_kana_FU, XK_parenright, 0x32EB, | |
3387 | XK_parenleft, XK_kana_HE, XK_parenright, 0x32EC, | |
3388 | XK_parenleft, XK_kana_HO, XK_parenright, 0x32ED, | |
3389 | XK_parenleft, XK_kana_MA, XK_parenright, 0x32EE, | |
3390 | XK_parenleft, XK_kana_MI, XK_parenright, 0x32EF, | |
3391 | XK_parenleft, XK_kana_MU, XK_parenright, 0x32F0, | |
3392 | XK_parenleft, XK_kana_ME, XK_parenright, 0x32F1, | |
3393 | XK_parenleft, XK_kana_MO, XK_parenright, 0x32F2, | |
3394 | XK_parenleft, XK_kana_YA, XK_parenright, 0x32F3, | |
3395 | XK_parenleft, XK_kana_YU, XK_parenright, 0x32F4, | |
3396 | XK_parenleft, XK_kana_YO, XK_parenright, 0x32F5, | |
3397 | XK_parenleft, XK_kana_RA, XK_parenright, 0x32F6, | |
3398 | XK_parenleft, XK_kana_RI, XK_parenright, 0x32F7, | |
3399 | XK_parenleft, XK_kana_RU, XK_parenright, 0x32F8, | |
3400 | XK_parenleft, XK_kana_RE, XK_parenright, 0x32F9, | |
3401 | XK_parenleft, XK_kana_RO, XK_parenright, 0x32FA, | |
3402 | XK_parenleft, XK_kana_WA, XK_parenright, 0x32FB, | |
3403 | XK_parenleft, 0x1100, XK_parenright, 0x3260, | |
3404 | XK_parenleft, 0x1102, XK_parenright, 0x3261, | |
3405 | XK_parenleft, 0x1103, XK_parenright, 0x3262, | |
3406 | XK_parenleft, 0x1105, XK_parenright, 0x3263, | |
3407 | XK_parenleft, 0x1106, XK_parenright, 0x3264, | |
3408 | XK_parenleft, 0x1107, XK_parenright, 0x3265, | |
3409 | XK_parenleft, 0x1109, XK_parenright, 0x3266, | |
3410 | XK_parenleft, 0x110B, XK_parenright, 0x3267, | |
3411 | XK_parenleft, 0x110C, XK_parenright, 0x3268, | |
3412 | XK_parenleft, 0x110E, XK_parenright, 0x3269, | |
3413 | XK_parenleft, 0x110F, XK_parenright, 0x326A, | |
3414 | XK_parenleft, 0x1110, XK_parenright, 0x326B, | |
3415 | XK_parenleft, 0x1111, XK_parenright, 0x326C, | |
3416 | XK_parenleft, 0x1112, XK_parenright, 0x326D, | |
3417 | XK_parenleft, 0x30F0, XK_parenright, 0x32FC, | |
3418 | XK_parenleft, 0x30F1, XK_parenright, 0x32FD, | |
3419 | XK_parenleft, 0x4E00, XK_parenright, 0x3280, | |
3420 | XK_parenleft, 0x4E03, XK_parenright, 0x3286, | |
3421 | XK_parenleft, 0x4E09, XK_parenright, 0x3282, | |
3422 | XK_parenleft, 0x4E0A, XK_parenright, 0x32A4, | |
3423 | XK_parenleft, 0x4E0B, XK_parenright, 0x32A6, | |
3424 | XK_parenleft, 0x4E2D, XK_parenright, 0x32A5, | |
3425 | XK_parenleft, 0x4E5D, XK_parenright, 0x3288, | |
3426 | XK_parenleft, 0x4E8C, XK_parenright, 0x3281, | |
3427 | XK_parenleft, 0x4E94, XK_parenright, 0x3284, | |
3428 | XK_parenleft, 0x4F01, XK_parenright, 0x32AD, | |
3429 | XK_parenleft, 0x4F11, XK_parenright, 0x32A1, | |
3430 | XK_parenleft, 0x512A, XK_parenright, 0x329D, | |
3431 | XK_parenleft, 0x516B, XK_parenright, 0x3287, | |
3432 | XK_parenleft, 0x516D, XK_parenright, 0x3285, | |
3433 | XK_parenleft, 0x5199, XK_parenright, 0x32A2, | |
3434 | XK_parenleft, 0x52B4, XK_parenright, 0x3298, | |
3435 | XK_parenleft, 0x533B, XK_parenright, 0x32A9, | |
3436 | XK_parenleft, 0x5341, XK_parenright, 0x3289, | |
3437 | XK_parenleft, 0x5354, XK_parenright, 0x32AF, | |
3438 | XK_parenleft, 0x5370, XK_parenright, 0x329E, | |
3439 | XK_parenleft, 0x53F3, XK_parenright, 0x32A8, | |
3440 | XK_parenleft, 0x540D, XK_parenright, 0x3294, | |
3441 | XK_parenleft, 0x56DB, XK_parenright, 0x3283, | |
3442 | XK_parenleft, 0x571F, XK_parenright, 0x328F, | |
3443 | XK_parenleft, 0x591C, XK_parenright, 0x32B0, | |
3444 | XK_parenleft, 0x5973, XK_parenright, 0x329B, | |
3445 | XK_parenleft, 0x5B66, XK_parenright, 0x32AB, | |
3446 | XK_parenleft, 0x5B97, XK_parenright, 0x32AA, | |
3447 | XK_parenleft, 0x5DE6, XK_parenright, 0x32A7, | |
3448 | XK_parenleft, 0x65E5, XK_parenright, 0x3290, | |
3449 | XK_parenleft, 0x6708, XK_parenright, 0x328A, | |
3450 | XK_parenleft, 0x6709, XK_parenright, 0x3292, | |
3451 | XK_parenleft, 0x6728, XK_parenright, 0x328D, | |
3452 | XK_parenleft, 0x682A, XK_parenright, 0x3291, | |
3453 | XK_parenleft, 0x6B63, XK_parenright, 0x32A3, | |
3454 | XK_parenleft, 0x6C34, XK_parenright, 0x328C, | |
3455 | XK_parenleft, 0x6CE8, XK_parenright, 0x329F, | |
3456 | XK_parenleft, 0x706B, XK_parenright, 0x328B, | |
3457 | XK_parenleft, 0x7279, XK_parenright, 0x3295, | |
3458 | XK_parenleft, 0x7537, XK_parenright, 0x329A, | |
3459 | XK_parenleft, 0x76E3, XK_parenright, 0x32AC, | |
3460 | XK_parenleft, 0x793E, XK_parenright, 0x3293, | |
3461 | XK_parenleft, 0x795D, XK_parenright, 0x3297, | |
3462 | XK_parenleft, 0x79D8, XK_parenright, 0x3299, | |
3463 | XK_parenleft, 0x8CA1, XK_parenright, 0x3296, | |
3464 | XK_parenleft, 0x8CC7, XK_parenright, 0x32AE, | |
3465 | XK_parenleft, 0x9069, XK_parenright, 0x329C, | |
3466 | XK_parenleft, 0x91D1, XK_parenright, 0x328E, | |
3467 | XK_parenleft, 0x9805, XK_parenright, 0x32A0, | |
3468 | XK_parenleft, XK_KP_Space, XK_parenright, 0x2461, | |
3469 | XK_parenleft, XK_KP_0, XK_parenright, 0x24EA, | |
3470 | XK_parenleft, XK_KP_1, XK_parenright, 0x2460, | |
3471 | XK_parenleft, XK_KP_2, XK_parenright, 0x2461, | |
3472 | XK_parenleft, XK_KP_3, XK_parenright, 0x2462, | |
3473 | XK_parenleft, XK_KP_4, XK_parenright, 0x2463, | |
3474 | XK_parenleft, XK_KP_5, XK_parenright, 0x2464, | |
3475 | XK_parenleft, XK_KP_6, XK_parenright, 0x2465, | |
3476 | XK_parenleft, XK_KP_7, XK_parenright, 0x2466, | |
3477 | XK_parenleft, XK_KP_8, XK_parenright, 0x2467, | |
3478 | XK_parenleft, XK_KP_9, XK_parenright, 0x2468, | |
3479 | XK_minus, XK_minus, XK_space, 0x00AD, | |
3480 | XK_minus, XK_minus, XK_minus, 0x2014, | |
3481 | XK_minus, XK_minus, XK_period, 0x2013, | |
3482 | XK_period, XK_exclam, XK_S, 0x1E68, | |
3483 | XK_period, XK_exclam, XK_s, 0x1E69, | |
3484 | XK_period, XK_apostrophe, XK_S, 0x1E64, | |
3485 | XK_period, XK_apostrophe, XK_s, 0x1E65, | |
3486 | XK_period, XK_acute, XK_S, 0x1E64, | |
3487 | XK_period, XK_acute, XK_s, 0x1E65, | |
3488 | XK_period, XK_dead_acute, XK_S, 0x1E64, | |
3489 | XK_period, XK_dead_acute, XK_s, 0x1E65, | |
3490 | XK_period, XK_dead_caron, XK_S, 0x1E66, | |
3491 | XK_period, XK_dead_caron, XK_s, 0x1E67, | |
3492 | XK_period, XK_dead_belowdot, XK_S, 0x1E68, | |
3493 | XK_period, XK_dead_belowdot, XK_s, 0x1E69, | |
3494 | XK_question, XK_plus, XK_O, 0x1EDE, | |
3495 | XK_question, XK_plus, XK_U, 0x1EEC, | |
3496 | XK_question, XK_plus, XK_o, 0x1EDF, | |
3497 | XK_question, XK_plus, XK_u, 0x1EED, | |
3498 | XK_question, XK_asciicircum, XK_A, 0x1EA8, | |
3499 | XK_question, XK_asciicircum, XK_E, 0x1EC2, | |
3500 | XK_question, XK_asciicircum, XK_O, 0x1ED4, | |
3501 | XK_question, XK_asciicircum, XK_a, 0x1EA9, | |
3502 | XK_question, XK_asciicircum, XK_e, 0x1EC3, | |
3503 | XK_question, XK_asciicircum, XK_o, 0x1ED5, | |
3504 | XK_question, XK_b, XK_A, 0x1EB2, | |
3505 | XK_question, XK_b, XK_a, 0x1EB3, | |
3506 | XK_question, XK_dead_circumflex, XK_A, 0x1EA8, | |
3507 | XK_question, XK_dead_circumflex, XK_E, 0x1EC2, | |
3508 | XK_question, XK_dead_circumflex, XK_O, 0x1ED4, | |
3509 | XK_question, XK_dead_circumflex, XK_a, 0x1EA9, | |
3510 | XK_question, XK_dead_circumflex, XK_e, 0x1EC3, | |
3511 | XK_question, XK_dead_circumflex, XK_o, 0x1ED5, | |
3512 | XK_question, XK_dead_breve, XK_A, 0x1EB2, | |
3513 | XK_question, XK_dead_breve, XK_a, 0x1EB3, | |
3514 | XK_question, XK_dead_horn, XK_O, 0x1EDE, | |
3515 | XK_question, XK_dead_horn, XK_U, 0x1EEC, | |
3516 | XK_question, XK_dead_horn, XK_o, 0x1EDF, | |
3517 | XK_question, XK_dead_horn, XK_u, 0x1EED, | |
3518 | XK_U, XK_exclam, XK_A, 0x1EB6, | |
3519 | XK_U, XK_exclam, XK_a, 0x1EB7, | |
3520 | XK_U, XK_comma, XK_E, 0x1E1C, | |
3521 | XK_U, XK_comma, XK_e, 0x1E1D, | |
3522 | XK_U, XK_cedilla, XK_E, 0x1E1C, | |
3523 | XK_U, XK_cedilla, XK_e, 0x1E1D, | |
3524 | XK_U, XK_dead_cedilla, XK_E, 0x1E1C, | |
3525 | XK_U, XK_dead_cedilla, XK_e, 0x1E1D, | |
3526 | XK_U, XK_dead_belowdot, XK_A, 0x1EB6, | |
3527 | XK_U, XK_dead_belowdot, XK_a, 0x1EB7, | |
3528 | XK_asciicircum, XK_exclam, XK_A, 0x1EAC, | |
3529 | XK_asciicircum, XK_exclam, XK_E, 0x1EC6, | |
3530 | XK_asciicircum, XK_exclam, XK_O, 0x1ED8, | |
3531 | XK_asciicircum, XK_exclam, XK_a, 0x1EAD, | |
3532 | XK_asciicircum, XK_exclam, XK_e, 0x1EC7, | |
3533 | XK_asciicircum, XK_exclam, XK_o, 0x1ED9, | |
3534 | XK_asciicircum, XK_underscore, XK_a, 0x00AA, | |
3535 | XK_asciicircum, XK_underscore, XK_h, 0x02B0, | |
3536 | XK_asciicircum, XK_underscore, XK_i, 0x2071, | |
3537 | XK_asciicircum, XK_underscore, XK_j, 0x02B2, | |
3538 | XK_asciicircum, XK_underscore, XK_l, 0x02E1, | |
3539 | XK_asciicircum, XK_underscore, XK_n, 0x207F, | |
3540 | XK_asciicircum, XK_underscore, XK_o, 0x00BA, | |
3541 | XK_asciicircum, XK_underscore, XK_r, 0x02B3, | |
3542 | XK_asciicircum, XK_underscore, XK_s, 0x02E2, | |
3543 | XK_asciicircum, XK_underscore, XK_w, 0x02B7, | |
3544 | XK_asciicircum, XK_underscore, XK_x, 0x02E3, | |
3545 | XK_asciicircum, XK_underscore, XK_y, 0x02B8, | |
3546 | XK_asciicircum, XK_underscore, 0x0263, 0x02E0, | |
3547 | XK_asciicircum, XK_underscore, 0x0266, 0x02B1, | |
3548 | XK_asciicircum, XK_underscore, 0x0279, 0x02B4, | |
3549 | XK_asciicircum, XK_underscore, 0x027B, 0x02B5, | |
3550 | XK_asciicircum, XK_underscore, 0x0281, 0x02B6, | |
3551 | XK_asciicircum, XK_underscore, 0x0295, 0x02E4, | |
3552 | XK_asciicircum, XK_underbar, XK_a, 0x00AA, | |
3553 | XK_asciicircum, XK_underbar, XK_h, 0x02B0, | |
3554 | XK_asciicircum, XK_underbar, XK_i, 0x2071, | |
3555 | XK_asciicircum, XK_underbar, XK_j, 0x02B2, | |
3556 | XK_asciicircum, XK_underbar, XK_l, 0x02E1, | |
3557 | XK_asciicircum, XK_underbar, XK_n, 0x207F, | |
3558 | XK_asciicircum, XK_underbar, XK_o, 0x00BA, | |
3559 | XK_asciicircum, XK_underbar, XK_r, 0x02B3, | |
3560 | XK_asciicircum, XK_underbar, XK_s, 0x02E2, | |
3561 | XK_asciicircum, XK_underbar, XK_w, 0x02B7, | |
3562 | XK_asciicircum, XK_underbar, XK_x, 0x02E3, | |
3563 | XK_asciicircum, XK_underbar, XK_y, 0x02B8, | |
3564 | XK_asciicircum, XK_underbar, 0x0263, 0x02E0, | |
3565 | XK_asciicircum, XK_underbar, 0x0266, 0x02B1, | |
3566 | XK_asciicircum, XK_underbar, 0x0279, 0x02B4, | |
3567 | XK_asciicircum, XK_underbar, 0x027B, 0x02B5, | |
3568 | XK_asciicircum, XK_underbar, 0x0281, 0x02B6, | |
3569 | XK_asciicircum, XK_underbar, 0x0295, 0x02E4, | |
3570 | XK_asciicircum, XK_dead_belowdot, XK_A, 0x1EAC, | |
3571 | XK_asciicircum, XK_dead_belowdot, XK_E, 0x1EC6, | |
3572 | XK_asciicircum, XK_dead_belowdot, XK_O, 0x1ED8, | |
3573 | XK_asciicircum, XK_dead_belowdot, XK_a, 0x1EAD, | |
3574 | XK_asciicircum, XK_dead_belowdot, XK_e, 0x1EC7, | |
3575 | XK_asciicircum, XK_dead_belowdot, XK_o, 0x1ED9, | |
3576 | XK_underscore, XK_exclam, XK_L, 0x1E38, | |
3577 | XK_underscore, XK_exclam, XK_R, 0x1E5C, | |
3578 | XK_underscore, XK_exclam, XK_l, 0x1E39, | |
3579 | XK_underscore, XK_exclam, XK_r, 0x1E5D, | |
3580 | XK_underscore, XK_quotedbl, XK_A, 0x01DE, | |
3581 | XK_underscore, XK_quotedbl, XK_O, 0x022A, | |
3582 | XK_underscore, XK_quotedbl, XK_U, 0x01D5, | |
3583 | XK_underscore, XK_quotedbl, XK_a, 0x01DF, | |
3584 | XK_underscore, XK_quotedbl, XK_o, 0x022B, | |
3585 | XK_underscore, XK_quotedbl, XK_u, 0x01D6, | |
3586 | XK_underscore, XK_period, XK_A, 0x01E0, | |
3587 | XK_underscore, XK_period, XK_O, 0x0230, | |
3588 | XK_underscore, XK_period, XK_a, 0x01E1, | |
3589 | XK_underscore, XK_period, XK_o, 0x0231, | |
3590 | XK_underscore, XK_semicolon, XK_O, 0x01EC, | |
3591 | XK_underscore, XK_semicolon, XK_o, 0x01ED, | |
3592 | XK_underscore, XK_asciitilde, XK_O, 0x022C, | |
3593 | XK_underscore, XK_asciitilde, XK_o, 0x022D, | |
3594 | XK_underscore, XK_dead_tilde, XK_O, 0x022C, | |
3595 | XK_underscore, XK_dead_tilde, XK_o, 0x022D, | |
3596 | XK_underscore, XK_dead_abovedot, XK_A, 0x01E0, | |
3597 | XK_underscore, XK_dead_abovedot, XK_O, 0x0230, | |
3598 | XK_underscore, XK_dead_abovedot, XK_a, 0x01E1, | |
3599 | XK_underscore, XK_dead_abovedot, XK_o, 0x0231, | |
3600 | XK_underscore, XK_dead_diaeresis, XK_A, 0x01DE, | |
3601 | XK_underscore, XK_dead_diaeresis, XK_O, 0x022A, | |
3602 | XK_underscore, XK_dead_diaeresis, XK_U, 0x01D5, | |
3603 | XK_underscore, XK_dead_diaeresis, XK_a, 0x01DF, | |
3604 | XK_underscore, XK_dead_diaeresis, XK_o, 0x022B, | |
3605 | XK_underscore, XK_dead_diaeresis, XK_u, 0x01D6, | |
3606 | XK_underscore, XK_dead_ogonek, XK_O, 0x01EC, | |
3607 | XK_underscore, XK_dead_ogonek, XK_o, 0x01ED, | |
3608 | XK_underscore, XK_dead_belowdot, XK_L, 0x1E38, | |
3609 | XK_underscore, XK_dead_belowdot, XK_R, 0x1E5C, | |
3610 | XK_underscore, XK_dead_belowdot, XK_l, 0x1E39, | |
3611 | XK_underscore, XK_dead_belowdot, XK_r, 0x1E5D, | |
3612 | XK_grave, XK_quotedbl, XK_U, 0x01DB, | |
3613 | XK_grave, XK_quotedbl, XK_u, 0x01DC, | |
3614 | XK_grave, XK_quotedbl, XK_Greek_iota, 0x1FD2, | |
3615 | XK_grave, XK_quotedbl, XK_Greek_upsilon, 0x1FE2, | |
3616 | XK_grave, XK_parenleft, XK_Greek_ALPHA, 0x1F0B, | |
3617 | XK_grave, XK_parenleft, XK_Greek_EPSILON, 0x1F1B, | |
3618 | XK_grave, XK_parenleft, XK_Greek_ETA, 0x1F2B, | |
3619 | XK_grave, XK_parenleft, XK_Greek_IOTA, 0x1F3B, | |
3620 | XK_grave, XK_parenleft, XK_Greek_OMICRON, 0x1F4B, | |
3621 | XK_grave, XK_parenleft, XK_Greek_UPSILON, 0x1F5B, | |
3622 | XK_grave, XK_parenleft, XK_Greek_OMEGA, 0x1F6B, | |
3623 | XK_grave, XK_parenleft, XK_Greek_alpha, 0x1F03, | |
3624 | XK_grave, XK_parenleft, XK_Greek_epsilon, 0x1F13, | |
3625 | XK_grave, XK_parenleft, XK_Greek_eta, 0x1F23, | |
3626 | XK_grave, XK_parenleft, XK_Greek_iota, 0x1F33, | |
3627 | XK_grave, XK_parenleft, XK_Greek_omicron, 0x1F43, | |
3628 | XK_grave, XK_parenleft, XK_Greek_upsilon, 0x1F53, | |
3629 | XK_grave, XK_parenleft, XK_Greek_omega, 0x1F63, | |
3630 | XK_grave, XK_parenright, XK_Greek_ALPHA, 0x1F0A, | |
3631 | XK_grave, XK_parenright, XK_Greek_EPSILON, 0x1F1A, | |
3632 | XK_grave, XK_parenright, XK_Greek_ETA, 0x1F2A, | |
3633 | XK_grave, XK_parenright, XK_Greek_IOTA, 0x1F3A, | |
3634 | XK_grave, XK_parenright, XK_Greek_OMICRON, 0x1F4A, | |
3635 | XK_grave, XK_parenright, XK_Greek_OMEGA, 0x1F6A, | |
3636 | XK_grave, XK_parenright, XK_Greek_alpha, 0x1F02, | |
3637 | XK_grave, XK_parenright, XK_Greek_epsilon, 0x1F12, | |
3638 | XK_grave, XK_parenright, XK_Greek_eta, 0x1F22, | |
3639 | XK_grave, XK_parenright, XK_Greek_iota, 0x1F32, | |
3640 | XK_grave, XK_parenright, XK_Greek_omicron, 0x1F42, | |
3641 | XK_grave, XK_parenright, XK_Greek_upsilon, 0x1F52, | |
3642 | XK_grave, XK_parenright, XK_Greek_omega, 0x1F62, | |
3643 | XK_grave, XK_plus, XK_O, 0x1EDC, | |
3644 | XK_grave, XK_plus, XK_U, 0x1EEA, | |
3645 | XK_grave, XK_plus, XK_o, 0x1EDD, | |
3646 | XK_grave, XK_plus, XK_u, 0x1EEB, | |
3647 | XK_grave, XK_asciicircum, XK_A, 0x1EA6, | |
3648 | XK_grave, XK_asciicircum, XK_E, 0x1EC0, | |
3649 | XK_grave, XK_asciicircum, XK_O, 0x1ED2, | |
3650 | XK_grave, XK_asciicircum, XK_a, 0x1EA7, | |
3651 | XK_grave, XK_asciicircum, XK_e, 0x1EC1, | |
3652 | XK_grave, XK_asciicircum, XK_o, 0x1ED3, | |
3653 | XK_grave, XK_underscore, XK_E, 0x1E14, | |
3654 | XK_grave, XK_underscore, XK_O, 0x1E50, | |
3655 | XK_grave, XK_underscore, XK_e, 0x1E15, | |
3656 | XK_grave, XK_underscore, XK_o, 0x1E51, | |
3657 | XK_grave, XK_b, XK_A, 0x1EB0, | |
3658 | XK_grave, XK_b, XK_a, 0x1EB1, | |
3659 | XK_grave, XK_macron, XK_E, 0x1E14, | |
3660 | XK_grave, XK_macron, XK_O, 0x1E50, | |
3661 | XK_grave, XK_macron, XK_e, 0x1E15, | |
3662 | XK_grave, XK_macron, XK_o, 0x1E51, | |
3663 | XK_grave, XK_dead_circumflex, XK_A, 0x1EA6, | |
3664 | XK_grave, XK_dead_circumflex, XK_E, 0x1EC0, | |
3665 | XK_grave, XK_dead_circumflex, XK_O, 0x1ED2, | |
3666 | XK_grave, XK_dead_circumflex, XK_a, 0x1EA7, | |
3667 | XK_grave, XK_dead_circumflex, XK_e, 0x1EC1, | |
3668 | XK_grave, XK_dead_circumflex, XK_o, 0x1ED3, | |
3669 | XK_grave, XK_dead_macron, XK_E, 0x1E14, | |
3670 | XK_grave, XK_dead_macron, XK_O, 0x1E50, | |
3671 | XK_grave, XK_dead_macron, XK_e, 0x1E15, | |
3672 | XK_grave, XK_dead_macron, XK_o, 0x1E51, | |
3673 | XK_grave, XK_dead_breve, XK_A, 0x1EB0, | |
3674 | XK_grave, XK_dead_breve, XK_a, 0x1EB1, | |
3675 | XK_grave, XK_dead_diaeresis, XK_U, 0x01DB, | |
3676 | XK_grave, XK_dead_diaeresis, XK_u, 0x01DC, | |
3677 | XK_grave, XK_dead_diaeresis, XK_Greek_iota, 0x1FD2, | |
3678 | XK_grave, XK_dead_diaeresis, XK_Greek_upsilon, 0x1FE2, | |
3679 | XK_grave, XK_dead_horn, XK_O, 0x1EDC, | |
3680 | XK_grave, XK_dead_horn, XK_U, 0x1EEA, | |
3681 | XK_grave, XK_dead_horn, XK_o, 0x1EDD, | |
3682 | XK_grave, XK_dead_horn, XK_u, 0x1EEB, | |
3683 | XK_grave, XK_dead_psili, XK_Greek_ALPHA, 0x1F0A, | |
3684 | XK_grave, XK_dead_psili, XK_Greek_EPSILON, 0x1F1A, | |
3685 | XK_grave, XK_dead_psili, XK_Greek_ETA, 0x1F2A, | |
3686 | XK_grave, XK_dead_psili, XK_Greek_IOTA, 0x1F3A, | |
3687 | XK_grave, XK_dead_psili, XK_Greek_OMICRON, 0x1F4A, | |
3688 | XK_grave, XK_dead_psili, XK_Greek_OMEGA, 0x1F6A, | |
3689 | XK_grave, XK_dead_psili, XK_Greek_alpha, 0x1F02, | |
3690 | XK_grave, XK_dead_psili, XK_Greek_epsilon, 0x1F12, | |
3691 | XK_grave, XK_dead_psili, XK_Greek_eta, 0x1F22, | |
3692 | XK_grave, XK_dead_psili, XK_Greek_iota, 0x1F32, | |
3693 | XK_grave, XK_dead_psili, XK_Greek_omicron, 0x1F42, | |
3694 | XK_grave, XK_dead_psili, XK_Greek_upsilon, 0x1F52, | |
3695 | XK_grave, XK_dead_psili, XK_Greek_omega, 0x1F62, | |
3696 | XK_grave, XK_dead_dasia, XK_Greek_ALPHA, 0x1F0B, | |
3697 | XK_grave, XK_dead_dasia, XK_Greek_EPSILON, 0x1F1B, | |
3698 | XK_grave, XK_dead_dasia, XK_Greek_ETA, 0x1F2B, | |
3699 | XK_grave, XK_dead_dasia, XK_Greek_IOTA, 0x1F3B, | |
3700 | XK_grave, XK_dead_dasia, XK_Greek_OMICRON, 0x1F4B, | |
3701 | XK_grave, XK_dead_dasia, XK_Greek_UPSILON, 0x1F5B, | |
3702 | XK_grave, XK_dead_dasia, XK_Greek_OMEGA, 0x1F6B, | |
3703 | XK_grave, XK_dead_dasia, XK_Greek_alpha, 0x1F03, | |
3704 | XK_grave, XK_dead_dasia, XK_Greek_epsilon, 0x1F13, | |
3705 | XK_grave, XK_dead_dasia, XK_Greek_eta, 0x1F23, | |
3706 | XK_grave, XK_dead_dasia, XK_Greek_iota, 0x1F33, | |
3707 | XK_grave, XK_dead_dasia, XK_Greek_omicron, 0x1F43, | |
3708 | XK_grave, XK_dead_dasia, XK_Greek_upsilon, 0x1F53, | |
3709 | XK_grave, XK_dead_dasia, XK_Greek_omega, 0x1F63, | |
3710 | XK_b, XK_exclam, XK_A, 0x1EB6, | |
3711 | XK_b, XK_exclam, XK_a, 0x1EB7, | |
3712 | XK_b, XK_comma, XK_E, 0x1E1C, | |
3713 | XK_b, XK_comma, XK_e, 0x1E1D, | |
3714 | XK_b, XK_cedilla, XK_E, 0x1E1C, | |
3715 | XK_b, XK_cedilla, XK_e, 0x1E1D, | |
3716 | XK_b, XK_dead_cedilla, XK_E, 0x1E1C, | |
3717 | XK_b, XK_dead_cedilla, XK_e, 0x1E1D, | |
3718 | XK_b, XK_dead_belowdot, XK_A, 0x1EB6, | |
3719 | XK_b, XK_dead_belowdot, XK_a, 0x1EB7, | |
3720 | XK_c, XK_quotedbl, XK_U, 0x01D9, | |
3721 | XK_c, XK_quotedbl, XK_u, 0x01DA, | |
3722 | XK_c, XK_dead_diaeresis, XK_U, 0x01D9, | |
3723 | XK_c, XK_dead_diaeresis, XK_u, 0x01DA, | |
3724 | XK_o, XK_apostrophe, XK_A, 0x01FA, | |
3725 | XK_o, XK_apostrophe, XK_a, 0x01FB, | |
3726 | XK_asciitilde, XK_quotedbl, XK_Greek_iota, 0x1FD7, | |
3727 | XK_asciitilde, XK_quotedbl, XK_Greek_upsilon, 0x1FE7, | |
3728 | XK_asciitilde, XK_parenleft, XK_Greek_ALPHA, 0x1F0F, | |
3729 | XK_asciitilde, XK_parenleft, XK_Greek_ETA, 0x1F2F, | |
3730 | XK_asciitilde, XK_parenleft, XK_Greek_IOTA, 0x1F3F, | |
3731 | XK_asciitilde, XK_parenleft, XK_Greek_UPSILON, 0x1F5F, | |
3732 | XK_asciitilde, XK_parenleft, XK_Greek_OMEGA, 0x1F6F, | |
3733 | XK_asciitilde, XK_parenleft, XK_Greek_alpha, 0x1F07, | |
3734 | XK_asciitilde, XK_parenleft, XK_Greek_eta, 0x1F27, | |
3735 | XK_asciitilde, XK_parenleft, XK_Greek_iota, 0x1F37, | |
3736 | XK_asciitilde, XK_parenleft, XK_Greek_upsilon, 0x1F57, | |
3737 | XK_asciitilde, XK_parenleft, XK_Greek_omega, 0x1F67, | |
3738 | XK_asciitilde, XK_parenright, XK_Greek_ALPHA, 0x1F0E, | |
3739 | XK_asciitilde, XK_parenright, XK_Greek_ETA, 0x1F2E, | |
3740 | XK_asciitilde, XK_parenright, XK_Greek_IOTA, 0x1F3E, | |
3741 | XK_asciitilde, XK_parenright, XK_Greek_OMEGA, 0x1F6E, | |
3742 | XK_asciitilde, XK_parenright, XK_Greek_alpha, 0x1F06, | |
3743 | XK_asciitilde, XK_parenright, XK_Greek_eta, 0x1F26, | |
3744 | XK_asciitilde, XK_parenright, XK_Greek_iota, 0x1F36, | |
3745 | XK_asciitilde, XK_parenright, XK_Greek_upsilon, 0x1F56, | |
3746 | XK_asciitilde, XK_parenright, XK_Greek_omega, 0x1F66, | |
3747 | XK_asciitilde, XK_plus, XK_O, 0x1EE0, | |
3748 | XK_asciitilde, XK_plus, XK_U, 0x1EEE, | |
3749 | XK_asciitilde, XK_plus, XK_o, 0x1EE1, | |
3750 | XK_asciitilde, XK_plus, XK_u, 0x1EEF, | |
3751 | XK_asciitilde, XK_asciicircum, XK_A, 0x1EAA, | |
3752 | XK_asciitilde, XK_asciicircum, XK_E, 0x1EC4, | |
3753 | XK_asciitilde, XK_asciicircum, XK_O, 0x1ED6, | |
3754 | XK_asciitilde, XK_asciicircum, XK_a, 0x1EAB, | |
3755 | XK_asciitilde, XK_asciicircum, XK_e, 0x1EC5, | |
3756 | XK_asciitilde, XK_asciicircum, XK_o, 0x1ED7, | |
3757 | XK_asciitilde, XK_b, XK_A, 0x1EB4, | |
3758 | XK_asciitilde, XK_b, XK_a, 0x1EB5, | |
3759 | XK_asciitilde, XK_dead_circumflex, XK_A, 0x1EAA, | |
3760 | XK_asciitilde, XK_dead_circumflex, XK_E, 0x1EC4, | |
3761 | XK_asciitilde, XK_dead_circumflex, XK_O, 0x1ED6, | |
3762 | XK_asciitilde, XK_dead_circumflex, XK_a, 0x1EAB, | |
3763 | XK_asciitilde, XK_dead_circumflex, XK_e, 0x1EC5, | |
3764 | XK_asciitilde, XK_dead_circumflex, XK_o, 0x1ED7, | |
3765 | XK_asciitilde, XK_dead_breve, XK_A, 0x1EB4, | |
3766 | XK_asciitilde, XK_dead_breve, XK_a, 0x1EB5, | |
3767 | XK_asciitilde, XK_dead_diaeresis, XK_Greek_iota, 0x1FD7, | |
3768 | XK_asciitilde, XK_dead_diaeresis, XK_Greek_upsilon, 0x1FE7, | |
3769 | XK_asciitilde, XK_dead_horn, XK_O, 0x1EE0, | |
3770 | XK_asciitilde, XK_dead_horn, XK_U, 0x1EEE, | |
3771 | XK_asciitilde, XK_dead_horn, XK_o, 0x1EE1, | |
3772 | XK_asciitilde, XK_dead_horn, XK_u, 0x1EEF, | |
3773 | XK_asciitilde, XK_dead_psili, XK_Greek_ALPHA, 0x1F0E, | |
3774 | XK_asciitilde, XK_dead_psili, XK_Greek_ETA, 0x1F2E, | |
3775 | XK_asciitilde, XK_dead_psili, XK_Greek_IOTA, 0x1F3E, | |
3776 | XK_asciitilde, XK_dead_psili, XK_Greek_OMEGA, 0x1F6E, | |
3777 | XK_asciitilde, XK_dead_psili, XK_Greek_alpha, 0x1F06, | |
3778 | XK_asciitilde, XK_dead_psili, XK_Greek_eta, 0x1F26, | |
3779 | XK_asciitilde, XK_dead_psili, XK_Greek_iota, 0x1F36, | |
3780 | XK_asciitilde, XK_dead_psili, XK_Greek_upsilon, 0x1F56, | |
3781 | XK_asciitilde, XK_dead_psili, XK_Greek_omega, 0x1F66, | |
3782 | XK_asciitilde, XK_dead_dasia, XK_Greek_ALPHA, 0x1F0F, | |
3783 | XK_asciitilde, XK_dead_dasia, XK_Greek_ETA, 0x1F2F, | |
3784 | XK_asciitilde, XK_dead_dasia, XK_Greek_IOTA, 0x1F3F, | |
3785 | XK_asciitilde, XK_dead_dasia, XK_Greek_UPSILON, 0x1F5F, | |
3786 | XK_asciitilde, XK_dead_dasia, XK_Greek_OMEGA, 0x1F6F, | |
3787 | XK_asciitilde, XK_dead_dasia, XK_Greek_alpha, 0x1F07, | |
3788 | XK_asciitilde, XK_dead_dasia, XK_Greek_eta, 0x1F27, | |
3789 | XK_asciitilde, XK_dead_dasia, XK_Greek_iota, 0x1F37, | |
3790 | XK_asciitilde, XK_dead_dasia, XK_Greek_upsilon, 0x1F57, | |
3791 | XK_asciitilde, XK_dead_dasia, XK_Greek_omega, 0x1F67, | |
3792 | XK_macron, XK_exclam, XK_L, 0x1E38, | |
3793 | XK_macron, XK_exclam, XK_R, 0x1E5C, | |
3794 | XK_macron, XK_exclam, XK_l, 0x1E39, | |
3795 | XK_macron, XK_exclam, XK_r, 0x1E5D, | |
3796 | XK_macron, XK_quotedbl, XK_A, 0x01DE, | |
3797 | XK_macron, XK_quotedbl, XK_O, 0x022A, | |
3798 | XK_macron, XK_quotedbl, XK_U, 0x01D5, | |
3799 | XK_macron, XK_quotedbl, XK_a, 0x01DF, | |
3800 | XK_macron, XK_quotedbl, XK_o, 0x022B, | |
3801 | XK_macron, XK_quotedbl, XK_u, 0x01D6, | |
3802 | XK_macron, XK_period, XK_A, 0x01E0, | |
3803 | XK_macron, XK_period, XK_O, 0x0230, | |
3804 | XK_macron, XK_period, XK_a, 0x01E1, | |
3805 | XK_macron, XK_period, XK_o, 0x0231, | |
3806 | XK_macron, XK_semicolon, XK_O, 0x01EC, | |
3807 | XK_macron, XK_semicolon, XK_o, 0x01ED, | |
3808 | XK_macron, XK_asciitilde, XK_O, 0x022C, | |
3809 | XK_macron, XK_asciitilde, XK_o, 0x022D, | |
3810 | XK_macron, XK_dead_tilde, XK_O, 0x022C, | |
3811 | XK_macron, XK_dead_tilde, XK_o, 0x022D, | |
3812 | XK_macron, XK_dead_abovedot, XK_A, 0x01E0, | |
3813 | XK_macron, XK_dead_abovedot, XK_O, 0x0230, | |
3814 | XK_macron, XK_dead_abovedot, XK_a, 0x01E1, | |
3815 | XK_macron, XK_dead_abovedot, XK_o, 0x0231, | |
3816 | XK_macron, XK_dead_diaeresis, XK_A, 0x01DE, | |
3817 | XK_macron, XK_dead_diaeresis, XK_O, 0x022A, | |
3818 | XK_macron, XK_dead_diaeresis, XK_U, 0x01D5, | |
3819 | XK_macron, XK_dead_diaeresis, XK_a, 0x01DF, | |
3820 | XK_macron, XK_dead_diaeresis, XK_o, 0x022B, | |
3821 | XK_macron, XK_dead_diaeresis, XK_u, 0x01D6, | |
3822 | XK_macron, XK_dead_ogonek, XK_O, 0x01EC, | |
3823 | XK_macron, XK_dead_ogonek, XK_o, 0x01ED, | |
3824 | XK_macron, XK_dead_belowdot, XK_L, 0x1E38, | |
3825 | XK_macron, XK_dead_belowdot, XK_R, 0x1E5C, | |
3826 | XK_macron, XK_dead_belowdot, XK_l, 0x1E39, | |
3827 | XK_macron, XK_dead_belowdot, XK_r, 0x1E5D, | |
3828 | XK_acute, XK_quotedbl, XK_I, 0x1E2E, | |
3829 | XK_acute, XK_quotedbl, XK_U, 0x01D7, | |
3830 | XK_acute, XK_quotedbl, XK_i, 0x1E2F, | |
3831 | XK_acute, XK_quotedbl, XK_u, 0x01D8, | |
3832 | XK_acute, XK_quotedbl, XK_Greek_iota, 0x0390, | |
3833 | XK_acute, XK_quotedbl, XK_Greek_upsilon, 0x03B0, | |
3834 | XK_acute, XK_parenleft, XK_Greek_ALPHA, 0x1F0D, | |
3835 | XK_acute, XK_parenleft, XK_Greek_EPSILON, 0x1F1D, | |
3836 | XK_acute, XK_parenleft, XK_Greek_ETA, 0x1F2D, | |
3837 | XK_acute, XK_parenleft, XK_Greek_IOTA, 0x1F3D, | |
3838 | XK_acute, XK_parenleft, XK_Greek_OMICRON, 0x1F4D, | |
3839 | XK_acute, XK_parenleft, XK_Greek_UPSILON, 0x1F5D, | |
3840 | XK_acute, XK_parenleft, XK_Greek_OMEGA, 0x1F6D, | |
3841 | XK_acute, XK_parenleft, XK_Greek_alpha, 0x1F05, | |
3842 | XK_acute, XK_parenleft, XK_Greek_epsilon, 0x1F15, | |
3843 | XK_acute, XK_parenleft, XK_Greek_eta, 0x1F25, | |
3844 | XK_acute, XK_parenleft, XK_Greek_iota, 0x1F35, | |
3845 | XK_acute, XK_parenleft, XK_Greek_omicron, 0x1F45, | |
3846 | XK_acute, XK_parenleft, XK_Greek_upsilon, 0x1F55, | |
3847 | XK_acute, XK_parenleft, XK_Greek_omega, 0x1F65, | |
3848 | XK_acute, XK_parenright, XK_Greek_ALPHA, 0x1F0C, | |
3849 | XK_acute, XK_parenright, XK_Greek_EPSILON, 0x1F1C, | |
3850 | XK_acute, XK_parenright, XK_Greek_ETA, 0x1F2C, | |
3851 | XK_acute, XK_parenright, XK_Greek_IOTA, 0x1F3C, | |
3852 | XK_acute, XK_parenright, XK_Greek_OMICRON, 0x1F4C, | |
3853 | XK_acute, XK_parenright, XK_Greek_OMEGA, 0x1F6C, | |
3854 | XK_acute, XK_parenright, XK_Greek_alpha, 0x1F04, | |
3855 | XK_acute, XK_parenright, XK_Greek_epsilon, 0x1F14, | |
3856 | XK_acute, XK_parenright, XK_Greek_eta, 0x1F24, | |
3857 | XK_acute, XK_parenright, XK_Greek_iota, 0x1F34, | |
3858 | XK_acute, XK_parenright, XK_Greek_omicron, 0x1F44, | |
3859 | XK_acute, XK_parenright, XK_Greek_upsilon, 0x1F54, | |
3860 | XK_acute, XK_parenright, XK_Greek_omega, 0x1F64, | |
3861 | XK_acute, XK_plus, XK_O, 0x1EDA, | |
3862 | XK_acute, XK_plus, XK_U, 0x1EE8, | |
3863 | XK_acute, XK_plus, XK_o, 0x1EDB, | |
3864 | XK_acute, XK_plus, XK_u, 0x1EE9, | |
3865 | XK_acute, XK_comma, XK_C, 0x1E08, | |
3866 | XK_acute, XK_comma, XK_c, 0x1E09, | |
3867 | XK_acute, XK_slash, XK_O, 0x01FE, | |
3868 | XK_acute, XK_slash, XK_o, 0x01FF, | |
3869 | XK_acute, XK_asciicircum, XK_A, 0x1EA4, | |
3870 | XK_acute, XK_asciicircum, XK_E, 0x1EBE, | |
3871 | XK_acute, XK_asciicircum, XK_O, 0x1ED0, | |
3872 | XK_acute, XK_asciicircum, XK_a, 0x1EA5, | |
3873 | XK_acute, XK_asciicircum, XK_e, 0x1EBF, | |
3874 | XK_acute, XK_asciicircum, XK_o, 0x1ED1, | |
3875 | XK_acute, XK_underscore, XK_E, 0x1E16, | |
3876 | XK_acute, XK_underscore, XK_O, 0x1E52, | |
3877 | XK_acute, XK_underscore, XK_e, 0x1E17, | |
3878 | XK_acute, XK_underscore, XK_o, 0x1E53, | |
3879 | XK_acute, XK_b, XK_A, 0x1EAE, | |
3880 | XK_acute, XK_b, XK_a, 0x1EAF, | |
3881 | XK_acute, XK_asciitilde, XK_O, 0x1E4C, | |
3882 | XK_acute, XK_asciitilde, XK_U, 0x1E78, | |
3883 | XK_acute, XK_asciitilde, XK_o, 0x1E4D, | |
3884 | XK_acute, XK_asciitilde, XK_u, 0x1E79, | |
3885 | XK_acute, XK_macron, XK_E, 0x1E16, | |
3886 | XK_acute, XK_macron, XK_O, 0x1E52, | |
3887 | XK_acute, XK_macron, XK_e, 0x1E17, | |
3888 | XK_acute, XK_macron, XK_o, 0x1E53, | |
3889 | XK_acute, XK_cedilla, XK_C, 0x1E08, | |
3890 | XK_acute, XK_cedilla, XK_c, 0x1E09, | |
3891 | XK_acute, XK_dead_circumflex, XK_A, 0x1EA4, | |
3892 | XK_acute, XK_dead_circumflex, XK_E, 0x1EBE, | |
3893 | XK_acute, XK_dead_circumflex, XK_O, 0x1ED0, | |
3894 | XK_acute, XK_dead_circumflex, XK_a, 0x1EA5, | |
3895 | XK_acute, XK_dead_circumflex, XK_e, 0x1EBF, | |
3896 | XK_acute, XK_dead_circumflex, XK_o, 0x1ED1, | |
3897 | XK_acute, XK_dead_tilde, XK_O, 0x1E4C, | |
3898 | XK_acute, XK_dead_tilde, XK_U, 0x1E78, | |
3899 | XK_acute, XK_dead_tilde, XK_o, 0x1E4D, | |
3900 | XK_acute, XK_dead_tilde, XK_u, 0x1E79, | |
3901 | XK_acute, XK_dead_macron, XK_E, 0x1E16, | |
3902 | XK_acute, XK_dead_macron, XK_O, 0x1E52, | |
3903 | XK_acute, XK_dead_macron, XK_e, 0x1E17, | |
3904 | XK_acute, XK_dead_macron, XK_o, 0x1E53, | |
3905 | XK_acute, XK_dead_breve, XK_A, 0x1EAE, | |
3906 | XK_acute, XK_dead_breve, XK_a, 0x1EAF, | |
3907 | XK_acute, XK_dead_diaeresis, XK_I, 0x1E2E, | |
3908 | XK_acute, XK_dead_diaeresis, XK_U, 0x01D7, | |
3909 | XK_acute, XK_dead_diaeresis, XK_i, 0x1E2F, | |
3910 | XK_acute, XK_dead_diaeresis, XK_u, 0x01D8, | |
3911 | XK_acute, XK_dead_diaeresis, XK_Greek_iota, 0x0390, | |
3912 | XK_acute, XK_dead_diaeresis, XK_Greek_upsilon, 0x03B0, | |
3913 | XK_acute, XK_dead_abovering, XK_A, 0x01FA, | |
3914 | XK_acute, XK_dead_abovering, XK_a, 0x01FB, | |
3915 | XK_acute, XK_dead_cedilla, XK_C, 0x1E08, | |
3916 | XK_acute, XK_dead_cedilla, XK_c, 0x1E09, | |
3917 | XK_acute, XK_dead_horn, XK_O, 0x1EDA, | |
3918 | XK_acute, XK_dead_horn, XK_U, 0x1EE8, | |
3919 | XK_acute, XK_dead_horn, XK_o, 0x1EDB, | |
3920 | XK_acute, XK_dead_horn, XK_u, 0x1EE9, | |
3921 | XK_acute, XK_dead_psili, XK_Greek_ALPHA, 0x1F0C, | |
3922 | XK_acute, XK_dead_psili, XK_Greek_EPSILON, 0x1F1C, | |
3923 | XK_acute, XK_dead_psili, XK_Greek_ETA, 0x1F2C, | |
3924 | XK_acute, XK_dead_psili, XK_Greek_IOTA, 0x1F3C, | |
3925 | XK_acute, XK_dead_psili, XK_Greek_OMICRON, 0x1F4C, | |
3926 | XK_acute, XK_dead_psili, XK_Greek_OMEGA, 0x1F6C, | |
3927 | XK_acute, XK_dead_psili, XK_Greek_alpha, 0x1F04, | |
3928 | XK_acute, XK_dead_psili, XK_Greek_epsilon, 0x1F14, | |
3929 | XK_acute, XK_dead_psili, XK_Greek_eta, 0x1F24, | |
3930 | XK_acute, XK_dead_psili, XK_Greek_iota, 0x1F34, | |
3931 | XK_acute, XK_dead_psili, XK_Greek_omicron, 0x1F44, | |
3932 | XK_acute, XK_dead_psili, XK_Greek_upsilon, 0x1F54, | |
3933 | XK_acute, XK_dead_psili, XK_Greek_omega, 0x1F64, | |
3934 | XK_acute, XK_dead_dasia, XK_Greek_ALPHA, 0x1F0D, | |
3935 | XK_acute, XK_dead_dasia, XK_Greek_EPSILON, 0x1F1D, | |
3936 | XK_acute, XK_dead_dasia, XK_Greek_ETA, 0x1F2D, | |
3937 | XK_acute, XK_dead_dasia, XK_Greek_IOTA, 0x1F3D, | |
3938 | XK_acute, XK_dead_dasia, XK_Greek_OMICRON, 0x1F4D, | |
3939 | XK_acute, XK_dead_dasia, XK_Greek_UPSILON, 0x1F5D, | |
3940 | XK_acute, XK_dead_dasia, XK_Greek_OMEGA, 0x1F6D, | |
3941 | XK_acute, XK_dead_dasia, XK_Greek_alpha, 0x1F05, | |
3942 | XK_acute, XK_dead_dasia, XK_Greek_epsilon, 0x1F15, | |
3943 | XK_acute, XK_dead_dasia, XK_Greek_eta, 0x1F25, | |
3944 | XK_acute, XK_dead_dasia, XK_Greek_iota, 0x1F35, | |
3945 | XK_acute, XK_dead_dasia, XK_Greek_omicron, 0x1F45, | |
3946 | XK_acute, XK_dead_dasia, XK_Greek_upsilon, 0x1F55, | |
3947 | XK_acute, XK_dead_dasia, XK_Greek_omega, 0x1F65, | |
3948 | XK_acute, XK_KP_Divide, XK_O, 0x01FE, | |
3949 | XK_acute, XK_KP_Divide, XK_o, 0x01FF, | |
3950 | 0x05C1, 0x05BC, XK_hebrew_shin, 0xFB2C, | |
3951 | 0x05C2, 0x05BC, XK_hebrew_shin, 0xFB2D, | |
3952 | XK_Greek_iota, XK_apostrophe, XK_Greek_alpha, 0x1FB4, | |
3953 | XK_Greek_iota, XK_apostrophe, XK_Greek_eta, 0x1FC4, | |
3954 | XK_Greek_iota, XK_apostrophe, XK_Greek_omega, 0x1FF4, | |
3955 | XK_Greek_iota, XK_apostrophe, 0x1F00, 0x1F84, | |
3956 | XK_Greek_iota, XK_apostrophe, 0x1F01, 0x1F85, | |
3957 | XK_Greek_iota, XK_apostrophe, 0x1F08, 0x1F8C, | |
3958 | XK_Greek_iota, XK_apostrophe, 0x1F09, 0x1F8D, | |
3959 | XK_Greek_iota, XK_apostrophe, 0x1F20, 0x1F94, | |
3960 | XK_Greek_iota, XK_apostrophe, 0x1F21, 0x1F95, | |
3961 | XK_Greek_iota, XK_apostrophe, 0x1F28, 0x1F9C, | |
3962 | XK_Greek_iota, XK_apostrophe, 0x1F29, 0x1F9D, | |
3963 | XK_Greek_iota, XK_apostrophe, 0x1F60, 0x1FA4, | |
3964 | XK_Greek_iota, XK_apostrophe, 0x1F61, 0x1FA5, | |
3965 | XK_Greek_iota, XK_apostrophe, 0x1F68, 0x1FAC, | |
3966 | XK_Greek_iota, XK_apostrophe, 0x1F69, 0x1FAD, | |
3967 | XK_Greek_iota, XK_parenleft, XK_Greek_ALPHA, 0x1F89, | |
3968 | XK_Greek_iota, XK_parenleft, XK_Greek_ETA, 0x1F99, | |
3969 | XK_Greek_iota, XK_parenleft, XK_Greek_OMEGA, 0x1FA9, | |
3970 | XK_Greek_iota, XK_parenleft, XK_Greek_alpha, 0x1F81, | |
3971 | XK_Greek_iota, XK_parenleft, XK_Greek_eta, 0x1F91, | |
3972 | XK_Greek_iota, XK_parenleft, XK_Greek_omega, 0x1FA1, | |
3973 | XK_Greek_iota, XK_parenright, XK_Greek_ALPHA, 0x1F88, | |
3974 | XK_Greek_iota, XK_parenright, XK_Greek_ETA, 0x1F98, | |
3975 | XK_Greek_iota, XK_parenright, XK_Greek_OMEGA, 0x1FA8, | |
3976 | XK_Greek_iota, XK_parenright, XK_Greek_alpha, 0x1F80, | |
3977 | XK_Greek_iota, XK_parenright, XK_Greek_eta, 0x1F90, | |
3978 | XK_Greek_iota, XK_parenright, XK_Greek_omega, 0x1FA0, | |
3979 | XK_Greek_iota, XK_grave, XK_Greek_alpha, 0x1FB2, | |
3980 | XK_Greek_iota, XK_grave, XK_Greek_eta, 0x1FC2, | |
3981 | XK_Greek_iota, XK_grave, XK_Greek_omega, 0x1FF2, | |
3982 | XK_Greek_iota, XK_grave, 0x1F00, 0x1F82, | |
3983 | XK_Greek_iota, XK_grave, 0x1F01, 0x1F83, | |
3984 | XK_Greek_iota, XK_grave, 0x1F08, 0x1F8A, | |
3985 | XK_Greek_iota, XK_grave, 0x1F09, 0x1F8B, | |
3986 | XK_Greek_iota, XK_grave, 0x1F20, 0x1F92, | |
3987 | XK_Greek_iota, XK_grave, 0x1F21, 0x1F93, | |
3988 | XK_Greek_iota, XK_grave, 0x1F28, 0x1F9A, | |
3989 | XK_Greek_iota, XK_grave, 0x1F29, 0x1F9B, | |
3990 | XK_Greek_iota, XK_grave, 0x1F60, 0x1FA2, | |
3991 | XK_Greek_iota, XK_grave, 0x1F61, 0x1FA3, | |
3992 | XK_Greek_iota, XK_grave, 0x1F68, 0x1FAA, | |
3993 | XK_Greek_iota, XK_grave, 0x1F69, 0x1FAB, | |
3994 | XK_Greek_iota, XK_asciitilde, XK_Greek_alpha, 0x1FB7, | |
3995 | XK_Greek_iota, XK_asciitilde, XK_Greek_eta, 0x1FC7, | |
3996 | XK_Greek_iota, XK_asciitilde, XK_Greek_omega, 0x1FF7, | |
3997 | XK_Greek_iota, XK_asciitilde, 0x1F00, 0x1F86, | |
3998 | XK_Greek_iota, XK_asciitilde, 0x1F01, 0x1F87, | |
3999 | XK_Greek_iota, XK_asciitilde, 0x1F08, 0x1F8E, | |
4000 | XK_Greek_iota, XK_asciitilde, 0x1F09, 0x1F8F, | |
4001 | XK_Greek_iota, XK_asciitilde, 0x1F20, 0x1F96, | |
4002 | XK_Greek_iota, XK_asciitilde, 0x1F21, 0x1F97, | |
4003 | XK_Greek_iota, XK_asciitilde, 0x1F28, 0x1F9E, | |
4004 | XK_Greek_iota, XK_asciitilde, 0x1F29, 0x1F9F, | |
4005 | XK_Greek_iota, XK_asciitilde, 0x1F60, 0x1FA6, | |
4006 | XK_Greek_iota, XK_asciitilde, 0x1F61, 0x1FA7, | |
4007 | XK_Greek_iota, XK_asciitilde, 0x1F68, 0x1FAE, | |
4008 | XK_Greek_iota, XK_asciitilde, 0x1F69, 0x1FAF, | |
4009 | XK_Greek_iota, XK_acute, XK_Greek_alpha, 0x1FB4, | |
4010 | XK_Greek_iota, XK_acute, XK_Greek_eta, 0x1FC4, | |
4011 | XK_Greek_iota, XK_acute, XK_Greek_omega, 0x1FF4, | |
4012 | XK_Greek_iota, XK_acute, 0x1F00, 0x1F84, | |
4013 | XK_Greek_iota, XK_acute, 0x1F01, 0x1F85, | |
4014 | XK_Greek_iota, XK_acute, 0x1F08, 0x1F8C, | |
4015 | XK_Greek_iota, XK_acute, 0x1F09, 0x1F8D, | |
4016 | XK_Greek_iota, XK_acute, 0x1F20, 0x1F94, | |
4017 | XK_Greek_iota, XK_acute, 0x1F21, 0x1F95, | |
4018 | XK_Greek_iota, XK_acute, 0x1F28, 0x1F9C, | |
4019 | XK_Greek_iota, XK_acute, 0x1F29, 0x1F9D, | |
4020 | XK_Greek_iota, XK_acute, 0x1F60, 0x1FA4, | |
4021 | XK_Greek_iota, XK_acute, 0x1F61, 0x1FA5, | |
4022 | XK_Greek_iota, XK_acute, 0x1F68, 0x1FAC, | |
4023 | XK_Greek_iota, XK_acute, 0x1F69, 0x1FAD, | |
4024 | XK_Greek_iota, XK_dead_grave, XK_Greek_alpha, 0x1FB2, | |
4025 | XK_Greek_iota, XK_dead_grave, XK_Greek_eta, 0x1FC2, | |
4026 | XK_Greek_iota, XK_dead_grave, XK_Greek_omega, 0x1FF2, | |
4027 | XK_Greek_iota, XK_dead_grave, 0x1F00, 0x1F82, | |
4028 | XK_Greek_iota, XK_dead_grave, 0x1F01, 0x1F83, | |
4029 | XK_Greek_iota, XK_dead_grave, 0x1F08, 0x1F8A, | |
4030 | XK_Greek_iota, XK_dead_grave, 0x1F09, 0x1F8B, | |
4031 | XK_Greek_iota, XK_dead_grave, 0x1F20, 0x1F92, | |
4032 | XK_Greek_iota, XK_dead_grave, 0x1F21, 0x1F93, | |
4033 | XK_Greek_iota, XK_dead_grave, 0x1F28, 0x1F9A, | |
4034 | XK_Greek_iota, XK_dead_grave, 0x1F29, 0x1F9B, | |
4035 | XK_Greek_iota, XK_dead_grave, 0x1F60, 0x1FA2, | |
4036 | XK_Greek_iota, XK_dead_grave, 0x1F61, 0x1FA3, | |
4037 | XK_Greek_iota, XK_dead_grave, 0x1F68, 0x1FAA, | |
4038 | XK_Greek_iota, XK_dead_grave, 0x1F69, 0x1FAB, | |
4039 | XK_Greek_iota, XK_dead_acute, XK_Greek_alpha, 0x1FB4, | |
4040 | XK_Greek_iota, XK_dead_acute, XK_Greek_eta, 0x1FC4, | |
4041 | XK_Greek_iota, XK_dead_acute, XK_Greek_omega, 0x1FF4, | |
4042 | XK_Greek_iota, XK_dead_acute, 0x1F00, 0x1F84, | |
4043 | XK_Greek_iota, XK_dead_acute, 0x1F01, 0x1F85, | |
4044 | XK_Greek_iota, XK_dead_acute, 0x1F08, 0x1F8C, | |
4045 | XK_Greek_iota, XK_dead_acute, 0x1F09, 0x1F8D, | |
4046 | XK_Greek_iota, XK_dead_acute, 0x1F20, 0x1F94, | |
4047 | XK_Greek_iota, XK_dead_acute, 0x1F21, 0x1F95, | |
4048 | XK_Greek_iota, XK_dead_acute, 0x1F28, 0x1F9C, | |
4049 | XK_Greek_iota, XK_dead_acute, 0x1F29, 0x1F9D, | |
4050 | XK_Greek_iota, XK_dead_acute, 0x1F60, 0x1FA4, | |
4051 | XK_Greek_iota, XK_dead_acute, 0x1F61, 0x1FA5, | |
4052 | XK_Greek_iota, XK_dead_acute, 0x1F68, 0x1FAC, | |
4053 | XK_Greek_iota, XK_dead_acute, 0x1F69, 0x1FAD, | |
4054 | XK_Greek_iota, XK_dead_tilde, XK_Greek_alpha, 0x1FB7, | |
4055 | XK_Greek_iota, XK_dead_tilde, XK_Greek_eta, 0x1FC7, | |
4056 | XK_Greek_iota, XK_dead_tilde, XK_Greek_omega, 0x1FF7, | |
4057 | XK_Greek_iota, XK_dead_tilde, 0x1F00, 0x1F86, | |
4058 | XK_Greek_iota, XK_dead_tilde, 0x1F01, 0x1F87, | |
4059 | XK_Greek_iota, XK_dead_tilde, 0x1F08, 0x1F8E, | |
4060 | XK_Greek_iota, XK_dead_tilde, 0x1F09, 0x1F8F, | |
4061 | XK_Greek_iota, XK_dead_tilde, 0x1F20, 0x1F96, | |
4062 | XK_Greek_iota, XK_dead_tilde, 0x1F21, 0x1F97, | |
4063 | XK_Greek_iota, XK_dead_tilde, 0x1F28, 0x1F9E, | |
4064 | XK_Greek_iota, XK_dead_tilde, 0x1F29, 0x1F9F, | |
4065 | XK_Greek_iota, XK_dead_tilde, 0x1F60, 0x1FA6, | |
4066 | XK_Greek_iota, XK_dead_tilde, 0x1F61, 0x1FA7, | |
4067 | XK_Greek_iota, XK_dead_tilde, 0x1F68, 0x1FAE, | |
4068 | XK_Greek_iota, XK_dead_tilde, 0x1F69, 0x1FAF, | |
4069 | XK_Greek_iota, XK_dead_psili, XK_Greek_ALPHA, 0x1F88, | |
4070 | XK_Greek_iota, XK_dead_psili, XK_Greek_ETA, 0x1F98, | |
4071 | XK_Greek_iota, XK_dead_psili, XK_Greek_OMEGA, 0x1FA8, | |
4072 | XK_Greek_iota, XK_dead_psili, XK_Greek_alpha, 0x1F80, | |
4073 | XK_Greek_iota, XK_dead_psili, XK_Greek_eta, 0x1F90, | |
4074 | XK_Greek_iota, XK_dead_psili, XK_Greek_omega, 0x1FA0, | |
4075 | XK_Greek_iota, XK_dead_dasia, XK_Greek_ALPHA, 0x1F89, | |
4076 | XK_Greek_iota, XK_dead_dasia, XK_Greek_ETA, 0x1F99, | |
4077 | XK_Greek_iota, XK_dead_dasia, XK_Greek_OMEGA, 0x1FA9, | |
4078 | XK_Greek_iota, XK_dead_dasia, XK_Greek_alpha, 0x1F81, | |
4079 | XK_Greek_iota, XK_dead_dasia, XK_Greek_eta, 0x1F91, | |
4080 | XK_Greek_iota, XK_dead_dasia, XK_Greek_omega, 0x1FA1, | |
4081 | XK_parenleft, XK_1, XK_0, XK_parenright, 0x2469, | |
4082 | XK_parenleft, XK_1, XK_1, XK_parenright, 0x246A, | |
4083 | XK_parenleft, XK_1, XK_2, XK_parenright, 0x246B, | |
4084 | XK_parenleft, XK_1, XK_3, XK_parenright, 0x246C, | |
4085 | XK_parenleft, XK_1, XK_4, XK_parenright, 0x246D, | |
4086 | XK_parenleft, XK_1, XK_5, XK_parenright, 0x246E, | |
4087 | XK_parenleft, XK_1, XK_6, XK_parenright, 0x246F, | |
4088 | XK_parenleft, XK_1, XK_7, XK_parenright, 0x2470, | |
4089 | XK_parenleft, XK_1, XK_8, XK_parenright, 0x2471, | |
4090 | XK_parenleft, XK_1, XK_9, XK_parenright, 0x2472, | |
4091 | XK_parenleft, XK_1, XK_KP_Space, XK_parenright, 0x246B, | |
4092 | XK_parenleft, XK_1, XK_KP_0, XK_parenright, 0x2469, | |
4093 | XK_parenleft, XK_1, XK_KP_1, XK_parenright, 0x246A, | |
4094 | XK_parenleft, XK_1, XK_KP_2, XK_parenright, 0x246B, | |
4095 | XK_parenleft, XK_1, XK_KP_3, XK_parenright, 0x246C, | |
4096 | XK_parenleft, XK_1, XK_KP_4, XK_parenright, 0x246D, | |
4097 | XK_parenleft, XK_1, XK_KP_5, XK_parenright, 0x246E, | |
4098 | XK_parenleft, XK_1, XK_KP_6, XK_parenright, 0x246F, | |
4099 | XK_parenleft, XK_1, XK_KP_7, XK_parenright, 0x2470, | |
4100 | XK_parenleft, XK_1, XK_KP_8, XK_parenright, 0x2471, | |
4101 | XK_parenleft, XK_1, XK_KP_9, XK_parenright, 0x2472, | |
4102 | XK_parenleft, XK_2, XK_0, XK_parenright, 0x2473, | |
4103 | XK_parenleft, XK_2, XK_1, XK_parenright, 0x3251, | |
4104 | XK_parenleft, XK_2, XK_2, XK_parenright, 0x3252, | |
4105 | XK_parenleft, XK_2, XK_3, XK_parenright, 0x3253, | |
4106 | XK_parenleft, XK_2, XK_4, XK_parenright, 0x3254, | |
4107 | XK_parenleft, XK_2, XK_5, XK_parenright, 0x3255, | |
4108 | XK_parenleft, XK_2, XK_6, XK_parenright, 0x3256, | |
4109 | XK_parenleft, XK_2, XK_7, XK_parenright, 0x3257, | |
4110 | XK_parenleft, XK_2, XK_8, XK_parenright, 0x3258, | |
4111 | XK_parenleft, XK_2, XK_9, XK_parenright, 0x3259, | |
4112 | XK_parenleft, XK_2, XK_KP_Space, XK_parenright, 0x3252, | |
4113 | XK_parenleft, XK_2, XK_KP_0, XK_parenright, 0x2473, | |
4114 | XK_parenleft, XK_2, XK_KP_1, XK_parenright, 0x3251, | |
4115 | XK_parenleft, XK_2, XK_KP_2, XK_parenright, 0x3252, | |
4116 | XK_parenleft, XK_2, XK_KP_3, XK_parenright, 0x3253, | |
4117 | XK_parenleft, XK_2, XK_KP_4, XK_parenright, 0x3254, | |
4118 | XK_parenleft, XK_2, XK_KP_5, XK_parenright, 0x3255, | |
4119 | XK_parenleft, XK_2, XK_KP_6, XK_parenright, 0x3256, | |
4120 | XK_parenleft, XK_2, XK_KP_7, XK_parenright, 0x3257, | |
4121 | XK_parenleft, XK_2, XK_KP_8, XK_parenright, 0x3258, | |
4122 | XK_parenleft, XK_2, XK_KP_9, XK_parenright, 0x3259, | |
4123 | XK_parenleft, XK_3, XK_0, XK_parenright, 0x325A, | |
4124 | XK_parenleft, XK_3, XK_1, XK_parenright, 0x325B, | |
4125 | XK_parenleft, XK_3, XK_2, XK_parenright, 0x325C, | |
4126 | XK_parenleft, XK_3, XK_3, XK_parenright, 0x325D, | |
4127 | XK_parenleft, XK_3, XK_4, XK_parenright, 0x325E, | |
4128 | XK_parenleft, XK_3, XK_5, XK_parenright, 0x325F, | |
4129 | XK_parenleft, XK_3, XK_6, XK_parenright, 0x32B1, | |
4130 | XK_parenleft, XK_3, XK_7, XK_parenright, 0x32B2, | |
4131 | XK_parenleft, XK_3, XK_8, XK_parenright, 0x32B3, | |
4132 | XK_parenleft, XK_3, XK_9, XK_parenright, 0x32B4, | |
4133 | XK_parenleft, XK_3, XK_KP_Space, XK_parenright, 0x325C, | |
4134 | XK_parenleft, XK_3, XK_KP_0, XK_parenright, 0x325A, | |
4135 | XK_parenleft, XK_3, XK_KP_1, XK_parenright, 0x325B, | |
4136 | XK_parenleft, XK_3, XK_KP_2, XK_parenright, 0x325C, | |
4137 | XK_parenleft, XK_3, XK_KP_3, XK_parenright, 0x325D, | |
4138 | XK_parenleft, XK_3, XK_KP_4, XK_parenright, 0x325E, | |
4139 | XK_parenleft, XK_3, XK_KP_5, XK_parenright, 0x325F, | |
4140 | XK_parenleft, XK_3, XK_KP_6, XK_parenright, 0x32B1, | |
4141 | XK_parenleft, XK_3, XK_KP_7, XK_parenright, 0x32B2, | |
4142 | XK_parenleft, XK_3, XK_KP_8, XK_parenright, 0x32B3, | |
4143 | XK_parenleft, XK_3, XK_KP_9, XK_parenright, 0x32B4, | |
4144 | XK_parenleft, XK_4, XK_0, XK_parenright, 0x32B5, | |
4145 | XK_parenleft, XK_4, XK_1, XK_parenright, 0x32B6, | |
4146 | XK_parenleft, XK_4, XK_2, XK_parenright, 0x32B7, | |
4147 | XK_parenleft, XK_4, XK_3, XK_parenright, 0x32B8, | |
4148 | XK_parenleft, XK_4, XK_4, XK_parenright, 0x32B9, | |
4149 | XK_parenleft, XK_4, XK_5, XK_parenright, 0x32BA, | |
4150 | XK_parenleft, XK_4, XK_6, XK_parenright, 0x32BB, | |
4151 | XK_parenleft, XK_4, XK_7, XK_parenright, 0x32BC, | |
4152 | XK_parenleft, XK_4, XK_8, XK_parenright, 0x32BD, | |
4153 | XK_parenleft, XK_4, XK_9, XK_parenright, 0x32BE, | |
4154 | XK_parenleft, XK_4, XK_KP_Space, XK_parenright, 0x32B7, | |
4155 | XK_parenleft, XK_4, XK_KP_0, XK_parenright, 0x32B5, | |
4156 | XK_parenleft, XK_4, XK_KP_1, XK_parenright, 0x32B6, | |
4157 | XK_parenleft, XK_4, XK_KP_2, XK_parenright, 0x32B7, | |
4158 | XK_parenleft, XK_4, XK_KP_3, XK_parenright, 0x32B8, | |
4159 | XK_parenleft, XK_4, XK_KP_4, XK_parenright, 0x32B9, | |
4160 | XK_parenleft, XK_4, XK_KP_5, XK_parenright, 0x32BA, | |
4161 | XK_parenleft, XK_4, XK_KP_6, XK_parenright, 0x32BB, | |
4162 | XK_parenleft, XK_4, XK_KP_7, XK_parenright, 0x32BC, | |
4163 | XK_parenleft, XK_4, XK_KP_8, XK_parenright, 0x32BD, | |
4164 | XK_parenleft, XK_4, XK_KP_9, XK_parenright, 0x32BE, | |
4165 | XK_parenleft, XK_5, XK_KP_0, XK_parenright, 0x32BF, | |
4166 | XK_parenleft, 0x1100, 0x1161, XK_parenright, 0x326E, | |
4167 | XK_parenleft, 0x1102, 0x1161, XK_parenright, 0x326F, | |
4168 | XK_parenleft, 0x1103, 0x1161, XK_parenright, 0x3270, | |
4169 | XK_parenleft, 0x1105, 0x1161, XK_parenright, 0x3271, | |
4170 | XK_parenleft, 0x1106, 0x1161, XK_parenright, 0x3272, | |
4171 | XK_parenleft, 0x1107, 0x1161, XK_parenright, 0x3273, | |
4172 | XK_parenleft, 0x1109, 0x1161, XK_parenright, 0x3274, | |
4173 | XK_parenleft, 0x110B, 0x1161, XK_parenright, 0x3275, | |
4174 | XK_parenleft, 0x110C, 0x1161, XK_parenright, 0x3276, | |
4175 | XK_parenleft, 0x110E, 0x1161, XK_parenright, 0x3277, | |
4176 | XK_parenleft, 0x110F, 0x1161, XK_parenright, 0x3278, | |
4177 | XK_parenleft, 0x1110, 0x1161, XK_parenright, 0x3279, | |
4178 | XK_parenleft, 0x1111, 0x1161, XK_parenright, 0x327A, | |
4179 | XK_parenleft, 0x1112, 0x1161, XK_parenright, 0x327B, | |
4180 | XK_parenleft, XK_KP_Space, XK_0, XK_parenright, 0x2473, | |
4181 | XK_parenleft, XK_KP_Space, XK_1, XK_parenright, 0x3251, | |
4182 | XK_parenleft, XK_KP_Space, XK_2, XK_parenright, 0x3252, | |
4183 | XK_parenleft, XK_KP_Space, XK_3, XK_parenright, 0x3253, | |
4184 | XK_parenleft, XK_KP_Space, XK_4, XK_parenright, 0x3254, | |
4185 | XK_parenleft, XK_KP_Space, XK_5, XK_parenright, 0x3255, | |
4186 | XK_parenleft, XK_KP_Space, XK_6, XK_parenright, 0x3256, | |
4187 | XK_parenleft, XK_KP_Space, XK_7, XK_parenright, 0x3257, | |
4188 | XK_parenleft, XK_KP_Space, XK_8, XK_parenright, 0x3258, | |
4189 | XK_parenleft, XK_KP_Space, XK_9, XK_parenright, 0x3259, | |
4190 | XK_parenleft, XK_KP_Space, XK_KP_Space, XK_parenright, 0x3252, | |
4191 | XK_parenleft, XK_KP_Space, XK_KP_0, XK_parenright, 0x2473, | |
4192 | XK_parenleft, XK_KP_Space, XK_KP_1, XK_parenright, 0x3251, | |
4193 | XK_parenleft, XK_KP_Space, XK_KP_2, XK_parenright, 0x3252, | |
4194 | XK_parenleft, XK_KP_Space, XK_KP_3, XK_parenright, 0x3253, | |
4195 | XK_parenleft, XK_KP_Space, XK_KP_4, XK_parenright, 0x3254, | |
4196 | XK_parenleft, XK_KP_Space, XK_KP_5, XK_parenright, 0x3255, | |
4197 | XK_parenleft, XK_KP_Space, XK_KP_6, XK_parenright, 0x3256, | |
4198 | XK_parenleft, XK_KP_Space, XK_KP_7, XK_parenright, 0x3257, | |
4199 | XK_parenleft, XK_KP_Space, XK_KP_8, XK_parenright, 0x3258, | |
4200 | XK_parenleft, XK_KP_Space, XK_KP_9, XK_parenright, 0x3259, | |
4201 | XK_parenleft, XK_KP_1, XK_0, XK_parenright, 0x2469, | |
4202 | XK_parenleft, XK_KP_1, XK_1, XK_parenright, 0x246A, | |
4203 | XK_parenleft, XK_KP_1, XK_2, XK_parenright, 0x246B, | |
4204 | XK_parenleft, XK_KP_1, XK_3, XK_parenright, 0x246C, | |
4205 | XK_parenleft, XK_KP_1, XK_4, XK_parenright, 0x246D, | |
4206 | XK_parenleft, XK_KP_1, XK_5, XK_parenright, 0x246E, | |
4207 | XK_parenleft, XK_KP_1, XK_6, XK_parenright, 0x246F, | |
4208 | XK_parenleft, XK_KP_1, XK_7, XK_parenright, 0x2470, | |
4209 | XK_parenleft, XK_KP_1, XK_8, XK_parenright, 0x2471, | |
4210 | XK_parenleft, XK_KP_1, XK_9, XK_parenright, 0x2472, | |
4211 | XK_parenleft, XK_KP_1, XK_KP_Space, XK_parenright, 0x246B, | |
4212 | XK_parenleft, XK_KP_1, XK_KP_0, XK_parenright, 0x2469, | |
4213 | XK_parenleft, XK_KP_1, XK_KP_1, XK_parenright, 0x246A, | |
4214 | XK_parenleft, XK_KP_1, XK_KP_2, XK_parenright, 0x246B, | |
4215 | XK_parenleft, XK_KP_1, XK_KP_3, XK_parenright, 0x246C, | |
4216 | XK_parenleft, XK_KP_1, XK_KP_4, XK_parenright, 0x246D, | |
4217 | XK_parenleft, XK_KP_1, XK_KP_5, XK_parenright, 0x246E, | |
4218 | XK_parenleft, XK_KP_1, XK_KP_6, XK_parenright, 0x246F, | |
4219 | XK_parenleft, XK_KP_1, XK_KP_7, XK_parenright, 0x2470, | |
4220 | XK_parenleft, XK_KP_1, XK_KP_8, XK_parenright, 0x2471, | |
4221 | XK_parenleft, XK_KP_1, XK_KP_9, XK_parenright, 0x2472, | |
4222 | XK_parenleft, XK_KP_2, XK_0, XK_parenright, 0x2473, | |
4223 | XK_parenleft, XK_KP_2, XK_1, XK_parenright, 0x3251, | |
4224 | XK_parenleft, XK_KP_2, XK_2, XK_parenright, 0x3252, | |
4225 | XK_parenleft, XK_KP_2, XK_3, XK_parenright, 0x3253, | |
4226 | XK_parenleft, XK_KP_2, XK_4, XK_parenright, 0x3254, | |
4227 | XK_parenleft, XK_KP_2, XK_5, XK_parenright, 0x3255, | |
4228 | XK_parenleft, XK_KP_2, XK_6, XK_parenright, 0x3256, | |
4229 | XK_parenleft, XK_KP_2, XK_7, XK_parenright, 0x3257, | |
4230 | XK_parenleft, XK_KP_2, XK_8, XK_parenright, 0x3258, | |
4231 | XK_parenleft, XK_KP_2, XK_9, XK_parenright, 0x3259, | |
4232 | XK_parenleft, XK_KP_2, XK_KP_Space, XK_parenright, 0x3252, | |
4233 | XK_parenleft, XK_KP_2, XK_KP_0, XK_parenright, 0x2473, | |
4234 | XK_parenleft, XK_KP_2, XK_KP_1, XK_parenright, 0x3251, | |
4235 | XK_parenleft, XK_KP_2, XK_KP_2, XK_parenright, 0x3252, | |
4236 | XK_parenleft, XK_KP_2, XK_KP_3, XK_parenright, 0x3253, | |
4237 | XK_parenleft, XK_KP_2, XK_KP_4, XK_parenright, 0x3254, | |
4238 | XK_parenleft, XK_KP_2, XK_KP_5, XK_parenright, 0x3255, | |
4239 | XK_parenleft, XK_KP_2, XK_KP_6, XK_parenright, 0x3256, | |
4240 | XK_parenleft, XK_KP_2, XK_KP_7, XK_parenright, 0x3257, | |
4241 | XK_parenleft, XK_KP_2, XK_KP_8, XK_parenright, 0x3258, | |
4242 | XK_parenleft, XK_KP_2, XK_KP_9, XK_parenright, 0x3259, | |
4243 | XK_parenleft, XK_KP_3, XK_0, XK_parenright, 0x325A, | |
4244 | XK_parenleft, XK_KP_3, XK_1, XK_parenright, 0x325B, | |
4245 | XK_parenleft, XK_KP_3, XK_2, XK_parenright, 0x325C, | |
4246 | XK_parenleft, XK_KP_3, XK_3, XK_parenright, 0x325D, | |
4247 | XK_parenleft, XK_KP_3, XK_4, XK_parenright, 0x325E, | |
4248 | XK_parenleft, XK_KP_3, XK_5, XK_parenright, 0x325F, | |
4249 | XK_parenleft, XK_KP_3, XK_6, XK_parenright, 0x32B1, | |
4250 | XK_parenleft, XK_KP_3, XK_7, XK_parenright, 0x32B2, | |
4251 | XK_parenleft, XK_KP_3, XK_8, XK_parenright, 0x32B3, | |
4252 | XK_parenleft, XK_KP_3, XK_9, XK_parenright, 0x32B4, | |
4253 | XK_parenleft, XK_KP_3, XK_KP_Space, XK_parenright, 0x325C, | |
4254 | XK_parenleft, XK_KP_3, XK_KP_0, XK_parenright, 0x325A, | |
4255 | XK_parenleft, XK_KP_3, XK_KP_1, XK_parenright, 0x325B, | |
4256 | XK_parenleft, XK_KP_3, XK_KP_2, XK_parenright, 0x325C, | |
4257 | XK_parenleft, XK_KP_3, XK_KP_3, XK_parenright, 0x325D, | |
4258 | XK_parenleft, XK_KP_3, XK_KP_4, XK_parenright, 0x325E, | |
4259 | XK_parenleft, XK_KP_3, XK_KP_5, XK_parenright, 0x325F, | |
4260 | XK_parenleft, XK_KP_3, XK_KP_6, XK_parenright, 0x32B1, | |
4261 | XK_parenleft, XK_KP_3, XK_KP_7, XK_parenright, 0x32B2, | |
4262 | XK_parenleft, XK_KP_3, XK_KP_8, XK_parenright, 0x32B3, | |
4263 | XK_parenleft, XK_KP_3, XK_KP_9, XK_parenright, 0x32B4, | |
4264 | XK_parenleft, XK_KP_4, XK_0, XK_parenright, 0x32B5, | |
4265 | XK_parenleft, XK_KP_4, XK_1, XK_parenright, 0x32B6, | |
4266 | XK_parenleft, XK_KP_4, XK_2, XK_parenright, 0x32B7, | |
4267 | XK_parenleft, XK_KP_4, XK_3, XK_parenright, 0x32B8, | |
4268 | XK_parenleft, XK_KP_4, XK_4, XK_parenright, 0x32B9, | |
4269 | XK_parenleft, XK_KP_4, XK_5, XK_parenright, 0x32BA, | |
4270 | XK_parenleft, XK_KP_4, XK_6, XK_parenright, 0x32BB, | |
4271 | XK_parenleft, XK_KP_4, XK_7, XK_parenright, 0x32BC, | |
4272 | XK_parenleft, XK_KP_4, XK_8, XK_parenright, 0x32BD, | |
4273 | XK_parenleft, XK_KP_4, XK_9, XK_parenright, 0x32BE, | |
4274 | XK_parenleft, XK_KP_4, XK_KP_Space, XK_parenright, 0x32B7, | |
4275 | XK_parenleft, XK_KP_4, XK_KP_0, XK_parenright, 0x32B5, | |
4276 | XK_parenleft, XK_KP_4, XK_KP_1, XK_parenright, 0x32B6, | |
4277 | XK_parenleft, XK_KP_4, XK_KP_2, XK_parenright, 0x32B7, | |
4278 | XK_parenleft, XK_KP_4, XK_KP_3, XK_parenright, 0x32B8, | |
4279 | XK_parenleft, XK_KP_4, XK_KP_4, XK_parenright, 0x32B9, | |
4280 | XK_parenleft, XK_KP_4, XK_KP_5, XK_parenright, 0x32BA, | |
4281 | XK_parenleft, XK_KP_4, XK_KP_6, XK_parenright, 0x32BB, | |
4282 | XK_parenleft, XK_KP_4, XK_KP_7, XK_parenright, 0x32BC, | |
4283 | XK_parenleft, XK_KP_4, XK_KP_8, XK_parenright, 0x32BD, | |
4284 | XK_parenleft, XK_KP_4, XK_KP_9, XK_parenright, 0x32BE, | |
4285 | XK_parenleft, XK_KP_5, XK_KP_0, XK_parenright, 0x32BF, | |
4286 | XK_Greek_iota, XK_apostrophe, XK_parenleft, XK_Greek_ALPHA, 0x1F8D, | |
4287 | XK_Greek_iota, XK_apostrophe, XK_parenleft, XK_Greek_ETA, 0x1F9D, | |
4288 | XK_Greek_iota, XK_apostrophe, XK_parenleft, XK_Greek_OMEGA, 0x1FAD, | |
4289 | XK_Greek_iota, XK_apostrophe, XK_parenleft, XK_Greek_alpha, 0x1F85, | |
4290 | XK_Greek_iota, XK_apostrophe, XK_parenleft, XK_Greek_eta, 0x1F95, | |
4291 | XK_Greek_iota, XK_apostrophe, XK_parenleft, XK_Greek_omega, 0x1FA5, | |
4292 | XK_Greek_iota, XK_apostrophe, XK_parenright, XK_Greek_ALPHA, 0x1F8C, | |
4293 | XK_Greek_iota, XK_apostrophe, XK_parenright, XK_Greek_ETA, 0x1F9C, | |
4294 | XK_Greek_iota, XK_apostrophe, XK_parenright, XK_Greek_OMEGA, 0x1FAC, | |
4295 | XK_Greek_iota, XK_apostrophe, XK_parenright, XK_Greek_alpha, 0x1F84, | |
4296 | XK_Greek_iota, XK_apostrophe, XK_parenright, XK_Greek_eta, 0x1F94, | |
4297 | XK_Greek_iota, XK_apostrophe, XK_parenright, XK_Greek_omega, 0x1FA4, | |
4298 | XK_Greek_iota, XK_apostrophe, XK_dead_psili, XK_Greek_ALPHA, 0x1F8C, | |
4299 | XK_Greek_iota, XK_apostrophe, XK_dead_psili, XK_Greek_ETA, 0x1F9C, | |
4300 | XK_Greek_iota, XK_apostrophe, XK_dead_psili, XK_Greek_OMEGA, 0x1FAC, | |
4301 | XK_Greek_iota, XK_apostrophe, XK_dead_psili, XK_Greek_alpha, 0x1F84, | |
4302 | XK_Greek_iota, XK_apostrophe, XK_dead_psili, XK_Greek_eta, 0x1F94, | |
4303 | XK_Greek_iota, XK_apostrophe, XK_dead_psili, XK_Greek_omega, 0x1FA4, | |
4304 | XK_Greek_iota, XK_apostrophe, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8D, | |
4305 | XK_Greek_iota, XK_apostrophe, XK_dead_dasia, XK_Greek_ETA, 0x1F9D, | |
4306 | XK_Greek_iota, XK_apostrophe, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAD, | |
4307 | XK_Greek_iota, XK_apostrophe, XK_dead_dasia, XK_Greek_alpha, 0x1F85, | |
4308 | XK_Greek_iota, XK_apostrophe, XK_dead_dasia, XK_Greek_eta, 0x1F95, | |
4309 | XK_Greek_iota, XK_apostrophe, XK_dead_dasia, XK_Greek_omega, 0x1FA5, | |
4310 | XK_Greek_iota, XK_grave, XK_parenleft, XK_Greek_ALPHA, 0x1F8B, | |
4311 | XK_Greek_iota, XK_grave, XK_parenleft, XK_Greek_ETA, 0x1F9B, | |
4312 | XK_Greek_iota, XK_grave, XK_parenleft, XK_Greek_OMEGA, 0x1FAB, | |
4313 | XK_Greek_iota, XK_grave, XK_parenleft, XK_Greek_alpha, 0x1F83, | |
4314 | XK_Greek_iota, XK_grave, XK_parenleft, XK_Greek_eta, 0x1F93, | |
4315 | XK_Greek_iota, XK_grave, XK_parenleft, XK_Greek_omega, 0x1FA3, | |
4316 | XK_Greek_iota, XK_grave, XK_parenright, XK_Greek_ALPHA, 0x1F8A, | |
4317 | XK_Greek_iota, XK_grave, XK_parenright, XK_Greek_ETA, 0x1F9A, | |
4318 | XK_Greek_iota, XK_grave, XK_parenright, XK_Greek_OMEGA, 0x1FAA, | |
4319 | XK_Greek_iota, XK_grave, XK_parenright, XK_Greek_alpha, 0x1F82, | |
4320 | XK_Greek_iota, XK_grave, XK_parenright, XK_Greek_eta, 0x1F92, | |
4321 | XK_Greek_iota, XK_grave, XK_parenright, XK_Greek_omega, 0x1FA2, | |
4322 | XK_Greek_iota, XK_grave, XK_dead_psili, XK_Greek_ALPHA, 0x1F8A, | |
4323 | XK_Greek_iota, XK_grave, XK_dead_psili, XK_Greek_ETA, 0x1F9A, | |
4324 | XK_Greek_iota, XK_grave, XK_dead_psili, XK_Greek_OMEGA, 0x1FAA, | |
4325 | XK_Greek_iota, XK_grave, XK_dead_psili, XK_Greek_alpha, 0x1F82, | |
4326 | XK_Greek_iota, XK_grave, XK_dead_psili, XK_Greek_eta, 0x1F92, | |
4327 | XK_Greek_iota, XK_grave, XK_dead_psili, XK_Greek_omega, 0x1FA2, | |
4328 | XK_Greek_iota, XK_grave, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8B, | |
4329 | XK_Greek_iota, XK_grave, XK_dead_dasia, XK_Greek_ETA, 0x1F9B, | |
4330 | XK_Greek_iota, XK_grave, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAB, | |
4331 | XK_Greek_iota, XK_grave, XK_dead_dasia, XK_Greek_alpha, 0x1F83, | |
4332 | XK_Greek_iota, XK_grave, XK_dead_dasia, XK_Greek_eta, 0x1F93, | |
4333 | XK_Greek_iota, XK_grave, XK_dead_dasia, XK_Greek_omega, 0x1FA3, | |
4334 | XK_Greek_iota, XK_asciitilde, XK_parenleft, XK_Greek_ALPHA, 0x1F8F, | |
4335 | XK_Greek_iota, XK_asciitilde, XK_parenleft, XK_Greek_ETA, 0x1F9F, | |
4336 | XK_Greek_iota, XK_asciitilde, XK_parenleft, XK_Greek_OMEGA, 0x1FAF, | |
4337 | XK_Greek_iota, XK_asciitilde, XK_parenleft, XK_Greek_alpha, 0x1F87, | |
4338 | XK_Greek_iota, XK_asciitilde, XK_parenleft, XK_Greek_eta, 0x1F97, | |
4339 | XK_Greek_iota, XK_asciitilde, XK_parenleft, XK_Greek_omega, 0x1FA7, | |
4340 | XK_Greek_iota, XK_asciitilde, XK_parenright, XK_Greek_ALPHA, 0x1F8E, | |
4341 | XK_Greek_iota, XK_asciitilde, XK_parenright, XK_Greek_ETA, 0x1F9E, | |
4342 | XK_Greek_iota, XK_asciitilde, XK_parenright, XK_Greek_OMEGA, 0x1FAE, | |
4343 | XK_Greek_iota, XK_asciitilde, XK_parenright, XK_Greek_alpha, 0x1F86, | |
4344 | XK_Greek_iota, XK_asciitilde, XK_parenright, XK_Greek_eta, 0x1F96, | |
4345 | XK_Greek_iota, XK_asciitilde, XK_parenright, XK_Greek_omega, 0x1FA6, | |
4346 | XK_Greek_iota, XK_asciitilde, XK_dead_psili, XK_Greek_ALPHA, 0x1F8E, | |
4347 | XK_Greek_iota, XK_asciitilde, XK_dead_psili, XK_Greek_ETA, 0x1F9E, | |
4348 | XK_Greek_iota, XK_asciitilde, XK_dead_psili, XK_Greek_OMEGA, 0x1FAE, | |
4349 | XK_Greek_iota, XK_asciitilde, XK_dead_psili, XK_Greek_alpha, 0x1F86, | |
4350 | XK_Greek_iota, XK_asciitilde, XK_dead_psili, XK_Greek_eta, 0x1F96, | |
4351 | XK_Greek_iota, XK_asciitilde, XK_dead_psili, XK_Greek_omega, 0x1FA6, | |
4352 | XK_Greek_iota, XK_asciitilde, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8F, | |
4353 | XK_Greek_iota, XK_asciitilde, XK_dead_dasia, XK_Greek_ETA, 0x1F9F, | |
4354 | XK_Greek_iota, XK_asciitilde, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAF, | |
4355 | XK_Greek_iota, XK_asciitilde, XK_dead_dasia, XK_Greek_alpha, 0x1F87, | |
4356 | XK_Greek_iota, XK_asciitilde, XK_dead_dasia, XK_Greek_eta, 0x1F97, | |
4357 | XK_Greek_iota, XK_asciitilde, XK_dead_dasia, XK_Greek_omega, 0x1FA7, | |
4358 | XK_Greek_iota, XK_acute, XK_parenleft, XK_Greek_ALPHA, 0x1F8D, | |
4359 | XK_Greek_iota, XK_acute, XK_parenleft, XK_Greek_ETA, 0x1F9D, | |
4360 | XK_Greek_iota, XK_acute, XK_parenleft, XK_Greek_OMEGA, 0x1FAD, | |
4361 | XK_Greek_iota, XK_acute, XK_parenleft, XK_Greek_alpha, 0x1F85, | |
4362 | XK_Greek_iota, XK_acute, XK_parenleft, XK_Greek_eta, 0x1F95, | |
4363 | XK_Greek_iota, XK_acute, XK_parenleft, XK_Greek_omega, 0x1FA5, | |
4364 | XK_Greek_iota, XK_acute, XK_parenright, XK_Greek_ALPHA, 0x1F8C, | |
4365 | XK_Greek_iota, XK_acute, XK_parenright, XK_Greek_ETA, 0x1F9C, | |
4366 | XK_Greek_iota, XK_acute, XK_parenright, XK_Greek_OMEGA, 0x1FAC, | |
4367 | XK_Greek_iota, XK_acute, XK_parenright, XK_Greek_alpha, 0x1F84, | |
4368 | XK_Greek_iota, XK_acute, XK_parenright, XK_Greek_eta, 0x1F94, | |
4369 | XK_Greek_iota, XK_acute, XK_parenright, XK_Greek_omega, 0x1FA4, | |
4370 | XK_Greek_iota, XK_acute, XK_dead_psili, XK_Greek_ALPHA, 0x1F8C, | |
4371 | XK_Greek_iota, XK_acute, XK_dead_psili, XK_Greek_ETA, 0x1F9C, | |
4372 | XK_Greek_iota, XK_acute, XK_dead_psili, XK_Greek_OMEGA, 0x1FAC, | |
4373 | XK_Greek_iota, XK_acute, XK_dead_psili, XK_Greek_alpha, 0x1F84, | |
4374 | XK_Greek_iota, XK_acute, XK_dead_psili, XK_Greek_eta, 0x1F94, | |
4375 | XK_Greek_iota, XK_acute, XK_dead_psili, XK_Greek_omega, 0x1FA4, | |
4376 | XK_Greek_iota, XK_acute, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8D, | |
4377 | XK_Greek_iota, XK_acute, XK_dead_dasia, XK_Greek_ETA, 0x1F9D, | |
4378 | XK_Greek_iota, XK_acute, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAD, | |
4379 | XK_Greek_iota, XK_acute, XK_dead_dasia, XK_Greek_alpha, 0x1F85, | |
4380 | XK_Greek_iota, XK_acute, XK_dead_dasia, XK_Greek_eta, 0x1F95, | |
4381 | XK_Greek_iota, XK_acute, XK_dead_dasia, XK_Greek_omega, 0x1FA5, | |
4382 | XK_Greek_iota, XK_dead_grave, XK_parenleft, XK_Greek_ALPHA, 0x1F8B, | |
4383 | XK_Greek_iota, XK_dead_grave, XK_parenleft, XK_Greek_ETA, 0x1F9B, | |
4384 | XK_Greek_iota, XK_dead_grave, XK_parenleft, XK_Greek_OMEGA, 0x1FAB, | |
4385 | XK_Greek_iota, XK_dead_grave, XK_parenleft, XK_Greek_alpha, 0x1F83, | |
4386 | XK_Greek_iota, XK_dead_grave, XK_parenleft, XK_Greek_eta, 0x1F93, | |
4387 | XK_Greek_iota, XK_dead_grave, XK_parenleft, XK_Greek_omega, 0x1FA3, | |
4388 | XK_Greek_iota, XK_dead_grave, XK_parenright, XK_Greek_ALPHA, 0x1F8A, | |
4389 | XK_Greek_iota, XK_dead_grave, XK_parenright, XK_Greek_ETA, 0x1F9A, | |
4390 | XK_Greek_iota, XK_dead_grave, XK_parenright, XK_Greek_OMEGA, 0x1FAA, | |
4391 | XK_Greek_iota, XK_dead_grave, XK_parenright, XK_Greek_alpha, 0x1F82, | |
4392 | XK_Greek_iota, XK_dead_grave, XK_parenright, XK_Greek_eta, 0x1F92, | |
4393 | XK_Greek_iota, XK_dead_grave, XK_parenright, XK_Greek_omega, 0x1FA2, | |
4394 | XK_Greek_iota, XK_dead_grave, XK_dead_psili, XK_Greek_ALPHA, 0x1F8A, | |
4395 | XK_Greek_iota, XK_dead_grave, XK_dead_psili, XK_Greek_ETA, 0x1F9A, | |
4396 | XK_Greek_iota, XK_dead_grave, XK_dead_psili, XK_Greek_OMEGA, 0x1FAA, | |
4397 | XK_Greek_iota, XK_dead_grave, XK_dead_psili, XK_Greek_alpha, 0x1F82, | |
4398 | XK_Greek_iota, XK_dead_grave, XK_dead_psili, XK_Greek_eta, 0x1F92, | |
4399 | XK_Greek_iota, XK_dead_grave, XK_dead_psili, XK_Greek_omega, 0x1FA2, | |
4400 | XK_Greek_iota, XK_dead_grave, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8B, | |
4401 | XK_Greek_iota, XK_dead_grave, XK_dead_dasia, XK_Greek_ETA, 0x1F9B, | |
4402 | XK_Greek_iota, XK_dead_grave, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAB, | |
4403 | XK_Greek_iota, XK_dead_grave, XK_dead_dasia, XK_Greek_alpha, 0x1F83, | |
4404 | XK_Greek_iota, XK_dead_grave, XK_dead_dasia, XK_Greek_eta, 0x1F93, | |
4405 | XK_Greek_iota, XK_dead_grave, XK_dead_dasia, XK_Greek_omega, 0x1FA3, | |
4406 | XK_Greek_iota, XK_dead_acute, XK_parenleft, XK_Greek_ALPHA, 0x1F8D, | |
4407 | XK_Greek_iota, XK_dead_acute, XK_parenleft, XK_Greek_ETA, 0x1F9D, | |
4408 | XK_Greek_iota, XK_dead_acute, XK_parenleft, XK_Greek_OMEGA, 0x1FAD, | |
4409 | XK_Greek_iota, XK_dead_acute, XK_parenleft, XK_Greek_alpha, 0x1F85, | |
4410 | XK_Greek_iota, XK_dead_acute, XK_parenleft, XK_Greek_eta, 0x1F95, | |
4411 | XK_Greek_iota, XK_dead_acute, XK_parenleft, XK_Greek_omega, 0x1FA5, | |
4412 | XK_Greek_iota, XK_dead_acute, XK_parenright, XK_Greek_ALPHA, 0x1F8C, | |
4413 | XK_Greek_iota, XK_dead_acute, XK_parenright, XK_Greek_ETA, 0x1F9C, | |
4414 | XK_Greek_iota, XK_dead_acute, XK_parenright, XK_Greek_OMEGA, 0x1FAC, | |
4415 | XK_Greek_iota, XK_dead_acute, XK_parenright, XK_Greek_alpha, 0x1F84, | |
4416 | XK_Greek_iota, XK_dead_acute, XK_parenright, XK_Greek_eta, 0x1F94, | |
4417 | XK_Greek_iota, XK_dead_acute, XK_parenright, XK_Greek_omega, 0x1FA4, | |
4418 | XK_Greek_iota, XK_dead_acute, XK_dead_psili, XK_Greek_ALPHA, 0x1F8C, | |
4419 | XK_Greek_iota, XK_dead_acute, XK_dead_psili, XK_Greek_ETA, 0x1F9C, | |
4420 | XK_Greek_iota, XK_dead_acute, XK_dead_psili, XK_Greek_OMEGA, 0x1FAC, | |
4421 | XK_Greek_iota, XK_dead_acute, XK_dead_psili, XK_Greek_alpha, 0x1F84, | |
4422 | XK_Greek_iota, XK_dead_acute, XK_dead_psili, XK_Greek_eta, 0x1F94, | |
4423 | XK_Greek_iota, XK_dead_acute, XK_dead_psili, XK_Greek_omega, 0x1FA4, | |
4424 | XK_Greek_iota, XK_dead_acute, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8D, | |
4425 | XK_Greek_iota, XK_dead_acute, XK_dead_dasia, XK_Greek_ETA, 0x1F9D, | |
4426 | XK_Greek_iota, XK_dead_acute, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAD, | |
4427 | XK_Greek_iota, XK_dead_acute, XK_dead_dasia, XK_Greek_alpha, 0x1F85, | |
4428 | XK_Greek_iota, XK_dead_acute, XK_dead_dasia, XK_Greek_eta, 0x1F95, | |
4429 | XK_Greek_iota, XK_dead_acute, XK_dead_dasia, XK_Greek_omega, 0x1FA5, | |
4430 | XK_Greek_iota, XK_dead_tilde, XK_parenleft, XK_Greek_ALPHA, 0x1F8F, | |
4431 | XK_Greek_iota, XK_dead_tilde, XK_parenleft, XK_Greek_ETA, 0x1F9F, | |
4432 | XK_Greek_iota, XK_dead_tilde, XK_parenleft, XK_Greek_OMEGA, 0x1FAF, | |
4433 | XK_Greek_iota, XK_dead_tilde, XK_parenleft, XK_Greek_alpha, 0x1F87, | |
4434 | XK_Greek_iota, XK_dead_tilde, XK_parenleft, XK_Greek_eta, 0x1F97, | |
4435 | XK_Greek_iota, XK_dead_tilde, XK_parenleft, XK_Greek_omega, 0x1FA7, | |
4436 | XK_Greek_iota, XK_dead_tilde, XK_parenright, XK_Greek_ALPHA, 0x1F8E, | |
4437 | XK_Greek_iota, XK_dead_tilde, XK_parenright, XK_Greek_ETA, 0x1F9E, | |
4438 | XK_Greek_iota, XK_dead_tilde, XK_parenright, XK_Greek_OMEGA, 0x1FAE, | |
4439 | XK_Greek_iota, XK_dead_tilde, XK_parenright, XK_Greek_alpha, 0x1F86, | |
4440 | XK_Greek_iota, XK_dead_tilde, XK_parenright, XK_Greek_eta, 0x1F96, | |
4441 | XK_Greek_iota, XK_dead_tilde, XK_parenright, XK_Greek_omega, 0x1FA6, | |
4442 | XK_Greek_iota, XK_dead_tilde, XK_dead_psili, XK_Greek_ALPHA, 0x1F8E, | |
4443 | XK_Greek_iota, XK_dead_tilde, XK_dead_psili, XK_Greek_ETA, 0x1F9E, | |
4444 | XK_Greek_iota, XK_dead_tilde, XK_dead_psili, XK_Greek_OMEGA, 0x1FAE, | |
4445 | XK_Greek_iota, XK_dead_tilde, XK_dead_psili, XK_Greek_alpha, 0x1F86, | |
4446 | XK_Greek_iota, XK_dead_tilde, XK_dead_psili, XK_Greek_eta, 0x1F96, | |
4447 | XK_Greek_iota, XK_dead_tilde, XK_dead_psili, XK_Greek_omega, 0x1FA6, | |
4448 | XK_Greek_iota, XK_dead_tilde, XK_dead_dasia, XK_Greek_ALPHA, 0x1F8F, | |
4449 | XK_Greek_iota, XK_dead_tilde, XK_dead_dasia, XK_Greek_ETA, 0x1F9F, | |
4450 | XK_Greek_iota, XK_dead_tilde, XK_dead_dasia, XK_Greek_OMEGA, 0x1FAF, | |
4451 | XK_Greek_iota, XK_dead_tilde, XK_dead_dasia, XK_Greek_alpha, 0x1F87, | |
4452 | XK_Greek_iota, XK_dead_tilde, XK_dead_dasia, XK_Greek_eta, 0x1F97, | |
4453 | }; | |
4454 | ||
4455 | #endif | |
4456 | ||
4457 | ||
4458 | // kate: indent-mode cstyle; space-indent on; indent-width 0; |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2013 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #ifndef KEYDATA_H | |
20 | #define KEYDATA_H | |
21 | ||
22 | struct _FcitxKeySymToUnicode{ | |
23 | uint16_t keysym; | |
24 | uint16_t ucs; | |
25 | }; | |
26 | ||
27 | struct _FcitxUnicodeToKeySym { | |
28 | uint16_t keysym; | |
29 | uint16_t ucs; | |
30 | }; | |
31 | ||
32 | static const struct _FcitxKeySymToUnicode gdk_keysym_to_unicode_tab[] = { | |
33 | { 0x01a1, 0x0104 }, /* Aogonek Ą LATIN CAPITAL LETTER A WITH OGONEK */ | |
34 | { 0x01a2, 0x02d8 }, /* breve ˘ BREVE */ | |
35 | { 0x01a3, 0x0141 }, /* Lstroke Ł LATIN CAPITAL LETTER L WITH STROKE */ | |
36 | { 0x01a5, 0x013d }, /* Lcaron Ľ LATIN CAPITAL LETTER L WITH CARON */ | |
37 | { 0x01a6, 0x015a }, /* Sacute Ś LATIN CAPITAL LETTER S WITH ACUTE */ | |
38 | { 0x01a9, 0x0160 }, /* Scaron Š LATIN CAPITAL LETTER S WITH CARON */ | |
39 | { 0x01aa, 0x015e }, /* Scedilla Ş LATIN CAPITAL LETTER S WITH CEDILLA */ | |
40 | { 0x01ab, 0x0164 }, /* Tcaron Ť LATIN CAPITAL LETTER T WITH CARON */ | |
41 | { 0x01ac, 0x0179 }, /* Zacute Ź LATIN CAPITAL LETTER Z WITH ACUTE */ | |
42 | { 0x01ae, 0x017d }, /* Zcaron Ž LATIN CAPITAL LETTER Z WITH CARON */ | |
43 | { 0x01af, 0x017b }, /* Zabovedot Ż LATIN CAPITAL LETTER Z WITH DOT ABOVE */ | |
44 | { 0x01b1, 0x0105 }, /* aogonek ą LATIN SMALL LETTER A WITH OGONEK */ | |
45 | { 0x01b2, 0x02db }, /* ogonek ˛ OGONEK */ | |
46 | { 0x01b3, 0x0142 }, /* lstroke ł LATIN SMALL LETTER L WITH STROKE */ | |
47 | { 0x01b5, 0x013e }, /* lcaron ľ LATIN SMALL LETTER L WITH CARON */ | |
48 | { 0x01b6, 0x015b }, /* sacute ś LATIN SMALL LETTER S WITH ACUTE */ | |
49 | { 0x01b7, 0x02c7 }, /* caron ˇ CARON */ | |
50 | { 0x01b9, 0x0161 }, /* scaron š LATIN SMALL LETTER S WITH CARON */ | |
51 | { 0x01ba, 0x015f }, /* scedilla ş LATIN SMALL LETTER S WITH CEDILLA */ | |
52 | { 0x01bb, 0x0165 }, /* tcaron ť LATIN SMALL LETTER T WITH CARON */ | |
53 | { 0x01bc, 0x017a }, /* zacute ź LATIN SMALL LETTER Z WITH ACUTE */ | |
54 | { 0x01bd, 0x02dd }, /* doubleacute ˝ DOUBLE ACUTE ACCENT */ | |
55 | { 0x01be, 0x017e }, /* zcaron ž LATIN SMALL LETTER Z WITH CARON */ | |
56 | { 0x01bf, 0x017c }, /* zabovedot ż LATIN SMALL LETTER Z WITH DOT ABOVE */ | |
57 | { 0x01c0, 0x0154 }, /* Racute Ŕ LATIN CAPITAL LETTER R WITH ACUTE */ | |
58 | { 0x01c3, 0x0102 }, /* Abreve Ă LATIN CAPITAL LETTER A WITH BREVE */ | |
59 | { 0x01c5, 0x0139 }, /* Lacute Ĺ LATIN CAPITAL LETTER L WITH ACUTE */ | |
60 | { 0x01c6, 0x0106 }, /* Cacute Ć LATIN CAPITAL LETTER C WITH ACUTE */ | |
61 | { 0x01c8, 0x010c }, /* Ccaron Č LATIN CAPITAL LETTER C WITH CARON */ | |
62 | { 0x01ca, 0x0118 }, /* Eogonek Ę LATIN CAPITAL LETTER E WITH OGONEK */ | |
63 | { 0x01cc, 0x011a }, /* Ecaron Ě LATIN CAPITAL LETTER E WITH CARON */ | |
64 | { 0x01cf, 0x010e }, /* Dcaron Ď LATIN CAPITAL LETTER D WITH CARON */ | |
65 | { 0x01d0, 0x0110 }, /* Dstroke Đ LATIN CAPITAL LETTER D WITH STROKE */ | |
66 | { 0x01d1, 0x0143 }, /* Nacute Ń LATIN CAPITAL LETTER N WITH ACUTE */ | |
67 | { 0x01d2, 0x0147 }, /* Ncaron Ň LATIN CAPITAL LETTER N WITH CARON */ | |
68 | { 0x01d5, 0x0150 }, /* Odoubleacute Ő LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */ | |
69 | { 0x01d8, 0x0158 }, /* Rcaron Ř LATIN CAPITAL LETTER R WITH CARON */ | |
70 | { 0x01d9, 0x016e }, /* Uring Ů LATIN CAPITAL LETTER U WITH RING ABOVE */ | |
71 | { 0x01db, 0x0170 }, /* Udoubleacute Ű LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */ | |
72 | { 0x01de, 0x0162 }, /* Tcedilla Ţ LATIN CAPITAL LETTER T WITH CEDILLA */ | |
73 | { 0x01e0, 0x0155 }, /* racute ŕ LATIN SMALL LETTER R WITH ACUTE */ | |
74 | { 0x01e3, 0x0103 }, /* abreve ă LATIN SMALL LETTER A WITH BREVE */ | |
75 | { 0x01e5, 0x013a }, /* lacute ĺ LATIN SMALL LETTER L WITH ACUTE */ | |
76 | { 0x01e6, 0x0107 }, /* cacute ć LATIN SMALL LETTER C WITH ACUTE */ | |
77 | { 0x01e8, 0x010d }, /* ccaron č LATIN SMALL LETTER C WITH CARON */ | |
78 | { 0x01ea, 0x0119 }, /* eogonek ę LATIN SMALL LETTER E WITH OGONEK */ | |
79 | { 0x01ec, 0x011b }, /* ecaron ě LATIN SMALL LETTER E WITH CARON */ | |
80 | { 0x01ef, 0x010f }, /* dcaron ď LATIN SMALL LETTER D WITH CARON */ | |
81 | { 0x01f0, 0x0111 }, /* dstroke đ LATIN SMALL LETTER D WITH STROKE */ | |
82 | { 0x01f1, 0x0144 }, /* nacute ń LATIN SMALL LETTER N WITH ACUTE */ | |
83 | { 0x01f2, 0x0148 }, /* ncaron ň LATIN SMALL LETTER N WITH CARON */ | |
84 | { 0x01f5, 0x0151 }, /* odoubleacute ő LATIN SMALL LETTER O WITH DOUBLE ACUTE */ | |
85 | { 0x01f8, 0x0159 }, /* rcaron ř LATIN SMALL LETTER R WITH CARON */ | |
86 | { 0x01f9, 0x016f }, /* uring ů LATIN SMALL LETTER U WITH RING ABOVE */ | |
87 | { 0x01fb, 0x0171 }, /* udoubleacute ű LATIN SMALL LETTER U WITH DOUBLE ACUTE */ | |
88 | { 0x01fe, 0x0163 }, /* tcedilla ţ LATIN SMALL LETTER T WITH CEDILLA */ | |
89 | { 0x01ff, 0x02d9 }, /* abovedot ˙ DOT ABOVE */ | |
90 | { 0x02a1, 0x0126 }, /* Hstroke Ħ LATIN CAPITAL LETTER H WITH STROKE */ | |
91 | { 0x02a6, 0x0124 }, /* Hcircumflex Ĥ LATIN CAPITAL LETTER H WITH CIRCUMFLEX */ | |
92 | { 0x02a9, 0x0130 }, /* Iabovedot İ LATIN CAPITAL LETTER I WITH DOT ABOVE */ | |
93 | { 0x02ab, 0x011e }, /* Gbreve Ğ LATIN CAPITAL LETTER G WITH BREVE */ | |
94 | { 0x02ac, 0x0134 }, /* Jcircumflex Ĵ LATIN CAPITAL LETTER J WITH CIRCUMFLEX */ | |
95 | { 0x02b1, 0x0127 }, /* hstroke ħ LATIN SMALL LETTER H WITH STROKE */ | |
96 | { 0x02b6, 0x0125 }, /* hcircumflex ĥ LATIN SMALL LETTER H WITH CIRCUMFLEX */ | |
97 | { 0x02b9, 0x0131 }, /* idotless ı LATIN SMALL LETTER DOTLESS I */ | |
98 | { 0x02bb, 0x011f }, /* gbreve ğ LATIN SMALL LETTER G WITH BREVE */ | |
99 | { 0x02bc, 0x0135 }, /* jcircumflex ĵ LATIN SMALL LETTER J WITH CIRCUMFLEX */ | |
100 | { 0x02c5, 0x010a }, /* Cabovedot Ċ LATIN CAPITAL LETTER C WITH DOT ABOVE */ | |
101 | { 0x02c6, 0x0108 }, /* Ccircumflex Ĉ LATIN CAPITAL LETTER C WITH CIRCUMFLEX */ | |
102 | { 0x02d5, 0x0120 }, /* Gabovedot Ġ LATIN CAPITAL LETTER G WITH DOT ABOVE */ | |
103 | { 0x02d8, 0x011c }, /* Gcircumflex Ĝ LATIN CAPITAL LETTER G WITH CIRCUMFLEX */ | |
104 | { 0x02dd, 0x016c }, /* Ubreve Ŭ LATIN CAPITAL LETTER U WITH BREVE */ | |
105 | { 0x02de, 0x015c }, /* Scircumflex Ŝ LATIN CAPITAL LETTER S WITH CIRCUMFLEX */ | |
106 | { 0x02e5, 0x010b }, /* cabovedot ċ LATIN SMALL LETTER C WITH DOT ABOVE */ | |
107 | { 0x02e6, 0x0109 }, /* ccircumflex ĉ LATIN SMALL LETTER C WITH CIRCUMFLEX */ | |
108 | { 0x02f5, 0x0121 }, /* gabovedot ġ LATIN SMALL LETTER G WITH DOT ABOVE */ | |
109 | { 0x02f8, 0x011d }, /* gcircumflex ĝ LATIN SMALL LETTER G WITH CIRCUMFLEX */ | |
110 | { 0x02fd, 0x016d }, /* ubreve ŭ LATIN SMALL LETTER U WITH BREVE */ | |
111 | { 0x02fe, 0x015d }, /* scircumflex ŝ LATIN SMALL LETTER S WITH CIRCUMFLEX */ | |
112 | { 0x03a2, 0x0138 }, /* kra ĸ LATIN SMALL LETTER KRA */ | |
113 | { 0x03a3, 0x0156 }, /* Rcedilla Ŗ LATIN CAPITAL LETTER R WITH CEDILLA */ | |
114 | { 0x03a5, 0x0128 }, /* Itilde Ĩ LATIN CAPITAL LETTER I WITH TILDE */ | |
115 | { 0x03a6, 0x013b }, /* Lcedilla Ļ LATIN CAPITAL LETTER L WITH CEDILLA */ | |
116 | { 0x03aa, 0x0112 }, /* Emacron Ē LATIN CAPITAL LETTER E WITH MACRON */ | |
117 | { 0x03ab, 0x0122 }, /* Gcedilla Ģ LATIN CAPITAL LETTER G WITH CEDILLA */ | |
118 | { 0x03ac, 0x0166 }, /* Tslash Ŧ LATIN CAPITAL LETTER T WITH STROKE */ | |
119 | { 0x03b3, 0x0157 }, /* rcedilla ŗ LATIN SMALL LETTER R WITH CEDILLA */ | |
120 | { 0x03b5, 0x0129 }, /* itilde ĩ LATIN SMALL LETTER I WITH TILDE */ | |
121 | { 0x03b6, 0x013c }, /* lcedilla ļ LATIN SMALL LETTER L WITH CEDILLA */ | |
122 | { 0x03ba, 0x0113 }, /* emacron ē LATIN SMALL LETTER E WITH MACRON */ | |
123 | { 0x03bb, 0x0123 }, /* gcedilla ģ LATIN SMALL LETTER G WITH CEDILLA */ | |
124 | { 0x03bc, 0x0167 }, /* tslash ŧ LATIN SMALL LETTER T WITH STROKE */ | |
125 | { 0x03bd, 0x014a }, /* ENG Ŋ LATIN CAPITAL LETTER ENG */ | |
126 | { 0x03bf, 0x014b }, /* eng ŋ LATIN SMALL LETTER ENG */ | |
127 | { 0x03c0, 0x0100 }, /* Amacron Ā LATIN CAPITAL LETTER A WITH MACRON */ | |
128 | { 0x03c7, 0x012e }, /* Iogonek Į LATIN CAPITAL LETTER I WITH OGONEK */ | |
129 | { 0x03cc, 0x0116 }, /* Eabovedot Ė LATIN CAPITAL LETTER E WITH DOT ABOVE */ | |
130 | { 0x03cf, 0x012a }, /* Imacron Ī LATIN CAPITAL LETTER I WITH MACRON */ | |
131 | { 0x03d1, 0x0145 }, /* Ncedilla Ņ LATIN CAPITAL LETTER N WITH CEDILLA */ | |
132 | { 0x03d2, 0x014c }, /* Omacron Ō LATIN CAPITAL LETTER O WITH MACRON */ | |
133 | { 0x03d3, 0x0136 }, /* Kcedilla Ķ LATIN CAPITAL LETTER K WITH CEDILLA */ | |
134 | { 0x03d9, 0x0172 }, /* Uogonek Ų LATIN CAPITAL LETTER U WITH OGONEK */ | |
135 | { 0x03dd, 0x0168 }, /* Utilde Ũ LATIN CAPITAL LETTER U WITH TILDE */ | |
136 | { 0x03de, 0x016a }, /* Umacron Ū LATIN CAPITAL LETTER U WITH MACRON */ | |
137 | { 0x03e0, 0x0101 }, /* amacron ā LATIN SMALL LETTER A WITH MACRON */ | |
138 | { 0x03e7, 0x012f }, /* iogonek į LATIN SMALL LETTER I WITH OGONEK */ | |
139 | { 0x03ec, 0x0117 }, /* eabovedot ė LATIN SMALL LETTER E WITH DOT ABOVE */ | |
140 | { 0x03ef, 0x012b }, /* imacron ī LATIN SMALL LETTER I WITH MACRON */ | |
141 | { 0x03f1, 0x0146 }, /* ncedilla ņ LATIN SMALL LETTER N WITH CEDILLA */ | |
142 | { 0x03f2, 0x014d }, /* omacron ō LATIN SMALL LETTER O WITH MACRON */ | |
143 | { 0x03f3, 0x0137 }, /* kcedilla ķ LATIN SMALL LETTER K WITH CEDILLA */ | |
144 | { 0x03f9, 0x0173 }, /* uogonek ų LATIN SMALL LETTER U WITH OGONEK */ | |
145 | { 0x03fd, 0x0169 }, /* utilde ũ LATIN SMALL LETTER U WITH TILDE */ | |
146 | { 0x03fe, 0x016b }, /* umacron ū LATIN SMALL LETTER U WITH MACRON */ | |
147 | { 0x047e, 0x203e }, /* overline ‾ OVERLINE */ | |
148 | { 0x04a1, 0x3002 }, /* kana_fullstop 。 IDEOGRAPHIC FULL STOP */ | |
149 | { 0x04a2, 0x300c }, /* kana_openingbracket 「 LEFT CORNER BRACKET */ | |
150 | { 0x04a3, 0x300d }, /* kana_closingbracket 」 RIGHT CORNER BRACKET */ | |
151 | { 0x04a4, 0x3001 }, /* kana_comma 、 IDEOGRAPHIC COMMA */ | |
152 | { 0x04a5, 0x30fb }, /* kana_conjunctive ・ KATAKANA MIDDLE DOT */ | |
153 | { 0x04a6, 0x30f2 }, /* kana_WO ヲ KATAKANA LETTER WO */ | |
154 | { 0x04a7, 0x30a1 }, /* kana_a ァ KATAKANA LETTER SMALL A */ | |
155 | { 0x04a8, 0x30a3 }, /* kana_i ィ KATAKANA LETTER SMALL I */ | |
156 | { 0x04a9, 0x30a5 }, /* kana_u ゥ KATAKANA LETTER SMALL U */ | |
157 | { 0x04aa, 0x30a7 }, /* kana_e ェ KATAKANA LETTER SMALL E */ | |
158 | { 0x04ab, 0x30a9 }, /* kana_o ォ KATAKANA LETTER SMALL O */ | |
159 | { 0x04ac, 0x30e3 }, /* kana_ya ャ KATAKANA LETTER SMALL YA */ | |
160 | { 0x04ad, 0x30e5 }, /* kana_yu ュ KATAKANA LETTER SMALL YU */ | |
161 | { 0x04ae, 0x30e7 }, /* kana_yo ョ KATAKANA LETTER SMALL YO */ | |
162 | { 0x04af, 0x30c3 }, /* kana_tsu ッ KATAKANA LETTER SMALL TU */ | |
163 | { 0x04b0, 0x30fc }, /* prolongedsound ー KATAKANA-HIRAGANA PROLONGED SOUND MARK */ | |
164 | { 0x04b1, 0x30a2 }, /* kana_A ア KATAKANA LETTER A */ | |
165 | { 0x04b2, 0x30a4 }, /* kana_I イ KATAKANA LETTER I */ | |
166 | { 0x04b3, 0x30a6 }, /* kana_U ウ KATAKANA LETTER U */ | |
167 | { 0x04b4, 0x30a8 }, /* kana_E エ KATAKANA LETTER E */ | |
168 | { 0x04b5, 0x30aa }, /* kana_O オ KATAKANA LETTER O */ | |
169 | { 0x04b6, 0x30ab }, /* kana_KA カ KATAKANA LETTER KA */ | |
170 | { 0x04b7, 0x30ad }, /* kana_KI キ KATAKANA LETTER KI */ | |
171 | { 0x04b8, 0x30af }, /* kana_KU ク KATAKANA LETTER KU */ | |
172 | { 0x04b9, 0x30b1 }, /* kana_KE ケ KATAKANA LETTER KE */ | |
173 | { 0x04ba, 0x30b3 }, /* kana_KO コ KATAKANA LETTER KO */ | |
174 | { 0x04bb, 0x30b5 }, /* kana_SA サ KATAKANA LETTER SA */ | |
175 | { 0x04bc, 0x30b7 }, /* kana_SHI シ KATAKANA LETTER SI */ | |
176 | { 0x04bd, 0x30b9 }, /* kana_SU ス KATAKANA LETTER SU */ | |
177 | { 0x04be, 0x30bb }, /* kana_SE セ KATAKANA LETTER SE */ | |
178 | { 0x04bf, 0x30bd }, /* kana_SO ソ KATAKANA LETTER SO */ | |
179 | { 0x04c0, 0x30bf }, /* kana_TA タ KATAKANA LETTER TA */ | |
180 | { 0x04c1, 0x30c1 }, /* kana_CHI チ KATAKANA LETTER TI */ | |
181 | { 0x04c2, 0x30c4 }, /* kana_TSU ツ KATAKANA LETTER TU */ | |
182 | { 0x04c3, 0x30c6 }, /* kana_TE テ KATAKANA LETTER TE */ | |
183 | { 0x04c4, 0x30c8 }, /* kana_TO ト KATAKANA LETTER TO */ | |
184 | { 0x04c5, 0x30ca }, /* kana_NA ナ KATAKANA LETTER NA */ | |
185 | { 0x04c6, 0x30cb }, /* kana_NI ニ KATAKANA LETTER NI */ | |
186 | { 0x04c7, 0x30cc }, /* kana_NU ヌ KATAKANA LETTER NU */ | |
187 | { 0x04c8, 0x30cd }, /* kana_NE ネ KATAKANA LETTER NE */ | |
188 | { 0x04c9, 0x30ce }, /* kana_NO ノ KATAKANA LETTER NO */ | |
189 | { 0x04ca, 0x30cf }, /* kana_HA ハ KATAKANA LETTER HA */ | |
190 | { 0x04cb, 0x30d2 }, /* kana_HI ヒ KATAKANA LETTER HI */ | |
191 | { 0x04cc, 0x30d5 }, /* kana_FU フ KATAKANA LETTER HU */ | |
192 | { 0x04cd, 0x30d8 }, /* kana_HE ヘ KATAKANA LETTER HE */ | |
193 | { 0x04ce, 0x30db }, /* kana_HO ホ KATAKANA LETTER HO */ | |
194 | { 0x04cf, 0x30de }, /* kana_MA マ KATAKANA LETTER MA */ | |
195 | { 0x04d0, 0x30df }, /* kana_MI ミ KATAKANA LETTER MI */ | |
196 | { 0x04d1, 0x30e0 }, /* kana_MU ム KATAKANA LETTER MU */ | |
197 | { 0x04d2, 0x30e1 }, /* kana_ME メ KATAKANA LETTER ME */ | |
198 | { 0x04d3, 0x30e2 }, /* kana_MO モ KATAKANA LETTER MO */ | |
199 | { 0x04d4, 0x30e4 }, /* kana_YA ヤ KATAKANA LETTER YA */ | |
200 | { 0x04d5, 0x30e6 }, /* kana_YU ユ KATAKANA LETTER YU */ | |
201 | { 0x04d6, 0x30e8 }, /* kana_YO ヨ KATAKANA LETTER YO */ | |
202 | { 0x04d7, 0x30e9 }, /* kana_RA ラ KATAKANA LETTER RA */ | |
203 | { 0x04d8, 0x30ea }, /* kana_RI リ KATAKANA LETTER RI */ | |
204 | { 0x04d9, 0x30eb }, /* kana_RU ル KATAKANA LETTER RU */ | |
205 | { 0x04da, 0x30ec }, /* kana_RE レ KATAKANA LETTER RE */ | |
206 | { 0x04db, 0x30ed }, /* kana_RO ロ KATAKANA LETTER RO */ | |
207 | { 0x04dc, 0x30ef }, /* kana_WA ワ KATAKANA LETTER WA */ | |
208 | { 0x04dd, 0x30f3 }, /* kana_N ン KATAKANA LETTER N */ | |
209 | { 0x04de, 0x309b }, /* voicedsound ゛ KATAKANA-HIRAGANA VOICED SOUND MARK */ | |
210 | { 0x04df, 0x309c }, /* semivoicedsound ゜ KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */ | |
211 | { 0x05ac, 0x060c }, /* Arabic_comma ، ARABIC COMMA */ | |
212 | { 0x05bb, 0x061b }, /* Arabic_semicolon ؛ ARABIC SEMICOLON */ | |
213 | { 0x05bf, 0x061f }, /* Arabic_question_mark ؟ ARABIC QUESTION MARK */ | |
214 | { 0x05c1, 0x0621 }, /* Arabic_hamza ء ARABIC LETTER HAMZA */ | |
215 | { 0x05c2, 0x0622 }, /* Arabic_maddaonalef آ ARABIC LETTER ALEF WITH MADDA ABOVE */ | |
216 | { 0x05c3, 0x0623 }, /* Arabic_hamzaonalef أ ARABIC LETTER ALEF WITH HAMZA ABOVE */ | |
217 | { 0x05c4, 0x0624 }, /* Arabic_hamzaonwaw ؤ ARABIC LETTER WAW WITH HAMZA ABOVE */ | |
218 | { 0x05c5, 0x0625 }, /* Arabic_hamzaunderalef إ ARABIC LETTER ALEF WITH HAMZA BELOW */ | |
219 | { 0x05c6, 0x0626 }, /* Arabic_hamzaonyeh ئ ARABIC LETTER YEH WITH HAMZA ABOVE */ | |
220 | { 0x05c7, 0x0627 }, /* Arabic_alef ا ARABIC LETTER ALEF */ | |
221 | { 0x05c8, 0x0628 }, /* Arabic_beh ب ARABIC LETTER BEH */ | |
222 | { 0x05c9, 0x0629 }, /* Arabic_tehmarbuta ة ARABIC LETTER TEH MARBUTA */ | |
223 | { 0x05ca, 0x062a }, /* Arabic_teh ت ARABIC LETTER TEH */ | |
224 | { 0x05cb, 0x062b }, /* Arabic_theh ث ARABIC LETTER THEH */ | |
225 | { 0x05cc, 0x062c }, /* Arabic_jeem ج ARABIC LETTER JEEM */ | |
226 | { 0x05cd, 0x062d }, /* Arabic_hah ح ARABIC LETTER HAH */ | |
227 | { 0x05ce, 0x062e }, /* Arabic_khah خ ARABIC LETTER KHAH */ | |
228 | { 0x05cf, 0x062f }, /* Arabic_dal د ARABIC LETTER DAL */ | |
229 | { 0x05d0, 0x0630 }, /* Arabic_thal ذ ARABIC LETTER THAL */ | |
230 | { 0x05d1, 0x0631 }, /* Arabic_ra ر ARABIC LETTER REH */ | |
231 | { 0x05d2, 0x0632 }, /* Arabic_zain ز ARABIC LETTER ZAIN */ | |
232 | { 0x05d3, 0x0633 }, /* Arabic_seen س ARABIC LETTER SEEN */ | |
233 | { 0x05d4, 0x0634 }, /* Arabic_sheen ش ARABIC LETTER SHEEN */ | |
234 | { 0x05d5, 0x0635 }, /* Arabic_sad ص ARABIC LETTER SAD */ | |
235 | { 0x05d6, 0x0636 }, /* Arabic_dad ض ARABIC LETTER DAD */ | |
236 | { 0x05d7, 0x0637 }, /* Arabic_tah ط ARABIC LETTER TAH */ | |
237 | { 0x05d8, 0x0638 }, /* Arabic_zah ظ ARABIC LETTER ZAH */ | |
238 | { 0x05d9, 0x0639 }, /* Arabic_ain ع ARABIC LETTER AIN */ | |
239 | { 0x05da, 0x063a }, /* Arabic_ghain غ ARABIC LETTER GHAIN */ | |
240 | { 0x05e0, 0x0640 }, /* Arabic_tatweel ـ ARABIC TATWEEL */ | |
241 | { 0x05e1, 0x0641 }, /* Arabic_feh ف ARABIC LETTER FEH */ | |
242 | { 0x05e2, 0x0642 }, /* Arabic_qaf ق ARABIC LETTER QAF */ | |
243 | { 0x05e3, 0x0643 }, /* Arabic_kaf ك ARABIC LETTER KAF */ | |
244 | { 0x05e4, 0x0644 }, /* Arabic_lam ل ARABIC LETTER LAM */ | |
245 | { 0x05e5, 0x0645 }, /* Arabic_meem م ARABIC LETTER MEEM */ | |
246 | { 0x05e6, 0x0646 }, /* Arabic_noon ن ARABIC LETTER NOON */ | |
247 | { 0x05e7, 0x0647 }, /* Arabic_ha ه ARABIC LETTER HEH */ | |
248 | { 0x05e8, 0x0648 }, /* Arabic_waw و ARABIC LETTER WAW */ | |
249 | { 0x05e9, 0x0649 }, /* Arabic_alefmaksura ى ARABIC LETTER ALEF MAKSURA */ | |
250 | { 0x05ea, 0x064a }, /* Arabic_yeh ي ARABIC LETTER YEH */ | |
251 | { 0x05eb, 0x064b }, /* Arabic_fathatan ً ARABIC FATHATAN */ | |
252 | { 0x05ec, 0x064c }, /* Arabic_dammatan ٌ ARABIC DAMMATAN */ | |
253 | { 0x05ed, 0x064d }, /* Arabic_kasratan ٍ ARABIC KASRATAN */ | |
254 | { 0x05ee, 0x064e }, /* Arabic_fatha َ ARABIC FATHA */ | |
255 | { 0x05ef, 0x064f }, /* Arabic_damma ُ ARABIC DAMMA */ | |
256 | { 0x05f0, 0x0650 }, /* Arabic_kasra ِ ARABIC KASRA */ | |
257 | { 0x05f1, 0x0651 }, /* Arabic_shadda ّ ARABIC SHADDA */ | |
258 | { 0x05f2, 0x0652 }, /* Arabic_sukun ْ ARABIC SUKUN */ | |
259 | { 0x06a1, 0x0452 }, /* Serbian_dje ђ CYRILLIC SMALL LETTER DJE */ | |
260 | { 0x06a2, 0x0453 }, /* Macedonia_gje ѓ CYRILLIC SMALL LETTER GJE */ | |
261 | { 0x06a3, 0x0451 }, /* Cyrillic_io ё CYRILLIC SMALL LETTER IO */ | |
262 | { 0x06a4, 0x0454 }, /* Ukrainian_ie є CYRILLIC SMALL LETTER UKRAINIAN IE */ | |
263 | { 0x06a5, 0x0455 }, /* Macedonia_dse ѕ CYRILLIC SMALL LETTER DZE */ | |
264 | { 0x06a6, 0x0456 }, /* Ukrainian_i і CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */ | |
265 | { 0x06a7, 0x0457 }, /* Ukrainian_yi ї CYRILLIC SMALL LETTER YI */ | |
266 | { 0x06a8, 0x0458 }, /* Cyrillic_je ј CYRILLIC SMALL LETTER JE */ | |
267 | { 0x06a9, 0x0459 }, /* Cyrillic_lje љ CYRILLIC SMALL LETTER LJE */ | |
268 | { 0x06aa, 0x045a }, /* Cyrillic_nje њ CYRILLIC SMALL LETTER NJE */ | |
269 | { 0x06ab, 0x045b }, /* Serbian_tshe ћ CYRILLIC SMALL LETTER TSHE */ | |
270 | { 0x06ac, 0x045c }, /* Macedonia_kje ќ CYRILLIC SMALL LETTER KJE */ | |
271 | { 0x06ad, 0x0491 }, /* Ukrainian_ghe_with_upturn ґ CYRILLIC SMALL LETTER GHE WITH UPTURN */ | |
272 | { 0x06ae, 0x045e }, /* Byelorussian_shortu ў CYRILLIC SMALL LETTER SHORT U */ | |
273 | { 0x06af, 0x045f }, /* Cyrillic_dzhe џ CYRILLIC SMALL LETTER DZHE */ | |
274 | { 0x06b0, 0x2116 }, /* numerosign № NUMERO SIGN */ | |
275 | { 0x06b1, 0x0402 }, /* Serbian_DJE Ђ CYRILLIC CAPITAL LETTER DJE */ | |
276 | { 0x06b2, 0x0403 }, /* Macedonia_GJE Ѓ CYRILLIC CAPITAL LETTER GJE */ | |
277 | { 0x06b3, 0x0401 }, /* Cyrillic_IO Ё CYRILLIC CAPITAL LETTER IO */ | |
278 | { 0x06b4, 0x0404 }, /* Ukrainian_IE Є CYRILLIC CAPITAL LETTER UKRAINIAN IE */ | |
279 | { 0x06b5, 0x0405 }, /* Macedonia_DSE Ѕ CYRILLIC CAPITAL LETTER DZE */ | |
280 | { 0x06b6, 0x0406 }, /* Ukrainian_I І CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */ | |
281 | { 0x06b7, 0x0407 }, /* Ukrainian_YI Ї CYRILLIC CAPITAL LETTER YI */ | |
282 | { 0x06b8, 0x0408 }, /* Cyrillic_JE Ј CYRILLIC CAPITAL LETTER JE */ | |
283 | { 0x06b9, 0x0409 }, /* Cyrillic_LJE Љ CYRILLIC CAPITAL LETTER LJE */ | |
284 | { 0x06ba, 0x040a }, /* Cyrillic_NJE Њ CYRILLIC CAPITAL LETTER NJE */ | |
285 | { 0x06bb, 0x040b }, /* Serbian_TSHE Ћ CYRILLIC CAPITAL LETTER TSHE */ | |
286 | { 0x06bc, 0x040c }, /* Macedonia_KJE Ќ CYRILLIC CAPITAL LETTER KJE */ | |
287 | { 0x06bd, 0x0490 }, /* Ukrainian_GHE_WITH_UPTURN Ґ CYRILLIC CAPITAL LETTER GHE WITH UPTURN */ | |
288 | { 0x06be, 0x040e }, /* Byelorussian_SHORTU Ў CYRILLIC CAPITAL LETTER SHORT U */ | |
289 | { 0x06bf, 0x040f }, /* Cyrillic_DZHE Џ CYRILLIC CAPITAL LETTER DZHE */ | |
290 | { 0x06c0, 0x044e }, /* Cyrillic_yu ю CYRILLIC SMALL LETTER YU */ | |
291 | { 0x06c1, 0x0430 }, /* Cyrillic_a а CYRILLIC SMALL LETTER A */ | |
292 | { 0x06c2, 0x0431 }, /* Cyrillic_be б CYRILLIC SMALL LETTER BE */ | |
293 | { 0x06c3, 0x0446 }, /* Cyrillic_tse ц CYRILLIC SMALL LETTER TSE */ | |
294 | { 0x06c4, 0x0434 }, /* Cyrillic_de д CYRILLIC SMALL LETTER DE */ | |
295 | { 0x06c5, 0x0435 }, /* Cyrillic_ie е CYRILLIC SMALL LETTER IE */ | |
296 | { 0x06c6, 0x0444 }, /* Cyrillic_ef ф CYRILLIC SMALL LETTER EF */ | |
297 | { 0x06c7, 0x0433 }, /* Cyrillic_ghe г CYRILLIC SMALL LETTER GHE */ | |
298 | { 0x06c8, 0x0445 }, /* Cyrillic_ha х CYRILLIC SMALL LETTER HA */ | |
299 | { 0x06c9, 0x0438 }, /* Cyrillic_i и CYRILLIC SMALL LETTER I */ | |
300 | { 0x06ca, 0x0439 }, /* Cyrillic_shorti й CYRILLIC SMALL LETTER SHORT I */ | |
301 | { 0x06cb, 0x043a }, /* Cyrillic_ka к CYRILLIC SMALL LETTER KA */ | |
302 | { 0x06cc, 0x043b }, /* Cyrillic_el л CYRILLIC SMALL LETTER EL */ | |
303 | { 0x06cd, 0x043c }, /* Cyrillic_em м CYRILLIC SMALL LETTER EM */ | |
304 | { 0x06ce, 0x043d }, /* Cyrillic_en н CYRILLIC SMALL LETTER EN */ | |
305 | { 0x06cf, 0x043e }, /* Cyrillic_o о CYRILLIC SMALL LETTER O */ | |
306 | { 0x06d0, 0x043f }, /* Cyrillic_pe п CYRILLIC SMALL LETTER PE */ | |
307 | { 0x06d1, 0x044f }, /* Cyrillic_ya я CYRILLIC SMALL LETTER YA */ | |
308 | { 0x06d2, 0x0440 }, /* Cyrillic_er р CYRILLIC SMALL LETTER ER */ | |
309 | { 0x06d3, 0x0441 }, /* Cyrillic_es с CYRILLIC SMALL LETTER ES */ | |
310 | { 0x06d4, 0x0442 }, /* Cyrillic_te т CYRILLIC SMALL LETTER TE */ | |
311 | { 0x06d5, 0x0443 }, /* Cyrillic_u у CYRILLIC SMALL LETTER U */ | |
312 | { 0x06d6, 0x0436 }, /* Cyrillic_zhe ж CYRILLIC SMALL LETTER ZHE */ | |
313 | { 0x06d7, 0x0432 }, /* Cyrillic_ve в CYRILLIC SMALL LETTER VE */ | |
314 | { 0x06d8, 0x044c }, /* Cyrillic_softsign ь CYRILLIC SMALL LETTER SOFT SIGN */ | |
315 | { 0x06d9, 0x044b }, /* Cyrillic_yeru ы CYRILLIC SMALL LETTER YERU */ | |
316 | { 0x06da, 0x0437 }, /* Cyrillic_ze з CYRILLIC SMALL LETTER ZE */ | |
317 | { 0x06db, 0x0448 }, /* Cyrillic_sha ш CYRILLIC SMALL LETTER SHA */ | |
318 | { 0x06dc, 0x044d }, /* Cyrillic_e э CYRILLIC SMALL LETTER E */ | |
319 | { 0x06dd, 0x0449 }, /* Cyrillic_shcha щ CYRILLIC SMALL LETTER SHCHA */ | |
320 | { 0x06de, 0x0447 }, /* Cyrillic_che ч CYRILLIC SMALL LETTER CHE */ | |
321 | { 0x06df, 0x044a }, /* Cyrillic_hardsign ъ CYRILLIC SMALL LETTER HARD SIGN */ | |
322 | { 0x06e0, 0x042e }, /* Cyrillic_YU Ю CYRILLIC CAPITAL LETTER YU */ | |
323 | { 0x06e1, 0x0410 }, /* Cyrillic_A А CYRILLIC CAPITAL LETTER A */ | |
324 | { 0x06e2, 0x0411 }, /* Cyrillic_BE Б CYRILLIC CAPITAL LETTER BE */ | |
325 | { 0x06e3, 0x0426 }, /* Cyrillic_TSE Ц CYRILLIC CAPITAL LETTER TSE */ | |
326 | { 0x06e4, 0x0414 }, /* Cyrillic_DE Д CYRILLIC CAPITAL LETTER DE */ | |
327 | { 0x06e5, 0x0415 }, /* Cyrillic_IE Е CYRILLIC CAPITAL LETTER IE */ | |
328 | { 0x06e6, 0x0424 }, /* Cyrillic_EF Ф CYRILLIC CAPITAL LETTER EF */ | |
329 | { 0x06e7, 0x0413 }, /* Cyrillic_GHE Г CYRILLIC CAPITAL LETTER GHE */ | |
330 | { 0x06e8, 0x0425 }, /* Cyrillic_HA Х CYRILLIC CAPITAL LETTER HA */ | |
331 | { 0x06e9, 0x0418 }, /* Cyrillic_I И CYRILLIC CAPITAL LETTER I */ | |
332 | { 0x06ea, 0x0419 }, /* Cyrillic_SHORTI Й CYRILLIC CAPITAL LETTER SHORT I */ | |
333 | { 0x06eb, 0x041a }, /* Cyrillic_KA К CYRILLIC CAPITAL LETTER KA */ | |
334 | { 0x06ec, 0x041b }, /* Cyrillic_EL Л CYRILLIC CAPITAL LETTER EL */ | |
335 | { 0x06ed, 0x041c }, /* Cyrillic_EM М CYRILLIC CAPITAL LETTER EM */ | |
336 | { 0x06ee, 0x041d }, /* Cyrillic_EN Н CYRILLIC CAPITAL LETTER EN */ | |
337 | { 0x06ef, 0x041e }, /* Cyrillic_O О CYRILLIC CAPITAL LETTER O */ | |
338 | { 0x06f0, 0x041f }, /* Cyrillic_PE П CYRILLIC CAPITAL LETTER PE */ | |
339 | { 0x06f1, 0x042f }, /* Cyrillic_YA Я CYRILLIC CAPITAL LETTER YA */ | |
340 | { 0x06f2, 0x0420 }, /* Cyrillic_ER Р CYRILLIC CAPITAL LETTER ER */ | |
341 | { 0x06f3, 0x0421 }, /* Cyrillic_ES С CYRILLIC CAPITAL LETTER ES */ | |
342 | { 0x06f4, 0x0422 }, /* Cyrillic_TE Т CYRILLIC CAPITAL LETTER TE */ | |
343 | { 0x06f5, 0x0423 }, /* Cyrillic_U У CYRILLIC CAPITAL LETTER U */ | |
344 | { 0x06f6, 0x0416 }, /* Cyrillic_ZHE Ж CYRILLIC CAPITAL LETTER ZHE */ | |
345 | { 0x06f7, 0x0412 }, /* Cyrillic_VE В CYRILLIC CAPITAL LETTER VE */ | |
346 | { 0x06f8, 0x042c }, /* Cyrillic_SOFTSIGN Ь CYRILLIC CAPITAL LETTER SOFT SIGN */ | |
347 | { 0x06f9, 0x042b }, /* Cyrillic_YERU Ы CYRILLIC CAPITAL LETTER YERU */ | |
348 | { 0x06fa, 0x0417 }, /* Cyrillic_ZE З CYRILLIC CAPITAL LETTER ZE */ | |
349 | { 0x06fb, 0x0428 }, /* Cyrillic_SHA Ш CYRILLIC CAPITAL LETTER SHA */ | |
350 | { 0x06fc, 0x042d }, /* Cyrillic_E Э CYRILLIC CAPITAL LETTER E */ | |
351 | { 0x06fd, 0x0429 }, /* Cyrillic_SHCHA Щ CYRILLIC CAPITAL LETTER SHCHA */ | |
352 | { 0x06fe, 0x0427 }, /* Cyrillic_CHE Ч CYRILLIC CAPITAL LETTER CHE */ | |
353 | { 0x06ff, 0x042a }, /* Cyrillic_HARDSIGN Ъ CYRILLIC CAPITAL LETTER HARD SIGN */ | |
354 | { 0x07a1, 0x0386 }, /* Greek_ALPHAaccent Ά GREEK CAPITAL LETTER ALPHA WITH TONOS */ | |
355 | { 0x07a2, 0x0388 }, /* Greek_EPSILONaccent Έ GREEK CAPITAL LETTER EPSILON WITH TONOS */ | |
356 | { 0x07a3, 0x0389 }, /* Greek_ETAaccent Ή GREEK CAPITAL LETTER ETA WITH TONOS */ | |
357 | { 0x07a4, 0x038a }, /* Greek_IOTAaccent Ί GREEK CAPITAL LETTER IOTA WITH TONOS */ | |
358 | { 0x07a5, 0x03aa }, /* Greek_IOTAdieresis Ϊ GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */ | |
359 | { 0x07a7, 0x038c }, /* Greek_OMICRONaccent Ό GREEK CAPITAL LETTER OMICRON WITH TONOS */ | |
360 | { 0x07a8, 0x038e }, /* Greek_UPSILONaccent Ύ GREEK CAPITAL LETTER UPSILON WITH TONOS */ | |
361 | { 0x07a9, 0x03ab }, /* Greek_UPSILONdieresis Ϋ GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */ | |
362 | { 0x07ab, 0x038f }, /* Greek_OMEGAaccent Ώ GREEK CAPITAL LETTER OMEGA WITH TONOS */ | |
363 | { 0x07ae, 0x0385 }, /* Greek_accentdieresis ΅ GREEK DIALYTIKA TONOS */ | |
364 | { 0x07af, 0x2015 }, /* Greek_horizbar ― HORIZONTAL BAR */ | |
365 | { 0x07b1, 0x03ac }, /* Greek_alphaaccent ά GREEK SMALL LETTER ALPHA WITH TONOS */ | |
366 | { 0x07b2, 0x03ad }, /* Greek_epsilonaccent έ GREEK SMALL LETTER EPSILON WITH TONOS */ | |
367 | { 0x07b3, 0x03ae }, /* Greek_etaaccent ή GREEK SMALL LETTER ETA WITH TONOS */ | |
368 | { 0x07b4, 0x03af }, /* Greek_iotaaccent ί GREEK SMALL LETTER IOTA WITH TONOS */ | |
369 | { 0x07b5, 0x03ca }, /* Greek_iotadieresis ϊ GREEK SMALL LETTER IOTA WITH DIALYTIKA */ | |
370 | { 0x07b6, 0x0390 }, /* Greek_iotaaccentdieresis ΐ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */ | |
371 | { 0x07b7, 0x03cc }, /* Greek_omicronaccent ό GREEK SMALL LETTER OMICRON WITH TONOS */ | |
372 | { 0x07b8, 0x03cd }, /* Greek_upsilonaccent ύ GREEK SMALL LETTER UPSILON WITH TONOS */ | |
373 | { 0x07b9, 0x03cb }, /* Greek_upsilondieresis ϋ GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ | |
374 | { 0x07ba, 0x03b0 }, /* Greek_upsilonaccentdieresis ΰ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */ | |
375 | { 0x07bb, 0x03ce }, /* Greek_omegaaccent ώ GREEK SMALL LETTER OMEGA WITH TONOS */ | |
376 | { 0x07c1, 0x0391 }, /* Greek_ALPHA Α GREEK CAPITAL LETTER ALPHA */ | |
377 | { 0x07c2, 0x0392 }, /* Greek_BETA Β GREEK CAPITAL LETTER BETA */ | |
378 | { 0x07c3, 0x0393 }, /* Greek_GAMMA Γ GREEK CAPITAL LETTER GAMMA */ | |
379 | { 0x07c4, 0x0394 }, /* Greek_DELTA Δ GREEK CAPITAL LETTER DELTA */ | |
380 | { 0x07c5, 0x0395 }, /* Greek_EPSILON Ε GREEK CAPITAL LETTER EPSILON */ | |
381 | { 0x07c6, 0x0396 }, /* Greek_ZETA Ζ GREEK CAPITAL LETTER ZETA */ | |
382 | { 0x07c7, 0x0397 }, /* Greek_ETA Η GREEK CAPITAL LETTER ETA */ | |
383 | { 0x07c8, 0x0398 }, /* Greek_THETA Θ GREEK CAPITAL LETTER THETA */ | |
384 | { 0x07c9, 0x0399 }, /* Greek_IOTA Ι GREEK CAPITAL LETTER IOTA */ | |
385 | { 0x07ca, 0x039a }, /* Greek_KAPPA Κ GREEK CAPITAL LETTER KAPPA */ | |
386 | { 0x07cb, 0x039b }, /* Greek_LAMBDA Λ GREEK CAPITAL LETTER LAMDA */ | |
387 | { 0x07cc, 0x039c }, /* Greek_MU Μ GREEK CAPITAL LETTER MU */ | |
388 | { 0x07cd, 0x039d }, /* Greek_NU Ν GREEK CAPITAL LETTER NU */ | |
389 | { 0x07ce, 0x039e }, /* Greek_XI Ξ GREEK CAPITAL LETTER XI */ | |
390 | { 0x07cf, 0x039f }, /* Greek_OMICRON Ο GREEK CAPITAL LETTER OMICRON */ | |
391 | { 0x07d0, 0x03a0 }, /* Greek_PI Π GREEK CAPITAL LETTER PI */ | |
392 | { 0x07d1, 0x03a1 }, /* Greek_RHO Ρ GREEK CAPITAL LETTER RHO */ | |
393 | { 0x07d2, 0x03a3 }, /* Greek_SIGMA Σ GREEK CAPITAL LETTER SIGMA */ | |
394 | { 0x07d4, 0x03a4 }, /* Greek_TAU Τ GREEK CAPITAL LETTER TAU */ | |
395 | { 0x07d5, 0x03a5 }, /* Greek_UPSILON Υ GREEK CAPITAL LETTER UPSILON */ | |
396 | { 0x07d6, 0x03a6 }, /* Greek_PHI Φ GREEK CAPITAL LETTER PHI */ | |
397 | { 0x07d7, 0x03a7 }, /* Greek_CHI Χ GREEK CAPITAL LETTER CHI */ | |
398 | { 0x07d8, 0x03a8 }, /* Greek_PSI Ψ GREEK CAPITAL LETTER PSI */ | |
399 | { 0x07d9, 0x03a9 }, /* Greek_OMEGA Ω GREEK CAPITAL LETTER OMEGA */ | |
400 | { 0x07e1, 0x03b1 }, /* Greek_alpha α GREEK SMALL LETTER ALPHA */ | |
401 | { 0x07e2, 0x03b2 }, /* Greek_beta β GREEK SMALL LETTER BETA */ | |
402 | { 0x07e3, 0x03b3 }, /* Greek_gamma γ GREEK SMALL LETTER GAMMA */ | |
403 | { 0x07e4, 0x03b4 }, /* Greek_delta δ GREEK SMALL LETTER DELTA */ | |
404 | { 0x07e5, 0x03b5 }, /* Greek_epsilon ε GREEK SMALL LETTER EPSILON */ | |
405 | { 0x07e6, 0x03b6 }, /* Greek_zeta ζ GREEK SMALL LETTER ZETA */ | |
406 | { 0x07e7, 0x03b7 }, /* Greek_eta η GREEK SMALL LETTER ETA */ | |
407 | { 0x07e8, 0x03b8 }, /* Greek_theta θ GREEK SMALL LETTER THETA */ | |
408 | { 0x07e9, 0x03b9 }, /* Greek_iota ι GREEK SMALL LETTER IOTA */ | |
409 | { 0x07ea, 0x03ba }, /* Greek_kappa κ GREEK SMALL LETTER KAPPA */ | |
410 | { 0x07eb, 0x03bb }, /* Greek_lambda λ GREEK SMALL LETTER LAMDA */ | |
411 | { 0x07ec, 0x03bc }, /* Greek_mu μ GREEK SMALL LETTER MU */ | |
412 | { 0x07ed, 0x03bd }, /* Greek_nu ν GREEK SMALL LETTER NU */ | |
413 | { 0x07ee, 0x03be }, /* Greek_xi ξ GREEK SMALL LETTER XI */ | |
414 | { 0x07ef, 0x03bf }, /* Greek_omicron ο GREEK SMALL LETTER OMICRON */ | |
415 | { 0x07f0, 0x03c0 }, /* Greek_pi π GREEK SMALL LETTER PI */ | |
416 | { 0x07f1, 0x03c1 }, /* Greek_rho ρ GREEK SMALL LETTER RHO */ | |
417 | { 0x07f2, 0x03c3 }, /* Greek_sigma σ GREEK SMALL LETTER SIGMA */ | |
418 | { 0x07f3, 0x03c2 }, /* Greek_finalsmallsigma ς GREEK SMALL LETTER FINAL SIGMA */ | |
419 | { 0x07f4, 0x03c4 }, /* Greek_tau τ GREEK SMALL LETTER TAU */ | |
420 | { 0x07f5, 0x03c5 }, /* Greek_upsilon υ GREEK SMALL LETTER UPSILON */ | |
421 | { 0x07f6, 0x03c6 }, /* Greek_phi φ GREEK SMALL LETTER PHI */ | |
422 | { 0x07f7, 0x03c7 }, /* Greek_chi χ GREEK SMALL LETTER CHI */ | |
423 | { 0x07f8, 0x03c8 }, /* Greek_psi ψ GREEK SMALL LETTER PSI */ | |
424 | { 0x07f9, 0x03c9 }, /* Greek_omega ω GREEK SMALL LETTER OMEGA */ | |
425 | /* 0x08a1 leftradical ? ??? */ | |
426 | /* 0x08a2 topleftradical ? ??? */ | |
427 | /* 0x08a3 horizconnector ? ??? */ | |
428 | { 0x08a4, 0x2320 }, /* topintegral ⌠ TOP HALF INTEGRAL */ | |
429 | { 0x08a5, 0x2321 }, /* botintegral ⌡ BOTTOM HALF INTEGRAL */ | |
430 | { 0x08a6, 0x2502 }, /* vertconnector │ BOX DRAWINGS LIGHT VERTICAL */ | |
431 | /* 0x08a7 topleftsqbracket ? ??? */ | |
432 | /* 0x08a8 botleftsqbracket ? ??? */ | |
433 | /* 0x08a9 toprightsqbracket ? ??? */ | |
434 | /* 0x08aa botrightsqbracket ? ??? */ | |
435 | /* 0x08ab topleftparens ? ??? */ | |
436 | /* 0x08ac botleftparens ? ??? */ | |
437 | /* 0x08ad toprightparens ? ??? */ | |
438 | /* 0x08ae botrightparens ? ??? */ | |
439 | /* 0x08af leftmiddlecurlybrace ? ??? */ | |
440 | /* 0x08b0 rightmiddlecurlybrace ? ??? */ | |
441 | /* 0x08b1 topleftsummation ? ??? */ | |
442 | /* 0x08b2 botleftsummation ? ??? */ | |
443 | /* 0x08b3 topvertsummationconnector ? ??? */ | |
444 | /* 0x08b4 botvertsummationconnector ? ??? */ | |
445 | /* 0x08b5 toprightsummation ? ??? */ | |
446 | /* 0x08b6 botrightsummation ? ??? */ | |
447 | /* 0x08b7 rightmiddlesummation ? ??? */ | |
448 | { 0x08bc, 0x2264 }, /* lessthanequal ≤ LESS-THAN OR EQUAL TO */ | |
449 | { 0x08bd, 0x2260 }, /* notequal ≠ NOT EQUAL TO */ | |
450 | { 0x08be, 0x2265 }, /* greaterthanequal ≥ GREATER-THAN OR EQUAL TO */ | |
451 | { 0x08bf, 0x222b }, /* integral ∫ INTEGRAL */ | |
452 | { 0x08c0, 0x2234 }, /* therefore ∴ THEREFORE */ | |
453 | { 0x08c1, 0x221d }, /* variation ∝ PROPORTIONAL TO */ | |
454 | { 0x08c2, 0x221e }, /* infinity ∞ INFINITY */ | |
455 | { 0x08c5, 0x2207 }, /* nabla ∇ NABLA */ | |
456 | { 0x08c8, 0x2245 }, /* approximate ≅ APPROXIMATELY EQUAL TO */ | |
457 | /* 0x08c9 similarequal ? ??? */ | |
458 | { 0x08cd, 0x21d4 }, /* ifonlyif ⇔ LEFT RIGHT DOUBLE ARROW */ | |
459 | { 0x08ce, 0x21d2 }, /* implies ⇒ RIGHTWARDS DOUBLE ARROW */ | |
460 | { 0x08cf, 0x2261 }, /* identical ≡ IDENTICAL TO */ | |
461 | { 0x08d6, 0x221a }, /* radical √ SQUARE ROOT */ | |
462 | { 0x08da, 0x2282 }, /* includedin ⊂ SUBSET OF */ | |
463 | { 0x08db, 0x2283 }, /* includes ⊃ SUPERSET OF */ | |
464 | { 0x08dc, 0x2229 }, /* intersection ∩ INTERSECTION */ | |
465 | { 0x08dd, 0x222a }, /* union ∪ UNION */ | |
466 | { 0x08de, 0x2227 }, /* logicaland ∧ LOGICAL AND */ | |
467 | { 0x08df, 0x2228 }, /* logicalor ∨ LOGICAL OR */ | |
468 | { 0x08ef, 0x2202 }, /* partialderivative ∂ PARTIAL DIFFERENTIAL */ | |
469 | { 0x08f6, 0x0192 }, /* function ƒ LATIN SMALL LETTER F WITH HOOK */ | |
470 | { 0x08fb, 0x2190 }, /* leftarrow ← LEFTWARDS ARROW */ | |
471 | { 0x08fc, 0x2191 }, /* uparrow ↑ UPWARDS ARROW */ | |
472 | { 0x08fd, 0x2192 }, /* rightarrow → RIGHTWARDS ARROW */ | |
473 | { 0x08fe, 0x2193 }, /* downarrow ↓ DOWNWARDS ARROW */ | |
474 | { 0x09df, 0x2422 }, /* blank ␢ BLANK SYMBOL */ | |
475 | { 0x09e0, 0x25c6 }, /* soliddiamond ◆ BLACK DIAMOND */ | |
476 | { 0x09e1, 0x2592 }, /* checkerboard ▒ MEDIUM SHADE */ | |
477 | { 0x09e2, 0x2409 }, /* ht ␉ SYMBOL FOR HORIZONTAL TABULATION */ | |
478 | { 0x09e3, 0x240c }, /* ff ␌ SYMBOL FOR FORM FEED */ | |
479 | { 0x09e4, 0x240d }, /* cr ␍ SYMBOL FOR CARRIAGE RETURN */ | |
480 | { 0x09e5, 0x240a }, /* lf ␊ SYMBOL FOR LINE FEED */ | |
481 | { 0x09e8, 0x2424 }, /* nl  SYMBOL FOR NEWLINE */ | |
482 | { 0x09e9, 0x240b }, /* vt ␋ SYMBOL FOR VERTICAL TABULATION */ | |
483 | { 0x09ea, 0x2518 }, /* lowrightcorner ┘ BOX DRAWINGS LIGHT UP AND LEFT */ | |
484 | { 0x09eb, 0x2510 }, /* uprightcorner ┐ BOX DRAWINGS LIGHT DOWN AND LEFT */ | |
485 | { 0x09ec, 0x250c }, /* upleftcorner ┌ BOX DRAWINGS LIGHT DOWN AND RIGHT */ | |
486 | { 0x09ed, 0x2514 }, /* lowleftcorner └ BOX DRAWINGS LIGHT UP AND RIGHT */ | |
487 | { 0x09ee, 0x253c }, /* crossinglines ┼ BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */ | |
488 | /* 0x09ef horizlinescan1 ? ??? */ | |
489 | /* 0x09f0 horizlinescan3 ? ??? */ | |
490 | { 0x09f1, 0x2500 }, /* horizlinescan5 ─ BOX DRAWINGS LIGHT HORIZONTAL */ | |
491 | /* 0x09f2 horizlinescan7 ? ??? */ | |
492 | /* 0x09f3 horizlinescan9 ? ??? */ | |
493 | { 0x09f4, 0x251c }, /* leftt ├ BOX DRAWINGS LIGHT VERTICAL AND RIGHT */ | |
494 | { 0x09f5, 0x2524 }, /* rightt ┤ BOX DRAWINGS LIGHT VERTICAL AND LEFT */ | |
495 | { 0x09f6, 0x2534 }, /* bott ┴ BOX DRAWINGS LIGHT UP AND HORIZONTAL */ | |
496 | { 0x09f7, 0x252c }, /* topt ┬ BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */ | |
497 | { 0x09f8, 0x2502 }, /* vertbar │ BOX DRAWINGS LIGHT VERTICAL */ | |
498 | { 0x0aa1, 0x2003 }, /* emspace EM SPACE */ | |
499 | { 0x0aa2, 0x2002 }, /* enspace EN SPACE */ | |
500 | { 0x0aa3, 0x2004 }, /* em3space THREE-PER-EM SPACE */ | |
501 | { 0x0aa4, 0x2005 }, /* em4space FOUR-PER-EM SPACE */ | |
502 | { 0x0aa5, 0x2007 }, /* digitspace FIGURE SPACE */ | |
503 | { 0x0aa6, 0x2008 }, /* punctspace PUNCTUATION SPACE */ | |
504 | { 0x0aa7, 0x2009 }, /* thinspace THIN SPACE */ | |
505 | { 0x0aa8, 0x200a }, /* hairspace HAIR SPACE */ | |
506 | { 0x0aa9, 0x2014 }, /* emdash — EM DASH */ | |
507 | { 0x0aaa, 0x2013 }, /* endash – EN DASH */ | |
508 | /* 0x0aac signifblank ? ??? */ | |
509 | { 0x0aae, 0x2026 }, /* ellipsis … HORIZONTAL ELLIPSIS */ | |
510 | /* 0x0aaf doubbaselinedot ? ??? */ | |
511 | { 0x0ab0, 0x2153 }, /* onethird ⅓ VULGAR FRACTION ONE THIRD */ | |
512 | { 0x0ab1, 0x2154 }, /* twothirds ⅔ VULGAR FRACTION TWO THIRDS */ | |
513 | { 0x0ab2, 0x2155 }, /* onefifth ⅕ VULGAR FRACTION ONE FIFTH */ | |
514 | { 0x0ab3, 0x2156 }, /* twofifths ⅖ VULGAR FRACTION TWO FIFTHS */ | |
515 | { 0x0ab4, 0x2157 }, /* threefifths ⅗ VULGAR FRACTION THREE FIFTHS */ | |
516 | { 0x0ab5, 0x2158 }, /* fourfifths ⅘ VULGAR FRACTION FOUR FIFTHS */ | |
517 | { 0x0ab6, 0x2159 }, /* onesixth ⅙ VULGAR FRACTION ONE SIXTH */ | |
518 | { 0x0ab7, 0x215a }, /* fivesixths ⅚ VULGAR FRACTION FIVE SIXTHS */ | |
519 | { 0x0ab8, 0x2105 }, /* careof ℅ CARE OF */ | |
520 | { 0x0abb, 0x2012 }, /* figdash ‒ FIGURE DASH */ | |
521 | { 0x0abc, 0x2329 }, /* leftanglebracket 〈 LEFT-POINTING ANGLE BRACKET */ | |
522 | { 0x0abd, 0x002e }, /* decimalpoint . FULL STOP */ | |
523 | { 0x0abe, 0x232a }, /* rightanglebracket 〉 RIGHT-POINTING ANGLE BRACKET */ | |
524 | /* 0x0abf marker ? ??? */ | |
525 | { 0x0ac3, 0x215b }, /* oneeighth ⅛ VULGAR FRACTION ONE EIGHTH */ | |
526 | { 0x0ac4, 0x215c }, /* threeeighths ⅜ VULGAR FRACTION THREE EIGHTHS */ | |
527 | { 0x0ac5, 0x215d }, /* fiveeighths ⅝ VULGAR FRACTION FIVE EIGHTHS */ | |
528 | { 0x0ac6, 0x215e }, /* seveneighths ⅞ VULGAR FRACTION SEVEN EIGHTHS */ | |
529 | { 0x0ac9, 0x2122 }, /* trademark ™ TRADE MARK SIGN */ | |
530 | { 0x0aca, 0x2613 }, /* signaturemark ☓ SALTIRE */ | |
531 | /* 0x0acb trademarkincircle ? ??? */ | |
532 | { 0x0acc, 0x25c1 }, /* leftopentriangle ◁ WHITE LEFT-POINTING TRIANGLE */ | |
533 | { 0x0acd, 0x25b7 }, /* rightopentriangle ▷ WHITE RIGHT-POINTING TRIANGLE */ | |
534 | { 0x0ace, 0x25cb }, /* emopencircle ○ WHITE CIRCLE */ | |
535 | { 0x0acf, 0x25a1 }, /* emopenrectangle □ WHITE SQUARE */ | |
536 | { 0x0ad0, 0x2018 }, /* leftsinglequotemark ‘ LEFT SINGLE QUOTATION MARK */ | |
537 | { 0x0ad1, 0x2019 }, /* rightsinglequotemark ’ RIGHT SINGLE QUOTATION MARK */ | |
538 | { 0x0ad2, 0x201c }, /* leftdoublequotemark “ LEFT DOUBLE QUOTATION MARK */ | |
539 | { 0x0ad3, 0x201d }, /* rightdoublequotemark ” RIGHT DOUBLE QUOTATION MARK */ | |
540 | { 0x0ad4, 0x211e }, /* prescription ℞ PRESCRIPTION TAKE */ | |
541 | { 0x0ad6, 0x2032 }, /* minutes ′ PRIME */ | |
542 | { 0x0ad7, 0x2033 }, /* seconds ″ DOUBLE PRIME */ | |
543 | { 0x0ad9, 0x271d }, /* latincross ✝ LATIN CROSS */ | |
544 | /* 0x0ada hexagram ? ??? */ | |
545 | { 0x0adb, 0x25ac }, /* filledrectbullet ▬ BLACK RECTANGLE */ | |
546 | { 0x0adc, 0x25c0 }, /* filledlefttribullet ◀ BLACK LEFT-POINTING TRIANGLE */ | |
547 | { 0x0add, 0x25b6 }, /* filledrighttribullet ▶ BLACK RIGHT-POINTING TRIANGLE */ | |
548 | { 0x0ade, 0x25cf }, /* emfilledcircle ● BLACK CIRCLE */ | |
549 | { 0x0adf, 0x25a0 }, /* emfilledrect ■ BLACK SQUARE */ | |
550 | { 0x0ae0, 0x25e6 }, /* enopencircbullet ◦ WHITE BULLET */ | |
551 | { 0x0ae1, 0x25ab }, /* enopensquarebullet ▫ WHITE SMALL SQUARE */ | |
552 | { 0x0ae2, 0x25ad }, /* openrectbullet ▭ WHITE RECTANGLE */ | |
553 | { 0x0ae3, 0x25b3 }, /* opentribulletup △ WHITE UP-POINTING TRIANGLE */ | |
554 | { 0x0ae4, 0x25bd }, /* opentribulletdown ▽ WHITE DOWN-POINTING TRIANGLE */ | |
555 | { 0x0ae5, 0x2606 }, /* openstar ☆ WHITE STAR */ | |
556 | { 0x0ae6, 0x2022 }, /* enfilledcircbullet • BULLET */ | |
557 | { 0x0ae7, 0x25aa }, /* enfilledsqbullet ▪ BLACK SMALL SQUARE */ | |
558 | { 0x0ae8, 0x25b2 }, /* filledtribulletup ▲ BLACK UP-POINTING TRIANGLE */ | |
559 | { 0x0ae9, 0x25bc }, /* filledtribulletdown ▼ BLACK DOWN-POINTING TRIANGLE */ | |
560 | { 0x0aea, 0x261c }, /* leftpointer ☜ WHITE LEFT POINTING INDEX */ | |
561 | { 0x0aeb, 0x261e }, /* rightpointer ☞ WHITE RIGHT POINTING INDEX */ | |
562 | { 0x0aec, 0x2663 }, /* club ♣ BLACK CLUB SUIT */ | |
563 | { 0x0aed, 0x2666 }, /* diamond ♦ BLACK DIAMOND SUIT */ | |
564 | { 0x0aee, 0x2665 }, /* heart ♥ BLACK HEART SUIT */ | |
565 | { 0x0af0, 0x2720 }, /* maltesecross ✠ MALTESE CROSS */ | |
566 | { 0x0af1, 0x2020 }, /* dagger † DAGGER */ | |
567 | { 0x0af2, 0x2021 }, /* doubledagger ‡ DOUBLE DAGGER */ | |
568 | { 0x0af3, 0x2713 }, /* checkmark ✓ CHECK MARK */ | |
569 | { 0x0af4, 0x2717 }, /* ballotcross ✗ BALLOT X */ | |
570 | { 0x0af5, 0x266f }, /* musicalsharp ♯ MUSIC SHARP SIGN */ | |
571 | { 0x0af6, 0x266d }, /* musicalflat ♭ MUSIC FLAT SIGN */ | |
572 | { 0x0af7, 0x2642 }, /* malesymbol ♂ MALE SIGN */ | |
573 | { 0x0af8, 0x2640 }, /* femalesymbol ♀ FEMALE SIGN */ | |
574 | { 0x0af9, 0x260e }, /* telephone ☎ BLACK TELEPHONE */ | |
575 | { 0x0afa, 0x2315 }, /* telephonerecorder ⌕ TELEPHONE RECORDER */ | |
576 | { 0x0afb, 0x2117 }, /* phonographcopyright ℗ SOUND RECORDING COPYRIGHT */ | |
577 | { 0x0afc, 0x2038 }, /* caret ‸ CARET */ | |
578 | { 0x0afd, 0x201a }, /* singlelowquotemark ‚ SINGLE LOW-9 QUOTATION MARK */ | |
579 | { 0x0afe, 0x201e }, /* doublelowquotemark „ DOUBLE LOW-9 QUOTATION MARK */ | |
580 | /* 0x0aff cursor ? ??? */ | |
581 | { 0x0ba3, 0x003c }, /* leftcaret < LESS-THAN SIGN */ | |
582 | { 0x0ba6, 0x003e }, /* rightcaret > GREATER-THAN SIGN */ | |
583 | { 0x0ba8, 0x2228 }, /* downcaret ∨ LOGICAL OR */ | |
584 | { 0x0ba9, 0x2227 }, /* upcaret ∧ LOGICAL AND */ | |
585 | { 0x0bc0, 0x00af }, /* overbar ¯ MACRON */ | |
586 | { 0x0bc2, 0x22a4 }, /* downtack ⊤ DOWN TACK */ | |
587 | { 0x0bc3, 0x2229 }, /* upshoe ∩ INTERSECTION */ | |
588 | { 0x0bc4, 0x230a }, /* downstile ⌊ LEFT FLOOR */ | |
589 | { 0x0bc6, 0x005f }, /* underbar _ LOW LINE */ | |
590 | { 0x0bca, 0x2218 }, /* jot ∘ RING OPERATOR */ | |
591 | { 0x0bcc, 0x2395 }, /* quad ⎕ APL FUNCTIONAL SYMBOL QUAD (Unicode 3.0) */ | |
592 | { 0x0bce, 0x22a5 }, /* uptack ⊥ UP TACK */ | |
593 | { 0x0bcf, 0x25cb }, /* circle ○ WHITE CIRCLE */ | |
594 | { 0x0bd3, 0x2308 }, /* upstile ⌈ LEFT CEILING */ | |
595 | { 0x0bd6, 0x222a }, /* downshoe ∪ UNION */ | |
596 | { 0x0bd8, 0x2283 }, /* rightshoe ⊃ SUPERSET OF */ | |
597 | { 0x0bda, 0x2282 }, /* leftshoe ⊂ SUBSET OF */ | |
598 | { 0x0bdc, 0x22a3 }, /* lefttack ⊣ LEFT TACK */ | |
599 | { 0x0bfc, 0x22a2 }, /* righttack ⊢ RIGHT TACK */ | |
600 | { 0x0cdf, 0x2017 }, /* hebrew_doublelowline ‗ DOUBLE LOW LINE */ | |
601 | { 0x0ce0, 0x05d0 }, /* hebrew_aleph א HEBREW LETTER ALEF */ | |
602 | { 0x0ce1, 0x05d1 }, /* hebrew_bet ב HEBREW LETTER BET */ | |
603 | { 0x0ce2, 0x05d2 }, /* hebrew_gimel ג HEBREW LETTER GIMEL */ | |
604 | { 0x0ce3, 0x05d3 }, /* hebrew_dalet ד HEBREW LETTER DALET */ | |
605 | { 0x0ce4, 0x05d4 }, /* hebrew_he ה HEBREW LETTER HE */ | |
606 | { 0x0ce5, 0x05d5 }, /* hebrew_waw ו HEBREW LETTER VAV */ | |
607 | { 0x0ce6, 0x05d6 }, /* hebrew_zain ז HEBREW LETTER ZAYIN */ | |
608 | { 0x0ce7, 0x05d7 }, /* hebrew_chet ח HEBREW LETTER HET */ | |
609 | { 0x0ce8, 0x05d8 }, /* hebrew_tet ט HEBREW LETTER TET */ | |
610 | { 0x0ce9, 0x05d9 }, /* hebrew_yod י HEBREW LETTER YOD */ | |
611 | { 0x0cea, 0x05da }, /* hebrew_finalkaph ך HEBREW LETTER FINAL KAF */ | |
612 | { 0x0ceb, 0x05db }, /* hebrew_kaph כ HEBREW LETTER KAF */ | |
613 | { 0x0cec, 0x05dc }, /* hebrew_lamed ל HEBREW LETTER LAMED */ | |
614 | { 0x0ced, 0x05dd }, /* hebrew_finalmem ם HEBREW LETTER FINAL MEM */ | |
615 | { 0x0cee, 0x05de }, /* hebrew_mem מ HEBREW LETTER MEM */ | |
616 | { 0x0cef, 0x05df }, /* hebrew_finalnun ן HEBREW LETTER FINAL NUN */ | |
617 | { 0x0cf0, 0x05e0 }, /* hebrew_nun נ HEBREW LETTER NUN */ | |
618 | { 0x0cf1, 0x05e1 }, /* hebrew_samech ס HEBREW LETTER SAMEKH */ | |
619 | { 0x0cf2, 0x05e2 }, /* hebrew_ayin ע HEBREW LETTER AYIN */ | |
620 | { 0x0cf3, 0x05e3 }, /* hebrew_finalpe ף HEBREW LETTER FINAL PE */ | |
621 | { 0x0cf4, 0x05e4 }, /* hebrew_pe פ HEBREW LETTER PE */ | |
622 | { 0x0cf5, 0x05e5 }, /* hebrew_finalzade ץ HEBREW LETTER FINAL TSADI */ | |
623 | { 0x0cf6, 0x05e6 }, /* hebrew_zade צ HEBREW LETTER TSADI */ | |
624 | { 0x0cf7, 0x05e7 }, /* hebrew_qoph ק HEBREW LETTER QOF */ | |
625 | { 0x0cf8, 0x05e8 }, /* hebrew_resh ר HEBREW LETTER RESH */ | |
626 | { 0x0cf9, 0x05e9 }, /* hebrew_shin ש HEBREW LETTER SHIN */ | |
627 | { 0x0cfa, 0x05ea }, /* hebrew_taw ת HEBREW LETTER TAV */ | |
628 | { 0x0da1, 0x0e01 }, /* Thai_kokai ก THAI CHARACTER KO KAI */ | |
629 | { 0x0da2, 0x0e02 }, /* Thai_khokhai ข THAI CHARACTER KHO KHAI */ | |
630 | { 0x0da3, 0x0e03 }, /* Thai_khokhuat ฃ THAI CHARACTER KHO KHUAT */ | |
631 | { 0x0da4, 0x0e04 }, /* Thai_khokhwai ค THAI CHARACTER KHO KHWAI */ | |
632 | { 0x0da5, 0x0e05 }, /* Thai_khokhon ฅ THAI CHARACTER KHO KHON */ | |
633 | { 0x0da6, 0x0e06 }, /* Thai_khorakhang ฆ THAI CHARACTER KHO RAKHANG */ | |
634 | { 0x0da7, 0x0e07 }, /* Thai_ngongu ง THAI CHARACTER NGO NGU */ | |
635 | { 0x0da8, 0x0e08 }, /* Thai_chochan จ THAI CHARACTER CHO CHAN */ | |
636 | { 0x0da9, 0x0e09 }, /* Thai_choching ฉ THAI CHARACTER CHO CHING */ | |
637 | { 0x0daa, 0x0e0a }, /* Thai_chochang ช THAI CHARACTER CHO CHANG */ | |
638 | { 0x0dab, 0x0e0b }, /* Thai_soso ซ THAI CHARACTER SO SO */ | |
639 | { 0x0dac, 0x0e0c }, /* Thai_chochoe ฌ THAI CHARACTER CHO CHOE */ | |
640 | { 0x0dad, 0x0e0d }, /* Thai_yoying ญ THAI CHARACTER YO YING */ | |
641 | { 0x0dae, 0x0e0e }, /* Thai_dochada ฎ THAI CHARACTER DO CHADA */ | |
642 | { 0x0daf, 0x0e0f }, /* Thai_topatak ฏ THAI CHARACTER TO PATAK */ | |
643 | { 0x0db0, 0x0e10 }, /* Thai_thothan ฐ THAI CHARACTER THO THAN */ | |
644 | { 0x0db1, 0x0e11 }, /* Thai_thonangmontho ฑ THAI CHARACTER THO NANGMONTHO */ | |
645 | { 0x0db2, 0x0e12 }, /* Thai_thophuthao ฒ THAI CHARACTER THO PHUTHAO */ | |
646 | { 0x0db3, 0x0e13 }, /* Thai_nonen ณ THAI CHARACTER NO NEN */ | |
647 | { 0x0db4, 0x0e14 }, /* Thai_dodek ด THAI CHARACTER DO DEK */ | |
648 | { 0x0db5, 0x0e15 }, /* Thai_totao ต THAI CHARACTER TO TAO */ | |
649 | { 0x0db6, 0x0e16 }, /* Thai_thothung ถ THAI CHARACTER THO THUNG */ | |
650 | { 0x0db7, 0x0e17 }, /* Thai_thothahan ท THAI CHARACTER THO THAHAN */ | |
651 | { 0x0db8, 0x0e18 }, /* Thai_thothong ธ THAI CHARACTER THO THONG */ | |
652 | { 0x0db9, 0x0e19 }, /* Thai_nonu น THAI CHARACTER NO NU */ | |
653 | { 0x0dba, 0x0e1a }, /* Thai_bobaimai บ THAI CHARACTER BO BAIMAI */ | |
654 | { 0x0dbb, 0x0e1b }, /* Thai_popla ป THAI CHARACTER PO PLA */ | |
655 | { 0x0dbc, 0x0e1c }, /* Thai_phophung ผ THAI CHARACTER PHO PHUNG */ | |
656 | { 0x0dbd, 0x0e1d }, /* Thai_fofa ฝ THAI CHARACTER FO FA */ | |
657 | { 0x0dbe, 0x0e1e }, /* Thai_phophan พ THAI CHARACTER PHO PHAN */ | |
658 | { 0x0dbf, 0x0e1f }, /* Thai_fofan ฟ THAI CHARACTER FO FAN */ | |
659 | { 0x0dc0, 0x0e20 }, /* Thai_phosamphao ภ THAI CHARACTER PHO SAMPHAO */ | |
660 | { 0x0dc1, 0x0e21 }, /* Thai_moma ม THAI CHARACTER MO MA */ | |
661 | { 0x0dc2, 0x0e22 }, /* Thai_yoyak ย THAI CHARACTER YO YAK */ | |
662 | { 0x0dc3, 0x0e23 }, /* Thai_rorua ร THAI CHARACTER RO RUA */ | |
663 | { 0x0dc4, 0x0e24 }, /* Thai_ru ฤ THAI CHARACTER RU */ | |
664 | { 0x0dc5, 0x0e25 }, /* Thai_loling ล THAI CHARACTER LO LING */ | |
665 | { 0x0dc6, 0x0e26 }, /* Thai_lu ฦ THAI CHARACTER LU */ | |
666 | { 0x0dc7, 0x0e27 }, /* Thai_wowaen ว THAI CHARACTER WO WAEN */ | |
667 | { 0x0dc8, 0x0e28 }, /* Thai_sosala ศ THAI CHARACTER SO SALA */ | |
668 | { 0x0dc9, 0x0e29 }, /* Thai_sorusi ษ THAI CHARACTER SO RUSI */ | |
669 | { 0x0dca, 0x0e2a }, /* Thai_sosua ส THAI CHARACTER SO SUA */ | |
670 | { 0x0dcb, 0x0e2b }, /* Thai_hohip ห THAI CHARACTER HO HIP */ | |
671 | { 0x0dcc, 0x0e2c }, /* Thai_lochula ฬ THAI CHARACTER LO CHULA */ | |
672 | { 0x0dcd, 0x0e2d }, /* Thai_oang อ THAI CHARACTER O ANG */ | |
673 | { 0x0dce, 0x0e2e }, /* Thai_honokhuk ฮ THAI CHARACTER HO NOKHUK */ | |
674 | { 0x0dcf, 0x0e2f }, /* Thai_paiyannoi ฯ THAI CHARACTER PAIYANNOI */ | |
675 | { 0x0dd0, 0x0e30 }, /* Thai_saraa ะ THAI CHARACTER SARA A */ | |
676 | { 0x0dd1, 0x0e31 }, /* Thai_maihanakat ั THAI CHARACTER MAI HAN-AKAT */ | |
677 | { 0x0dd2, 0x0e32 }, /* Thai_saraaa า THAI CHARACTER SARA AA */ | |
678 | { 0x0dd3, 0x0e33 }, /* Thai_saraam ำ THAI CHARACTER SARA AM */ | |
679 | { 0x0dd4, 0x0e34 }, /* Thai_sarai ิ THAI CHARACTER SARA I */ | |
680 | { 0x0dd5, 0x0e35 }, /* Thai_saraii ี THAI CHARACTER SARA II */ | |
681 | { 0x0dd6, 0x0e36 }, /* Thai_saraue ึ THAI CHARACTER SARA UE */ | |
682 | { 0x0dd7, 0x0e37 }, /* Thai_sarauee ื THAI CHARACTER SARA UEE */ | |
683 | { 0x0dd8, 0x0e38 }, /* Thai_sarau ุ THAI CHARACTER SARA U */ | |
684 | { 0x0dd9, 0x0e39 }, /* Thai_sarauu ู THAI CHARACTER SARA UU */ | |
685 | { 0x0dda, 0x0e3a }, /* Thai_phinthu ฺ THAI CHARACTER PHINTHU */ | |
686 | { 0x0dde, 0x0e3e }, /* Thai_maihanakat_maitho ??? */ | |
687 | { 0x0ddf, 0x0e3f }, /* Thai_baht ฿ THAI CURRENCY SYMBOL BAHT */ | |
688 | { 0x0de0, 0x0e40 }, /* Thai_sarae เ THAI CHARACTER SARA E */ | |
689 | { 0x0de1, 0x0e41 }, /* Thai_saraae แ THAI CHARACTER SARA AE */ | |
690 | { 0x0de2, 0x0e42 }, /* Thai_sarao โ THAI CHARACTER SARA O */ | |
691 | { 0x0de3, 0x0e43 }, /* Thai_saraaimaimuan ใ THAI CHARACTER SARA AI MAIMUAN */ | |
692 | { 0x0de4, 0x0e44 }, /* Thai_saraaimaimalai ไ THAI CHARACTER SARA AI MAIMALAI */ | |
693 | { 0x0de5, 0x0e45 }, /* Thai_lakkhangyao ๅ THAI CHARACTER LAKKHANGYAO */ | |
694 | { 0x0de6, 0x0e46 }, /* Thai_maiyamok ๆ THAI CHARACTER MAIYAMOK */ | |
695 | { 0x0de7, 0x0e47 }, /* Thai_maitaikhu ็ THAI CHARACTER MAITAIKHU */ | |
696 | { 0x0de8, 0x0e48 }, /* Thai_maiek ่ THAI CHARACTER MAI EK */ | |
697 | { 0x0de9, 0x0e49 }, /* Thai_maitho ้ THAI CHARACTER MAI THO */ | |
698 | { 0x0dea, 0x0e4a }, /* Thai_maitri ๊ THAI CHARACTER MAI TRI */ | |
699 | { 0x0deb, 0x0e4b }, /* Thai_maichattawa ๋ THAI CHARACTER MAI CHATTAWA */ | |
700 | { 0x0dec, 0x0e4c }, /* Thai_thanthakhat ์ THAI CHARACTER THANTHAKHAT */ | |
701 | { 0x0ded, 0x0e4d }, /* Thai_nikhahit ํ THAI CHARACTER NIKHAHIT */ | |
702 | { 0x0df0, 0x0e50 }, /* Thai_leksun ๐ THAI DIGIT ZERO */ | |
703 | { 0x0df1, 0x0e51 }, /* Thai_leknung ๑ THAI DIGIT ONE */ | |
704 | { 0x0df2, 0x0e52 }, /* Thai_leksong ๒ THAI DIGIT TWO */ | |
705 | { 0x0df3, 0x0e53 }, /* Thai_leksam ๓ THAI DIGIT THREE */ | |
706 | { 0x0df4, 0x0e54 }, /* Thai_leksi ๔ THAI DIGIT FOUR */ | |
707 | { 0x0df5, 0x0e55 }, /* Thai_lekha ๕ THAI DIGIT FIVE */ | |
708 | { 0x0df6, 0x0e56 }, /* Thai_lekhok ๖ THAI DIGIT SIX */ | |
709 | { 0x0df7, 0x0e57 }, /* Thai_lekchet ๗ THAI DIGIT SEVEN */ | |
710 | { 0x0df8, 0x0e58 }, /* Thai_lekpaet ๘ THAI DIGIT EIGHT */ | |
711 | { 0x0df9, 0x0e59 }, /* Thai_lekkao ๙ THAI DIGIT NINE */ | |
712 | { 0x0ea1, 0x3131 }, /* Hangul_Kiyeog ㄱ HANGUL LETTER KIYEOK */ | |
713 | { 0x0ea2, 0x3132 }, /* Hangul_SsangKiyeog ㄲ HANGUL LETTER SSANGKIYEOK */ | |
714 | { 0x0ea3, 0x3133 }, /* Hangul_KiyeogSios ㄳ HANGUL LETTER KIYEOK-SIOS */ | |
715 | { 0x0ea4, 0x3134 }, /* Hangul_Nieun ㄴ HANGUL LETTER NIEUN */ | |
716 | { 0x0ea5, 0x3135 }, /* Hangul_NieunJieuj ㄵ HANGUL LETTER NIEUN-CIEUC */ | |
717 | { 0x0ea6, 0x3136 }, /* Hangul_NieunHieuh ㄶ HANGUL LETTER NIEUN-HIEUH */ | |
718 | { 0x0ea7, 0x3137 }, /* Hangul_Dikeud ㄷ HANGUL LETTER TIKEUT */ | |
719 | { 0x0ea8, 0x3138 }, /* Hangul_SsangDikeud ㄸ HANGUL LETTER SSANGTIKEUT */ | |
720 | { 0x0ea9, 0x3139 }, /* Hangul_Rieul ㄹ HANGUL LETTER RIEUL */ | |
721 | { 0x0eaa, 0x313a }, /* Hangul_RieulKiyeog ㄺ HANGUL LETTER RIEUL-KIYEOK */ | |
722 | { 0x0eab, 0x313b }, /* Hangul_RieulMieum ㄻ HANGUL LETTER RIEUL-MIEUM */ | |
723 | { 0x0eac, 0x313c }, /* Hangul_RieulPieub ㄼ HANGUL LETTER RIEUL-PIEUP */ | |
724 | { 0x0ead, 0x313d }, /* Hangul_RieulSios ㄽ HANGUL LETTER RIEUL-SIOS */ | |
725 | { 0x0eae, 0x313e }, /* Hangul_RieulTieut ㄾ HANGUL LETTER RIEUL-THIEUTH */ | |
726 | { 0x0eaf, 0x313f }, /* Hangul_RieulPhieuf ㄿ HANGUL LETTER RIEUL-PHIEUPH */ | |
727 | { 0x0eb0, 0x3140 }, /* Hangul_RieulHieuh ㅀ HANGUL LETTER RIEUL-HIEUH */ | |
728 | { 0x0eb1, 0x3141 }, /* Hangul_Mieum ㅁ HANGUL LETTER MIEUM */ | |
729 | { 0x0eb2, 0x3142 }, /* Hangul_Pieub ㅂ HANGUL LETTER PIEUP */ | |
730 | { 0x0eb3, 0x3143 }, /* Hangul_SsangPieub ㅃ HANGUL LETTER SSANGPIEUP */ | |
731 | { 0x0eb4, 0x3144 }, /* Hangul_PieubSios ㅄ HANGUL LETTER PIEUP-SIOS */ | |
732 | { 0x0eb5, 0x3145 }, /* Hangul_Sios ㅅ HANGUL LETTER SIOS */ | |
733 | { 0x0eb6, 0x3146 }, /* Hangul_SsangSios ㅆ HANGUL LETTER SSANGSIOS */ | |
734 | { 0x0eb7, 0x3147 }, /* Hangul_Ieung ㅇ HANGUL LETTER IEUNG */ | |
735 | { 0x0eb8, 0x3148 }, /* Hangul_Jieuj ㅈ HANGUL LETTER CIEUC */ | |
736 | { 0x0eb9, 0x3149 }, /* Hangul_SsangJieuj ㅉ HANGUL LETTER SSANGCIEUC */ | |
737 | { 0x0eba, 0x314a }, /* Hangul_Cieuc ㅊ HANGUL LETTER CHIEUCH */ | |
738 | { 0x0ebb, 0x314b }, /* Hangul_Khieuq ㅋ HANGUL LETTER KHIEUKH */ | |
739 | { 0x0ebc, 0x314c }, /* Hangul_Tieut ㅌ HANGUL LETTER THIEUTH */ | |
740 | { 0x0ebd, 0x314d }, /* Hangul_Phieuf ㅍ HANGUL LETTER PHIEUPH */ | |
741 | { 0x0ebe, 0x314e }, /* Hangul_Hieuh ㅎ HANGUL LETTER HIEUH */ | |
742 | { 0x0ebf, 0x314f }, /* Hangul_A ㅏ HANGUL LETTER A */ | |
743 | { 0x0ec0, 0x3150 }, /* Hangul_AE ㅐ HANGUL LETTER AE */ | |
744 | { 0x0ec1, 0x3151 }, /* Hangul_YA ㅑ HANGUL LETTER YA */ | |
745 | { 0x0ec2, 0x3152 }, /* Hangul_YAE ㅒ HANGUL LETTER YAE */ | |
746 | { 0x0ec3, 0x3153 }, /* Hangul_EO ㅓ HANGUL LETTER EO */ | |
747 | { 0x0ec4, 0x3154 }, /* Hangul_E ㅔ HANGUL LETTER E */ | |
748 | { 0x0ec5, 0x3155 }, /* Hangul_YEO ㅕ HANGUL LETTER YEO */ | |
749 | { 0x0ec6, 0x3156 }, /* Hangul_YE ㅖ HANGUL LETTER YE */ | |
750 | { 0x0ec7, 0x3157 }, /* Hangul_O ㅗ HANGUL LETTER O */ | |
751 | { 0x0ec8, 0x3158 }, /* Hangul_WA ㅘ HANGUL LETTER WA */ | |
752 | { 0x0ec9, 0x3159 }, /* Hangul_WAE ㅙ HANGUL LETTER WAE */ | |
753 | { 0x0eca, 0x315a }, /* Hangul_OE ㅚ HANGUL LETTER OE */ | |
754 | { 0x0ecb, 0x315b }, /* Hangul_YO ㅛ HANGUL LETTER YO */ | |
755 | { 0x0ecc, 0x315c }, /* Hangul_U ㅜ HANGUL LETTER U */ | |
756 | { 0x0ecd, 0x315d }, /* Hangul_WEO ㅝ HANGUL LETTER WEO */ | |
757 | { 0x0ece, 0x315e }, /* Hangul_WE ㅞ HANGUL LETTER WE */ | |
758 | { 0x0ecf, 0x315f }, /* Hangul_WI ㅟ HANGUL LETTER WI */ | |
759 | { 0x0ed0, 0x3160 }, /* Hangul_YU ㅠ HANGUL LETTER YU */ | |
760 | { 0x0ed1, 0x3161 }, /* Hangul_EU ㅡ HANGUL LETTER EU */ | |
761 | { 0x0ed2, 0x3162 }, /* Hangul_YI ㅢ HANGUL LETTER YI */ | |
762 | { 0x0ed3, 0x3163 }, /* Hangul_I ㅣ HANGUL LETTER I */ | |
763 | { 0x0ed4, 0x11a8 }, /* Hangul_J_Kiyeog ᆨ HANGUL JONGSEONG KIYEOK */ | |
764 | { 0x0ed5, 0x11a9 }, /* Hangul_J_SsangKiyeog ᆩ HANGUL JONGSEONG SSANGKIYEOK */ | |
765 | { 0x0ed6, 0x11aa }, /* Hangul_J_KiyeogSios ᆪ HANGUL JONGSEONG KIYEOK-SIOS */ | |
766 | { 0x0ed7, 0x11ab }, /* Hangul_J_Nieun ᆫ HANGUL JONGSEONG NIEUN */ | |
767 | { 0x0ed8, 0x11ac }, /* Hangul_J_NieunJieuj ᆬ HANGUL JONGSEONG NIEUN-CIEUC */ | |
768 | { 0x0ed9, 0x11ad }, /* Hangul_J_NieunHieuh ᆭ HANGUL JONGSEONG NIEUN-HIEUH */ | |
769 | { 0x0eda, 0x11ae }, /* Hangul_J_Dikeud ᆮ HANGUL JONGSEONG TIKEUT */ | |
770 | { 0x0edb, 0x11af }, /* Hangul_J_Rieul ᆯ HANGUL JONGSEONG RIEUL */ | |
771 | { 0x0edc, 0x11b0 }, /* Hangul_J_RieulKiyeog ᆰ HANGUL JONGSEONG RIEUL-KIYEOK */ | |
772 | { 0x0edd, 0x11b1 }, /* Hangul_J_RieulMieum ᆱ HANGUL JONGSEONG RIEUL-MIEUM */ | |
773 | { 0x0ede, 0x11b2 }, /* Hangul_J_RieulPieub ᆲ HANGUL JONGSEONG RIEUL-PIEUP */ | |
774 | { 0x0edf, 0x11b3 }, /* Hangul_J_RieulSios ᆳ HANGUL JONGSEONG RIEUL-SIOS */ | |
775 | { 0x0ee0, 0x11b4 }, /* Hangul_J_RieulTieut ᆴ HANGUL JONGSEONG RIEUL-THIEUTH */ | |
776 | { 0x0ee1, 0x11b5 }, /* Hangul_J_RieulPhieuf ᆵ HANGUL JONGSEONG RIEUL-PHIEUPH */ | |
777 | { 0x0ee2, 0x11b6 }, /* Hangul_J_RieulHieuh ᆶ HANGUL JONGSEONG RIEUL-HIEUH */ | |
778 | { 0x0ee3, 0x11b7 }, /* Hangul_J_Mieum ᆷ HANGUL JONGSEONG MIEUM */ | |
779 | { 0x0ee4, 0x11b8 }, /* Hangul_J_Pieub ᆸ HANGUL JONGSEONG PIEUP */ | |
780 | { 0x0ee5, 0x11b9 }, /* Hangul_J_PieubSios ᆹ HANGUL JONGSEONG PIEUP-SIOS */ | |
781 | { 0x0ee6, 0x11ba }, /* Hangul_J_Sios ᆺ HANGUL JONGSEONG SIOS */ | |
782 | { 0x0ee7, 0x11bb }, /* Hangul_J_SsangSios ᆻ HANGUL JONGSEONG SSANGSIOS */ | |
783 | { 0x0ee8, 0x11bc }, /* Hangul_J_Ieung ᆼ HANGUL JONGSEONG IEUNG */ | |
784 | { 0x0ee9, 0x11bd }, /* Hangul_J_Jieuj ᆽ HANGUL JONGSEONG CIEUC */ | |
785 | { 0x0eea, 0x11be }, /* Hangul_J_Cieuc ᆾ HANGUL JONGSEONG CHIEUCH */ | |
786 | { 0x0eeb, 0x11bf }, /* Hangul_J_Khieuq ᆿ HANGUL JONGSEONG KHIEUKH */ | |
787 | { 0x0eec, 0x11c0 }, /* Hangul_J_Tieut ᇀ HANGUL JONGSEONG THIEUTH */ | |
788 | { 0x0eed, 0x11c1 }, /* Hangul_J_Phieuf ᇁ HANGUL JONGSEONG PHIEUPH */ | |
789 | { 0x0eee, 0x11c2 }, /* Hangul_J_Hieuh ᇂ HANGUL JONGSEONG HIEUH */ | |
790 | { 0x0eef, 0x316d }, /* Hangul_RieulYeorinHieuh ㅭ HANGUL LETTER RIEUL-YEORINHIEUH */ | |
791 | { 0x0ef0, 0x3171 }, /* Hangul_SunkyeongeumMieum ㅱ HANGUL LETTER KAPYEOUNMIEUM */ | |
792 | { 0x0ef1, 0x3178 }, /* Hangul_SunkyeongeumPieub ㅸ HANGUL LETTER KAPYEOUNPIEUP */ | |
793 | { 0x0ef2, 0x317f }, /* Hangul_PanSios ㅿ HANGUL LETTER PANSIOS */ | |
794 | /* 0x0ef3 Hangul_KkogjiDalrinIeung ? ??? */ | |
795 | { 0x0ef4, 0x3184 }, /* Hangul_SunkyeongeumPhieuf ㆄ HANGUL LETTER KAPYEOUNPHIEUPH */ | |
796 | { 0x0ef5, 0x3186 }, /* Hangul_YeorinHieuh ㆆ HANGUL LETTER YEORINHIEUH */ | |
797 | { 0x0ef6, 0x318d }, /* Hangul_AraeA ㆍ HANGUL LETTER ARAEA */ | |
798 | { 0x0ef7, 0x318e }, /* Hangul_AraeAE ㆎ HANGUL LETTER ARAEAE */ | |
799 | { 0x0ef8, 0x11eb }, /* Hangul_J_PanSios ᇫ HANGUL JONGSEONG PANSIOS */ | |
800 | /* 0x0ef9 Hangul_J_KkogjiDalrinIeung ? ??? */ | |
801 | { 0x0efa, 0x11f9 }, /* Hangul_J_YeorinHieuh ᇹ HANGUL JONGSEONG YEORINHIEUH */ | |
802 | { 0x0eff, 0x20a9 }, /* Korean_Won ₩ WON SIGN */ | |
803 | { 0x13bc, 0x0152 }, /* OE Œ LATIN CAPITAL LIGATURE OE */ | |
804 | { 0x13bd, 0x0153 }, /* oe œ LATIN SMALL LIGATURE OE */ | |
805 | { 0x13be, 0x0178 }, /* Ydiaeresis Ÿ LATIN CAPITAL LETTER Y WITH DIAERESIS */ | |
806 | { 0x20a0, 0x20a0 }, /* EcuSign ₠ EURO-CURRENCY SIGN */ | |
807 | { 0x20a1, 0x20a1 }, /* ColonSign ₡ COLON SIGN */ | |
808 | { 0x20a2, 0x20a2 }, /* CruzeiroSign ₢ CRUZEIRO SIGN */ | |
809 | { 0x20a3, 0x20a3 }, /* FFrancSign ₣ FRENCH FRANC SIGN */ | |
810 | { 0x20a4, 0x20a4 }, /* LiraSign ₤ LIRA SIGN */ | |
811 | { 0x20a5, 0x20a5 }, /* MillSign ₥ MILL SIGN */ | |
812 | { 0x20a6, 0x20a6 }, /* NairaSign ₦ NAIRA SIGN */ | |
813 | { 0x20a7, 0x20a7 }, /* PesetaSign ₧ PESETA SIGN */ | |
814 | { 0x20a8, 0x20a8 }, /* RupeeSign ₨ RUPEE SIGN */ | |
815 | { 0x20a9, 0x20a9 }, /* WonSign ₩ WON SIGN */ | |
816 | { 0x20aa, 0x20aa }, /* NewSheqelSign ₪ NEW SHEQEL SIGN */ | |
817 | { 0x20ab, 0x20ab }, /* DongSign ₫ DONG SIGN */ | |
818 | { 0x20ac, 0x20ac }, /* EuroSign € EURO SIGN */ | |
819 | ||
820 | ||
821 | /* Following items added to GTK, not in the xterm table */ | |
822 | ||
823 | /* A few ASCII control characters */ | |
824 | ||
825 | { 0xFF08 /* Backspace */, '\b' }, | |
826 | { 0xFF09 /* Tab */, '\t' }, | |
827 | { 0xFF0A /* Linefeed */, '\n' }, | |
828 | { 0xFF0B /* Vert. Tab */, '\v' }, | |
829 | { 0xFF0D /* Return */, '\r' }, | |
830 | { 0xFF1B /* Escape */, '\033' }, | |
831 | ||
832 | /* Numeric keypad */ | |
833 | ||
834 | { 0xFF80 /* Space */, ' ' }, | |
835 | { 0xFFAA /* Multiply */, '*' }, | |
836 | { 0xFFAB /* Add */, '+' }, | |
837 | { 0xFFAC /* Separator */, ',' }, | |
838 | { 0xFFAD /* Subtract */, '-' }, | |
839 | { 0xFFAE /* Decimal */, '.' }, | |
840 | { 0xFFAF /* Divide */, '/' }, | |
841 | { 0xFFB0 /* 0 */, '0' }, | |
842 | { 0xFFB1 /* 1 */, '1' }, | |
843 | { 0xFFB2 /* 2 */, '2' }, | |
844 | { 0xFFB3 /* 3 */, '3' }, | |
845 | { 0xFFB4 /* 4 */, '4' }, | |
846 | { 0xFFB5 /* 5 */, '5' }, | |
847 | { 0xFFB6 /* 6 */, '6' }, | |
848 | { 0xFFB7 /* 7 */, '7' }, | |
849 | { 0xFFB8 /* 8 */, '8' }, | |
850 | { 0xFFB9 /* 9 */, '9' }, | |
851 | { 0xFFBD /* Equal */, '=' }, | |
852 | ||
853 | /* End numeric keypad */ | |
854 | ||
855 | { 0xFFFF /* Delete */, '\177' } | |
856 | }; | |
857 | ||
858 | static const struct _FcitxUnicodeToKeySym gdk_unicode_to_keysym_tab[] = { | |
859 | { 0x0abd, 0x002e }, /* decimalpoint . FULL STOP */ | |
860 | { 0x0ba3, 0x003c }, /* leftcaret < LESS-THAN SIGN */ | |
861 | { 0x0ba6, 0x003e }, /* rightcaret > GREATER-THAN SIGN */ | |
862 | { 0x0bc6, 0x005f }, /* underbar _ LOW LINE */ | |
863 | { 0x0bc0, 0x00af }, /* overbar ¯ MACRON */ | |
864 | { 0x03c0, 0x0100 }, /* Amacron Ā LATIN CAPITAL LETTER A WITH MACRON */ | |
865 | { 0x03e0, 0x0101 }, /* amacron ā LATIN SMALL LETTER A WITH MACRON */ | |
866 | { 0x01c3, 0x0102 }, /* Abreve Ă LATIN CAPITAL LETTER A WITH BREVE */ | |
867 | { 0x01e3, 0x0103 }, /* abreve ă LATIN SMALL LETTER A WITH BREVE */ | |
868 | { 0x01a1, 0x0104 }, /* Aogonek Ą LATIN CAPITAL LETTER A WITH OGONEK */ | |
869 | { 0x01b1, 0x0105 }, /* aogonek ą LATIN SMALL LETTER A WITH OGONEK */ | |
870 | { 0x01c6, 0x0106 }, /* Cacute Ć LATIN CAPITAL LETTER C WITH ACUTE */ | |
871 | { 0x01e6, 0x0107 }, /* cacute ć LATIN SMALL LETTER C WITH ACUTE */ | |
872 | { 0x02c6, 0x0108 }, /* Ccircumflex Ĉ LATIN CAPITAL LETTER C WITH CIRCUMFLEX */ | |
873 | { 0x02e6, 0x0109 }, /* ccircumflex ĉ LATIN SMALL LETTER C WITH CIRCUMFLEX */ | |
874 | { 0x02c5, 0x010a }, /* Cabovedot Ċ LATIN CAPITAL LETTER C WITH DOT ABOVE */ | |
875 | { 0x02e5, 0x010b }, /* cabovedot ċ LATIN SMALL LETTER C WITH DOT ABOVE */ | |
876 | { 0x01c8, 0x010c }, /* Ccaron Č LATIN CAPITAL LETTER C WITH CARON */ | |
877 | { 0x01e8, 0x010d }, /* ccaron č LATIN SMALL LETTER C WITH CARON */ | |
878 | { 0x01cf, 0x010e }, /* Dcaron Ď LATIN CAPITAL LETTER D WITH CARON */ | |
879 | { 0x01ef, 0x010f }, /* dcaron ď LATIN SMALL LETTER D WITH CARON */ | |
880 | { 0x01d0, 0x0110 }, /* Dstroke Đ LATIN CAPITAL LETTER D WITH STROKE */ | |
881 | { 0x01f0, 0x0111 }, /* dstroke đ LATIN SMALL LETTER D WITH STROKE */ | |
882 | { 0x03aa, 0x0112 }, /* Emacron Ē LATIN CAPITAL LETTER E WITH MACRON */ | |
883 | { 0x03ba, 0x0113 }, /* emacron ē LATIN SMALL LETTER E WITH MACRON */ | |
884 | { 0x03cc, 0x0116 }, /* Eabovedot Ė LATIN CAPITAL LETTER E WITH DOT ABOVE */ | |
885 | { 0x03ec, 0x0117 }, /* eabovedot ė LATIN SMALL LETTER E WITH DOT ABOVE */ | |
886 | { 0x01ca, 0x0118 }, /* Eogonek Ę LATIN CAPITAL LETTER E WITH OGONEK */ | |
887 | { 0x01ea, 0x0119 }, /* eogonek ę LATIN SMALL LETTER E WITH OGONEK */ | |
888 | { 0x01cc, 0x011a }, /* Ecaron Ě LATIN CAPITAL LETTER E WITH CARON */ | |
889 | { 0x01ec, 0x011b }, /* ecaron ě LATIN SMALL LETTER E WITH CARON */ | |
890 | { 0x02d8, 0x011c }, /* Gcircumflex Ĝ LATIN CAPITAL LETTER G WITH CIRCUMFLEX */ | |
891 | { 0x02f8, 0x011d }, /* gcircumflex ĝ LATIN SMALL LETTER G WITH CIRCUMFLEX */ | |
892 | { 0x02ab, 0x011e }, /* Gbreve Ğ LATIN CAPITAL LETTER G WITH BREVE */ | |
893 | { 0x02bb, 0x011f }, /* gbreve ğ LATIN SMALL LETTER G WITH BREVE */ | |
894 | { 0x02d5, 0x0120 }, /* Gabovedot Ġ LATIN CAPITAL LETTER G WITH DOT ABOVE */ | |
895 | { 0x02f5, 0x0121 }, /* gabovedot ġ LATIN SMALL LETTER G WITH DOT ABOVE */ | |
896 | { 0x03ab, 0x0122 }, /* Gcedilla Ģ LATIN CAPITAL LETTER G WITH CEDILLA */ | |
897 | { 0x03bb, 0x0123 }, /* gcedilla ģ LATIN SMALL LETTER G WITH CEDILLA */ | |
898 | { 0x02a6, 0x0124 }, /* Hcircumflex Ĥ LATIN CAPITAL LETTER H WITH CIRCUMFLEX */ | |
899 | { 0x02b6, 0x0125 }, /* hcircumflex ĥ LATIN SMALL LETTER H WITH CIRCUMFLEX */ | |
900 | { 0x02a1, 0x0126 }, /* Hstroke Ħ LATIN CAPITAL LETTER H WITH STROKE */ | |
901 | { 0x02b1, 0x0127 }, /* hstroke ħ LATIN SMALL LETTER H WITH STROKE */ | |
902 | { 0x03a5, 0x0128 }, /* Itilde Ĩ LATIN CAPITAL LETTER I WITH TILDE */ | |
903 | { 0x03b5, 0x0129 }, /* itilde ĩ LATIN SMALL LETTER I WITH TILDE */ | |
904 | { 0x03cf, 0x012a }, /* Imacron Ī LATIN CAPITAL LETTER I WITH MACRON */ | |
905 | { 0x03ef, 0x012b }, /* imacron ī LATIN SMALL LETTER I WITH MACRON */ | |
906 | { 0x03c7, 0x012e }, /* Iogonek Į LATIN CAPITAL LETTER I WITH OGONEK */ | |
907 | { 0x03e7, 0x012f }, /* iogonek į LATIN SMALL LETTER I WITH OGONEK */ | |
908 | { 0x02a9, 0x0130 }, /* Iabovedot İ LATIN CAPITAL LETTER I WITH DOT ABOVE */ | |
909 | { 0x02b9, 0x0131 }, /* idotless ı LATIN SMALL LETTER DOTLESS I */ | |
910 | { 0x02ac, 0x0134 }, /* Jcircumflex Ĵ LATIN CAPITAL LETTER J WITH CIRCUMFLEX */ | |
911 | { 0x02bc, 0x0135 }, /* jcircumflex ĵ LATIN SMALL LETTER J WITH CIRCUMFLEX */ | |
912 | { 0x03d3, 0x0136 }, /* Kcedilla Ķ LATIN CAPITAL LETTER K WITH CEDILLA */ | |
913 | { 0x03f3, 0x0137 }, /* kcedilla ķ LATIN SMALL LETTER K WITH CEDILLA */ | |
914 | { 0x03a2, 0x0138 }, /* kra ĸ LATIN SMALL LETTER KRA */ | |
915 | { 0x01c5, 0x0139 }, /* Lacute Ĺ LATIN CAPITAL LETTER L WITH ACUTE */ | |
916 | { 0x01e5, 0x013a }, /* lacute ĺ LATIN SMALL LETTER L WITH ACUTE */ | |
917 | { 0x03a6, 0x013b }, /* Lcedilla Ļ LATIN CAPITAL LETTER L WITH CEDILLA */ | |
918 | { 0x03b6, 0x013c }, /* lcedilla ļ LATIN SMALL LETTER L WITH CEDILLA */ | |
919 | { 0x01a5, 0x013d }, /* Lcaron Ľ LATIN CAPITAL LETTER L WITH CARON */ | |
920 | { 0x01b5, 0x013e }, /* lcaron ľ LATIN SMALL LETTER L WITH CARON */ | |
921 | { 0x01a3, 0x0141 }, /* Lstroke Ł LATIN CAPITAL LETTER L WITH STROKE */ | |
922 | { 0x01b3, 0x0142 }, /* lstroke ł LATIN SMALL LETTER L WITH STROKE */ | |
923 | { 0x01d1, 0x0143 }, /* Nacute Ń LATIN CAPITAL LETTER N WITH ACUTE */ | |
924 | { 0x01f1, 0x0144 }, /* nacute ń LATIN SMALL LETTER N WITH ACUTE */ | |
925 | { 0x03d1, 0x0145 }, /* Ncedilla Ņ LATIN CAPITAL LETTER N WITH CEDILLA */ | |
926 | { 0x03f1, 0x0146 }, /* ncedilla ņ LATIN SMALL LETTER N WITH CEDILLA */ | |
927 | { 0x01d2, 0x0147 }, /* Ncaron Ň LATIN CAPITAL LETTER N WITH CARON */ | |
928 | { 0x01f2, 0x0148 }, /* ncaron ň LATIN SMALL LETTER N WITH CARON */ | |
929 | { 0x03bd, 0x014a }, /* ENG Ŋ LATIN CAPITAL LETTER ENG */ | |
930 | { 0x03bf, 0x014b }, /* eng ŋ LATIN SMALL LETTER ENG */ | |
931 | { 0x03d2, 0x014c }, /* Omacron Ō LATIN CAPITAL LETTER O WITH MACRON */ | |
932 | { 0x03f2, 0x014d }, /* omacron ō LATIN SMALL LETTER O WITH MACRON */ | |
933 | { 0x01d5, 0x0150 }, /* Odoubleacute Ő LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */ | |
934 | { 0x01f5, 0x0151 }, /* odoubleacute ő LATIN SMALL LETTER O WITH DOUBLE ACUTE */ | |
935 | { 0x13bc, 0x0152 }, /* OE Œ LATIN CAPITAL LIGATURE OE */ | |
936 | { 0x13bd, 0x0153 }, /* oe œ LATIN SMALL LIGATURE OE */ | |
937 | { 0x01c0, 0x0154 }, /* Racute Ŕ LATIN CAPITAL LETTER R WITH ACUTE */ | |
938 | { 0x01e0, 0x0155 }, /* racute ŕ LATIN SMALL LETTER R WITH ACUTE */ | |
939 | { 0x03a3, 0x0156 }, /* Rcedilla Ŗ LATIN CAPITAL LETTER R WITH CEDILLA */ | |
940 | { 0x03b3, 0x0157 }, /* rcedilla ŗ LATIN SMALL LETTER R WITH CEDILLA */ | |
941 | { 0x01d8, 0x0158 }, /* Rcaron Ř LATIN CAPITAL LETTER R WITH CARON */ | |
942 | { 0x01f8, 0x0159 }, /* rcaron ř LATIN SMALL LETTER R WITH CARON */ | |
943 | { 0x01a6, 0x015a }, /* Sacute Ś LATIN CAPITAL LETTER S WITH ACUTE */ | |
944 | { 0x01b6, 0x015b }, /* sacute ś LATIN SMALL LETTER S WITH ACUTE */ | |
945 | { 0x02de, 0x015c }, /* Scircumflex Ŝ LATIN CAPITAL LETTER S WITH CIRCUMFLEX */ | |
946 | { 0x02fe, 0x015d }, /* scircumflex ŝ LATIN SMALL LETTER S WITH CIRCUMFLEX */ | |
947 | { 0x01aa, 0x015e }, /* Scedilla Ş LATIN CAPITAL LETTER S WITH CEDILLA */ | |
948 | { 0x01ba, 0x015f }, /* scedilla ş LATIN SMALL LETTER S WITH CEDILLA */ | |
949 | { 0x01a9, 0x0160 }, /* Scaron Š LATIN CAPITAL LETTER S WITH CARON */ | |
950 | { 0x01b9, 0x0161 }, /* scaron š LATIN SMALL LETTER S WITH CARON */ | |
951 | { 0x01de, 0x0162 }, /* Tcedilla Ţ LATIN CAPITAL LETTER T WITH CEDILLA */ | |
952 | { 0x01fe, 0x0163 }, /* tcedilla ţ LATIN SMALL LETTER T WITH CEDILLA */ | |
953 | { 0x01ab, 0x0164 }, /* Tcaron Ť LATIN CAPITAL LETTER T WITH CARON */ | |
954 | { 0x01bb, 0x0165 }, /* tcaron ť LATIN SMALL LETTER T WITH CARON */ | |
955 | { 0x03ac, 0x0166 }, /* Tslash Ŧ LATIN CAPITAL LETTER T WITH STROKE */ | |
956 | { 0x03bc, 0x0167 }, /* tslash ŧ LATIN SMALL LETTER T WITH STROKE */ | |
957 | { 0x03dd, 0x0168 }, /* Utilde Ũ LATIN CAPITAL LETTER U WITH TILDE */ | |
958 | { 0x03fd, 0x0169 }, /* utilde ũ LATIN SMALL LETTER U WITH TILDE */ | |
959 | { 0x03de, 0x016a }, /* Umacron Ū LATIN CAPITAL LETTER U WITH MACRON */ | |
960 | { 0x03fe, 0x016b }, /* umacron ū LATIN SMALL LETTER U WITH MACRON */ | |
961 | { 0x02dd, 0x016c }, /* Ubreve Ŭ LATIN CAPITAL LETTER U WITH BREVE */ | |
962 | { 0x02fd, 0x016d }, /* ubreve ŭ LATIN SMALL LETTER U WITH BREVE */ | |
963 | { 0x01d9, 0x016e }, /* Uring Ů LATIN CAPITAL LETTER U WITH RING ABOVE */ | |
964 | { 0x01f9, 0x016f }, /* uring ů LATIN SMALL LETTER U WITH RING ABOVE */ | |
965 | { 0x01db, 0x0170 }, /* Udoubleacute Ű LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */ | |
966 | { 0x01fb, 0x0171 }, /* udoubleacute ű LATIN SMALL LETTER U WITH DOUBLE ACUTE */ | |
967 | { 0x03d9, 0x0172 }, /* Uogonek Ų LATIN CAPITAL LETTER U WITH OGONEK */ | |
968 | { 0x03f9, 0x0173 }, /* uogonek ų LATIN SMALL LETTER U WITH OGONEK */ | |
969 | { 0x13be, 0x0178 }, /* Ydiaeresis Ÿ LATIN CAPITAL LETTER Y WITH DIAERESIS */ | |
970 | { 0x01ac, 0x0179 }, /* Zacute Ź LATIN CAPITAL LETTER Z WITH ACUTE */ | |
971 | { 0x01bc, 0x017a }, /* zacute ź LATIN SMALL LETTER Z WITH ACUTE */ | |
972 | { 0x01af, 0x017b }, /* Zabovedot Ż LATIN CAPITAL LETTER Z WITH DOT ABOVE */ | |
973 | { 0x01bf, 0x017c }, /* zabovedot ż LATIN SMALL LETTER Z WITH DOT ABOVE */ | |
974 | { 0x01ae, 0x017d }, /* Zcaron Ž LATIN CAPITAL LETTER Z WITH CARON */ | |
975 | { 0x01be, 0x017e }, /* zcaron ž LATIN SMALL LETTER Z WITH CARON */ | |
976 | { 0x08f6, 0x0192 }, /* function ƒ LATIN SMALL LETTER F WITH HOOK */ | |
977 | { 0x01b7, 0x02c7 }, /* caron ˇ CARON */ | |
978 | { 0x01a2, 0x02d8 }, /* breve ˘ BREVE */ | |
979 | { 0x01ff, 0x02d9 }, /* abovedot ˙ DOT ABOVE */ | |
980 | { 0x01b2, 0x02db }, /* ogonek ˛ OGONEK */ | |
981 | { 0x01bd, 0x02dd }, /* doubleacute ˝ DOUBLE ACUTE ACCENT */ | |
982 | { 0x07ae, 0x0385 }, /* Greek_accentdieresis ΅ GREEK DIALYTIKA TONOS */ | |
983 | { 0x07a1, 0x0386 }, /* Greek_ALPHAaccent Ά GREEK CAPITAL LETTER ALPHA WITH TONOS */ | |
984 | { 0x07a2, 0x0388 }, /* Greek_EPSILONaccent Έ GREEK CAPITAL LETTER EPSILON WITH TONOS */ | |
985 | { 0x07a3, 0x0389 }, /* Greek_ETAaccent Ή GREEK CAPITAL LETTER ETA WITH TONOS */ | |
986 | { 0x07a4, 0x038a }, /* Greek_IOTAaccent Ί GREEK CAPITAL LETTER IOTA WITH TONOS */ | |
987 | { 0x07a7, 0x038c }, /* Greek_OMICRONaccent Ό GREEK CAPITAL LETTER OMICRON WITH TONOS */ | |
988 | { 0x07a8, 0x038e }, /* Greek_UPSILONaccent Ύ GREEK CAPITAL LETTER UPSILON WITH TONOS */ | |
989 | { 0x07ab, 0x038f }, /* Greek_OMEGAaccent Ώ GREEK CAPITAL LETTER OMEGA WITH TONOS */ | |
990 | { 0x07b6, 0x0390 }, /* Greek_iotaaccentdieresis ΐ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */ | |
991 | { 0x07c1, 0x0391 }, /* Greek_ALPHA Α GREEK CAPITAL LETTER ALPHA */ | |
992 | { 0x07c2, 0x0392 }, /* Greek_BETA Β GREEK CAPITAL LETTER BETA */ | |
993 | { 0x07c3, 0x0393 }, /* Greek_GAMMA Γ GREEK CAPITAL LETTER GAMMA */ | |
994 | { 0x07c4, 0x0394 }, /* Greek_DELTA Δ GREEK CAPITAL LETTER DELTA */ | |
995 | { 0x07c5, 0x0395 }, /* Greek_EPSILON Ε GREEK CAPITAL LETTER EPSILON */ | |
996 | { 0x07c6, 0x0396 }, /* Greek_ZETA Ζ GREEK CAPITAL LETTER ZETA */ | |
997 | { 0x07c7, 0x0397 }, /* Greek_ETA Η GREEK CAPITAL LETTER ETA */ | |
998 | { 0x07c8, 0x0398 }, /* Greek_THETA Θ GREEK CAPITAL LETTER THETA */ | |
999 | { 0x07c9, 0x0399 }, /* Greek_IOTA Ι GREEK CAPITAL LETTER IOTA */ | |
1000 | { 0x07ca, 0x039a }, /* Greek_KAPPA Κ GREEK CAPITAL LETTER KAPPA */ | |
1001 | { 0x07cb, 0x039b }, /* Greek_LAMBDA Λ GREEK CAPITAL LETTER LAMDA */ | |
1002 | { 0x07cc, 0x039c }, /* Greek_MU Μ GREEK CAPITAL LETTER MU */ | |
1003 | { 0x07cd, 0x039d }, /* Greek_NU Ν GREEK CAPITAL LETTER NU */ | |
1004 | { 0x07ce, 0x039e }, /* Greek_XI Ξ GREEK CAPITAL LETTER XI */ | |
1005 | { 0x07cf, 0x039f }, /* Greek_OMICRON Ο GREEK CAPITAL LETTER OMICRON */ | |
1006 | { 0x07d0, 0x03a0 }, /* Greek_PI Π GREEK CAPITAL LETTER PI */ | |
1007 | { 0x07d1, 0x03a1 }, /* Greek_RHO Ρ GREEK CAPITAL LETTER RHO */ | |
1008 | { 0x07d2, 0x03a3 }, /* Greek_SIGMA Σ GREEK CAPITAL LETTER SIGMA */ | |
1009 | { 0x07d4, 0x03a4 }, /* Greek_TAU Τ GREEK CAPITAL LETTER TAU */ | |
1010 | { 0x07d5, 0x03a5 }, /* Greek_UPSILON Υ GREEK CAPITAL LETTER UPSILON */ | |
1011 | { 0x07d6, 0x03a6 }, /* Greek_PHI Φ GREEK CAPITAL LETTER PHI */ | |
1012 | { 0x07d7, 0x03a7 }, /* Greek_CHI Χ GREEK CAPITAL LETTER CHI */ | |
1013 | { 0x07d8, 0x03a8 }, /* Greek_PSI Ψ GREEK CAPITAL LETTER PSI */ | |
1014 | { 0x07d9, 0x03a9 }, /* Greek_OMEGA Ω GREEK CAPITAL LETTER OMEGA */ | |
1015 | { 0x07a5, 0x03aa }, /* Greek_IOTAdieresis Ϊ GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */ | |
1016 | { 0x07a9, 0x03ab }, /* Greek_UPSILONdieresis Ϋ GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */ | |
1017 | { 0x07b1, 0x03ac }, /* Greek_alphaaccent ά GREEK SMALL LETTER ALPHA WITH TONOS */ | |
1018 | { 0x07b2, 0x03ad }, /* Greek_epsilonaccent έ GREEK SMALL LETTER EPSILON WITH TONOS */ | |
1019 | { 0x07b3, 0x03ae }, /* Greek_etaaccent ή GREEK SMALL LETTER ETA WITH TONOS */ | |
1020 | { 0x07b4, 0x03af }, /* Greek_iotaaccent ί GREEK SMALL LETTER IOTA WITH TONOS */ | |
1021 | { 0x07ba, 0x03b0 }, /* Greek_upsilonaccentdieresis ΰ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */ | |
1022 | { 0x07e1, 0x03b1 }, /* Greek_alpha α GREEK SMALL LETTER ALPHA */ | |
1023 | { 0x07e2, 0x03b2 }, /* Greek_beta β GREEK SMALL LETTER BETA */ | |
1024 | { 0x07e3, 0x03b3 }, /* Greek_gamma γ GREEK SMALL LETTER GAMMA */ | |
1025 | { 0x07e4, 0x03b4 }, /* Greek_delta δ GREEK SMALL LETTER DELTA */ | |
1026 | { 0x07e5, 0x03b5 }, /* Greek_epsilon ε GREEK SMALL LETTER EPSILON */ | |
1027 | { 0x07e6, 0x03b6 }, /* Greek_zeta ζ GREEK SMALL LETTER ZETA */ | |
1028 | { 0x07e7, 0x03b7 }, /* Greek_eta η GREEK SMALL LETTER ETA */ | |
1029 | { 0x07e8, 0x03b8 }, /* Greek_theta θ GREEK SMALL LETTER THETA */ | |
1030 | { 0x07e9, 0x03b9 }, /* Greek_iota ι GREEK SMALL LETTER IOTA */ | |
1031 | { 0x07ea, 0x03ba }, /* Greek_kappa κ GREEK SMALL LETTER KAPPA */ | |
1032 | { 0x07eb, 0x03bb }, /* Greek_lambda λ GREEK SMALL LETTER LAMDA */ | |
1033 | { 0x07ec, 0x03bc }, /* Greek_mu μ GREEK SMALL LETTER MU */ | |
1034 | { 0x07ed, 0x03bd }, /* Greek_nu ν GREEK SMALL LETTER NU */ | |
1035 | { 0x07ee, 0x03be }, /* Greek_xi ξ GREEK SMALL LETTER XI */ | |
1036 | { 0x07ef, 0x03bf }, /* Greek_omicron ο GREEK SMALL LETTER OMICRON */ | |
1037 | { 0x07f0, 0x03c0 }, /* Greek_pi π GREEK SMALL LETTER PI */ | |
1038 | { 0x07f1, 0x03c1 }, /* Greek_rho ρ GREEK SMALL LETTER RHO */ | |
1039 | { 0x07f3, 0x03c2 }, /* Greek_finalsmallsigma ς GREEK SMALL LETTER FINAL SIGMA */ | |
1040 | { 0x07f2, 0x03c3 }, /* Greek_sigma σ GREEK SMALL LETTER SIGMA */ | |
1041 | { 0x07f4, 0x03c4 }, /* Greek_tau τ GREEK SMALL LETTER TAU */ | |
1042 | { 0x07f5, 0x03c5 }, /* Greek_upsilon υ GREEK SMALL LETTER UPSILON */ | |
1043 | { 0x07f6, 0x03c6 }, /* Greek_phi φ GREEK SMALL LETTER PHI */ | |
1044 | { 0x07f7, 0x03c7 }, /* Greek_chi χ GREEK SMALL LETTER CHI */ | |
1045 | { 0x07f8, 0x03c8 }, /* Greek_psi ψ GREEK SMALL LETTER PSI */ | |
1046 | { 0x07f9, 0x03c9 }, /* Greek_omega ω GREEK SMALL LETTER OMEGA */ | |
1047 | { 0x07b5, 0x03ca }, /* Greek_iotadieresis ϊ GREEK SMALL LETTER IOTA WITH DIALYTIKA */ | |
1048 | { 0x07b9, 0x03cb }, /* Greek_upsilondieresis ϋ GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ | |
1049 | { 0x07b7, 0x03cc }, /* Greek_omicronaccent ό GREEK SMALL LETTER OMICRON WITH TONOS */ | |
1050 | { 0x07b8, 0x03cd }, /* Greek_upsilonaccent ύ GREEK SMALL LETTER UPSILON WITH TONOS */ | |
1051 | { 0x07bb, 0x03ce }, /* Greek_omegaaccent ώ GREEK SMALL LETTER OMEGA WITH TONOS */ | |
1052 | { 0x06b3, 0x0401 }, /* Cyrillic_IO Ё CYRILLIC CAPITAL LETTER IO */ | |
1053 | { 0x06b1, 0x0402 }, /* Serbian_DJE Ђ CYRILLIC CAPITAL LETTER DJE */ | |
1054 | { 0x06b2, 0x0403 }, /* Macedonia_GJE Ѓ CYRILLIC CAPITAL LETTER GJE */ | |
1055 | { 0x06b4, 0x0404 }, /* Ukrainian_IE Є CYRILLIC CAPITAL LETTER UKRAINIAN IE */ | |
1056 | { 0x06b5, 0x0405 }, /* Macedonia_DSE Ѕ CYRILLIC CAPITAL LETTER DZE */ | |
1057 | { 0x06b6, 0x0406 }, /* Ukrainian_I І CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */ | |
1058 | { 0x06b7, 0x0407 }, /* Ukrainian_YI Ї CYRILLIC CAPITAL LETTER YI */ | |
1059 | { 0x06b8, 0x0408 }, /* Cyrillic_JE Ј CYRILLIC CAPITAL LETTER JE */ | |
1060 | { 0x06b9, 0x0409 }, /* Cyrillic_LJE Љ CYRILLIC CAPITAL LETTER LJE */ | |
1061 | { 0x06ba, 0x040a }, /* Cyrillic_NJE Њ CYRILLIC CAPITAL LETTER NJE */ | |
1062 | { 0x06bb, 0x040b }, /* Serbian_TSHE Ћ CYRILLIC CAPITAL LETTER TSHE */ | |
1063 | { 0x06bc, 0x040c }, /* Macedonia_KJE Ќ CYRILLIC CAPITAL LETTER KJE */ | |
1064 | { 0x06be, 0x040e }, /* Byelorussian_SHORTU Ў CYRILLIC CAPITAL LETTER SHORT U */ | |
1065 | { 0x06bf, 0x040f }, /* Cyrillic_DZHE Џ CYRILLIC CAPITAL LETTER DZHE */ | |
1066 | { 0x06e1, 0x0410 }, /* Cyrillic_A А CYRILLIC CAPITAL LETTER A */ | |
1067 | { 0x06e2, 0x0411 }, /* Cyrillic_BE Б CYRILLIC CAPITAL LETTER BE */ | |
1068 | { 0x06f7, 0x0412 }, /* Cyrillic_VE В CYRILLIC CAPITAL LETTER VE */ | |
1069 | { 0x06e7, 0x0413 }, /* Cyrillic_GHE Г CYRILLIC CAPITAL LETTER GHE */ | |
1070 | { 0x06e4, 0x0414 }, /* Cyrillic_DE Д CYRILLIC CAPITAL LETTER DE */ | |
1071 | { 0x06e5, 0x0415 }, /* Cyrillic_IE Е CYRILLIC CAPITAL LETTER IE */ | |
1072 | { 0x06f6, 0x0416 }, /* Cyrillic_ZHE Ж CYRILLIC CAPITAL LETTER ZHE */ | |
1073 | { 0x06fa, 0x0417 }, /* Cyrillic_ZE З CYRILLIC CAPITAL LETTER ZE */ | |
1074 | { 0x06e9, 0x0418 }, /* Cyrillic_I И CYRILLIC CAPITAL LETTER I */ | |
1075 | { 0x06ea, 0x0419 }, /* Cyrillic_SHORTI Й CYRILLIC CAPITAL LETTER SHORT I */ | |
1076 | { 0x06eb, 0x041a }, /* Cyrillic_KA К CYRILLIC CAPITAL LETTER KA */ | |
1077 | { 0x06ec, 0x041b }, /* Cyrillic_EL Л CYRILLIC CAPITAL LETTER EL */ | |
1078 | { 0x06ed, 0x041c }, /* Cyrillic_EM М CYRILLIC CAPITAL LETTER EM */ | |
1079 | { 0x06ee, 0x041d }, /* Cyrillic_EN Н CYRILLIC CAPITAL LETTER EN */ | |
1080 | { 0x06ef, 0x041e }, /* Cyrillic_O О CYRILLIC CAPITAL LETTER O */ | |
1081 | { 0x06f0, 0x041f }, /* Cyrillic_PE П CYRILLIC CAPITAL LETTER PE */ | |
1082 | { 0x06f2, 0x0420 }, /* Cyrillic_ER Р CYRILLIC CAPITAL LETTER ER */ | |
1083 | { 0x06f3, 0x0421 }, /* Cyrillic_ES С CYRILLIC CAPITAL LETTER ES */ | |
1084 | { 0x06f4, 0x0422 }, /* Cyrillic_TE Т CYRILLIC CAPITAL LETTER TE */ | |
1085 | { 0x06f5, 0x0423 }, /* Cyrillic_U У CYRILLIC CAPITAL LETTER U */ | |
1086 | { 0x06e6, 0x0424 }, /* Cyrillic_EF Ф CYRILLIC CAPITAL LETTER EF */ | |
1087 | { 0x06e8, 0x0425 }, /* Cyrillic_HA Х CYRILLIC CAPITAL LETTER HA */ | |
1088 | { 0x06e3, 0x0426 }, /* Cyrillic_TSE Ц CYRILLIC CAPITAL LETTER TSE */ | |
1089 | { 0x06fe, 0x0427 }, /* Cyrillic_CHE Ч CYRILLIC CAPITAL LETTER CHE */ | |
1090 | { 0x06fb, 0x0428 }, /* Cyrillic_SHA Ш CYRILLIC CAPITAL LETTER SHA */ | |
1091 | { 0x06fd, 0x0429 }, /* Cyrillic_SHCHA Щ CYRILLIC CAPITAL LETTER SHCHA */ | |
1092 | { 0x06ff, 0x042a }, /* Cyrillic_HARDSIGN Ъ CYRILLIC CAPITAL LETTER HARD SIGN */ | |
1093 | { 0x06f9, 0x042b }, /* Cyrillic_YERU Ы CYRILLIC CAPITAL LETTER YERU */ | |
1094 | { 0x06f8, 0x042c }, /* Cyrillic_SOFTSIGN Ь CYRILLIC CAPITAL LETTER SOFT SIGN */ | |
1095 | { 0x06fc, 0x042d }, /* Cyrillic_E Э CYRILLIC CAPITAL LETTER E */ | |
1096 | { 0x06e0, 0x042e }, /* Cyrillic_YU Ю CYRILLIC CAPITAL LETTER YU */ | |
1097 | { 0x06f1, 0x042f }, /* Cyrillic_YA Я CYRILLIC CAPITAL LETTER YA */ | |
1098 | { 0x06c1, 0x0430 }, /* Cyrillic_a а CYRILLIC SMALL LETTER A */ | |
1099 | { 0x06c2, 0x0431 }, /* Cyrillic_be б CYRILLIC SMALL LETTER BE */ | |
1100 | { 0x06d7, 0x0432 }, /* Cyrillic_ve в CYRILLIC SMALL LETTER VE */ | |
1101 | { 0x06c7, 0x0433 }, /* Cyrillic_ghe г CYRILLIC SMALL LETTER GHE */ | |
1102 | { 0x06c4, 0x0434 }, /* Cyrillic_de д CYRILLIC SMALL LETTER DE */ | |
1103 | { 0x06c5, 0x0435 }, /* Cyrillic_ie е CYRILLIC SMALL LETTER IE */ | |
1104 | { 0x06d6, 0x0436 }, /* Cyrillic_zhe ж CYRILLIC SMALL LETTER ZHE */ | |
1105 | { 0x06da, 0x0437 }, /* Cyrillic_ze з CYRILLIC SMALL LETTER ZE */ | |
1106 | { 0x06c9, 0x0438 }, /* Cyrillic_i и CYRILLIC SMALL LETTER I */ | |
1107 | { 0x06ca, 0x0439 }, /* Cyrillic_shorti й CYRILLIC SMALL LETTER SHORT I */ | |
1108 | { 0x06cb, 0x043a }, /* Cyrillic_ka к CYRILLIC SMALL LETTER KA */ | |
1109 | { 0x06cc, 0x043b }, /* Cyrillic_el л CYRILLIC SMALL LETTER EL */ | |
1110 | { 0x06cd, 0x043c }, /* Cyrillic_em м CYRILLIC SMALL LETTER EM */ | |
1111 | { 0x06ce, 0x043d }, /* Cyrillic_en н CYRILLIC SMALL LETTER EN */ | |
1112 | { 0x06cf, 0x043e }, /* Cyrillic_o о CYRILLIC SMALL LETTER O */ | |
1113 | { 0x06d0, 0x043f }, /* Cyrillic_pe п CYRILLIC SMALL LETTER PE */ | |
1114 | { 0x06d2, 0x0440 }, /* Cyrillic_er р CYRILLIC SMALL LETTER ER */ | |
1115 | { 0x06d3, 0x0441 }, /* Cyrillic_es с CYRILLIC SMALL LETTER ES */ | |
1116 | { 0x06d4, 0x0442 }, /* Cyrillic_te т CYRILLIC SMALL LETTER TE */ | |
1117 | { 0x06d5, 0x0443 }, /* Cyrillic_u у CYRILLIC SMALL LETTER U */ | |
1118 | { 0x06c6, 0x0444 }, /* Cyrillic_ef ф CYRILLIC SMALL LETTER EF */ | |
1119 | { 0x06c8, 0x0445 }, /* Cyrillic_ha х CYRILLIC SMALL LETTER HA */ | |
1120 | { 0x06c3, 0x0446 }, /* Cyrillic_tse ц CYRILLIC SMALL LETTER TSE */ | |
1121 | { 0x06de, 0x0447 }, /* Cyrillic_che ч CYRILLIC SMALL LETTER CHE */ | |
1122 | { 0x06db, 0x0448 }, /* Cyrillic_sha ш CYRILLIC SMALL LETTER SHA */ | |
1123 | { 0x06dd, 0x0449 }, /* Cyrillic_shcha щ CYRILLIC SMALL LETTER SHCHA */ | |
1124 | { 0x06df, 0x044a }, /* Cyrillic_hardsign ъ CYRILLIC SMALL LETTER HARD SIGN */ | |
1125 | { 0x06d9, 0x044b }, /* Cyrillic_yeru ы CYRILLIC SMALL LETTER YERU */ | |
1126 | { 0x06d8, 0x044c }, /* Cyrillic_softsign ь CYRILLIC SMALL LETTER SOFT SIGN */ | |
1127 | { 0x06dc, 0x044d }, /* Cyrillic_e э CYRILLIC SMALL LETTER E */ | |
1128 | { 0x06c0, 0x044e }, /* Cyrillic_yu ю CYRILLIC SMALL LETTER YU */ | |
1129 | { 0x06d1, 0x044f }, /* Cyrillic_ya я CYRILLIC SMALL LETTER YA */ | |
1130 | { 0x06a3, 0x0451 }, /* Cyrillic_io ё CYRILLIC SMALL LETTER IO */ | |
1131 | { 0x06a1, 0x0452 }, /* Serbian_dje ђ CYRILLIC SMALL LETTER DJE */ | |
1132 | { 0x06a2, 0x0453 }, /* Macedonia_gje ѓ CYRILLIC SMALL LETTER GJE */ | |
1133 | { 0x06a4, 0x0454 }, /* Ukrainian_ie є CYRILLIC SMALL LETTER UKRAINIAN IE */ | |
1134 | { 0x06a5, 0x0455 }, /* Macedonia_dse ѕ CYRILLIC SMALL LETTER DZE */ | |
1135 | { 0x06a6, 0x0456 }, /* Ukrainian_i і CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */ | |
1136 | { 0x06a7, 0x0457 }, /* Ukrainian_yi ї CYRILLIC SMALL LETTER YI */ | |
1137 | { 0x06a8, 0x0458 }, /* Cyrillic_je ј CYRILLIC SMALL LETTER JE */ | |
1138 | { 0x06a9, 0x0459 }, /* Cyrillic_lje љ CYRILLIC SMALL LETTER LJE */ | |
1139 | { 0x06aa, 0x045a }, /* Cyrillic_nje њ CYRILLIC SMALL LETTER NJE */ | |
1140 | { 0x06ab, 0x045b }, /* Serbian_tshe ћ CYRILLIC SMALL LETTER TSHE */ | |
1141 | { 0x06ac, 0x045c }, /* Macedonia_kje ќ CYRILLIC SMALL LETTER KJE */ | |
1142 | { 0x06ae, 0x045e }, /* Byelorussian_shortu ў CYRILLIC SMALL LETTER SHORT U */ | |
1143 | { 0x06af, 0x045f }, /* Cyrillic_dzhe џ CYRILLIC SMALL LETTER DZHE */ | |
1144 | { 0x0ce0, 0x05d0 }, /* hebrew_aleph א HEBREW LETTER ALEF */ | |
1145 | { 0x0ce1, 0x05d1 }, /* hebrew_bet ב HEBREW LETTER BET */ | |
1146 | { 0x0ce2, 0x05d2 }, /* hebrew_gimel ג HEBREW LETTER GIMEL */ | |
1147 | { 0x0ce3, 0x05d3 }, /* hebrew_dalet ד HEBREW LETTER DALET */ | |
1148 | { 0x0ce4, 0x05d4 }, /* hebrew_he ה HEBREW LETTER HE */ | |
1149 | { 0x0ce5, 0x05d5 }, /* hebrew_waw ו HEBREW LETTER VAV */ | |
1150 | { 0x0ce6, 0x05d6 }, /* hebrew_zain ז HEBREW LETTER ZAYIN */ | |
1151 | { 0x0ce7, 0x05d7 }, /* hebrew_chet ח HEBREW LETTER HET */ | |
1152 | { 0x0ce8, 0x05d8 }, /* hebrew_tet ט HEBREW LETTER TET */ | |
1153 | { 0x0ce9, 0x05d9 }, /* hebrew_yod י HEBREW LETTER YOD */ | |
1154 | { 0x0cea, 0x05da }, /* hebrew_finalkaph ך HEBREW LETTER FINAL KAF */ | |
1155 | { 0x0ceb, 0x05db }, /* hebrew_kaph כ HEBREW LETTER KAF */ | |
1156 | { 0x0cec, 0x05dc }, /* hebrew_lamed ל HEBREW LETTER LAMED */ | |
1157 | { 0x0ced, 0x05dd }, /* hebrew_finalmem ם HEBREW LETTER FINAL MEM */ | |
1158 | { 0x0cee, 0x05de }, /* hebrew_mem מ HEBREW LETTER MEM */ | |
1159 | { 0x0cef, 0x05df }, /* hebrew_finalnun ן HEBREW LETTER FINAL NUN */ | |
1160 | { 0x0cf0, 0x05e0 }, /* hebrew_nun נ HEBREW LETTER NUN */ | |
1161 | { 0x0cf1, 0x05e1 }, /* hebrew_samech ס HEBREW LETTER SAMEKH */ | |
1162 | { 0x0cf2, 0x05e2 }, /* hebrew_ayin ע HEBREW LETTER AYIN */ | |
1163 | { 0x0cf3, 0x05e3 }, /* hebrew_finalpe ף HEBREW LETTER FINAL PE */ | |
1164 | { 0x0cf4, 0x05e4 }, /* hebrew_pe פ HEBREW LETTER PE */ | |
1165 | { 0x0cf5, 0x05e5 }, /* hebrew_finalzade ץ HEBREW LETTER FINAL TSADI */ | |
1166 | { 0x0cf6, 0x05e6 }, /* hebrew_zade צ HEBREW LETTER TSADI */ | |
1167 | { 0x0cf7, 0x05e7 }, /* hebrew_qoph ק HEBREW LETTER QOF */ | |
1168 | { 0x0cf8, 0x05e8 }, /* hebrew_resh ר HEBREW LETTER RESH */ | |
1169 | { 0x0cf9, 0x05e9 }, /* hebrew_shin ש HEBREW LETTER SHIN */ | |
1170 | { 0x0cfa, 0x05ea }, /* hebrew_taw ת HEBREW LETTER TAV */ | |
1171 | { 0x05ac, 0x060c }, /* Arabic_comma ، ARABIC COMMA */ | |
1172 | { 0x05bb, 0x061b }, /* Arabic_semicolon ؛ ARABIC SEMICOLON */ | |
1173 | { 0x05bf, 0x061f }, /* Arabic_question_mark ؟ ARABIC QUESTION MARK */ | |
1174 | { 0x05c1, 0x0621 }, /* Arabic_hamza ء ARABIC LETTER HAMZA */ | |
1175 | { 0x05c2, 0x0622 }, /* Arabic_maddaonalef آ ARABIC LETTER ALEF WITH MADDA ABOVE */ | |
1176 | { 0x05c3, 0x0623 }, /* Arabic_hamzaonalef أ ARABIC LETTER ALEF WITH HAMZA ABOVE */ | |
1177 | { 0x05c4, 0x0624 }, /* Arabic_hamzaonwaw ؤ ARABIC LETTER WAW WITH HAMZA ABOVE */ | |
1178 | { 0x05c5, 0x0625 }, /* Arabic_hamzaunderalef إ ARABIC LETTER ALEF WITH HAMZA BELOW */ | |
1179 | { 0x05c6, 0x0626 }, /* Arabic_hamzaonyeh ئ ARABIC LETTER YEH WITH HAMZA ABOVE */ | |
1180 | { 0x05c7, 0x0627 }, /* Arabic_alef ا ARABIC LETTER ALEF */ | |
1181 | { 0x05c8, 0x0628 }, /* Arabic_beh ب ARABIC LETTER BEH */ | |
1182 | { 0x05c9, 0x0629 }, /* Arabic_tehmarbuta ة ARABIC LETTER TEH MARBUTA */ | |
1183 | { 0x05ca, 0x062a }, /* Arabic_teh ت ARABIC LETTER TEH */ | |
1184 | { 0x05cb, 0x062b }, /* Arabic_theh ث ARABIC LETTER THEH */ | |
1185 | { 0x05cc, 0x062c }, /* Arabic_jeem ج ARABIC LETTER JEEM */ | |
1186 | { 0x05cd, 0x062d }, /* Arabic_hah ح ARABIC LETTER HAH */ | |
1187 | { 0x05ce, 0x062e }, /* Arabic_khah خ ARABIC LETTER KHAH */ | |
1188 | { 0x05cf, 0x062f }, /* Arabic_dal د ARABIC LETTER DAL */ | |
1189 | { 0x05d0, 0x0630 }, /* Arabic_thal ذ ARABIC LETTER THAL */ | |
1190 | { 0x05d1, 0x0631 }, /* Arabic_ra ر ARABIC LETTER REH */ | |
1191 | { 0x05d2, 0x0632 }, /* Arabic_zain ز ARABIC LETTER ZAIN */ | |
1192 | { 0x05d3, 0x0633 }, /* Arabic_seen س ARABIC LETTER SEEN */ | |
1193 | { 0x05d4, 0x0634 }, /* Arabic_sheen ش ARABIC LETTER SHEEN */ | |
1194 | { 0x05d5, 0x0635 }, /* Arabic_sad ص ARABIC LETTER SAD */ | |
1195 | { 0x05d6, 0x0636 }, /* Arabic_dad ض ARABIC LETTER DAD */ | |
1196 | { 0x05d7, 0x0637 }, /* Arabic_tah ط ARABIC LETTER TAH */ | |
1197 | { 0x05d8, 0x0638 }, /* Arabic_zah ظ ARABIC LETTER ZAH */ | |
1198 | { 0x05d9, 0x0639 }, /* Arabic_ain ع ARABIC LETTER AIN */ | |
1199 | { 0x05da, 0x063a }, /* Arabic_ghain غ ARABIC LETTER GHAIN */ | |
1200 | { 0x05e0, 0x0640 }, /* Arabic_tatweel ـ ARABIC TATWEEL */ | |
1201 | { 0x05e1, 0x0641 }, /* Arabic_feh ف ARABIC LETTER FEH */ | |
1202 | { 0x05e2, 0x0642 }, /* Arabic_qaf ق ARABIC LETTER QAF */ | |
1203 | { 0x05e3, 0x0643 }, /* Arabic_kaf ك ARABIC LETTER KAF */ | |
1204 | { 0x05e4, 0x0644 }, /* Arabic_lam ل ARABIC LETTER LAM */ | |
1205 | { 0x05e5, 0x0645 }, /* Arabic_meem م ARABIC LETTER MEEM */ | |
1206 | { 0x05e6, 0x0646 }, /* Arabic_noon ن ARABIC LETTER NOON */ | |
1207 | { 0x05e7, 0x0647 }, /* Arabic_ha ه ARABIC LETTER HEH */ | |
1208 | { 0x05e8, 0x0648 }, /* Arabic_waw و ARABIC LETTER WAW */ | |
1209 | { 0x05e9, 0x0649 }, /* Arabic_alefmaksura ى ARABIC LETTER ALEF MAKSURA */ | |
1210 | { 0x05ea, 0x064a }, /* Arabic_yeh ي ARABIC LETTER YEH */ | |
1211 | { 0x05eb, 0x064b }, /* Arabic_fathatan ً ARABIC FATHATAN */ | |
1212 | { 0x05ec, 0x064c }, /* Arabic_dammatan ٌ ARABIC DAMMATAN */ | |
1213 | { 0x05ed, 0x064d }, /* Arabic_kasratan ٍ ARABIC KASRATAN */ | |
1214 | { 0x05ee, 0x064e }, /* Arabic_fatha َ ARABIC FATHA */ | |
1215 | { 0x05ef, 0x064f }, /* Arabic_damma ُ ARABIC DAMMA */ | |
1216 | { 0x05f0, 0x0650 }, /* Arabic_kasra ِ ARABIC KASRA */ | |
1217 | { 0x05f1, 0x0651 }, /* Arabic_shadda ّ ARABIC SHADDA */ | |
1218 | { 0x05f2, 0x0652 }, /* Arabic_sukun ْ ARABIC SUKUN */ | |
1219 | { 0x0da1, 0x0e01 }, /* Thai_kokai ก THAI CHARACTER KO KAI */ | |
1220 | { 0x0da2, 0x0e02 }, /* Thai_khokhai ข THAI CHARACTER KHO KHAI */ | |
1221 | { 0x0da3, 0x0e03 }, /* Thai_khokhuat ฃ THAI CHARACTER KHO KHUAT */ | |
1222 | { 0x0da4, 0x0e04 }, /* Thai_khokhwai ค THAI CHARACTER KHO KHWAI */ | |
1223 | { 0x0da5, 0x0e05 }, /* Thai_khokhon ฅ THAI CHARACTER KHO KHON */ | |
1224 | { 0x0da6, 0x0e06 }, /* Thai_khorakhang ฆ THAI CHARACTER KHO RAKHANG */ | |
1225 | { 0x0da7, 0x0e07 }, /* Thai_ngongu ง THAI CHARACTER NGO NGU */ | |
1226 | { 0x0da8, 0x0e08 }, /* Thai_chochan จ THAI CHARACTER CHO CHAN */ | |
1227 | { 0x0da9, 0x0e09 }, /* Thai_choching ฉ THAI CHARACTER CHO CHING */ | |
1228 | { 0x0daa, 0x0e0a }, /* Thai_chochang ช THAI CHARACTER CHO CHANG */ | |
1229 | { 0x0dab, 0x0e0b }, /* Thai_soso ซ THAI CHARACTER SO SO */ | |
1230 | { 0x0dac, 0x0e0c }, /* Thai_chochoe ฌ THAI CHARACTER CHO CHOE */ | |
1231 | { 0x0dad, 0x0e0d }, /* Thai_yoying ญ THAI CHARACTER YO YING */ | |
1232 | { 0x0dae, 0x0e0e }, /* Thai_dochada ฎ THAI CHARACTER DO CHADA */ | |
1233 | { 0x0daf, 0x0e0f }, /* Thai_topatak ฏ THAI CHARACTER TO PATAK */ | |
1234 | { 0x0db0, 0x0e10 }, /* Thai_thothan ฐ THAI CHARACTER THO THAN */ | |
1235 | { 0x0db1, 0x0e11 }, /* Thai_thonangmontho ฑ THAI CHARACTER THO NANGMONTHO */ | |
1236 | { 0x0db2, 0x0e12 }, /* Thai_thophuthao ฒ THAI CHARACTER THO PHUTHAO */ | |
1237 | { 0x0db3, 0x0e13 }, /* Thai_nonen ณ THAI CHARACTER NO NEN */ | |
1238 | { 0x0db4, 0x0e14 }, /* Thai_dodek ด THAI CHARACTER DO DEK */ | |
1239 | { 0x0db5, 0x0e15 }, /* Thai_totao ต THAI CHARACTER TO TAO */ | |
1240 | { 0x0db6, 0x0e16 }, /* Thai_thothung ถ THAI CHARACTER THO THUNG */ | |
1241 | { 0x0db7, 0x0e17 }, /* Thai_thothahan ท THAI CHARACTER THO THAHAN */ | |
1242 | { 0x0db8, 0x0e18 }, /* Thai_thothong ธ THAI CHARACTER THO THONG */ | |
1243 | { 0x0db9, 0x0e19 }, /* Thai_nonu น THAI CHARACTER NO NU */ | |
1244 | { 0x0dba, 0x0e1a }, /* Thai_bobaimai บ THAI CHARACTER BO BAIMAI */ | |
1245 | { 0x0dbb, 0x0e1b }, /* Thai_popla ป THAI CHARACTER PO PLA */ | |
1246 | { 0x0dbc, 0x0e1c }, /* Thai_phophung ผ THAI CHARACTER PHO PHUNG */ | |
1247 | { 0x0dbd, 0x0e1d }, /* Thai_fofa ฝ THAI CHARACTER FO FA */ | |
1248 | { 0x0dbe, 0x0e1e }, /* Thai_phophan พ THAI CHARACTER PHO PHAN */ | |
1249 | { 0x0dbf, 0x0e1f }, /* Thai_fofan ฟ THAI CHARACTER FO FAN */ | |
1250 | { 0x0dc0, 0x0e20 }, /* Thai_phosamphao ภ THAI CHARACTER PHO SAMPHAO */ | |
1251 | { 0x0dc1, 0x0e21 }, /* Thai_moma ม THAI CHARACTER MO MA */ | |
1252 | { 0x0dc2, 0x0e22 }, /* Thai_yoyak ย THAI CHARACTER YO YAK */ | |
1253 | { 0x0dc3, 0x0e23 }, /* Thai_rorua ร THAI CHARACTER RO RUA */ | |
1254 | { 0x0dc4, 0x0e24 }, /* Thai_ru ฤ THAI CHARACTER RU */ | |
1255 | { 0x0dc5, 0x0e25 }, /* Thai_loling ล THAI CHARACTER LO LING */ | |
1256 | { 0x0dc6, 0x0e26 }, /* Thai_lu ฦ THAI CHARACTER LU */ | |
1257 | { 0x0dc7, 0x0e27 }, /* Thai_wowaen ว THAI CHARACTER WO WAEN */ | |
1258 | { 0x0dc8, 0x0e28 }, /* Thai_sosala ศ THAI CHARACTER SO SALA */ | |
1259 | { 0x0dc9, 0x0e29 }, /* Thai_sorusi ษ THAI CHARACTER SO RUSI */ | |
1260 | { 0x0dca, 0x0e2a }, /* Thai_sosua ส THAI CHARACTER SO SUA */ | |
1261 | { 0x0dcb, 0x0e2b }, /* Thai_hohip ห THAI CHARACTER HO HIP */ | |
1262 | { 0x0dcc, 0x0e2c }, /* Thai_lochula ฬ THAI CHARACTER LO CHULA */ | |
1263 | { 0x0dcd, 0x0e2d }, /* Thai_oang อ THAI CHARACTER O ANG */ | |
1264 | { 0x0dce, 0x0e2e }, /* Thai_honokhuk ฮ THAI CHARACTER HO NOKHUK */ | |
1265 | { 0x0dcf, 0x0e2f }, /* Thai_paiyannoi ฯ THAI CHARACTER PAIYANNOI */ | |
1266 | { 0x0dd0, 0x0e30 }, /* Thai_saraa ะ THAI CHARACTER SARA A */ | |
1267 | { 0x0dd1, 0x0e31 }, /* Thai_maihanakat ั THAI CHARACTER MAI HAN-AKAT */ | |
1268 | { 0x0dd2, 0x0e32 }, /* Thai_saraaa า THAI CHARACTER SARA AA */ | |
1269 | { 0x0dd3, 0x0e33 }, /* Thai_saraam ำ THAI CHARACTER SARA AM */ | |
1270 | { 0x0dd4, 0x0e34 }, /* Thai_sarai ิ THAI CHARACTER SARA I */ | |
1271 | { 0x0dd5, 0x0e35 }, /* Thai_saraii ี THAI CHARACTER SARA II */ | |
1272 | { 0x0dd6, 0x0e36 }, /* Thai_saraue ึ THAI CHARACTER SARA UE */ | |
1273 | { 0x0dd7, 0x0e37 }, /* Thai_sarauee ื THAI CHARACTER SARA UEE */ | |
1274 | { 0x0dd8, 0x0e38 }, /* Thai_sarau ุ THAI CHARACTER SARA U */ | |
1275 | { 0x0dd9, 0x0e39 }, /* Thai_sarauu ู THAI CHARACTER SARA UU */ | |
1276 | { 0x0dda, 0x0e3a }, /* Thai_phinthu ฺ THAI CHARACTER PHINTHU */ | |
1277 | { 0x0ddf, 0x0e3f }, /* Thai_baht ฿ THAI CURRENCY SYMBOL BAHT */ | |
1278 | { 0x0de0, 0x0e40 }, /* Thai_sarae เ THAI CHARACTER SARA E */ | |
1279 | { 0x0de1, 0x0e41 }, /* Thai_saraae แ THAI CHARACTER SARA AE */ | |
1280 | { 0x0de2, 0x0e42 }, /* Thai_sarao โ THAI CHARACTER SARA O */ | |
1281 | { 0x0de3, 0x0e43 }, /* Thai_saraaimaimuan ใ THAI CHARACTER SARA AI MAIMUAN */ | |
1282 | { 0x0de4, 0x0e44 }, /* Thai_saraaimaimalai ไ THAI CHARACTER SARA AI MAIMALAI */ | |
1283 | { 0x0de5, 0x0e45 }, /* Thai_lakkhangyao ๅ THAI CHARACTER LAKKHANGYAO */ | |
1284 | { 0x0de6, 0x0e46 }, /* Thai_maiyamok ๆ THAI CHARACTER MAIYAMOK */ | |
1285 | { 0x0de7, 0x0e47 }, /* Thai_maitaikhu ็ THAI CHARACTER MAITAIKHU */ | |
1286 | { 0x0de8, 0x0e48 }, /* Thai_maiek ่ THAI CHARACTER MAI EK */ | |
1287 | { 0x0de9, 0x0e49 }, /* Thai_maitho ้ THAI CHARACTER MAI THO */ | |
1288 | { 0x0dea, 0x0e4a }, /* Thai_maitri ๊ THAI CHARACTER MAI TRI */ | |
1289 | { 0x0deb, 0x0e4b }, /* Thai_maichattawa ๋ THAI CHARACTER MAI CHATTAWA */ | |
1290 | { 0x0dec, 0x0e4c }, /* Thai_thanthakhat ์ THAI CHARACTER THANTHAKHAT */ | |
1291 | { 0x0ded, 0x0e4d }, /* Thai_nikhahit ํ THAI CHARACTER NIKHAHIT */ | |
1292 | { 0x0df0, 0x0e50 }, /* Thai_leksun ๐ THAI DIGIT ZERO */ | |
1293 | { 0x0df1, 0x0e51 }, /* Thai_leknung ๑ THAI DIGIT ONE */ | |
1294 | { 0x0df2, 0x0e52 }, /* Thai_leksong ๒ THAI DIGIT TWO */ | |
1295 | { 0x0df3, 0x0e53 }, /* Thai_leksam ๓ THAI DIGIT THREE */ | |
1296 | { 0x0df4, 0x0e54 }, /* Thai_leksi ๔ THAI DIGIT FOUR */ | |
1297 | { 0x0df5, 0x0e55 }, /* Thai_lekha ๕ THAI DIGIT FIVE */ | |
1298 | { 0x0df6, 0x0e56 }, /* Thai_lekhok ๖ THAI DIGIT SIX */ | |
1299 | { 0x0df7, 0x0e57 }, /* Thai_lekchet ๗ THAI DIGIT SEVEN */ | |
1300 | { 0x0df8, 0x0e58 }, /* Thai_lekpaet ๘ THAI DIGIT EIGHT */ | |
1301 | { 0x0df9, 0x0e59 }, /* Thai_lekkao ๙ THAI DIGIT NINE */ | |
1302 | { 0x0ed4, 0x11a8 }, /* Hangul_J_Kiyeog ᆨ HANGUL JONGSEONG KIYEOK */ | |
1303 | { 0x0ed5, 0x11a9 }, /* Hangul_J_SsangKiyeog ᆩ HANGUL JONGSEONG SSANGKIYEOK */ | |
1304 | { 0x0ed6, 0x11aa }, /* Hangul_J_KiyeogSios ᆪ HANGUL JONGSEONG KIYEOK-SIOS */ | |
1305 | { 0x0ed7, 0x11ab }, /* Hangul_J_Nieun ᆫ HANGUL JONGSEONG NIEUN */ | |
1306 | { 0x0ed8, 0x11ac }, /* Hangul_J_NieunJieuj ᆬ HANGUL JONGSEONG NIEUN-CIEUC */ | |
1307 | { 0x0ed9, 0x11ad }, /* Hangul_J_NieunHieuh ᆭ HANGUL JONGSEONG NIEUN-HIEUH */ | |
1308 | { 0x0eda, 0x11ae }, /* Hangul_J_Dikeud ᆮ HANGUL JONGSEONG TIKEUT */ | |
1309 | { 0x0edb, 0x11af }, /* Hangul_J_Rieul ᆯ HANGUL JONGSEONG RIEUL */ | |
1310 | { 0x0edc, 0x11b0 }, /* Hangul_J_RieulKiyeog ᆰ HANGUL JONGSEONG RIEUL-KIYEOK */ | |
1311 | { 0x0edd, 0x11b1 }, /* Hangul_J_RieulMieum ᆱ HANGUL JONGSEONG RIEUL-MIEUM */ | |
1312 | { 0x0ede, 0x11b2 }, /* Hangul_J_RieulPieub ᆲ HANGUL JONGSEONG RIEUL-PIEUP */ | |
1313 | { 0x0edf, 0x11b3 }, /* Hangul_J_RieulSios ᆳ HANGUL JONGSEONG RIEUL-SIOS */ | |
1314 | { 0x0ee0, 0x11b4 }, /* Hangul_J_RieulTieut ᆴ HANGUL JONGSEONG RIEUL-THIEUTH */ | |
1315 | { 0x0ee1, 0x11b5 }, /* Hangul_J_RieulPhieuf ᆵ HANGUL JONGSEONG RIEUL-PHIEUPH */ | |
1316 | { 0x0ee2, 0x11b6 }, /* Hangul_J_RieulHieuh ᆶ HANGUL JONGSEONG RIEUL-HIEUH */ | |
1317 | { 0x0ee3, 0x11b7 }, /* Hangul_J_Mieum ᆷ HANGUL JONGSEONG MIEUM */ | |
1318 | { 0x0ee4, 0x11b8 }, /* Hangul_J_Pieub ᆸ HANGUL JONGSEONG PIEUP */ | |
1319 | { 0x0ee5, 0x11b9 }, /* Hangul_J_PieubSios ᆹ HANGUL JONGSEONG PIEUP-SIOS */ | |
1320 | { 0x0ee6, 0x11ba }, /* Hangul_J_Sios ᆺ HANGUL JONGSEONG SIOS */ | |
1321 | { 0x0ee7, 0x11bb }, /* Hangul_J_SsangSios ᆻ HANGUL JONGSEONG SSANGSIOS */ | |
1322 | { 0x0ee8, 0x11bc }, /* Hangul_J_Ieung ᆼ HANGUL JONGSEONG IEUNG */ | |
1323 | { 0x0ee9, 0x11bd }, /* Hangul_J_Jieuj ᆽ HANGUL JONGSEONG CIEUC */ | |
1324 | { 0x0eea, 0x11be }, /* Hangul_J_Cieuc ᆾ HANGUL JONGSEONG CHIEUCH */ | |
1325 | { 0x0eeb, 0x11bf }, /* Hangul_J_Khieuq ᆿ HANGUL JONGSEONG KHIEUKH */ | |
1326 | { 0x0eec, 0x11c0 }, /* Hangul_J_Tieut ᇀ HANGUL JONGSEONG THIEUTH */ | |
1327 | { 0x0eed, 0x11c1 }, /* Hangul_J_Phieuf ᇁ HANGUL JONGSEONG PHIEUPH */ | |
1328 | { 0x0eee, 0x11c2 }, /* Hangul_J_Hieuh ᇂ HANGUL JONGSEONG HIEUH */ | |
1329 | { 0x0ef8, 0x11eb }, /* Hangul_J_PanSios ᇫ HANGUL JONGSEONG PANSIOS */ | |
1330 | { 0x0efa, 0x11f9 }, /* Hangul_J_YeorinHieuh ᇹ HANGUL JONGSEONG YEORINHIEUH */ | |
1331 | { 0x0aa2, 0x2002 }, /* enspace EN SPACE */ | |
1332 | { 0x0aa1, 0x2003 }, /* emspace EM SPACE */ | |
1333 | { 0x0aa3, 0x2004 }, /* em3space THREE-PER-EM SPACE */ | |
1334 | { 0x0aa4, 0x2005 }, /* em4space FOUR-PER-EM SPACE */ | |
1335 | { 0x0aa5, 0x2007 }, /* digitspace FIGURE SPACE */ | |
1336 | { 0x0aa6, 0x2008 }, /* punctspace PUNCTUATION SPACE */ | |
1337 | { 0x0aa7, 0x2009 }, /* thinspace THIN SPACE */ | |
1338 | { 0x0aa8, 0x200a }, /* hairspace HAIR SPACE */ | |
1339 | { 0x0abb, 0x2012 }, /* figdash ‒ FIGURE DASH */ | |
1340 | { 0x0aaa, 0x2013 }, /* endash – EN DASH */ | |
1341 | { 0x0aa9, 0x2014 }, /* emdash — EM DASH */ | |
1342 | { 0x07af, 0x2015 }, /* Greek_horizbar ― HORIZONTAL BAR */ | |
1343 | { 0x0cdf, 0x2017 }, /* hebrew_doublelowline ‗ DOUBLE LOW LINE */ | |
1344 | { 0x0ad0, 0x2018 }, /* leftsinglequotemark ‘ LEFT SINGLE QUOTATION MARK */ | |
1345 | { 0x0ad1, 0x2019 }, /* rightsinglequotemark ’ RIGHT SINGLE QUOTATION MARK */ | |
1346 | { 0x0afd, 0x201a }, /* singlelowquotemark ‚ SINGLE LOW-9 QUOTATION MARK */ | |
1347 | { 0x0ad2, 0x201c }, /* leftdoublequotemark “ LEFT DOUBLE QUOTATION MARK */ | |
1348 | { 0x0ad3, 0x201d }, /* rightdoublequotemark ” RIGHT DOUBLE QUOTATION MARK */ | |
1349 | { 0x0afe, 0x201e }, /* doublelowquotemark „ DOUBLE LOW-9 QUOTATION MARK */ | |
1350 | { 0x0af1, 0x2020 }, /* dagger † DAGGER */ | |
1351 | { 0x0af2, 0x2021 }, /* doubledagger ‡ DOUBLE DAGGER */ | |
1352 | { 0x0ae6, 0x2022 }, /* enfilledcircbullet • BULLET */ | |
1353 | { 0x0aae, 0x2026 }, /* ellipsis … HORIZONTAL ELLIPSIS */ | |
1354 | { 0x0ad6, 0x2032 }, /* minutes ′ PRIME */ | |
1355 | { 0x0ad7, 0x2033 }, /* seconds ″ DOUBLE PRIME */ | |
1356 | { 0x0afc, 0x2038 }, /* caret ‸ CARET */ | |
1357 | { 0x047e, 0x203e }, /* overline ‾ OVERLINE */ | |
1358 | { 0x20a0, 0x20a0 }, /* EcuSign ₠ EURO-CURRENCY SIGN */ | |
1359 | { 0x20a1, 0x20a1 }, /* ColonSign ₡ COLON SIGN */ | |
1360 | { 0x20a2, 0x20a2 }, /* CruzeiroSign ₢ CRUZEIRO SIGN */ | |
1361 | { 0x20a3, 0x20a3 }, /* FFrancSign ₣ FRENCH FRANC SIGN */ | |
1362 | { 0x20a4, 0x20a4 }, /* LiraSign ₤ LIRA SIGN */ | |
1363 | { 0x20a5, 0x20a5 }, /* MillSign ₥ MILL SIGN */ | |
1364 | { 0x20a6, 0x20a6 }, /* NairaSign ₦ NAIRA SIGN */ | |
1365 | { 0x20a7, 0x20a7 }, /* PesetaSign ₧ PESETA SIGN */ | |
1366 | { 0x20a8, 0x20a8 }, /* RupeeSign ₨ RUPEE SIGN */ | |
1367 | { 0x0eff, 0x20a9 }, /* Korean_Won ₩ WON SIGN */ | |
1368 | { 0x20a9, 0x20a9 }, /* WonSign ₩ WON SIGN */ | |
1369 | { 0x20aa, 0x20aa }, /* NewSheqelSign ₪ NEW SHEQEL SIGN */ | |
1370 | { 0x20ab, 0x20ab }, /* DongSign ₫ DONG SIGN */ | |
1371 | { 0x20ac, 0x20ac }, /* EuroSign € EURO SIGN */ | |
1372 | { 0x0ab8, 0x2105 }, /* careof ℅ CARE OF */ | |
1373 | { 0x06b0, 0x2116 }, /* numerosign № NUMERO SIGN */ | |
1374 | { 0x0afb, 0x2117 }, /* phonographcopyright ℗ SOUND RECORDING COPYRIGHT */ | |
1375 | { 0x0ad4, 0x211e }, /* prescription ℞ PRESCRIPTION TAKE */ | |
1376 | { 0x0ac9, 0x2122 }, /* trademark ™ TRADE MARK SIGN */ | |
1377 | { 0x0ab0, 0x2153 }, /* onethird ⅓ VULGAR FRACTION ONE THIRD */ | |
1378 | { 0x0ab1, 0x2154 }, /* twothirds ⅔ VULGAR FRACTION TWO THIRDS */ | |
1379 | { 0x0ab2, 0x2155 }, /* onefifth ⅕ VULGAR FRACTION ONE FIFTH */ | |
1380 | { 0x0ab3, 0x2156 }, /* twofifths ⅖ VULGAR FRACTION TWO FIFTHS */ | |
1381 | { 0x0ab4, 0x2157 }, /* threefifths ⅗ VULGAR FRACTION THREE FIFTHS */ | |
1382 | { 0x0ab5, 0x2158 }, /* fourfifths ⅘ VULGAR FRACTION FOUR FIFTHS */ | |
1383 | { 0x0ab6, 0x2159 }, /* onesixth ⅙ VULGAR FRACTION ONE SIXTH */ | |
1384 | { 0x0ab7, 0x215a }, /* fivesixths ⅚ VULGAR FRACTION FIVE SIXTHS */ | |
1385 | { 0x0ac3, 0x215b }, /* oneeighth ⅛ VULGAR FRACTION ONE EIGHTH */ | |
1386 | { 0x0ac4, 0x215c }, /* threeeighths ⅜ VULGAR FRACTION THREE EIGHTHS */ | |
1387 | { 0x0ac5, 0x215d }, /* fiveeighths ⅝ VULGAR FRACTION FIVE EIGHTHS */ | |
1388 | { 0x0ac6, 0x215e }, /* seveneighths ⅞ VULGAR FRACTION SEVEN EIGHTHS */ | |
1389 | { 0x08fb, 0x2190 }, /* leftarrow ← LEFTWARDS ARROW */ | |
1390 | { 0x08fc, 0x2191 }, /* uparrow ↑ UPWARDS ARROW */ | |
1391 | { 0x08fd, 0x2192 }, /* rightarrow → RIGHTWARDS ARROW */ | |
1392 | { 0x08fe, 0x2193 }, /* downarrow ↓ DOWNWARDS ARROW */ | |
1393 | { 0x08ce, 0x21d2 }, /* implies ⇒ RIGHTWARDS DOUBLE ARROW */ | |
1394 | { 0x08cd, 0x21d4 }, /* ifonlyif ⇔ LEFT RIGHT DOUBLE ARROW */ | |
1395 | { 0x08ef, 0x2202 }, /* partialderivative ∂ PARTIAL DIFFERENTIAL */ | |
1396 | { 0x08c5, 0x2207 }, /* nabla ∇ NABLA */ | |
1397 | { 0x0bca, 0x2218 }, /* jot ∘ RING OPERATOR */ | |
1398 | { 0x08d6, 0x221a }, /* radical √ SQUARE ROOT */ | |
1399 | { 0x08c1, 0x221d }, /* variation ∝ PROPORTIONAL TO */ | |
1400 | { 0x08c2, 0x221e }, /* infinity ∞ INFINITY */ | |
1401 | { 0x08de, 0x2227 }, /* logicaland ∧ LOGICAL AND */ | |
1402 | { 0x0ba9, 0x2227 }, /* upcaret ∧ LOGICAL AND */ | |
1403 | { 0x08df, 0x2228 }, /* logicalor ∨ LOGICAL OR */ | |
1404 | { 0x0ba8, 0x2228 }, /* downcaret ∨ LOGICAL OR */ | |
1405 | { 0x08dc, 0x2229 }, /* intersection ∩ INTERSECTION */ | |
1406 | { 0x0bc3, 0x2229 }, /* upshoe ∩ INTERSECTION */ | |
1407 | { 0x08dd, 0x222a }, /* union ∪ UNION */ | |
1408 | { 0x0bd6, 0x222a }, /* downshoe ∪ UNION */ | |
1409 | { 0x08bf, 0x222b }, /* integral ∫ INTEGRAL */ | |
1410 | { 0x08c0, 0x2234 }, /* therefore ∴ THEREFORE */ | |
1411 | { 0x08c8, 0x2245 }, /* approximate ≅ APPROXIMATELY EQUAL TO */ | |
1412 | { 0x08bd, 0x2260 }, /* notequal ≠ NOT EQUAL TO */ | |
1413 | { 0x08cf, 0x2261 }, /* identical ≡ IDENTICAL TO */ | |
1414 | { 0x08bc, 0x2264 }, /* lessthanequal ≤ LESS-THAN OR EQUAL TO */ | |
1415 | { 0x08be, 0x2265 }, /* greaterthanequal ≥ GREATER-THAN OR EQUAL TO */ | |
1416 | { 0x08da, 0x2282 }, /* includedin ⊂ SUBSET OF */ | |
1417 | { 0x0bda, 0x2282 }, /* leftshoe ⊂ SUBSET OF */ | |
1418 | { 0x08db, 0x2283 }, /* includes ⊃ SUPERSET OF */ | |
1419 | { 0x0bd8, 0x2283 }, /* rightshoe ⊃ SUPERSET OF */ | |
1420 | { 0x0bfc, 0x22a2 }, /* righttack ⊢ RIGHT TACK */ | |
1421 | { 0x0bdc, 0x22a3 }, /* lefttack ⊣ LEFT TACK */ | |
1422 | { 0x0bc2, 0x22a4 }, /* downtack ⊤ DOWN TACK */ | |
1423 | { 0x0bce, 0x22a5 }, /* uptack ⊥ UP TACK */ | |
1424 | { 0x0bd3, 0x2308 }, /* upstile ⌈ LEFT CEILING */ | |
1425 | { 0x0bc4, 0x230a }, /* downstile ⌊ LEFT FLOOR */ | |
1426 | { 0x0afa, 0x2315 }, /* telephonerecorder ⌕ TELEPHONE RECORDER */ | |
1427 | { 0x08a4, 0x2320 }, /* topintegral ⌠ TOP HALF INTEGRAL */ | |
1428 | { 0x08a5, 0x2321 }, /* botintegral ⌡ BOTTOM HALF INTEGRAL */ | |
1429 | { 0x0abc, 0x2329 }, /* leftanglebracket 〈 LEFT-POINTING ANGLE BRACKET */ | |
1430 | { 0x0abe, 0x232a }, /* rightanglebracket 〉 RIGHT-POINTING ANGLE BRACKET */ | |
1431 | { 0x0bcc, 0x2395 }, /* quad ⎕ APL FUNCTIONAL SYMBOL QUAD (Unicode 3.0) */ | |
1432 | { 0x09e2, 0x2409 }, /* ht ␉ SYMBOL FOR HORIZONTAL TABULATION */ | |
1433 | { 0x09e5, 0x240a }, /* lf ␊ SYMBOL FOR LINE FEED */ | |
1434 | { 0x09e9, 0x240b }, /* vt ␋ SYMBOL FOR VERTICAL TABULATION */ | |
1435 | { 0x09e3, 0x240c }, /* ff ␌ SYMBOL FOR FORM FEED */ | |
1436 | { 0x09e4, 0x240d }, /* cr ␍ SYMBOL FOR CARRIAGE RETURN */ | |
1437 | { 0x09df, 0x2422 }, /* blank ␢ BLANK SYMBOL */ | |
1438 | { 0x09e8, 0x2424 }, /* nl  SYMBOL FOR NEWLINE */ | |
1439 | { 0x09f1, 0x2500 }, /* horizlinescan5 ─ BOX DRAWINGS LIGHT HORIZONTAL */ | |
1440 | { 0x08a6, 0x2502 }, /* vertconnector │ BOX DRAWINGS LIGHT VERTICAL */ | |
1441 | { 0x09f8, 0x2502 }, /* vertbar │ BOX DRAWINGS LIGHT VERTICAL */ | |
1442 | { 0x09ec, 0x250c }, /* upleftcorner ┌ BOX DRAWINGS LIGHT DOWN AND RIGHT */ | |
1443 | { 0x09eb, 0x2510 }, /* uprightcorner ┐ BOX DRAWINGS LIGHT DOWN AND LEFT */ | |
1444 | { 0x09ed, 0x2514 }, /* lowleftcorner └ BOX DRAWINGS LIGHT UP AND RIGHT */ | |
1445 | { 0x09ea, 0x2518 }, /* lowrightcorner ┘ BOX DRAWINGS LIGHT UP AND LEFT */ | |
1446 | { 0x09f4, 0x251c }, /* leftt ├ BOX DRAWINGS LIGHT VERTICAL AND RIGHT */ | |
1447 | { 0x09f5, 0x2524 }, /* rightt ┤ BOX DRAWINGS LIGHT VERTICAL AND LEFT */ | |
1448 | { 0x09f7, 0x252c }, /* topt ┬ BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */ | |
1449 | { 0x09f6, 0x2534 }, /* bott ┴ BOX DRAWINGS LIGHT UP AND HORIZONTAL */ | |
1450 | { 0x09ee, 0x253c }, /* crossinglines ┼ BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */ | |
1451 | { 0x09e1, 0x2592 }, /* checkerboard ▒ MEDIUM SHADE */ | |
1452 | { 0x0adf, 0x25a0 }, /* emfilledrect ■ BLACK SQUARE */ | |
1453 | { 0x0acf, 0x25a1 }, /* emopenrectangle □ WHITE SQUARE */ | |
1454 | { 0x0ae7, 0x25aa }, /* enfilledsqbullet ▪ BLACK SMALL SQUARE */ | |
1455 | { 0x0ae1, 0x25ab }, /* enopensquarebullet ▫ WHITE SMALL SQUARE */ | |
1456 | { 0x0adb, 0x25ac }, /* filledrectbullet ▬ BLACK RECTANGLE */ | |
1457 | { 0x0ae2, 0x25ad }, /* openrectbullet ▭ WHITE RECTANGLE */ | |
1458 | { 0x0ae8, 0x25b2 }, /* filledtribulletup ▲ BLACK UP-POINTING TRIANGLE */ | |
1459 | { 0x0ae3, 0x25b3 }, /* opentribulletup △ WHITE UP-POINTING TRIANGLE */ | |
1460 | { 0x0add, 0x25b6 }, /* filledrighttribullet ▶ BLACK RIGHT-POINTING TRIANGLE */ | |
1461 | { 0x0acd, 0x25b7 }, /* rightopentriangle ▷ WHITE RIGHT-POINTING TRIANGLE */ | |
1462 | { 0x0ae9, 0x25bc }, /* filledtribulletdown ▼ BLACK DOWN-POINTING TRIANGLE */ | |
1463 | { 0x0ae4, 0x25bd }, /* opentribulletdown ▽ WHITE DOWN-POINTING TRIANGLE */ | |
1464 | { 0x0adc, 0x25c0 }, /* filledlefttribullet ◀ BLACK LEFT-POINTING TRIANGLE */ | |
1465 | { 0x0acc, 0x25c1 }, /* leftopentriangle ◁ WHITE LEFT-POINTING TRIANGLE */ | |
1466 | { 0x09e0, 0x25c6 }, /* soliddiamond ◆ BLACK DIAMOND */ | |
1467 | { 0x0ace, 0x25cb }, /* emopencircle ○ WHITE CIRCLE */ | |
1468 | { 0x0bcf, 0x25cb }, /* circle ○ WHITE CIRCLE */ | |
1469 | { 0x0ade, 0x25cf }, /* emfilledcircle ● BLACK CIRCLE */ | |
1470 | { 0x0ae0, 0x25e6 }, /* enopencircbullet ◦ WHITE BULLET */ | |
1471 | { 0x0ae5, 0x2606 }, /* openstar ☆ WHITE STAR */ | |
1472 | { 0x0af9, 0x260e }, /* telephone ☎ BLACK TELEPHONE */ | |
1473 | { 0x0aca, 0x2613 }, /* signaturemark ☓ SALTIRE */ | |
1474 | { 0x0aea, 0x261c }, /* leftpointer ☜ WHITE LEFT POINTING INDEX */ | |
1475 | { 0x0aeb, 0x261e }, /* rightpointer ☞ WHITE RIGHT POINTING INDEX */ | |
1476 | { 0x0af8, 0x2640 }, /* femalesymbol ♀ FEMALE SIGN */ | |
1477 | { 0x0af7, 0x2642 }, /* malesymbol ♂ MALE SIGN */ | |
1478 | { 0x0aec, 0x2663 }, /* club ♣ BLACK CLUB SUIT */ | |
1479 | { 0x0aee, 0x2665 }, /* heart ♥ BLACK HEART SUIT */ | |
1480 | { 0x0aed, 0x2666 }, /* diamond ♦ BLACK DIAMOND SUIT */ | |
1481 | { 0x0af6, 0x266d }, /* musicalflat ♭ MUSIC FLAT SIGN */ | |
1482 | { 0x0af5, 0x266f }, /* musicalsharp ♯ MUSIC SHARP SIGN */ | |
1483 | { 0x0af3, 0x2713 }, /* checkmark ✓ CHECK MARK */ | |
1484 | { 0x0af4, 0x2717 }, /* ballotcross ✗ BALLOT X */ | |
1485 | { 0x0ad9, 0x271d }, /* latincross ✝ LATIN CROSS */ | |
1486 | { 0x0af0, 0x2720 }, /* maltesecross ✠ MALTESE CROSS */ | |
1487 | { 0x04a4, 0x3001 }, /* kana_comma 、 IDEOGRAPHIC COMMA */ | |
1488 | { 0x04a1, 0x3002 }, /* kana_fullstop 。 IDEOGRAPHIC FULL STOP */ | |
1489 | { 0x04a2, 0x300c }, /* kana_openingbracket 「 LEFT CORNER BRACKET */ | |
1490 | { 0x04a3, 0x300d }, /* kana_closingbracket 」 RIGHT CORNER BRACKET */ | |
1491 | { 0x04de, 0x309b }, /* voicedsound ゛ KATAKANA-HIRAGANA VOICED SOUND MARK */ | |
1492 | { 0x04df, 0x309c }, /* semivoicedsound ゜ KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */ | |
1493 | { 0x04a7, 0x30a1 }, /* kana_a ァ KATAKANA LETTER SMALL A */ | |
1494 | { 0x04b1, 0x30a2 }, /* kana_A ア KATAKANA LETTER A */ | |
1495 | { 0x04a8, 0x30a3 }, /* kana_i ィ KATAKANA LETTER SMALL I */ | |
1496 | { 0x04b2, 0x30a4 }, /* kana_I イ KATAKANA LETTER I */ | |
1497 | { 0x04a9, 0x30a5 }, /* kana_u ゥ KATAKANA LETTER SMALL U */ | |
1498 | { 0x04b3, 0x30a6 }, /* kana_U ウ KATAKANA LETTER U */ | |
1499 | { 0x04aa, 0x30a7 }, /* kana_e ェ KATAKANA LETTER SMALL E */ | |
1500 | { 0x04b4, 0x30a8 }, /* kana_E エ KATAKANA LETTER E */ | |
1501 | { 0x04ab, 0x30a9 }, /* kana_o ォ KATAKANA LETTER SMALL O */ | |
1502 | { 0x04b5, 0x30aa }, /* kana_O オ KATAKANA LETTER O */ | |
1503 | { 0x04b6, 0x30ab }, /* kana_KA カ KATAKANA LETTER KA */ | |
1504 | { 0x04b7, 0x30ad }, /* kana_KI キ KATAKANA LETTER KI */ | |
1505 | { 0x04b8, 0x30af }, /* kana_KU ク KATAKANA LETTER KU */ | |
1506 | { 0x04b9, 0x30b1 }, /* kana_KE ケ KATAKANA LETTER KE */ | |
1507 | { 0x04ba, 0x30b3 }, /* kana_KO コ KATAKANA LETTER KO */ | |
1508 | { 0x04bb, 0x30b5 }, /* kana_SA サ KATAKANA LETTER SA */ | |
1509 | { 0x04bc, 0x30b7 }, /* kana_SHI シ KATAKANA LETTER SI */ | |
1510 | { 0x04bd, 0x30b9 }, /* kana_SU ス KATAKANA LETTER SU */ | |
1511 | { 0x04be, 0x30bb }, /* kana_SE セ KATAKANA LETTER SE */ | |
1512 | { 0x04bf, 0x30bd }, /* kana_SO ソ KATAKANA LETTER SO */ | |
1513 | { 0x04c0, 0x30bf }, /* kana_TA タ KATAKANA LETTER TA */ | |
1514 | { 0x04c1, 0x30c1 }, /* kana_CHI チ KATAKANA LETTER TI */ | |
1515 | { 0x04af, 0x30c3 }, /* kana_tsu ッ KATAKANA LETTER SMALL TU */ | |
1516 | { 0x04c2, 0x30c4 }, /* kana_TSU ツ KATAKANA LETTER TU */ | |
1517 | { 0x04c3, 0x30c6 }, /* kana_TE テ KATAKANA LETTER TE */ | |
1518 | { 0x04c4, 0x30c8 }, /* kana_TO ト KATAKANA LETTER TO */ | |
1519 | { 0x04c5, 0x30ca }, /* kana_NA ナ KATAKANA LETTER NA */ | |
1520 | { 0x04c6, 0x30cb }, /* kana_NI ニ KATAKANA LETTER NI */ | |
1521 | { 0x04c7, 0x30cc }, /* kana_NU ヌ KATAKANA LETTER NU */ | |
1522 | { 0x04c8, 0x30cd }, /* kana_NE ネ KATAKANA LETTER NE */ | |
1523 | { 0x04c9, 0x30ce }, /* kana_NO ノ KATAKANA LETTER NO */ | |
1524 | { 0x04ca, 0x30cf }, /* kana_HA ハ KATAKANA LETTER HA */ | |
1525 | { 0x04cb, 0x30d2 }, /* kana_HI ヒ KATAKANA LETTER HI */ | |
1526 | { 0x04cc, 0x30d5 }, /* kana_FU フ KATAKANA LETTER HU */ | |
1527 | { 0x04cd, 0x30d8 }, /* kana_HE ヘ KATAKANA LETTER HE */ | |
1528 | { 0x04ce, 0x30db }, /* kana_HO ホ KATAKANA LETTER HO */ | |
1529 | { 0x04cf, 0x30de }, /* kana_MA マ KATAKANA LETTER MA */ | |
1530 | { 0x04d0, 0x30df }, /* kana_MI ミ KATAKANA LETTER MI */ | |
1531 | { 0x04d1, 0x30e0 }, /* kana_MU ム KATAKANA LETTER MU */ | |
1532 | { 0x04d2, 0x30e1 }, /* kana_ME メ KATAKANA LETTER ME */ | |
1533 | { 0x04d3, 0x30e2 }, /* kana_MO モ KATAKANA LETTER MO */ | |
1534 | { 0x04ac, 0x30e3 }, /* kana_ya ャ KATAKANA LETTER SMALL YA */ | |
1535 | { 0x04d4, 0x30e4 }, /* kana_YA ヤ KATAKANA LETTER YA */ | |
1536 | { 0x04ad, 0x30e5 }, /* kana_yu ュ KATAKANA LETTER SMALL YU */ | |
1537 | { 0x04d5, 0x30e6 }, /* kana_YU ユ KATAKANA LETTER YU */ | |
1538 | { 0x04ae, 0x30e7 }, /* kana_yo ョ KATAKANA LETTER SMALL YO */ | |
1539 | { 0x04d6, 0x30e8 }, /* kana_YO ヨ KATAKANA LETTER YO */ | |
1540 | { 0x04d7, 0x30e9 }, /* kana_RA ラ KATAKANA LETTER RA */ | |
1541 | { 0x04d8, 0x30ea }, /* kana_RI リ KATAKANA LETTER RI */ | |
1542 | { 0x04d9, 0x30eb }, /* kana_RU ル KATAKANA LETTER RU */ | |
1543 | { 0x04da, 0x30ec }, /* kana_RE レ KATAKANA LETTER RE */ | |
1544 | { 0x04db, 0x30ed }, /* kana_RO ロ KATAKANA LETTER RO */ | |
1545 | { 0x04dc, 0x30ef }, /* kana_WA ワ KATAKANA LETTER WA */ | |
1546 | { 0x04a6, 0x30f2 }, /* kana_WO ヲ KATAKANA LETTER WO */ | |
1547 | { 0x04dd, 0x30f3 }, /* kana_N ン KATAKANA LETTER N */ | |
1548 | { 0x04a5, 0x30fb }, /* kana_conjunctive ・ KATAKANA MIDDLE DOT */ | |
1549 | { 0x04b0, 0x30fc }, /* prolongedsound ー KATAKANA-HIRAGANA PROLONGED SOUND MARK */ | |
1550 | { 0x0ea1, 0x3131 }, /* Hangul_Kiyeog ㄱ HANGUL LETTER KIYEOK */ | |
1551 | { 0x0ea2, 0x3132 }, /* Hangul_SsangKiyeog ㄲ HANGUL LETTER SSANGKIYEOK */ | |
1552 | { 0x0ea3, 0x3133 }, /* Hangul_KiyeogSios ㄳ HANGUL LETTER KIYEOK-SIOS */ | |
1553 | { 0x0ea4, 0x3134 }, /* Hangul_Nieun ㄴ HANGUL LETTER NIEUN */ | |
1554 | { 0x0ea5, 0x3135 }, /* Hangul_NieunJieuj ㄵ HANGUL LETTER NIEUN-CIEUC */ | |
1555 | { 0x0ea6, 0x3136 }, /* Hangul_NieunHieuh ㄶ HANGUL LETTER NIEUN-HIEUH */ | |
1556 | { 0x0ea7, 0x3137 }, /* Hangul_Dikeud ㄷ HANGUL LETTER TIKEUT */ | |
1557 | { 0x0ea8, 0x3138 }, /* Hangul_SsangDikeud ㄸ HANGUL LETTER SSANGTIKEUT */ | |
1558 | { 0x0ea9, 0x3139 }, /* Hangul_Rieul ㄹ HANGUL LETTER RIEUL */ | |
1559 | { 0x0eaa, 0x313a }, /* Hangul_RieulKiyeog ㄺ HANGUL LETTER RIEUL-KIYEOK */ | |
1560 | { 0x0eab, 0x313b }, /* Hangul_RieulMieum ㄻ HANGUL LETTER RIEUL-MIEUM */ | |
1561 | { 0x0eac, 0x313c }, /* Hangul_RieulPieub ㄼ HANGUL LETTER RIEUL-PIEUP */ | |
1562 | { 0x0ead, 0x313d }, /* Hangul_RieulSios ㄽ HANGUL LETTER RIEUL-SIOS */ | |
1563 | { 0x0eae, 0x313e }, /* Hangul_RieulTieut ㄾ HANGUL LETTER RIEUL-THIEUTH */ | |
1564 | { 0x0eaf, 0x313f }, /* Hangul_RieulPhieuf ㄿ HANGUL LETTER RIEUL-PHIEUPH */ | |
1565 | { 0x0eb0, 0x3140 }, /* Hangul_RieulHieuh ㅀ HANGUL LETTER RIEUL-HIEUH */ | |
1566 | { 0x0eb1, 0x3141 }, /* Hangul_Mieum ㅁ HANGUL LETTER MIEUM */ | |
1567 | { 0x0eb2, 0x3142 }, /* Hangul_Pieub ㅂ HANGUL LETTER PIEUP */ | |
1568 | { 0x0eb3, 0x3143 }, /* Hangul_SsangPieub ㅃ HANGUL LETTER SSANGPIEUP */ | |
1569 | { 0x0eb4, 0x3144 }, /* Hangul_PieubSios ㅄ HANGUL LETTER PIEUP-SIOS */ | |
1570 | { 0x0eb5, 0x3145 }, /* Hangul_Sios ㅅ HANGUL LETTER SIOS */ | |
1571 | { 0x0eb6, 0x3146 }, /* Hangul_SsangSios ㅆ HANGUL LETTER SSANGSIOS */ | |
1572 | { 0x0eb7, 0x3147 }, /* Hangul_Ieung ㅇ HANGUL LETTER IEUNG */ | |
1573 | { 0x0eb8, 0x3148 }, /* Hangul_Jieuj ㅈ HANGUL LETTER CIEUC */ | |
1574 | { 0x0eb9, 0x3149 }, /* Hangul_SsangJieuj ㅉ HANGUL LETTER SSANGCIEUC */ | |
1575 | { 0x0eba, 0x314a }, /* Hangul_Cieuc ㅊ HANGUL LETTER CHIEUCH */ | |
1576 | { 0x0ebb, 0x314b }, /* Hangul_Khieuq ㅋ HANGUL LETTER KHIEUKH */ | |
1577 | { 0x0ebc, 0x314c }, /* Hangul_Tieut ㅌ HANGUL LETTER THIEUTH */ | |
1578 | { 0x0ebd, 0x314d }, /* Hangul_Phieuf ㅍ HANGUL LETTER PHIEUPH */ | |
1579 | { 0x0ebe, 0x314e }, /* Hangul_Hieuh ㅎ HANGUL LETTER HIEUH */ | |
1580 | { 0x0ebf, 0x314f }, /* Hangul_A ㅏ HANGUL LETTER A */ | |
1581 | { 0x0ec0, 0x3150 }, /* Hangul_AE ㅐ HANGUL LETTER AE */ | |
1582 | { 0x0ec1, 0x3151 }, /* Hangul_YA ㅑ HANGUL LETTER YA */ | |
1583 | { 0x0ec2, 0x3152 }, /* Hangul_YAE ㅒ HANGUL LETTER YAE */ | |
1584 | { 0x0ec3, 0x3153 }, /* Hangul_EO ㅓ HANGUL LETTER EO */ | |
1585 | { 0x0ec4, 0x3154 }, /* Hangul_E ㅔ HANGUL LETTER E */ | |
1586 | { 0x0ec5, 0x3155 }, /* Hangul_YEO ㅕ HANGUL LETTER YEO */ | |
1587 | { 0x0ec6, 0x3156 }, /* Hangul_YE ㅖ HANGUL LETTER YE */ | |
1588 | { 0x0ec7, 0x3157 }, /* Hangul_O ㅗ HANGUL LETTER O */ | |
1589 | { 0x0ec8, 0x3158 }, /* Hangul_WA ㅘ HANGUL LETTER WA */ | |
1590 | { 0x0ec9, 0x3159 }, /* Hangul_WAE ㅙ HANGUL LETTER WAE */ | |
1591 | { 0x0eca, 0x315a }, /* Hangul_OE ㅚ HANGUL LETTER OE */ | |
1592 | { 0x0ecb, 0x315b }, /* Hangul_YO ㅛ HANGUL LETTER YO */ | |
1593 | { 0x0ecc, 0x315c }, /* Hangul_U ㅜ HANGUL LETTER U */ | |
1594 | { 0x0ecd, 0x315d }, /* Hangul_WEO ㅝ HANGUL LETTER WEO */ | |
1595 | { 0x0ece, 0x315e }, /* Hangul_WE ㅞ HANGUL LETTER WE */ | |
1596 | { 0x0ecf, 0x315f }, /* Hangul_WI ㅟ HANGUL LETTER WI */ | |
1597 | { 0x0ed0, 0x3160 }, /* Hangul_YU ㅠ HANGUL LETTER YU */ | |
1598 | { 0x0ed1, 0x3161 }, /* Hangul_EU ㅡ HANGUL LETTER EU */ | |
1599 | { 0x0ed2, 0x3162 }, /* Hangul_YI ㅢ HANGUL LETTER YI */ | |
1600 | { 0x0ed3, 0x3163 }, /* Hangul_I ㅣ HANGUL LETTER I */ | |
1601 | { 0x0eef, 0x316d }, /* Hangul_RieulYeorinHieuh ㅭ HANGUL LETTER RIEUL-YEORINHIEUH */ | |
1602 | { 0x0ef0, 0x3171 }, /* Hangul_SunkyeongeumMieum ㅱ HANGUL LETTER KAPYEOUNMIEUM */ | |
1603 | { 0x0ef1, 0x3178 }, /* Hangul_SunkyeongeumPieub ㅸ HANGUL LETTER KAPYEOUNPIEUP */ | |
1604 | { 0x0ef2, 0x317f }, /* Hangul_PanSios ㅿ HANGUL LETTER PANSIOS */ | |
1605 | { 0x0ef4, 0x3184 }, /* Hangul_SunkyeongeumPhieuf ㆄ HANGUL LETTER KAPYEOUNPHIEUPH */ | |
1606 | { 0x0ef5, 0x3186 }, /* Hangul_YeorinHieuh ㆆ HANGUL LETTER YEORINHIEUH */ | |
1607 | { 0x0ef6, 0x318d }, /* Hangul_AraeA ㆍ HANGUL LETTER ARAEA */ | |
1608 | { 0x0ef7, 0x318e }, /* Hangul_AraeAE ㆎ HANGUL LETTER ARAEAE */ | |
1609 | }; | |
1610 | ||
1611 | #endif // KEYDATA_H |
0 | /* | |
1 | Copyright (C) 2001 Ellis Whitehead <ellis@kde.org> | |
2 | ||
3 | Win32 port: | |
4 | Copyright (C) 2004 Jaroslaw Staniek <js@iidea.pl> | |
5 | ||
6 | This library is free software; you can redistribute it and/or | |
7 | modify it under the terms of the GNU Library General Public | |
8 | License as published by the Free Software Foundation; either | |
9 | version 2 of the License, or (at your option) any later version. | |
10 | ||
11 | This library is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | Library General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU Library General Public License | |
17 | along with this library; see the file COPYING.LIB. If not, write to | |
18 | the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | |
19 | Boston, MA 02110-1301, USA. | |
20 | */ | |
21 | ||
22 | #ifndef KEYSERVER_X11_H | |
23 | #define KEYSERVER_X11_H | |
24 | ||
25 | #include <X11/keysym.h> | |
26 | ||
27 | struct TransKey { | |
28 | int keySymQt; | |
29 | uint keySymX; | |
30 | }; | |
31 | ||
32 | static const TransKey g_rgQtToSymX[] = { | |
33 | { Qt::Key_Escape, XK_Escape }, | |
34 | { Qt::Key_Tab, XK_Tab }, | |
35 | { Qt::Key_Backtab, XK_ISO_Left_Tab }, | |
36 | { Qt::Key_Backspace, XK_BackSpace }, | |
37 | { Qt::Key_Return, XK_Return }, | |
38 | { Qt::Key_Enter, XK_KP_Enter }, | |
39 | { Qt::Key_Insert, XK_Insert }, | |
40 | { Qt::Key_Delete, XK_Delete }, | |
41 | { Qt::Key_Pause, XK_Pause }, | |
42 | #ifdef sun | |
43 | { Qt::Key_Print, XK_F22 }, | |
44 | #else | |
45 | { Qt::Key_Print, XK_Print }, | |
46 | #endif | |
47 | { Qt::Key_SysReq, XK_Sys_Req }, | |
48 | { Qt::Key_Home, XK_Home }, | |
49 | { Qt::Key_End, XK_End }, | |
50 | { Qt::Key_Left, XK_Left }, | |
51 | { Qt::Key_Up, XK_Up }, | |
52 | { Qt::Key_Right, XK_Right }, | |
53 | { Qt::Key_Down, XK_Down }, | |
54 | //{ Qt::Key_Shift, 0 }, | |
55 | //{ Qt::Key_Control, 0 }, | |
56 | //{ Qt::Key_Meta, 0 }, | |
57 | //{ Qt::Key_Alt, 0 }, | |
58 | { Qt::Key_CapsLock, XK_Caps_Lock }, | |
59 | { Qt::Key_NumLock, XK_Num_Lock }, | |
60 | { Qt::Key_ScrollLock, XK_Scroll_Lock }, | |
61 | { Qt::Key_F1, XK_F1 }, | |
62 | { Qt::Key_F2, XK_F2 }, | |
63 | { Qt::Key_F3, XK_F3 }, | |
64 | { Qt::Key_F4, XK_F4 }, | |
65 | { Qt::Key_F5, XK_F5 }, | |
66 | { Qt::Key_F6, XK_F6 }, | |
67 | { Qt::Key_F7, XK_F7 }, | |
68 | { Qt::Key_F8, XK_F8 }, | |
69 | { Qt::Key_F9, XK_F9 }, | |
70 | { Qt::Key_F10, XK_F10 }, | |
71 | { Qt::Key_F11, XK_F11 }, | |
72 | { Qt::Key_F12, XK_F12 }, | |
73 | { Qt::Key_F13, XK_F13 }, | |
74 | { Qt::Key_F14, XK_F14 }, | |
75 | { Qt::Key_F15, XK_F15 }, | |
76 | { Qt::Key_F16, XK_F16 }, | |
77 | { Qt::Key_F17, XK_F17 }, | |
78 | { Qt::Key_F18, XK_F18 }, | |
79 | { Qt::Key_F19, XK_F19 }, | |
80 | { Qt::Key_F20, XK_F20 }, | |
81 | { Qt::Key_F21, XK_F21 }, | |
82 | { Qt::Key_F22, XK_F22 }, | |
83 | { Qt::Key_F23, XK_F23 }, | |
84 | { Qt::Key_F24, XK_F24 }, | |
85 | { Qt::Key_F25, XK_F25 }, | |
86 | { Qt::Key_F26, XK_F26 }, | |
87 | { Qt::Key_F27, XK_F27 }, | |
88 | { Qt::Key_F28, XK_F28 }, | |
89 | { Qt::Key_F29, XK_F29 }, | |
90 | { Qt::Key_F30, XK_F30 }, | |
91 | { Qt::Key_F31, XK_F31 }, | |
92 | { Qt::Key_F32, XK_F32 }, | |
93 | { Qt::Key_F33, XK_F33 }, | |
94 | { Qt::Key_F34, XK_F34 }, | |
95 | { Qt::Key_F35, XK_F35 }, | |
96 | { Qt::Key_Super_L, XK_Super_L }, | |
97 | { Qt::Key_Super_R, XK_Super_R }, | |
98 | { Qt::Key_Menu, XK_Menu }, | |
99 | { Qt::Key_Hyper_L, XK_Hyper_L }, | |
100 | { Qt::Key_Hyper_R, XK_Hyper_R }, | |
101 | { Qt::Key_Help, XK_Help }, | |
102 | ||
103 | { '/', XK_KP_Divide }, | |
104 | { '*', XK_KP_Multiply }, | |
105 | { '-', XK_KP_Subtract }, | |
106 | { '+', XK_KP_Add }, | |
107 | { Qt::Key_Return, XK_KP_Enter }, | |
108 | {Qt::Key_Multi_key, XK_Multi_key}, | |
109 | {Qt::Key_Codeinput, XK_Codeinput}, | |
110 | {Qt::Key_SingleCandidate, XK_SingleCandidate}, | |
111 | {Qt::Key_MultipleCandidate, XK_MultipleCandidate}, | |
112 | {Qt::Key_PreviousCandidate, XK_PreviousCandidate}, | |
113 | {Qt::Key_Mode_switch, XK_Mode_switch}, | |
114 | {Qt::Key_Kanji, XK_Kanji}, | |
115 | {Qt::Key_Muhenkan, XK_Muhenkan}, | |
116 | {Qt::Key_Henkan, XK_Henkan}, | |
117 | {Qt::Key_Romaji, XK_Romaji}, | |
118 | {Qt::Key_Hiragana, XK_Hiragana}, | |
119 | {Qt::Key_Katakana, XK_Katakana}, | |
120 | {Qt::Key_Hiragana_Katakana, XK_Hiragana_Katakana}, | |
121 | {Qt::Key_Zenkaku, XK_Zenkaku}, | |
122 | {Qt::Key_Hankaku, XK_Hankaku}, | |
123 | {Qt::Key_Zenkaku_Hankaku, XK_Zenkaku_Hankaku}, | |
124 | {Qt::Key_Touroku, XK_Touroku}, | |
125 | {Qt::Key_Massyo, XK_Massyo}, | |
126 | {Qt::Key_Kana_Lock, XK_Kana_Lock}, | |
127 | {Qt::Key_Kana_Shift, XK_Kana_Shift}, | |
128 | {Qt::Key_Eisu_Shift, XK_Eisu_Shift}, | |
129 | {Qt::Key_Eisu_toggle, XK_Eisu_toggle}, | |
130 | {Qt::Key_Hangul, XK_Hangul}, | |
131 | {Qt::Key_Hangul_Start, XK_Hangul_Start}, | |
132 | {Qt::Key_Hangul_End, XK_Hangul_End}, | |
133 | {Qt::Key_Hangul_Hanja, XK_Hangul_Hanja}, | |
134 | {Qt::Key_Hangul_Jamo, XK_Hangul_Jamo}, | |
135 | {Qt::Key_Hangul_Romaja, XK_Hangul_Romaja}, | |
136 | {Qt::Key_Hangul_Jeonja, XK_Hangul_Jeonja}, | |
137 | {Qt::Key_Hangul_Banja, XK_Hangul_Banja}, | |
138 | {Qt::Key_Hangul_PreHanja, XK_Hangul_PreHanja}, | |
139 | {Qt::Key_Hangul_PostHanja, XK_Hangul_PostHanja}, | |
140 | {Qt::Key_Hangul_Special, XK_Hangul_Special}, | |
141 | }; | |
142 | ||
143 | #include <qstring.h> | |
144 | ||
145 | inline int map_sym_to_qt(uint keySym) | |
146 | { | |
147 | if (keySym < 0x1000) { | |
148 | if (keySym >= 'a' && keySym <= 'z') | |
149 | return QChar(keySym).toUpper().unicode(); | |
150 | return keySym; | |
151 | } | |
152 | #ifdef Q_WS_WIN | |
153 | if (keySym < 0x3000) | |
154 | return keySym; | |
155 | #else | |
156 | if (keySym < 0x3000) | |
157 | return keySym | Qt::UNICODE_ACCEL; | |
158 | ||
159 | for (uint i = 0; i < sizeof(g_rgQtToSymX) / sizeof(TransKey); i++) | |
160 | if (g_rgQtToSymX[i].keySymX == keySym) | |
161 | return g_rgQtToSymX[i].keySymQt; | |
162 | #endif | |
163 | return Qt::Key_unknown; | |
164 | } | |
165 | ||
166 | static bool symToKeyQt(uint keySym, int& keyQt) | |
167 | { | |
168 | keyQt = map_sym_to_qt(keySym); | |
169 | return (keyQt != Qt::Key_unknown); | |
170 | } | |
171 | ||
172 | #endif |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2013 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #include <stdint.h> | |
20 | #include "keyuni.h" | |
21 | #include "keydata.h" | |
22 | ||
23 | uint32_t | |
24 | FcitxKeySymToUnicode (uint32_t keyval) | |
25 | { | |
26 | int min = 0; | |
27 | int max = sizeof (gdk_keysym_to_unicode_tab) / sizeof(gdk_keysym_to_unicode_tab[0]) - 1; | |
28 | int mid; | |
29 | ||
30 | /* First check for Latin-1 characters (1:1 mapping) */ | |
31 | if ((keyval >= 0x0020 && keyval <= 0x007e) || | |
32 | (keyval >= 0x00a0 && keyval <= 0x00ff)) | |
33 | return keyval; | |
34 | ||
35 | /* Also check for directly encoded 24-bit UCS characters: | |
36 | */ | |
37 | if ((keyval & 0xff000000) == 0x01000000) | |
38 | return keyval & 0x00ffffff; | |
39 | ||
40 | /* binary search in table */ | |
41 | while (max >= min) { | |
42 | mid = (min + max) / 2; | |
43 | if (gdk_keysym_to_unicode_tab[mid].keysym < keyval) | |
44 | min = mid + 1; | |
45 | else if (gdk_keysym_to_unicode_tab[mid].keysym > keyval) | |
46 | max = mid - 1; | |
47 | else { | |
48 | /* found it */ | |
49 | return gdk_keysym_to_unicode_tab[mid].ucs; | |
50 | } | |
51 | } | |
52 | ||
53 | /* No matching Unicode value found */ | |
54 | return 0; | |
55 | } |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2013 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #ifndef KEYUNI_H | |
20 | #define KEYUNI_H | |
21 | ||
22 | #include <qglobal.h> | |
23 | ||
24 | quint32 | |
25 | FcitxKeySymToUnicode (quint32 keyval); | |
26 | ||
27 | ||
28 | #endif // KEYUNI_H |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2013 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #include "main.h" | |
20 | ||
21 | ||
22 | QStringList QFcitxPlatformInputContextPlugin::keys() const | |
23 | { | |
24 | return QStringList(QStringLiteral("fcitx")); | |
25 | ||
26 | } | |
27 | ||
28 | QFcitxPlatformInputContext *QFcitxPlatformInputContextPlugin::create(const QString& system, const QStringList& paramList) | |
29 | { | |
30 | Q_UNUSED(paramList); | |
31 | if (system.compare(system, QStringLiteral("fcitx"), Qt::CaseInsensitive) == 0) | |
32 | return new QFcitxPlatformInputContext; | |
33 | return 0; | |
34 | } |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2013 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #ifndef MAIN_H | |
20 | #define MAIN_H | |
21 | ||
22 | #include <qpa/qplatforminputcontextplugin_p.h> | |
23 | #include <QtCore/QStringList> | |
24 | ||
25 | #include "qfcitxplatforminputcontext.h" | |
26 | ||
27 | class QFcitxPlatformInputContextPlugin : public QPlatformInputContextPlugin | |
28 | { | |
29 | Q_OBJECT | |
30 | public: | |
31 | Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPlatformInputContextFactoryInterface" FILE "fcitx.json") | |
32 | QStringList keys() const; | |
33 | QFcitxPlatformInputContext *create(const QString& system, const QStringList& paramList); | |
34 | }; | |
35 | ||
36 | #endif // MAIN_H |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2011~2013 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #include <QKeyEvent> | |
20 | #include <QDBusConnection> | |
21 | #include <QGuiApplication> | |
22 | #include <QInputMethod> | |
23 | #include <QTextCharFormat> | |
24 | #include <QPalette> | |
25 | #include <QWindow> | |
26 | ||
27 | #include <unistd.h> | |
28 | #include <errno.h> | |
29 | #include <signal.h> | |
30 | ||
31 | #include "keyserver_x11.h" | |
32 | #include "fcitx-compose-data.h" | |
33 | ||
34 | #include "qfcitxplatforminputcontext.h" | |
35 | #include "fcitx-qt5/fcitxqtinputcontextproxy.h" | |
36 | #include "fcitx-qt5/fcitxqtinputmethodproxy.h" | |
37 | #include <fcitx-qt5/fcitxqtconnection.h> | |
38 | #include "keyuni.h" | |
39 | #include "utils.h" | |
40 | ||
41 | typedef struct _FcitxComposeTableCompact FcitxComposeTableCompact; | |
42 | struct _FcitxComposeTableCompact { | |
43 | const quint32 *data; | |
44 | int max_seq_len; | |
45 | int n_index_size; | |
46 | int n_index_stride; | |
47 | }; | |
48 | ||
49 | static const FcitxComposeTableCompact fcitx_compose_table_compact = { | |
50 | fcitx_compose_seqs_compact, | |
51 | 5, | |
52 | 23, | |
53 | 6 | |
54 | }; | |
55 | ||
56 | static const uint fcitx_compose_ignore[] = { | |
57 | XK_Shift_L, | |
58 | XK_Shift_R, | |
59 | XK_Control_L, | |
60 | XK_Control_R, | |
61 | XK_Caps_Lock, | |
62 | XK_Shift_Lock, | |
63 | XK_Meta_L, | |
64 | XK_Meta_R, | |
65 | XK_Alt_L, | |
66 | XK_Alt_R, | |
67 | XK_Super_L, | |
68 | XK_Super_R, | |
69 | XK_Hyper_L, | |
70 | XK_Hyper_R, | |
71 | XK_Mode_switch, | |
72 | XK_ISO_Level3_Shift, | |
73 | XK_VoidSymbol | |
74 | }; | |
75 | ||
76 | static bool key_filtered = false; | |
77 | ||
78 | static bool | |
79 | get_boolean_env(const char *name, | |
80 | bool defval) | |
81 | { | |
82 | const char *value = getenv(name); | |
83 | ||
84 | if (value == NULL) | |
85 | return defval; | |
86 | ||
87 | if (strcmp(value, "") == 0 || | |
88 | strcmp(value, "0") == 0 || | |
89 | strcmp(value, "false") == 0 || | |
90 | strcmp(value, "False") == 0 || | |
91 | strcmp(value, "FALSE") == 0) | |
92 | return false; | |
93 | ||
94 | return true; | |
95 | } | |
96 | ||
97 | static int | |
98 | compare_seq_index(const void *key, const void *value) | |
99 | { | |
100 | const uint *keysyms = (const uint *)key; | |
101 | const quint32 *seq = (const quint32 *)value; | |
102 | ||
103 | if (keysyms[0] < seq[0]) | |
104 | return -1; | |
105 | else if (keysyms[0] > seq[0]) | |
106 | return 1; | |
107 | return 0; | |
108 | } | |
109 | ||
110 | static int | |
111 | compare_seq(const void *key, const void *value) | |
112 | { | |
113 | int i = 0; | |
114 | const uint *keysyms = (const uint *)key; | |
115 | const quint32 *seq = (const quint32 *)value; | |
116 | ||
117 | while (keysyms[i]) { | |
118 | if (keysyms[i] < seq[i]) | |
119 | return -1; | |
120 | else if (keysyms[i] > seq[i]) | |
121 | return 1; | |
122 | i++; | |
123 | } | |
124 | ||
125 | return 0; | |
126 | } | |
127 | ||
128 | ||
129 | QFcitxPlatformInputContext::QFcitxPlatformInputContext() : | |
130 | m_connection(new FcitxQtConnection(this)), | |
131 | m_improxy(0), | |
132 | m_n_compose(0), | |
133 | m_cursorPos(0), | |
134 | m_useSurroundingText(false), | |
135 | m_syncMode(true), | |
136 | m_lastWId(0) | |
137 | { | |
138 | FcitxQtFormattedPreedit::registerMetaType(); | |
139 | ||
140 | memset(m_compose_buffer, 0, sizeof(uint) * (MAX_COMPOSE_LEN + 1)); | |
141 | connect(m_connection, SIGNAL(connected()), this, SLOT(connected())); | |
142 | connect(m_connection, SIGNAL(disconnected()), this, SLOT(cleanUp())); | |
143 | ||
144 | m_connection->startConnection(); | |
145 | } | |
146 | ||
147 | QFcitxPlatformInputContext::~QFcitxPlatformInputContext() | |
148 | { | |
149 | cleanUp(); | |
150 | } | |
151 | ||
152 | void QFcitxPlatformInputContext::connected() | |
153 | { | |
154 | if (!m_connection->isConnected()) | |
155 | return; | |
156 | ||
157 | // qDebug() << "create Input Context" << m_connection->name(); | |
158 | if (m_improxy) { | |
159 | delete m_improxy; | |
160 | m_improxy = 0; | |
161 | } | |
162 | m_improxy = new FcitxQtInputMethodProxy(m_connection->serviceName(), QLatin1String("/inputmethod"), *m_connection->connection(), this); | |
163 | ||
164 | QWindow* w = qApp->focusWindow(); | |
165 | if (w) | |
166 | createICData(w); | |
167 | } | |
168 | ||
169 | void QFcitxPlatformInputContext::cleanUp() | |
170 | { | |
171 | for(QHash<WId, FcitxQtICData *>::const_iterator i = m_icMap.constBegin(), | |
172 | e = m_icMap.constEnd(); i != e; ++i) { | |
173 | FcitxQtICData* data = i.value(); | |
174 | ||
175 | if (data->proxy) | |
176 | delete data->proxy; | |
177 | } | |
178 | ||
179 | m_icMap.clear(); | |
180 | ||
181 | if (m_improxy) { | |
182 | delete m_improxy; | |
183 | m_improxy = 0; | |
184 | } | |
185 | ||
186 | reset(); | |
187 | } | |
188 | ||
189 | bool QFcitxPlatformInputContext::isValid() const | |
190 | { | |
191 | return true; | |
192 | } | |
193 | ||
194 | void QFcitxPlatformInputContext::invokeAction(QInputMethod::Action action, int cursorPosition) | |
195 | { | |
196 | if (action == QInputMethod::Click | |
197 | && (cursorPosition <= 0 || cursorPosition >= m_preedit.length()) | |
198 | ) | |
199 | { | |
200 | // qDebug() << action << cursorPosition; | |
201 | commitPreedit(); | |
202 | } | |
203 | } | |
204 | ||
205 | void QFcitxPlatformInputContext::commitPreedit() | |
206 | { | |
207 | QObject *input = qApp->focusObject(); | |
208 | if (!input) | |
209 | return; | |
210 | if (m_commitPreedit.length() <= 0) | |
211 | return; | |
212 | QInputMethodEvent e; | |
213 | e.setCommitString(m_commitPreedit); | |
214 | QCoreApplication::sendEvent(input, &e); | |
215 | m_commitPreedit.clear(); | |
216 | } | |
217 | ||
218 | ||
219 | void QFcitxPlatformInputContext::reset() | |
220 | { | |
221 | commitPreedit(); | |
222 | FcitxQtInputContextProxy* proxy = validIC(); | |
223 | if (proxy) | |
224 | proxy->Reset(); | |
225 | QPlatformInputContext::reset(); | |
226 | } | |
227 | ||
228 | void QFcitxPlatformInputContext::update(Qt::InputMethodQueries queries ) | |
229 | { | |
230 | QWindow* window = qApp->focusWindow(); | |
231 | FcitxQtInputContextProxy* proxy = validICByWindow(window); | |
232 | if (!proxy) | |
233 | return; | |
234 | ||
235 | FcitxQtICData* data = m_icMap.value(window->winId()); | |
236 | ||
237 | QInputMethod *method = qApp->inputMethod(); | |
238 | QObject *input = qApp->focusObject(); | |
239 | if (!input) | |
240 | return; | |
241 | ||
242 | QInputMethodQueryEvent query(queries); | |
243 | QGuiApplication::sendEvent(input, &query); | |
244 | ||
245 | if (queries & Qt::ImCursorRectangle) { | |
246 | cursorRectChanged(); | |
247 | } | |
248 | ||
249 | if (queries & Qt::ImHints) { | |
250 | Qt::InputMethodHints hints = Qt::InputMethodHints(query.value(Qt::ImHints).toUInt()); | |
251 | ||
252 | ||
253 | #define CHECK_HINTS(_HINTS, _CAPACITY) \ | |
254 | if (hints & _HINTS) \ | |
255 | addCapacity(data, _CAPACITY); \ | |
256 | else \ | |
257 | removeCapacity(data, _CAPACITY); | |
258 | ||
259 | CHECK_HINTS(Qt::ImhNoAutoUppercase, CAPACITY_NOAUTOUPPERCASE) | |
260 | CHECK_HINTS(Qt::ImhPreferNumbers, CAPACITY_NUMBER) | |
261 | CHECK_HINTS(Qt::ImhPreferUppercase, CAPACITY_UPPERCASE) | |
262 | CHECK_HINTS(Qt::ImhPreferLowercase, CAPACITY_LOWERCASE) | |
263 | CHECK_HINTS(Qt::ImhNoPredictiveText, CAPACITY_NO_SPELLCHECK) | |
264 | CHECK_HINTS(Qt::ImhDigitsOnly, CAPACITY_DIGIT) | |
265 | CHECK_HINTS(Qt::ImhFormattedNumbersOnly, CAPACITY_NUMBER) | |
266 | CHECK_HINTS(Qt::ImhUppercaseOnly, CAPACITY_UPPERCASE) | |
267 | CHECK_HINTS(Qt::ImhLowercaseOnly, CAPACITY_LOWERCASE) | |
268 | CHECK_HINTS(Qt::ImhDialableCharactersOnly, CAPACITY_DIALABLE) | |
269 | CHECK_HINTS(Qt::ImhEmailCharactersOnly, CAPACITY_EMAIL) | |
270 | } | |
271 | ||
272 | bool setSurrounding = false; | |
273 | do { | |
274 | if (!m_useSurroundingText) | |
275 | break; | |
276 | if (!((queries & Qt::ImSurroundingText) && (queries & Qt::ImCursorPosition))) | |
277 | break; | |
278 | if (data->capacity.testFlag(CAPACITY_PASSWORD)) | |
279 | break; | |
280 | QVariant var = query.value(Qt::ImSurroundingText); | |
281 | QVariant var1 = query.value(Qt::ImCursorPosition); | |
282 | QVariant var2 = query.value(Qt::ImAnchorPosition); | |
283 | if (!var.isValid() || !var1.isValid()) | |
284 | break; | |
285 | QString text = var.toString(); | |
286 | /* we don't want to waste too much memory here */ | |
287 | #define SURROUNDING_THRESHOLD 4096 | |
288 | if (text.length() < SURROUNDING_THRESHOLD) { | |
289 | if (_utf8_check_string(text.toUtf8().data())) { | |
290 | addCapacity(data, CAPACITY_SURROUNDING_TEXT); | |
291 | ||
292 | int cursor = var1.toInt(); | |
293 | int anchor; | |
294 | if (var2.isValid()) | |
295 | anchor = var2.toInt(); | |
296 | else | |
297 | anchor = cursor; | |
298 | if (data->surroundingText != text) { | |
299 | data->surroundingText = text; | |
300 | proxy->SetSurroundingText(text, cursor, anchor); | |
301 | } | |
302 | else { | |
303 | if (data->surroundingAnchor != anchor || | |
304 | data->surroundingCursor != cursor) | |
305 | proxy->SetSurroundingTextPosition(cursor, anchor); | |
306 | } | |
307 | data->surroundingCursor = cursor; | |
308 | data->surroundingAnchor = anchor; | |
309 | setSurrounding = true; | |
310 | } | |
311 | } | |
312 | if (!setSurrounding) { | |
313 | data->surroundingAnchor = -1; | |
314 | data->surroundingCursor = -1; | |
315 | data->surroundingText = QString::null; | |
316 | removeCapacity(data, CAPACITY_SURROUNDING_TEXT); | |
317 | } | |
318 | } while(0); | |
319 | } | |
320 | ||
321 | void QFcitxPlatformInputContext::commit() | |
322 | { | |
323 | QPlatformInputContext::commit(); | |
324 | } | |
325 | ||
326 | void QFcitxPlatformInputContext::setFocusObject(QObject* object) | |
327 | { | |
328 | FcitxQtInputContextProxy* proxy = validICByWId(m_lastWId); | |
329 | if (proxy) { | |
330 | proxy->FocusOut(); | |
331 | } | |
332 | ||
333 | QWindow *window = qApp->focusWindow(); | |
334 | if (window) { | |
335 | m_lastWId = window->winId(); | |
336 | } else { | |
337 | m_lastWId = 0; | |
338 | return; | |
339 | } | |
340 | proxy = validICByWindow(window); | |
341 | if (proxy) | |
342 | proxy->FocusIn(); | |
343 | else { | |
344 | FcitxQtICData* data = m_icMap.value(window->winId()); | |
345 | if (!data) { | |
346 | createICData(window); | |
347 | return; | |
348 | } | |
349 | } | |
350 | } | |
351 | ||
352 | void QFcitxPlatformInputContext::windowDestroyed(QObject* object) | |
353 | { | |
354 | /* access QWindow is not possible here, so we use our own map to do so */ | |
355 | WId wid = m_windowToWidMap.take(object); | |
356 | if (!wid) | |
357 | return; | |
358 | FcitxQtICData* data = m_icMap.take(wid); | |
359 | if (!data) | |
360 | return; | |
361 | ||
362 | delete data; | |
363 | // qDebug() << "Window Destroyed and we destroy IC correctly, horray!"; | |
364 | } | |
365 | ||
366 | void QFcitxPlatformInputContext::cursorRectChanged() | |
367 | { | |
368 | QWindow *inputWindow = qApp->focusWindow(); | |
369 | if (!inputWindow) | |
370 | return; | |
371 | FcitxQtInputContextProxy* proxy = validICByWindow(inputWindow); | |
372 | if (!proxy) | |
373 | return; | |
374 | ||
375 | FcitxQtICData* data = m_icMap.value(inputWindow->winId()); | |
376 | ||
377 | QRect r = qApp->inputMethod()->cursorRectangle().toRect(); | |
378 | if(!r.isValid()) | |
379 | return; | |
380 | ||
381 | r.moveTopLeft(inputWindow->mapToGlobal(r.topLeft())); | |
382 | ||
383 | if (data->rect != r) { | |
384 | data->rect = r; | |
385 | proxy->SetCursorRect(r.x(), r.y(), r.width(), r.height()); | |
386 | } | |
387 | } | |
388 | ||
389 | void QFcitxPlatformInputContext::createInputContext(WId w) | |
390 | { | |
391 | if (!m_connection->isConnected()) | |
392 | return; | |
393 | ||
394 | // qDebug() << "create Input Context" << m_connection->connection()->name(); | |
395 | ||
396 | if (m_improxy) { | |
397 | delete m_improxy; | |
398 | m_improxy = NULL; | |
399 | } | |
400 | m_improxy = new FcitxQtInputMethodProxy(m_connection->serviceName(), QLatin1String("/inputmethod"), *m_connection->connection(), this); | |
401 | ||
402 | if (!m_improxy->isValid()) | |
403 | return; | |
404 | ||
405 | QFileInfo info(QCoreApplication::applicationFilePath()); | |
406 | QDBusPendingReply< int, bool, uint, uint, uint, uint > result = m_improxy->CreateICv3(info.fileName(), QCoreApplication::applicationPid()); | |
407 | QDBusPendingCallWatcher* watcher = new QDBusPendingCallWatcher(result); | |
408 | watcher->setProperty("wid", (qulonglong) w); | |
409 | connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)), this, SLOT(createInputContextFinished(QDBusPendingCallWatcher*))); | |
410 | } | |
411 | ||
412 | void QFcitxPlatformInputContext::createInputContextFinished(QDBusPendingCallWatcher* watcher) | |
413 | { | |
414 | WId w = watcher->property("wid").toULongLong(); | |
415 | FcitxQtICData* data = m_icMap.value(w); | |
416 | if (!data) | |
417 | return; | |
418 | ||
419 | QDBusPendingReply< int, bool, uint, uint, uint, uint > result = *watcher; | |
420 | ||
421 | do { | |
422 | if (result.isError()) { | |
423 | break; | |
424 | } | |
425 | ||
426 | if (!m_connection->isConnected()) | |
427 | break; | |
428 | ||
429 | int id = qdbus_cast<int>(result.argumentAt(0)); | |
430 | QString path = QString("/inputcontext_%1").arg(id); | |
431 | if (data->proxy) { | |
432 | delete data->proxy; | |
433 | } | |
434 | data->proxy = new FcitxQtInputContextProxy(m_connection->serviceName(), path, *m_connection->connection(), this); | |
435 | connect(data->proxy, SIGNAL(CommitString(QString)), this, SLOT(commitString(QString))); | |
436 | connect(data->proxy, SIGNAL(ForwardKey(uint, uint, int)), this, SLOT(forwardKey(uint, uint, int))); | |
437 | connect(data->proxy, SIGNAL(UpdateFormattedPreedit(FcitxQtFormattedPreeditList,int)), this, SLOT(updateFormattedPreedit(FcitxQtFormattedPreeditList,int))); | |
438 | connect(data->proxy, SIGNAL(DeleteSurroundingText(int,uint)), this, SLOT(deleteSurroundingText(int,uint))); | |
439 | ||
440 | if (data->proxy->isValid()) { | |
441 | QWindow* window = qApp->focusWindow(); | |
442 | if (window && window->winId() == w) | |
443 | data->proxy->FocusIn(); | |
444 | } | |
445 | ||
446 | QFlags<FcitxCapacityFlags> flag; | |
447 | flag |= CAPACITY_PREEDIT; | |
448 | flag |= CAPACITY_FORMATTED_PREEDIT; | |
449 | flag |= CAPACITY_CLIENT_UNFOCUS_COMMIT; | |
450 | m_useSurroundingText = get_boolean_env("FCITX_QT_ENABLE_SURROUNDING_TEXT", true); | |
451 | if (m_useSurroundingText) | |
452 | flag |= CAPACITY_SURROUNDING_TEXT; | |
453 | ||
454 | /* | |
455 | * event loop will cause some problem, so we tries to use async way. | |
456 | */ | |
457 | m_syncMode = get_boolean_env("FCITX_QT_USE_SYNC", false); | |
458 | ||
459 | addCapacity(data, flag, true); | |
460 | } while(0); | |
461 | delete watcher; | |
462 | } | |
463 | ||
464 | void QFcitxPlatformInputContext::updateCapacity(FcitxQtICData* data) | |
465 | { | |
466 | if (!data->proxy || !data->proxy->isValid()) | |
467 | return; | |
468 | ||
469 | QDBusPendingReply< void > result = data->proxy->SetCapacity((uint) data->capacity); | |
470 | } | |
471 | ||
472 | void QFcitxPlatformInputContext::commitString(const QString& str) | |
473 | { | |
474 | m_cursorPos = 0; | |
475 | m_preeditList.clear(); | |
476 | m_commitPreedit.clear(); | |
477 | QObject *input = qApp->focusObject(); | |
478 | if (!input) | |
479 | return; | |
480 | ||
481 | QInputMethodEvent event; | |
482 | event.setCommitString(str); | |
483 | QCoreApplication::sendEvent(input, &event); | |
484 | } | |
485 | ||
486 | void QFcitxPlatformInputContext::updateFormattedPreedit(const FcitxQtFormattedPreeditList& preeditList, int cursorPos) | |
487 | { | |
488 | QObject *input = qApp->focusObject(); | |
489 | if (!input) | |
490 | return; | |
491 | if (cursorPos == m_cursorPos && preeditList == m_preeditList) | |
492 | return; | |
493 | m_preeditList = preeditList; | |
494 | m_cursorPos = cursorPos; | |
495 | QString str, commitStr; | |
496 | int pos = 0; | |
497 | QList<QInputMethodEvent::Attribute> attrList; | |
498 | Q_FOREACH(const FcitxQtFormattedPreedit& preedit, preeditList) | |
499 | { | |
500 | str += preedit.string(); | |
501 | if (!(preedit.format() & MSG_DONOT_COMMIT_WHEN_UNFOCUS)) | |
502 | commitStr += preedit.string(); | |
503 | QTextCharFormat format; | |
504 | if ((preedit.format() & MSG_NOUNDERLINE) == 0) { | |
505 | format.setUnderlineStyle(QTextCharFormat::DashUnderline); | |
506 | } | |
507 | if (preedit.format() & MSG_HIGHLIGHT) { | |
508 | QBrush brush; | |
509 | QPalette palette; | |
510 | palette = QGuiApplication::palette(); | |
511 | format.setBackground(QBrush(QColor(palette.color(QPalette::Active, QPalette::Highlight)))); | |
512 | format.setForeground(QBrush(QColor(palette.color(QPalette::Active, QPalette::HighlightedText)))); | |
513 | } | |
514 | attrList.append(QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, pos, preedit.string().length(), format)); | |
515 | pos += preedit.string().length(); | |
516 | } | |
517 | ||
518 | QByteArray array = str.toUtf8(); | |
519 | array.truncate(cursorPos); | |
520 | cursorPos = QString::fromUtf8(array).length(); | |
521 | ||
522 | attrList.append(QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, cursorPos, 1, 0)); | |
523 | m_preedit = str; | |
524 | m_commitPreedit = commitStr; | |
525 | QInputMethodEvent event(str, attrList); | |
526 | QCoreApplication::sendEvent(input, &event); | |
527 | update(Qt::ImCursorRectangle); | |
528 | } | |
529 | ||
530 | void QFcitxPlatformInputContext::deleteSurroundingText(int offset, uint nchar) | |
531 | { | |
532 | QObject *input = qApp->focusObject(); | |
533 | if (!input) | |
534 | return; | |
535 | ||
536 | QInputMethodEvent event; | |
537 | event.setCommitString("", offset, nchar); | |
538 | QCoreApplication::sendEvent(input, &event); | |
539 | } | |
540 | ||
541 | void QFcitxPlatformInputContext::forwardKey(uint keyval, uint state, int type) | |
542 | { | |
543 | QObject *input = qApp->focusObject(); | |
544 | if (input != NULL) { | |
545 | key_filtered = true; | |
546 | QKeyEvent *keyevent = createKeyEvent(keyval, state, type); | |
547 | QCoreApplication::sendEvent(input, keyevent); | |
548 | delete keyevent; | |
549 | key_filtered = false; | |
550 | } | |
551 | } | |
552 | ||
553 | void QFcitxPlatformInputContext::createICData(QWindow* w) | |
554 | { | |
555 | FcitxQtICData* data = m_icMap.value(w->winId()); | |
556 | if (!data) { | |
557 | data = new FcitxQtICData; | |
558 | m_icMap[w->winId()] = data; | |
559 | m_windowToWidMap[w] = w->winId(); | |
560 | connect(w, SIGNAL(destroyed(QObject*)), this, SLOT(windowDestroyed(QObject*))); | |
561 | } | |
562 | createInputContext(w->winId()); | |
563 | } | |
564 | ||
565 | QKeyEvent* QFcitxPlatformInputContext::createKeyEvent(uint keyval, uint state, int type) | |
566 | { | |
567 | Qt::KeyboardModifiers qstate = Qt::NoModifier; | |
568 | ||
569 | int count = 1; | |
570 | if (state & FcitxKeyState_Alt) { | |
571 | qstate |= Qt::AltModifier; | |
572 | count ++; | |
573 | } | |
574 | ||
575 | if (state & FcitxKeyState_Shift) { | |
576 | qstate |= Qt::ShiftModifier; | |
577 | count ++; | |
578 | } | |
579 | ||
580 | if (state & FcitxKeyState_Ctrl) { | |
581 | qstate |= Qt::ControlModifier; | |
582 | count ++; | |
583 | } | |
584 | ||
585 | int key; | |
586 | symToKeyQt(keyval, key); | |
587 | ||
588 | QKeyEvent* keyevent = new QKeyEvent( | |
589 | (type == FCITX_PRESS_KEY) ? (QEvent::KeyPress) : (QEvent::KeyRelease), | |
590 | key, | |
591 | qstate, | |
592 | QString(), | |
593 | false, | |
594 | count | |
595 | ); | |
596 | ||
597 | return keyevent; | |
598 | } | |
599 | ||
600 | bool QFcitxPlatformInputContext::x11FilterEvent(uint keyval, uint keycode, uint state, bool press) | |
601 | { | |
602 | if (key_filtered) | |
603 | return false; | |
604 | ||
605 | if (!inputMethodAccepted()) | |
606 | return false; | |
607 | ||
608 | QObject *input = qApp->focusObject(); | |
609 | ||
610 | if (!input) | |
611 | return false; | |
612 | ||
613 | FcitxQtInputContextProxy* proxy = validICByWindow(qApp->focusWindow()); | |
614 | ||
615 | if (!proxy) { | |
616 | return x11FilterEventFallback(keyval, keycode, state, press); | |
617 | } | |
618 | ||
619 | proxy->FocusIn(); | |
620 | ||
621 | QDBusPendingReply< int > result = proxy->ProcessKeyEvent( | |
622 | keyval, | |
623 | keycode, | |
624 | state, | |
625 | (press) ? FCITX_PRESS_KEY : FCITX_RELEASE_KEY, | |
626 | QDateTime::currentDateTime().toTime_t() | |
627 | ); | |
628 | result.waitForFinished(); | |
629 | ||
630 | if (!m_connection->isConnected() || !result.isFinished() || result.isError() || result.value() <= 0) { | |
631 | return x11FilterEventFallback(keyval, keycode, state, press); | |
632 | } else { | |
633 | update(Qt::ImCursorRectangle); | |
634 | return true; | |
635 | } | |
636 | return false; | |
637 | } | |
638 | ||
639 | bool QFcitxPlatformInputContext::x11FilterEventFallback(uint keyval, uint keycode, uint state, bool press) | |
640 | { | |
641 | Q_UNUSED(keycode); | |
642 | if (processCompose(keyval, state, (press) ? FCITX_PRESS_KEY : FCITX_RELEASE_KEY)) { | |
643 | return true; | |
644 | } | |
645 | return false; | |
646 | } | |
647 | ||
648 | FcitxQtInputContextProxy* QFcitxPlatformInputContext::validIC() | |
649 | { | |
650 | QWindow* window = qApp->focusWindow(); | |
651 | return validICByWindow(window); | |
652 | } | |
653 | ||
654 | FcitxQtInputContextProxy* QFcitxPlatformInputContext::validICByWId(WId wid) | |
655 | { | |
656 | FcitxQtICData* icData = m_icMap.value(wid); | |
657 | if (!icData) | |
658 | return 0; | |
659 | if (icData->proxy.isNull()) { | |
660 | return 0; | |
661 | } else if (icData->proxy->isValid()) { | |
662 | return icData->proxy.data(); | |
663 | } | |
664 | return 0; | |
665 | } | |
666 | ||
667 | FcitxQtInputContextProxy* QFcitxPlatformInputContext::validICByWindow(QWindow* w) | |
668 | { | |
669 | if (!w) | |
670 | return 0; | |
671 | ||
672 | return validICByWId(w->winId()); | |
673 | } | |
674 | ||
675 | ||
676 | bool QFcitxPlatformInputContext::processCompose(uint keyval, uint state, FcitxKeyEventType event) | |
677 | { | |
678 | Q_UNUSED(state); | |
679 | int i; | |
680 | ||
681 | if (event == FCITX_RELEASE_KEY) | |
682 | return false; | |
683 | ||
684 | for (i = 0; fcitx_compose_ignore[i] != XK_VoidSymbol; i++) { | |
685 | if (keyval == fcitx_compose_ignore[i]) | |
686 | return false; | |
687 | } | |
688 | ||
689 | m_compose_buffer[m_n_compose ++] = keyval; | |
690 | m_compose_buffer[m_n_compose] = 0; | |
691 | ||
692 | if (checkCompactTable(&fcitx_compose_table_compact)) { | |
693 | // qDebug () << "checkCompactTable ->true"; | |
694 | return true; | |
695 | } | |
696 | ||
697 | if (checkAlgorithmically()) { | |
698 | // qDebug () << "checkAlgorithmically ->true"; | |
699 | return true; | |
700 | } | |
701 | ||
702 | if (m_n_compose > 1) { | |
703 | m_compose_buffer[0] = 0; | |
704 | m_n_compose = 0; | |
705 | return true; | |
706 | } else { | |
707 | m_compose_buffer[0] = 0; | |
708 | m_n_compose = 0; | |
709 | return false; | |
710 | } | |
711 | } | |
712 | ||
713 | #define IS_DEAD_KEY(k) \ | |
714 | ((k) >= XK_dead_grave && (k) <= (XK_dead_dasia+1)) | |
715 | ||
716 | bool QFcitxPlatformInputContext::checkAlgorithmically() | |
717 | { | |
718 | int i; | |
719 | quint32 combination_buffer[MAX_COMPOSE_LEN]; | |
720 | ||
721 | if (m_n_compose >= MAX_COMPOSE_LEN) | |
722 | return false; | |
723 | ||
724 | for (i = 0; i < m_n_compose && IS_DEAD_KEY(m_compose_buffer[i]); i++); | |
725 | if (i == m_n_compose) | |
726 | return true; | |
727 | ||
728 | if (i > 0 && i == m_n_compose - 1) { | |
729 | combination_buffer[0] = FcitxKeySymToUnicode(m_compose_buffer[i]); | |
730 | combination_buffer[m_n_compose] = 0; | |
731 | i--; | |
732 | while (i >= 0) { | |
733 | switch (m_compose_buffer[i]) { | |
734 | #define CASE(keysym, unicode) \ | |
735 | case XK_dead_##keysym: combination_buffer[i + 1] = unicode; break | |
736 | CASE(grave, 0x0300); | |
737 | CASE(acute, 0x0301); | |
738 | CASE(circumflex, 0x0302); | |
739 | CASE(tilde, 0x0303); /* Also used with perispomeni, 0x342. */ | |
740 | CASE(macron, 0x0304); | |
741 | CASE(breve, 0x0306); | |
742 | CASE(abovedot, 0x0307); | |
743 | CASE(diaeresis, 0x0308); | |
744 | CASE(hook, 0x0309); | |
745 | CASE(abovering, 0x030A); | |
746 | CASE(doubleacute, 0x030B); | |
747 | CASE(caron, 0x030C); | |
748 | CASE(abovecomma, 0x0313); /* Equivalent to psili */ | |
749 | CASE(abovereversedcomma, 0x0314); /* Equivalent to dasia */ | |
750 | CASE(horn, 0x031B); /* Legacy use for psili, 0x313 (or 0x343). */ | |
751 | CASE(belowdot, 0x0323); | |
752 | CASE(cedilla, 0x0327); | |
753 | CASE(ogonek, 0x0328); /* Legacy use for dasia, 0x314.*/ | |
754 | CASE(iota, 0x0345); | |
755 | CASE(voiced_sound, 0x3099); /* Per Markus Kuhn keysyms.txt file. */ | |
756 | CASE(semivoiced_sound, 0x309A); /* Per Markus Kuhn keysyms.txt file. */ | |
757 | /* The following cases are to be removed once xkeyboard-config, | |
758 | * xorg are fully updated. | |
759 | **/ | |
760 | /* Workaround for typo in 1.4.x xserver-xorg */ | |
761 | case 0xfe66: | |
762 | combination_buffer[i + 1] = 0x314; | |
763 | break; | |
764 | /* CASE (dasia, 0x314); */ | |
765 | /* CASE (perispomeni, 0x342); */ | |
766 | /* CASE (psili, 0x343); */ | |
767 | #undef CASE | |
768 | default: | |
769 | combination_buffer[i + 1] = FcitxKeySymToUnicode(m_compose_buffer[i]); | |
770 | } | |
771 | i--; | |
772 | } | |
773 | ||
774 | /* If the buffer normalizes to a single character, | |
775 | * then modify the order of combination_buffer accordingly, if necessary, | |
776 | * and return TRUE. | |
777 | **/ | |
778 | #if 0 | |
779 | if (check_normalize_nfc(combination_buffer, m_n_compose)) { | |
780 | gunichar value; | |
781 | combination_utf8 = g_ucs4_to_utf8(combination_buffer, -1, NULL, NULL, NULL); | |
782 | nfc = g_utf8_normalize(combination_utf8, -1, G_NORMALIZE_NFC); | |
783 | ||
784 | value = g_utf8_get_char(nfc); | |
785 | gtk_im_context_simple_commit_char(GTK_IM_CONTEXT(context_simple), value); | |
786 | context_simple->compose_buffer[0] = 0; | |
787 | ||
788 | g_free(combination_utf8); | |
789 | g_free(nfc); | |
790 | ||
791 | return TRUE; | |
792 | } | |
793 | #endif | |
794 | QString s(QString::fromUcs4(combination_buffer, m_n_compose)); | |
795 | s = s.normalized(QString::NormalizationForm_C); | |
796 | ||
797 | // qDebug () << "combination_buffer = " << QString::fromUcs4(combination_buffer, m_n_compose) << "m_n_compose" << m_n_compose; | |
798 | // qDebug () << "result = " << s << "i = " << s.length(); | |
799 | ||
800 | if (s.length() == 1) { | |
801 | commitString(QString(s[0])); | |
802 | m_compose_buffer[0] = 0; | |
803 | m_n_compose = 0; | |
804 | return true; | |
805 | } | |
806 | } | |
807 | return false; | |
808 | } | |
809 | ||
810 | ||
811 | bool | |
812 | QFcitxPlatformInputContext::checkCompactTable(const FcitxComposeTableCompact *table) | |
813 | { | |
814 | int row_stride; | |
815 | const quint32 *seq_index; | |
816 | const quint32 *seq; | |
817 | int i; | |
818 | ||
819 | /* Will never match, if the sequence in the compose buffer is longer | |
820 | * than the sequences in the table. Further, compare_seq (key, val) | |
821 | * will overrun val if key is longer than val. */ | |
822 | if (m_n_compose > table->max_seq_len) | |
823 | return false; | |
824 | ||
825 | seq_index = (const quint32 *)bsearch(m_compose_buffer, | |
826 | table->data, table->n_index_size, | |
827 | sizeof(quint32) * table->n_index_stride, | |
828 | compare_seq_index); | |
829 | ||
830 | if (!seq_index) { | |
831 | return false; | |
832 | } | |
833 | ||
834 | if (seq_index && m_n_compose == 1) { | |
835 | return true; | |
836 | } | |
837 | ||
838 | seq = NULL; | |
839 | for (i = m_n_compose - 1; i < table->max_seq_len; i++) { | |
840 | row_stride = i + 1; | |
841 | ||
842 | if (seq_index[i + 1] - seq_index[i] > 0) { | |
843 | seq = (const quint32 *) bsearch(m_compose_buffer + 1, | |
844 | table->data + seq_index[i], (seq_index[i + 1] - seq_index[i]) / row_stride, | |
845 | sizeof(quint32) * row_stride, | |
846 | compare_seq); | |
847 | if (seq) { | |
848 | if (i == m_n_compose - 1) | |
849 | break; | |
850 | else { | |
851 | return true; | |
852 | } | |
853 | } | |
854 | } | |
855 | } | |
856 | ||
857 | if (!seq) { | |
858 | return false; | |
859 | } else { | |
860 | uint value; | |
861 | value = seq[row_stride - 1]; | |
862 | commitString(QString(QChar(value))); | |
863 | m_compose_buffer[0] = 0; | |
864 | m_n_compose = 0; | |
865 | return true; | |
866 | } | |
867 | return false; | |
868 | } | |
869 | ||
870 | // kate: indent-mode cstyle; space-indent on; indent-width 0; |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2013 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #ifndef QFCITXPLATFORMINPUTCONTEXT_H | |
20 | #define QFCITXPLATFORMINPUTCONTEXT_H | |
21 | ||
22 | #include <qpa/qplatforminputcontext.h> | |
23 | #include <QWindow> | |
24 | #include <QDBusConnection> | |
25 | #include <QDBusServiceWatcher> | |
26 | #include <QPointer> | |
27 | #include <QFileSystemWatcher> | |
28 | #include <QRect> | |
29 | #include "fcitx-qt5/fcitxqtformattedpreedit.h" | |
30 | #include <fcitx-qt5/fcitxqtinputcontextproxy.h> | |
31 | ||
32 | #define MAX_COMPOSE_LEN 7 | |
33 | ||
34 | class FcitxQtConnection; | |
35 | class QFileSystemWatcher; | |
36 | enum FcitxKeyEventType { | |
37 | FCITX_PRESS_KEY, | |
38 | FCITX_RELEASE_KEY | |
39 | }; | |
40 | ||
41 | enum FcitxCapacityFlags { | |
42 | CAPACITY_NONE = 0, | |
43 | CAPACITY_CLIENT_SIDE_UI = (1 << 0), | |
44 | CAPACITY_PREEDIT = (1 << 1), | |
45 | CAPACITY_CLIENT_SIDE_CONTROL_STATE = (1 << 2), | |
46 | CAPACITY_PASSWORD = (1 << 3), | |
47 | CAPACITY_FORMATTED_PREEDIT = (1 << 4), | |
48 | CAPACITY_CLIENT_UNFOCUS_COMMIT = (1 << 5), | |
49 | CAPACITY_SURROUNDING_TEXT = (1 << 6), | |
50 | CAPACITY_EMAIL = (1 << 7), | |
51 | CAPACITY_DIGIT = (1 << 8), | |
52 | CAPACITY_UPPERCASE = (1 << 9), | |
53 | CAPACITY_LOWERCASE = (1 << 10), | |
54 | CAPACITY_NOAUTOUPPERCASE = (1 << 11), | |
55 | CAPACITY_URL = (1 << 12), | |
56 | CAPACITY_DIALABLE = (1 << 13), | |
57 | CAPACITY_NUMBER = (1 << 14), | |
58 | CAPACITY_NO_ON_SCREEN_KEYBOARD = (1 << 15), | |
59 | CAPACITY_SPELLCHECK = (1 << 16), | |
60 | CAPACITY_NO_SPELLCHECK = (1 << 17), | |
61 | CAPACITY_WORD_COMPLETION = (1 << 18), | |
62 | CAPACITY_UPPERCASE_WORDS = (1 << 19), | |
63 | CAPACITY_UPPERCASE_SENTENCES = (1 << 20), | |
64 | CAPACITY_ALPHA = (1 << 21), | |
65 | CAPACITY_NAME = (1 << 22) | |
66 | } ; | |
67 | ||
68 | /** message type and flags */ | |
69 | enum FcitxMessageType { | |
70 | MSG_TYPE_FIRST = 0, | |
71 | MSG_TYPE_LAST = 6, | |
72 | MSG_TIPS = 0, /**< Hint Text */ | |
73 | MSG_INPUT = 1, /**< User Input */ | |
74 | MSG_INDEX = 2, /**< Index Number */ | |
75 | MSG_FIRSTCAND = 3, /**< First candidate */ | |
76 | MSG_USERPHR = 4, /**< User Phrase */ | |
77 | MSG_CODE = 5, /**< Typed character */ | |
78 | MSG_OTHER = 6, /**< Other Text */ | |
79 | MSG_NOUNDERLINE = (1 << 3), /**< backward compatible, no underline is a flag */ | |
80 | MSG_HIGHLIGHT = (1 << 4), /**< highlight the preedit */ | |
81 | MSG_DONOT_COMMIT_WHEN_UNFOCUS = (1 << 5), /**< backward compatible */ | |
82 | MSG_REGULAR_MASK = 0x7 /**< regular color type mask */ | |
83 | }; | |
84 | ||
85 | ||
86 | enum FcitxKeyState { | |
87 | FcitxKeyState_None = 0, | |
88 | FcitxKeyState_Shift = 1 << 0, | |
89 | FcitxKeyState_CapsLock = 1 << 1, | |
90 | FcitxKeyState_Ctrl = 1 << 2, | |
91 | FcitxKeyState_Alt = 1 << 3, | |
92 | FcitxKeyState_Alt_Shift = FcitxKeyState_Alt | FcitxKeyState_Shift, | |
93 | FcitxKeyState_Ctrl_Shift = FcitxKeyState_Ctrl | FcitxKeyState_Shift, | |
94 | FcitxKeyState_Ctrl_Alt = FcitxKeyState_Ctrl | FcitxKeyState_Alt, | |
95 | FcitxKeyState_Ctrl_Alt_Shift = FcitxKeyState_Ctrl | FcitxKeyState_Alt | FcitxKeyState_Shift, | |
96 | FcitxKeyState_NumLock = 1 << 4, | |
97 | FcitxKeyState_Super = 1 << 6, | |
98 | FcitxKeyState_ScrollLock = 1 << 7, | |
99 | FcitxKeyState_MousePressed = 1 << 8, | |
100 | FcitxKeyState_HandledMask = 1 << 24, | |
101 | FcitxKeyState_IgnoredMask = 1 << 25, | |
102 | FcitxKeyState_Super2 = 1 << 26, | |
103 | FcitxKeyState_Hyper = 1 << 27, | |
104 | FcitxKeyState_Meta = 1 << 28, | |
105 | FcitxKeyState_UsedMask = 0x5c001fff | |
106 | }; | |
107 | ||
108 | struct FcitxQtICData { | |
109 | FcitxQtICData() : capacity(0), proxy(0), surroundingAnchor(-1), surroundingCursor(-1) {} | |
110 | ~FcitxQtICData() { | |
111 | if (proxy && proxy->isValid()) { | |
112 | proxy->DestroyIC(); | |
113 | delete proxy; | |
114 | } | |
115 | } | |
116 | QFlags<FcitxCapacityFlags> capacity; | |
117 | QPointer<FcitxQtInputContextProxy> proxy; | |
118 | QRect rect; | |
119 | QString surroundingText; | |
120 | int surroundingAnchor; | |
121 | int surroundingCursor; | |
122 | }; | |
123 | ||
124 | class FcitxQtInputMethodProxy; | |
125 | ||
126 | class QFcitxPlatformInputContext : public QPlatformInputContext | |
127 | { | |
128 | Q_OBJECT | |
129 | public: | |
130 | QFcitxPlatformInputContext(); | |
131 | virtual ~QFcitxPlatformInputContext(); | |
132 | ||
133 | virtual bool isValid() const; | |
134 | ||
135 | virtual void invokeAction(QInputMethod::Action , int cursorPosition); | |
136 | virtual void reset(); | |
137 | virtual void commit(); | |
138 | virtual void update(Qt::InputMethodQueries quries ); | |
139 | virtual void setFocusObject(QObject* object); | |
140 | ||
141 | Q_INVOKABLE bool x11FilterEvent(uint keyval, uint keycode, uint state, bool press); | |
142 | ||
143 | ||
144 | public Q_SLOTS: | |
145 | void cursorRectChanged(); | |
146 | void commitString(const QString& str); | |
147 | void updateFormattedPreedit(const FcitxQtFormattedPreeditList& preeditList, int cursorPos); | |
148 | void deleteSurroundingText(int offset, uint nchar); | |
149 | void forwardKey(uint keyval, uint state, int type); | |
150 | void createInputContextFinished(QDBusPendingCallWatcher* watcher); | |
151 | void connected(); | |
152 | void cleanUp(); | |
153 | void windowDestroyed(QObject* object); | |
154 | ||
155 | private: | |
156 | void createInputContext(WId w); | |
157 | bool processCompose(uint keyval, uint state, FcitxKeyEventType event); | |
158 | bool checkAlgorithmically(); | |
159 | bool checkCompactTable(const struct _FcitxComposeTableCompact *table); | |
160 | QKeyEvent* createKeyEvent(uint keyval, uint state, int type); | |
161 | ||
162 | ||
163 | void addCapacity(FcitxQtICData* data, QFlags<FcitxCapacityFlags> capacity, bool forceUpdate = false) | |
164 | { | |
165 | QFlags< FcitxCapacityFlags > newcaps = data->capacity | capacity; | |
166 | if (data->capacity != newcaps || forceUpdate) { | |
167 | data->capacity = newcaps; | |
168 | updateCapacity(data); | |
169 | } | |
170 | } | |
171 | ||
172 | void removeCapacity(FcitxQtICData* data, QFlags<FcitxCapacityFlags> capacity, bool forceUpdate = false) | |
173 | { | |
174 | QFlags< FcitxCapacityFlags > newcaps = data->capacity & (~capacity); | |
175 | if (data->capacity != newcaps || forceUpdate) { | |
176 | data->capacity = newcaps; | |
177 | updateCapacity(data); | |
178 | } | |
179 | } | |
180 | ||
181 | void updateCapacity(FcitxQtICData* data); | |
182 | void commitPreedit(); | |
183 | void createICData(QWindow* w); | |
184 | FcitxQtInputContextProxy* validIC(); | |
185 | FcitxQtInputContextProxy* validICByWindow(QWindow* window); | |
186 | FcitxQtInputContextProxy* validICByWId(WId wid); | |
187 | bool x11FilterEventFallback(uint keyval, uint keycode, uint state, bool press); | |
188 | ||
189 | FcitxQtInputMethodProxy* m_improxy; | |
190 | uint m_compose_buffer[MAX_COMPOSE_LEN + 1]; | |
191 | int m_n_compose; | |
192 | QString m_preedit; | |
193 | QString m_commitPreedit; | |
194 | FcitxQtFormattedPreeditList m_preeditList; | |
195 | int m_cursorPos; | |
196 | bool m_useSurroundingText; | |
197 | bool m_syncMode; | |
198 | FcitxQtConnection* m_connection; | |
199 | QString m_lastSurroundingText; | |
200 | int m_lastSurroundingAnchor; | |
201 | int m_lastSurroundingCursor; | |
202 | QHash<WId, FcitxQtICData*> m_icMap; | |
203 | QHash<QObject*, WId> m_windowToWidMap; | |
204 | WId m_lastWId; | |
205 | }; | |
206 | ||
207 | #endif // QFCITXPLATFORMINPUTCONTEXT_H |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2013 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #include "utils.h" | |
20 | /** check utf8 character */ | |
21 | #define ISUTF8_CB(c) (((c)&0xc0) == 0x80) | |
22 | ||
23 | #define CONT(i) ISUTF8_CB(in[i]) | |
24 | #define VAL(i, s) ((in[i]&0x3f) << s) | |
25 | ||
26 | #define UTF8_LENGTH(Char) \ | |
27 | ((Char) < 0x80 ? 1 : \ | |
28 | ((Char) < 0x800 ? 2 : \ | |
29 | ((Char) < 0x10000 ? 3 : \ | |
30 | ((Char) < 0x200000 ? 4 : \ | |
31 | ((Char) < 0x4000000 ? 5 : 6))))) | |
32 | ||
33 | #define UNICODE_VALID(Char) \ | |
34 | ((Char) < 0x110000 && \ | |
35 | (((Char) & 0xFFFFF800) != 0xD800) && \ | |
36 | ((Char) < 0xFDD0 || (Char) > 0xFDEF) && \ | |
37 | ((Char) & 0xFFFE) != 0xFFFE) | |
38 | ||
39 | int | |
40 | _utf8_get_char_extended(const char *s, | |
41 | int max_len) | |
42 | { | |
43 | const unsigned char*p = (const unsigned char*)s; | |
44 | int i, len; | |
45 | unsigned int wc = (unsigned char) * p; | |
46 | ||
47 | if (wc < 0x80) { | |
48 | return wc; | |
49 | } else if (wc < 0xc0) { | |
50 | return (unsigned int) - 1; | |
51 | } else if (wc < 0xe0) { | |
52 | len = 2; | |
53 | wc &= 0x1f; | |
54 | } else if (wc < 0xf0) { | |
55 | len = 3; | |
56 | wc &= 0x0f; | |
57 | } else if (wc < 0xf8) { | |
58 | len = 4; | |
59 | wc &= 0x07; | |
60 | } else if (wc < 0xfc) { | |
61 | len = 5; | |
62 | wc &= 0x03; | |
63 | } else if (wc < 0xfe) { | |
64 | len = 6; | |
65 | wc &= 0x01; | |
66 | } else { | |
67 | return (unsigned int) - 1; | |
68 | } | |
69 | ||
70 | if (max_len >= 0 && len > max_len) { | |
71 | for (i = 1; i < max_len; i++) { | |
72 | if ((((unsigned char *)p)[i] & 0xc0) != 0x80) | |
73 | return (unsigned int) - 1; | |
74 | } | |
75 | ||
76 | return (unsigned int) - 2; | |
77 | } | |
78 | ||
79 | for (i = 1; i < len; ++i) { | |
80 | unsigned int ch = ((unsigned char *)p)[i]; | |
81 | ||
82 | if ((ch & 0xc0) != 0x80) { | |
83 | if (ch) | |
84 | return (unsigned int) - 1; | |
85 | else | |
86 | return (unsigned int) - 2; | |
87 | } | |
88 | ||
89 | wc <<= 6; | |
90 | ||
91 | wc |= (ch & 0x3f); | |
92 | } | |
93 | ||
94 | if (UTF8_LENGTH(wc) != len) | |
95 | return (unsigned int) - 1; | |
96 | ||
97 | return wc; | |
98 | } | |
99 | ||
100 | int _utf8_get_char_validated(const char *p, | |
101 | int max_len) | |
102 | { | |
103 | int result; | |
104 | ||
105 | if (max_len == 0) | |
106 | return -2; | |
107 | ||
108 | result = _utf8_get_char_extended(p, max_len); | |
109 | ||
110 | if (result & 0x80000000) | |
111 | return result; | |
112 | else if (!UNICODE_VALID(result)) | |
113 | return -1; | |
114 | else | |
115 | return result; | |
116 | } | |
117 | ||
118 | ||
119 | char * | |
120 | _utf8_get_char(const char *i, uint32_t *chr) | |
121 | { | |
122 | const unsigned char* in = (const unsigned char *)i; | |
123 | if (!(in[0] & 0x80)) { | |
124 | *(chr) = *(in); | |
125 | return (char *)in + 1; | |
126 | } | |
127 | ||
128 | /* 2-byte, 0x80-0x7ff */ | |
129 | if ((in[0] & 0xe0) == 0xc0 && CONT(1)) { | |
130 | *chr = ((in[0] & 0x1f) << 6) | VAL(1, 0); | |
131 | return (char *)in + 2; | |
132 | } | |
133 | ||
134 | /* 3-byte, 0x800-0xffff */ | |
135 | if ((in[0] & 0xf0) == 0xe0 && CONT(1) && CONT(2)) { | |
136 | *chr = ((in[0] & 0xf) << 12) | VAL(1, 6) | VAL(2, 0); | |
137 | return (char *)in + 3; | |
138 | } | |
139 | ||
140 | /* 4-byte, 0x10000-0x1FFFFF */ | |
141 | if ((in[0] & 0xf8) == 0xf0 && CONT(1) && CONT(2) && CONT(3)) { | |
142 | *chr = ((in[0] & 0x7) << 18) | VAL(1, 12) | VAL(2, 6) | VAL(3, 0); | |
143 | return (char *)in + 4; | |
144 | } | |
145 | ||
146 | /* 5-byte, 0x200000-0x3FFFFFF */ | |
147 | if ((in[0] & 0xfc) == 0xf8 && CONT(1) && CONT(2) && CONT(3) && CONT(4)) { | |
148 | *chr = ((in[0] & 0x3) << 24) | VAL(1, 18) | VAL(2, 12) | VAL(3, 6) | VAL(4, 0); | |
149 | return (char *)in + 5; | |
150 | } | |
151 | ||
152 | /* 6-byte, 0x400000-0x7FFFFFF */ | |
153 | if ((in[0] & 0xfe) == 0xfc && CONT(1) && CONT(2) && CONT(3) && CONT(4) && CONT(5)) { | |
154 | *chr = ((in[0] & 0x1) << 30) | VAL(1, 24) | VAL(2, 18) | VAL(3, 12) | VAL(4, 6) | VAL(5, 0); | |
155 | return (char *)in + 6; | |
156 | } | |
157 | ||
158 | *chr = *in; | |
159 | ||
160 | return (char *)in + 1; | |
161 | } | |
162 | ||
163 | ||
164 | int _utf8_check_string(const char *s) | |
165 | { | |
166 | while (*s) { | |
167 | uint32_t chr; | |
168 | ||
169 | if (_utf8_get_char_validated(s, 6) < 0) | |
170 | return 0; | |
171 | ||
172 | s = _utf8_get_char(s, &chr); | |
173 | } | |
174 | ||
175 | return 1; | |
176 | } |
0 | /*************************************************************************** | |
1 | * Copyright (C) 2012~2013 by CSSlayer * | |
2 | * * | |
3 | * This program is free software; you can redistribute it and/or modify * | |
4 | * it under the terms of the GNU General Public License as published by * | |
5 | * the Free Software Foundation; either version 2 of the License, or * | |
6 | * (at your option) any later version. * | |
7 | * * | |
8 | * This program is distributed in the hope that it will be useful, * | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
11 | * GNU General Public License for more details. * | |
12 | * * | |
13 | * You should have received a copy of the GNU General Public License * | |
14 | * along with this program; if not, write to the * | |
15 | * Free Software Foundation, Inc., * | |
16 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * | |
17 | ***************************************************************************/ | |
18 | ||
19 | #ifndef UTILS_H | |
20 | #define UTILS_H | |
21 | ||
22 | #include <stdint.h> | |
23 | ||
24 | int | |
25 | _utf8_get_char_extended(const char *s, | |
26 | int max_len); | |
27 | int _utf8_get_char_validated(const char *p, | |
28 | int max_len); | |
29 | char * | |
30 | _utf8_get_char(const char *i, uint32_t *chr); | |
31 | int _utf8_check_string(const char *s); | |
32 | ||
33 | ||
34 | #endif // UTILS_H |