aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libX11/docbook.am2
-rw-r--r--libX11/modules/im/ximcp/imRmAttr.c4
-rw-r--r--libX11/specs/XIM/Makefile.am2
-rw-r--r--libX11/specs/i18n/framework/Makefile.am4
-rw-r--r--libX11/specs/i18n/localedb/Makefile.am4
-rw-r--r--libX11/specs/i18n/trans/Makefile.am4
-rw-r--r--libX11/specs/libX11/Makefile.am4
-rw-r--r--libxcb/src/xcb.h1033
-rw-r--r--libxcb/src/xcb_in.c1429
-rw-r--r--libxcb/src/xcb_util.c840
-rw-r--r--libxcb/src/xcbint.h418
-rw-r--r--xorg-server/xkeyboard-config/rules/base.extras.xml.in84
-rw-r--r--xorg-server/xkeyboard-config/rules/base.xml.in117
-rw-r--r--xorg-server/xkeyboard-config/symbols/brai118
-rw-r--r--xorg-server/xkeyboard-config/symbols/bw36
-rw-r--r--xorg-server/xkeyboard-config/symbols/ch426
-rw-r--r--xorg-server/xkeyboard-config/symbols/epo278
-rw-r--r--xorg-server/xkeyboard-config/symbols/es20
-rw-r--r--xorg-server/xkeyboard-config/symbols/et2
-rw-r--r--xorg-server/xkeyboard-config/symbols/fi2
-rw-r--r--xorg-server/xkeyboard-config/symbols/gb398
-rw-r--r--xorg-server/xkeyboard-config/symbols/ie814
-rw-r--r--xorg-server/xkeyboard-config/symbols/ir2
-rw-r--r--xorg-server/xkeyboard-config/symbols/jp496
-rw-r--r--xorg-server/xkeyboard-config/symbols/ke84
-rw-r--r--xorg-server/xkeyboard-config/symbols/kg266
-rw-r--r--xorg-server/xkeyboard-config/symbols/kh226
-rw-r--r--xorg-server/xkeyboard-config/symbols/kr52
-rw-r--r--xorg-server/xkeyboard-config/symbols/kz430
-rw-r--r--xorg-server/xkeyboard-config/symbols/la300
-rw-r--r--xorg-server/xkeyboard-config/symbols/latam136
-rw-r--r--xorg-server/xkeyboard-config/symbols/lk6
-rw-r--r--xorg-server/xkeyboard-config/symbols/lt14
-rw-r--r--xorg-server/xkeyboard-config/symbols/lv648
-rw-r--r--xorg-server/xkeyboard-config/symbols/me104
-rw-r--r--xorg-server/xkeyboard-config/symbols/mk130
-rw-r--r--xorg-server/xkeyboard-config/symbols/ml166
-rw-r--r--xorg-server/xkeyboard-config/symbols/mm2
-rw-r--r--xorg-server/xkeyboard-config/symbols/mn2
-rw-r--r--xorg-server/xkeyboard-config/symbols/mt152
-rw-r--r--xorg-server/xkeyboard-config/symbols/mv162
-rw-r--r--xorg-server/xkeyboard-config/symbols/ng228
-rw-r--r--xorg-server/xkeyboard-config/symbols/no450
-rw-r--r--xorg-server/xkeyboard-config/symbols/np2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ph1992
-rw-r--r--xorg-server/xkeyboard-config/symbols/pk788
-rw-r--r--xorg-server/xkeyboard-config/symbols/pl700
-rw-r--r--xorg-server/xkeyboard-config/symbols/pt14
-rw-r--r--xorg-server/xkeyboard-config/symbols/ro14
-rw-r--r--xorg-server/xkeyboard-config/symbols/rs20
-rw-r--r--xorg-server/xkeyboard-config/symbols/ru40
-rw-r--r--xorg-server/xkeyboard-config/symbols/se506
-rw-r--r--xorg-server/xkeyboard-config/symbols/si60
-rw-r--r--xorg-server/xkeyboard-config/symbols/sk206
-rw-r--r--xorg-server/xkeyboard-config/symbols/sn2
-rw-r--r--xorg-server/xkeyboard-config/symbols/sy324
-rw-r--r--xorg-server/xkeyboard-config/symbols/th490
-rw-r--r--xorg-server/xkeyboard-config/symbols/tj272
-rw-r--r--xorg-server/xkeyboard-config/symbols/tm90
-rw-r--r--xorg-server/xkeyboard-config/symbols/tr24
-rw-r--r--xorg-server/xkeyboard-config/symbols/tw146
-rw-r--r--xorg-server/xkeyboard-config/symbols/tz118
-rw-r--r--xorg-server/xkeyboard-config/symbols/ua16
-rw-r--r--xorg-server/xkeyboard-config/symbols/us14
-rw-r--r--xorg-server/xkeyboard-config/symbols/uz4
-rw-r--r--xorg-server/xkeyboard-config/symbols/vn78
-rw-r--r--xorg-server/xkeyboard-config/symbols/za84
67 files changed, 8257 insertions, 7842 deletions
diff --git a/libX11/docbook.am b/libX11/docbook.am
index 3cf21e879..693708351 100644
--- a/libX11/docbook.am
+++ b/libX11/docbook.am
@@ -20,6 +20,7 @@ shelf_DATA =
# DocBook/XML file with chapters, appendix and images it includes
dist_shelf_DATA = $(docbook) $(chapters)
+if HAVE_XMLTO
#
# Generate DocBook/XML output formats with or without stylesheets
#
@@ -91,5 +92,6 @@ XSLTPROC_FLAGS = \
endif HAVE_XSLTPROC
endif HAVE_STYLESHEETS
+endif HAVE_XMLTO
CLEANFILES = $(shelf_DATA) $(sgmldbs_DATA)
diff --git a/libX11/modules/im/ximcp/imRmAttr.c b/libX11/modules/im/ximcp/imRmAttr.c
index 5035df514..7503905b2 100644
--- a/libX11/modules/im/ximcp/imRmAttr.c
+++ b/libX11/modules/im/ximcp/imRmAttr.c
@@ -1384,7 +1384,7 @@ _XimCountNumberOfAttr(
{
unsigned int n;
INT16 len;
- INT16 min_len = sizeof(CARD16) /* sizeof attrinute ID */
+ INT16 min_len = sizeof(CARD16) /* sizeof attribute ID */
+ sizeof(CARD16) /* sizeof type of value */
+ sizeof(INT16); /* sizeof length of attribute */
@@ -1417,7 +1417,7 @@ _XimGetAttributeID(
int values_len;
register int i;
INT16 len;
- INT16 min_len = sizeof(CARD16) /* sizeof attrinute ID */
+ INT16 min_len = sizeof(CARD16) /* sizeof attribute ID */
+ sizeof(CARD16) /* sizeof type of value */
+ sizeof(INT16); /* sizeof length of attr */
/*
diff --git a/libX11/specs/XIM/Makefile.am b/libX11/specs/XIM/Makefile.am
index a1fa72da5..68b0b3f48 100644
--- a/libX11/specs/XIM/Makefile.am
+++ b/libX11/specs/XIM/Makefile.am
@@ -1,6 +1,5 @@
if ENABLE_SPECS
-if HAVE_XMLTO
# Main DocBook/XML files (DOCTYPE book)
docbook = xim.xml
@@ -21,5 +20,4 @@ shelfdir = $(docdir)/XIM
# Generate DocBook/XML output formats with or without stylesheets
include $(top_srcdir)/docbook.am
-endif HAVE_XMLTO
endif ENABLE_SPECS
diff --git a/libX11/specs/i18n/framework/Makefile.am b/libX11/specs/i18n/framework/Makefile.am
index 6e8b0106a..af7ae1d0e 100644
--- a/libX11/specs/i18n/framework/Makefile.am
+++ b/libX11/specs/i18n/framework/Makefile.am
@@ -1,6 +1,5 @@
if ENABLE_SPECS
-if HAVE_XMLTO
# Main DocBook/XML files (DOCTYPE book)
docbook = framework.xml
@@ -9,10 +8,9 @@ docbook = framework.xml
chapters = framework.svg
# The location where the DocBook/XML files and their generated formats are installed
-shelfdir = $(docdir)/framework
+shelfdir = $(docdir)/i18n/framework
# Generate DocBook/XML output formats with or without stylesheets
include $(top_srcdir)/docbook.am
-endif HAVE_XMLTO
endif ENABLE_SPECS
diff --git a/libX11/specs/i18n/localedb/Makefile.am b/libX11/specs/i18n/localedb/Makefile.am
index 8db6a7bda..68a917c95 100644
--- a/libX11/specs/i18n/localedb/Makefile.am
+++ b/libX11/specs/i18n/localedb/Makefile.am
@@ -1,15 +1,13 @@
if ENABLE_SPECS
-if HAVE_XMLTO
# Main DocBook/XML files (DOCTYPE book)
docbook = localedb.xml
# The location where the DocBook/XML files and their generated formats are installed
-shelfdir = $(docdir)/localedb
+shelfdir = $(docdir)/i18n/localedb
# Generate DocBook/XML output formats with or without stylesheets
include $(top_srcdir)/docbook.am
-endif HAVE_XMLTO
endif ENABLE_SPECS
diff --git a/libX11/specs/i18n/trans/Makefile.am b/libX11/specs/i18n/trans/Makefile.am
index cdec7509b..40a135a2f 100644
--- a/libX11/specs/i18n/trans/Makefile.am
+++ b/libX11/specs/i18n/trans/Makefile.am
@@ -1,15 +1,13 @@
if ENABLE_SPECS
-if HAVE_XMLTO
# Main DocBook/XML files (DOCTYPE book)
docbook = trans.xml
# The location where the DocBook/XML files and their generated formats are installed
-shelfdir = $(docdir)/trans
+shelfdir = $(docdir)/i18n/trans
# Generate DocBook/XML output formats with or without stylesheets
include $(top_srcdir)/docbook.am
-endif HAVE_XMLTO
endif ENABLE_SPECS
diff --git a/libX11/specs/libX11/Makefile.am b/libX11/specs/libX11/Makefile.am
index 0e59ad887..b87e568cd 100644
--- a/libX11/specs/libX11/Makefile.am
+++ b/libX11/specs/libX11/Makefile.am
@@ -1,6 +1,5 @@
if ENABLE_SPECS
-if HAVE_XMLTO
# Main DocBook/XML files (DOCTYPE book)
docbook = libX11.xml
@@ -31,10 +30,9 @@ chapters = \
glossary.xml
# The location where the DocBook/XML files and their generated formats are installed
-shelfdir = $(docdir)
+shelfdir = $(docdir)/libX11
# Generate DocBook/XML output formats with or without stylesheets
include $(top_srcdir)/docbook.am
-endif HAVE_XMLTO
endif ENABLE_SPECS
diff --git a/libxcb/src/xcb.h b/libxcb/src/xcb.h
index b1bab44da..3ee7965d2 100644
--- a/libxcb/src/xcb.h
+++ b/libxcb/src/xcb.h
@@ -1,526 +1,507 @@
-/*
- * Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the names of the authors or their
- * institutions shall not be used in advertising or otherwise to promote the
- * sale, use or other dealings in this Software without prior written
- * authorization from the authors.
- */
-
-#ifndef __XCB_H__
-#define __XCB_H__
-#include <sys/types.h>
-
-#if defined(__solaris__)
-#include <inttypes.h>
-#else
-#include <stdint.h>
-#endif
-
-#ifndef _WIN32
-#include <sys/uio.h>
-#else
-#include "xcb_windefs.h"
-#endif
-#include <pthread.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @file xcb.h
- */
-
-/**
- * @defgroup XCB_Core_API XCB Core API
- * @brief Core API of the XCB library.
- *
- * @{
- */
-
-/* Pre-defined constants */
-
-/** Current protocol version */
-#define X_PROTOCOL 11
-
-/** Current minor version */
-#define X_PROTOCOL_REVISION 0
-
-/** X_TCP_PORT + display number = server port for TCP transport */
-#define X_TCP_PORT 6000
-
-#define XCB_TYPE_PAD(T,I) (-(I) & (sizeof(T) > 4 ? 3 : sizeof(T) - 1))
-
-/* Opaque structures */
-
-/**
- * @brief XCB Connection structure.
- *
- * A structure that contain all data that XCB needs to communicate with an X server.
- */
-typedef struct xcb_connection_t xcb_connection_t; /**< Opaque structure containing all data that XCB needs to communicate with an X server. */
-
-
-/* Other types */
-
-/**
- * @brief Generic iterator.
- *
- * A generic iterator structure.
- */
-typedef struct {
- void *data; /**< Data of the current iterator */
- int rem; /**< remaining elements */
- int index; /**< index of the current iterator */
-} xcb_generic_iterator_t;
-
-/**
- * @brief Generic reply.
- *
- * A generic reply structure.
- */
-typedef struct {
- uint8_t response_type; /**< Type of the response */
- uint8_t pad0; /**< Padding */
- uint16_t sequence; /**< Sequence number */
- uint32_t length; /**< Length of the response */
-} xcb_generic_reply_t;
-
-/**
- * @brief Generic event.
- *
- * A generic event structure.
- */
-typedef struct {
- uint8_t response_type; /**< Type of the response */
- uint8_t pad0; /**< Padding */
- uint16_t sequence; /**< Sequence number */
- uint32_t pad[7]; /**< Padding */
- uint32_t full_sequence; /**< full sequence */
-} xcb_generic_event_t;
-
-/**
- * @brief GE event
- *
- * An event as sent by the XGE extension. The length field specifies the
- * number of 4-byte blocks trailing the struct.
- */
-typedef struct {
- uint8_t response_type; /**< Type of the response */
- uint8_t pad0; /**< Padding */
- uint16_t sequence; /**< Sequence number */
- uint32_t length;
- uint16_t event_type;
- uint16_t pad1;
- uint32_t pad[5]; /**< Padding */
- uint32_t full_sequence; /**< full sequence */
-} xcb_ge_event_t;
-
-/**
- * @brief Generic error.
- *
- * A generic error structure.
- */
-typedef struct {
- uint8_t response_type; /**< Type of the response */
- uint8_t error_code; /**< Error code */
- uint16_t sequence; /**< Sequence number */
- uint32_t resource_id; /** < Resource ID for requests with side effects only */
- uint16_t minor_code; /** < Minor opcode of the failed request */
- uint8_t major_code; /** < Major opcode of the failed request */
- uint8_t pad0;
- uint32_t pad[5]; /**< Padding */
- uint32_t full_sequence; /**< full sequence */
-} xcb_generic_error_t;
-
-/**
- * @brief Generic cookie.
- *
- * A generic cookie structure.
- */
-typedef struct {
- unsigned int sequence; /**< Sequence number */
-} xcb_void_cookie_t;
-
-
-/* Include the generated xproto header. */
-#include "xproto.h"
-
-
-/** XCB_NONE is the universal null resource or null atom parameter value for many core X requests */
-#define XCB_NONE 0L
-
-/** XCB_COPY_FROM_PARENT can be used for many xcb_create_window parameters */
-#define XCB_COPY_FROM_PARENT 0L
-
-/** XCB_CURRENT_TIME can be used in most requests that take an xcb_timestamp_t */
-#define XCB_CURRENT_TIME 0L
-
-/** XCB_NO_SYMBOL fills in unused entries in xcb_keysym_t tables */
-#define XCB_NO_SYMBOL 0L
-
-
-/* xcb_auth.c */
-
-/**
- * @brief Container for authorization information.
- *
- * A container for authorization information to be sent to the X server.
- */
-typedef struct xcb_auth_info_t {
- int namelen; /**< Length of the string name (as returned by strlen). */
- char *name; /**< String containing the authentication protocol name, such as "MIT-MAGIC-COOKIE-1" or "XDM-AUTHORIZATION-1". */
- int datalen; /**< Length of the data member. */
- char *data; /**< Data interpreted in a protocol-specific manner. */
-} xcb_auth_info_t;
-
-
-/* xcb_out.c */
-
-/**
- * @brief Forces any buffered output to be written to the server.
- * @param c: The connection to the X server.
- * @return > @c 0 on success, <= @c 0 otherwise.
- *
- * Forces any buffered output to be written to the server. Blocks
- * until the write is complete.
- */
-int xcb_flush(xcb_connection_t *c);
-
-/**
- * @brief Returns the maximum request length that this server accepts.
- * @param c: The connection to the X server.
- * @return The maximum request length field.
- *
- * In the absence of the BIG-REQUESTS extension, returns the
- * maximum request length field from the connection setup data, which
- * may be as much as 65535. If the server supports BIG-REQUESTS, then
- * the maximum request length field from the reply to the
- * BigRequestsEnable request will be returned instead.
- *
- * Note that this length is measured in four-byte units, making the
- * theoretical maximum lengths roughly 256kB without BIG-REQUESTS and
- * 16GB with.
- */
-uint32_t xcb_get_maximum_request_length(xcb_connection_t *c);
-
-/**
- * @brief Prefetch the maximum request length without blocking.
- * @param c: The connection to the X server.
- *
- * Without blocking, does as much work as possible toward computing
- * the maximum request length accepted by the X server.
- *
- * Invoking this function may cause a call to xcb_big_requests_enable,
- * but will not block waiting for the reply.
- * xcb_get_maximum_request_length will return the prefetched data
- * after possibly blocking while the reply is retrieved.
- *
- * Note that in order for this function to be fully non-blocking, the
- * application must previously have called
- * xcb_prefetch_extension_data(c, &xcb_big_requests_id) and the reply
- * must have already arrived.
- */
-void xcb_prefetch_maximum_request_length(xcb_connection_t *c);
-
-
-/* xcb_in.c */
-
-/**
- * @brief Returns the next event or error from the server.
- * @param c: The connection to the X server.
- * @return The next event from the server.
- *
- * Returns the next event or error from the server, or returns null in
- * the event of an I/O error. Blocks until either an event or error
- * arrive, or an I/O error occurs.
- */
-xcb_generic_event_t *xcb_wait_for_event(xcb_connection_t *c);
-
-/**
- * @brief Returns the next event or error from the server.
- * @param c: The connection to the X server.
- * error status of the operation.
- * @return The next event from the server.
- *
- * Returns the next event or error from the server, if one is
- * available, or returns @c NULL otherwise. If no event is available, that
- * might be because an I/O error like connection close occurred while
- * attempting to read the next event, in which case the connection is
- * shut down when this function returns.
- */
-xcb_generic_event_t *xcb_poll_for_event(xcb_connection_t *c);
-
-/**
- * @brief Returns the next event or error that precedes the given request.
- * @param c: The connection to the X server.
- * @param request: The limiting sequence number.
- * @return The next event from the server.
- *
- * Returns the next event or error with a sequence number less than or
- * equal to the given sequence number, or returns NULL if no such event can
- * ever arrive. Blocks until either a suitable event or error arrive, or a
- * response arrives that proves no such event is coming, or an I/O error
- * occurs.
- *
- * After processing a request, the X server sends responses in a specific
- * order. First come any events that the request generated, then any
- * replies for the request, then the error response if there is one. After
- * that, the server may spontaneously send more events with the same
- * sequence number, which are not related to that request.
- *
- * This function will always return events from the pre-reply phase of the
- * specified request. It may also return events from the unrelated
- * post-reply stream, as long as they have the same sequence number.
- *
- * This function is useful for callers that need to process responses in
- * wire-order.
- *
- * Implementation note: You cannot currently use this function to ensure
- * that you process responses in exactly wire-order, because depending on
- * the sequence of calls you make and the timing of server responses,
- * post-reply events with the same sequence number may be returned as part
- * of the pre-reply event stream, even though they were separated by a
- * reply or error. In practice this kind of error is unlikely to matter,
- * but it may be fixed in the future.
- */
-xcb_generic_event_t *xcb_wait_for_event_until(xcb_connection_t *c, unsigned int request);
-
-/**
- * @brief Return the error for a request, or NULL if none can ever arrive.
- * @param c: The connection to the X server.
- * @param cookie: The request cookie.
- * @return The error for the request, or NULL if none can ever arrive.
- *
- * The xcb_void_cookie_t cookie supplied to this function must have resulted
- * from a call to xcb_[request_name]_checked(). This function will block
- * until one of two conditions happens. If an error is received, it will be
- * returned. If a reply to a subsequent request has already arrived, no error
- * can arrive for this request, so this function will return NULL.
- *
- * Note that this function will perform a sync if needed to ensure that the
- * sequence number will advance beyond that provided in cookie; this is a
- * convenience to avoid races in determining whether the sync is needed.
- */
-xcb_generic_error_t *xcb_request_check(xcb_connection_t *c, xcb_void_cookie_t cookie);
-
-/**
- * @brief Discards the reply for a request.
- * @param c: The connection to the X server.
- * @param sequence: The request sequence number from a cookie.
- *
- * Discards the reply for a request. Additionally, any error generated
- * by the request is also discarded (unless it was an _unchecked request
- * and the error has already arrived).
- *
- * This function will not block even if the reply is not yet available.
- *
- * Note that the sequence really does have to come from an xcb cookie;
- * this function is not designed to operate on socket-handoff replies.
- */
-void xcb_discard_reply(xcb_connection_t *c, unsigned int sequence);
-
-
-/* xcb_ext.c */
-
-/**
- * @typedef typedef struct xcb_extension_t xcb_extension_t
- */
-typedef struct xcb_extension_t xcb_extension_t; /**< Opaque structure used as key for xcb_get_extension_data_t. */
-
-/**
- * @brief Caches reply information from QueryExtension requests.
- * @param c: The connection.
- * @param ext: The extension data.
- * @return A pointer to the xcb_query_extension_reply_t for the extension.
- *
- * This function is the primary interface to the "extension cache",
- * which caches reply information from QueryExtension
- * requests. Invoking this function may cause a call to
- * xcb_query_extension to retrieve extension information from the
- * server, and may block until extension data is received from the
- * server.
- *
- * The result must not be freed. This storage is managed by the cache
- * itself.
- */
-const xcb_query_extension_reply_t *xcb_get_extension_data(xcb_connection_t *c, xcb_extension_t *ext);
-
-/**
- * @brief Prefetch of extension data into the extension cache
- * @param c: The connection.
- * @param ext: The extension data.
- *
- * This function allows a "prefetch" of extension data into the
- * extension cache. Invoking the function may cause a call to
- * xcb_query_extension, but will not block waiting for the
- * reply. xcb_get_extension_data will return the prefetched data after
- * possibly blocking while it is retrieved.
- */
-void xcb_prefetch_extension_data(xcb_connection_t *c, xcb_extension_t *ext);
-
-
-/* xcb_conn.c */
-
-/**
- * @brief Access the data returned by the server.
- * @param c: The connection.
- * @return A pointer to an xcb_setup_t structure.
- *
- * Accessor for the data returned by the server when the xcb_connection_t
- * was initialized. This data includes
- * - the server's required format for images,
- * - a list of available visuals,
- * - a list of available screens,
- * - the server's maximum request length (in the absence of the
- * BIG-REQUESTS extension),
- * - and other assorted information.
- *
- * See the X protocol specification for more details.
- *
- * The result must not be freed.
- */
-const xcb_setup_t *xcb_get_setup(xcb_connection_t *c);
-
-/**
- * @brief Access the file descriptor of the connection.
- * @param c: The connection.
- * @return The file descriptor.
- *
- * Accessor for the file descriptor that was passed to the
- * xcb_connect_to_fd call that returned @p c.
- */
-int xcb_get_file_descriptor(xcb_connection_t *c);
-
-/**
- * @brief Test whether the connection has shut down due to a fatal error.
- * @param c: The connection.
- * @return 1 if the connection is in an error state; 0 otherwise.
- *
- * Some errors that occur in the context of an xcb_connection_t
- * are unrecoverable. When such an error occurs, the
- * connection is shut down and further operations on the
- * xcb_connection_t have no effect.
- *
- * @todo Other functions should document the conditions in
- * which they shut down the connection.
- */
-int xcb_connection_has_error(xcb_connection_t *c);
-
-/**
- * @brief Connects to the X server.
- * @param fd: The file descriptor.
- * @param auth_info: Authentication data.
- * @return A newly allocated xcb_connection_t structure.
- *
- * Connects to an X server, given the open socket @p fd and the
- * xcb_auth_info_t @p auth_info. The file descriptor @p fd is
- * bidirectionally connected to an X server. If the connection
- * should be unauthenticated, @p auth_info must be @c
- * NULL.
- */
-xcb_connection_t *xcb_connect_to_fd(int fd, xcb_auth_info_t *auth_info);
-
-/**
- * @brief Closes the connection.
- * @param c: The connection.
- *
- * Closes the file descriptor and frees all memory associated with the
- * connection @c c.
- */
-void xcb_disconnect(xcb_connection_t *c);
-
-
-/* xcb_util.c */
-
-/**
- * @brief Parses a display string name in the form documented by X(7x).
- * @param name: The name of the display.
- * @param host: A pointer to a malloc'd copy of the hostname.
- * @param display: A pointer to the display number.
- * @param screen: A pointer to the screen number.
- * @return 0 on failure, non 0 otherwise.
- *
- * Parses the display string name @p display_name in the form
- * documented by X(7x). Has no side effects on failure. If
- * @p displayname is @c NULL or empty, it uses the environment
- * variable DISPLAY. @p hostp is a pointer to a newly allocated string
- * that contain the host name. @p displayp is set to the display
- * number and @p screenp to the preferred screen number. @p screenp
- * can be @c NULL. If @p displayname does not contain a screen number,
- * it is set to @c 0.
- */
-int xcb_parse_display(const char *name, char **host, int *display, int *screen);
-
-/**
- * @brief Connects to the X server.
- * @param displayname: The name of the display.
- * @param screenp: A pointer to a preferred screen number.
- * @return A newly allocated xcb_connection_t structure.
- *
- * Connects to the X server specified by @p displayname. If @p
- * displayname is @c NULL, uses the value of the DISPLAY environment
- * variable. If a particular screen on that server is preferred, the
- * int pointed to by @p screenp (if not @c NULL) will be set to that
- * screen; otherwise the screen will be set to 0.
- */
-xcb_connection_t *xcb_connect(const char *displayname, int *screenp);
-
-/**
- * @brief Connects to the X server, using an authorization information.
- * @param display: The name of the display.
- * @param auth: The authorization information.
- * @param screen: A pointer to a preferred screen number.
- * @return A newly allocated xcb_connection_t structure.
- *
- * Connects to the X server specified by @p displayname, using the
- * authorization @p auth. If a particular screen on that server is
- * preferred, the int pointed to by @p screenp (if not @c NULL) will
- * be set to that screen; otherwise @p screenp will be set to 0.
- */
-xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *display, xcb_auth_info_t *auth, int *screen);
-
-
-/* xcb_xid.c */
-
-/**
- * @brief Allocates an XID for a new object.
- * @param c: The connection.
- * @return A newly allocated XID.
- *
- * Allocates an XID for a new object. Typically used just prior to
- * various object creation functions, such as xcb_create_window.
- */
-uint32_t xcb_generate_id(xcb_connection_t *c);
-
-
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* __XCB_H__ */
+/*
+ * Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+#ifndef __XCB_H__
+#define __XCB_H__
+#include <sys/types.h>
+
+#if defined(__solaris__)
+#include <inttypes.h>
+#else
+#include <stdint.h>
+#endif
+
+#ifndef _WIN32
+#include <sys/uio.h>
+#else
+#include "xcb_windefs.h"
+#endif
+#include <pthread.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @file xcb.h
+ */
+
+/**
+ * @defgroup XCB_Core_API XCB Core API
+ * @brief Core API of the XCB library.
+ *
+ * @{
+ */
+
+/* Pre-defined constants */
+
+/** Current protocol version */
+#define X_PROTOCOL 11
+
+/** Current minor version */
+#define X_PROTOCOL_REVISION 0
+
+/** X_TCP_PORT + display number = server port for TCP transport */
+#define X_TCP_PORT 6000
+
+#define XCB_TYPE_PAD(T,I) (-(I) & (sizeof(T) > 4 ? 3 : sizeof(T) - 1))
+
+/* Opaque structures */
+
+/**
+ * @brief XCB Connection structure.
+ *
+ * A structure that contain all data that XCB needs to communicate with an X server.
+ */
+typedef struct xcb_connection_t xcb_connection_t; /**< Opaque structure containing all data that XCB needs to communicate with an X server. */
+
+
+/* Other types */
+
+/**
+ * @brief Generic iterator.
+ *
+ * A generic iterator structure.
+ */
+typedef struct {
+ void *data; /**< Data of the current iterator */
+ int rem; /**< remaining elements */
+ int index; /**< index of the current iterator */
+} xcb_generic_iterator_t;
+
+/**
+ * @brief Generic reply.
+ *
+ * A generic reply structure.
+ */
+typedef struct {
+ uint8_t response_type; /**< Type of the response */
+ uint8_t pad0; /**< Padding */
+ uint16_t sequence; /**< Sequence number */
+ uint32_t length; /**< Length of the response */
+} xcb_generic_reply_t;
+
+/**
+ * @brief Generic event.
+ *
+ * A generic event structure.
+ */
+typedef struct {
+ uint8_t response_type; /**< Type of the response */
+ uint8_t pad0; /**< Padding */
+ uint16_t sequence; /**< Sequence number */
+ uint32_t pad[7]; /**< Padding */
+ uint32_t full_sequence; /**< full sequence */
+} xcb_generic_event_t;
+
+/**
+ * @brief GE event
+ *
+ * An event as sent by the XGE extension. The length field specifies the
+ * number of 4-byte blocks trailing the struct.
+ */
+typedef struct {
+ uint8_t response_type; /**< Type of the response */
+ uint8_t pad0; /**< Padding */
+ uint16_t sequence; /**< Sequence number */
+ uint32_t length;
+ uint16_t event_type;
+ uint16_t pad1;
+ uint32_t pad[5]; /**< Padding */
+ uint32_t full_sequence; /**< full sequence */
+} xcb_ge_event_t;
+
+/**
+ * @brief Generic error.
+ *
+ * A generic error structure.
+ */
+typedef struct {
+ uint8_t response_type; /**< Type of the response */
+ uint8_t error_code; /**< Error code */
+ uint16_t sequence; /**< Sequence number */
+ uint32_t resource_id; /** < Resource ID for requests with side effects only */
+ uint16_t minor_code; /** < Minor opcode of the failed request */
+ uint8_t major_code; /** < Major opcode of the failed request */
+ uint8_t pad0;
+ uint32_t pad[5]; /**< Padding */
+ uint32_t full_sequence; /**< full sequence */
+} xcb_generic_error_t;
+
+/**
+ * @brief Generic cookie.
+ *
+ * A generic cookie structure.
+ */
+typedef struct {
+ unsigned int sequence; /**< Sequence number */
+} xcb_void_cookie_t;
+
+
+/* Include the generated xproto header. */
+#include "xproto.h"
+
+
+/** XCB_NONE is the universal null resource or null atom parameter value for many core X requests */
+#define XCB_NONE 0L
+
+/** XCB_COPY_FROM_PARENT can be used for many xcb_create_window parameters */
+#define XCB_COPY_FROM_PARENT 0L
+
+/** XCB_CURRENT_TIME can be used in most requests that take an xcb_timestamp_t */
+#define XCB_CURRENT_TIME 0L
+
+/** XCB_NO_SYMBOL fills in unused entries in xcb_keysym_t tables */
+#define XCB_NO_SYMBOL 0L
+
+
+/* xcb_auth.c */
+
+/**
+ * @brief Container for authorization information.
+ *
+ * A container for authorization information to be sent to the X server.
+ */
+typedef struct xcb_auth_info_t {
+ int namelen; /**< Length of the string name (as returned by strlen). */
+ char *name; /**< String containing the authentication protocol name, such as "MIT-MAGIC-COOKIE-1" or "XDM-AUTHORIZATION-1". */
+ int datalen; /**< Length of the data member. */
+ char *data; /**< Data interpreted in a protocol-specific manner. */
+} xcb_auth_info_t;
+
+
+/* xcb_out.c */
+
+/**
+ * @brief Forces any buffered output to be written to the server.
+ * @param c: The connection to the X server.
+ * @return > @c 0 on success, <= @c 0 otherwise.
+ *
+ * Forces any buffered output to be written to the server. Blocks
+ * until the write is complete.
+ */
+int xcb_flush(xcb_connection_t *c);
+
+/**
+ * @brief Returns the maximum request length that this server accepts.
+ * @param c: The connection to the X server.
+ * @return The maximum request length field.
+ *
+ * In the absence of the BIG-REQUESTS extension, returns the
+ * maximum request length field from the connection setup data, which
+ * may be as much as 65535. If the server supports BIG-REQUESTS, then
+ * the maximum request length field from the reply to the
+ * BigRequestsEnable request will be returned instead.
+ *
+ * Note that this length is measured in four-byte units, making the
+ * theoretical maximum lengths roughly 256kB without BIG-REQUESTS and
+ * 16GB with.
+ */
+uint32_t xcb_get_maximum_request_length(xcb_connection_t *c);
+
+/**
+ * @brief Prefetch the maximum request length without blocking.
+ * @param c: The connection to the X server.
+ *
+ * Without blocking, does as much work as possible toward computing
+ * the maximum request length accepted by the X server.
+ *
+ * Invoking this function may cause a call to xcb_big_requests_enable,
+ * but will not block waiting for the reply.
+ * xcb_get_maximum_request_length will return the prefetched data
+ * after possibly blocking while the reply is retrieved.
+ *
+ * Note that in order for this function to be fully non-blocking, the
+ * application must previously have called
+ * xcb_prefetch_extension_data(c, &xcb_big_requests_id) and the reply
+ * must have already arrived.
+ */
+void xcb_prefetch_maximum_request_length(xcb_connection_t *c);
+
+
+/* xcb_in.c */
+
+/**
+ * @brief Returns the next event or error from the server.
+ * @param c: The connection to the X server.
+ * @return The next event from the server.
+ *
+ * Returns the next event or error from the server, or returns null in
+ * the event of an I/O error. Blocks until either an event or error
+ * arrive, or an I/O error occurs.
+ */
+xcb_generic_event_t *xcb_wait_for_event(xcb_connection_t *c);
+
+/**
+ * @brief Returns the next event or error from the server.
+ * @param c: The connection to the X server.
+ * error status of the operation.
+ * @return The next event from the server.
+ *
+ * Returns the next event or error from the server, if one is
+ * available, or returns @c NULL otherwise. If no event is available, that
+ * might be because an I/O error like connection close occurred while
+ * attempting to read the next event, in which case the connection is
+ * shut down when this function returns.
+ */
+xcb_generic_event_t *xcb_poll_for_event(xcb_connection_t *c);
+
+/**
+ * @brief Returns the next event without reading from the connection.
+ * @param c: The connection to the X server.
+ * @return The next already queued event from the server.
+ *
+ * This is a version of xcb_poll_for_event that only examines the
+ * event queue for new events. The function doesn't try to read new
+ * events from the connection if no queued events are found.
+ *
+ * This function is useful for callers that know in advance that all
+ * interesting events have already been read from the connection. For
+ * example, callers might use xcb_wait_for_reply and be interested
+ * only of events that preceded a specific reply.
+ */
+xcb_generic_event_t *xcb_poll_for_queued_event(xcb_connection_t *c);
+
+/**
+ * @brief Return the error for a request, or NULL if none can ever arrive.
+ * @param c: The connection to the X server.
+ * @param cookie: The request cookie.
+ * @return The error for the request, or NULL if none can ever arrive.
+ *
+ * The xcb_void_cookie_t cookie supplied to this function must have resulted
+ * from a call to xcb_[request_name]_checked(). This function will block
+ * until one of two conditions happens. If an error is received, it will be
+ * returned. If a reply to a subsequent request has already arrived, no error
+ * can arrive for this request, so this function will return NULL.
+ *
+ * Note that this function will perform a sync if needed to ensure that the
+ * sequence number will advance beyond that provided in cookie; this is a
+ * convenience to avoid races in determining whether the sync is needed.
+ */
+xcb_generic_error_t *xcb_request_check(xcb_connection_t *c, xcb_void_cookie_t cookie);
+
+/**
+ * @brief Discards the reply for a request.
+ * @param c: The connection to the X server.
+ * @param sequence: The request sequence number from a cookie.
+ *
+ * Discards the reply for a request. Additionally, any error generated
+ * by the request is also discarded (unless it was an _unchecked request
+ * and the error has already arrived).
+ *
+ * This function will not block even if the reply is not yet available.
+ *
+ * Note that the sequence really does have to come from an xcb cookie;
+ * this function is not designed to operate on socket-handoff replies.
+ */
+void xcb_discard_reply(xcb_connection_t *c, unsigned int sequence);
+
+
+/* xcb_ext.c */
+
+/**
+ * @typedef typedef struct xcb_extension_t xcb_extension_t
+ */
+typedef struct xcb_extension_t xcb_extension_t; /**< Opaque structure used as key for xcb_get_extension_data_t. */
+
+/**
+ * @brief Caches reply information from QueryExtension requests.
+ * @param c: The connection.
+ * @param ext: The extension data.
+ * @return A pointer to the xcb_query_extension_reply_t for the extension.
+ *
+ * This function is the primary interface to the "extension cache",
+ * which caches reply information from QueryExtension
+ * requests. Invoking this function may cause a call to
+ * xcb_query_extension to retrieve extension information from the
+ * server, and may block until extension data is received from the
+ * server.
+ *
+ * The result must not be freed. This storage is managed by the cache
+ * itself.
+ */
+const xcb_query_extension_reply_t *xcb_get_extension_data(xcb_connection_t *c, xcb_extension_t *ext);
+
+/**
+ * @brief Prefetch of extension data into the extension cache
+ * @param c: The connection.
+ * @param ext: The extension data.
+ *
+ * This function allows a "prefetch" of extension data into the
+ * extension cache. Invoking the function may cause a call to
+ * xcb_query_extension, but will not block waiting for the
+ * reply. xcb_get_extension_data will return the prefetched data after
+ * possibly blocking while it is retrieved.
+ */
+void xcb_prefetch_extension_data(xcb_connection_t *c, xcb_extension_t *ext);
+
+
+/* xcb_conn.c */
+
+/**
+ * @brief Access the data returned by the server.
+ * @param c: The connection.
+ * @return A pointer to an xcb_setup_t structure.
+ *
+ * Accessor for the data returned by the server when the xcb_connection_t
+ * was initialized. This data includes
+ * - the server's required format for images,
+ * - a list of available visuals,
+ * - a list of available screens,
+ * - the server's maximum request length (in the absence of the
+ * BIG-REQUESTS extension),
+ * - and other assorted information.
+ *
+ * See the X protocol specification for more details.
+ *
+ * The result must not be freed.
+ */
+const xcb_setup_t *xcb_get_setup(xcb_connection_t *c);
+
+/**
+ * @brief Access the file descriptor of the connection.
+ * @param c: The connection.
+ * @return The file descriptor.
+ *
+ * Accessor for the file descriptor that was passed to the
+ * xcb_connect_to_fd call that returned @p c.
+ */
+int xcb_get_file_descriptor(xcb_connection_t *c);
+
+/**
+ * @brief Test whether the connection has shut down due to a fatal error.
+ * @param c: The connection.
+ * @return 1 if the connection is in an error state; 0 otherwise.
+ *
+ * Some errors that occur in the context of an xcb_connection_t
+ * are unrecoverable. When such an error occurs, the
+ * connection is shut down and further operations on the
+ * xcb_connection_t have no effect.
+ *
+ * @todo Other functions should document the conditions in
+ * which they shut down the connection.
+ */
+int xcb_connection_has_error(xcb_connection_t *c);
+
+/**
+ * @brief Connects to the X server.
+ * @param fd: The file descriptor.
+ * @param auth_info: Authentication data.
+ * @return A newly allocated xcb_connection_t structure.
+ *
+ * Connects to an X server, given the open socket @p fd and the
+ * xcb_auth_info_t @p auth_info. The file descriptor @p fd is
+ * bidirectionally connected to an X server. If the connection
+ * should be unauthenticated, @p auth_info must be @c
+ * NULL.
+ */
+xcb_connection_t *xcb_connect_to_fd(int fd, xcb_auth_info_t *auth_info);
+
+/**
+ * @brief Closes the connection.
+ * @param c: The connection.
+ *
+ * Closes the file descriptor and frees all memory associated with the
+ * connection @c c.
+ */
+void xcb_disconnect(xcb_connection_t *c);
+
+
+/* xcb_util.c */
+
+/**
+ * @brief Parses a display string name in the form documented by X(7x).
+ * @param name: The name of the display.
+ * @param host: A pointer to a malloc'd copy of the hostname.
+ * @param display: A pointer to the display number.
+ * @param screen: A pointer to the screen number.
+ * @return 0 on failure, non 0 otherwise.
+ *
+ * Parses the display string name @p display_name in the form
+ * documented by X(7x). Has no side effects on failure. If
+ * @p displayname is @c NULL or empty, it uses the environment
+ * variable DISPLAY. @p hostp is a pointer to a newly allocated string
+ * that contain the host name. @p displayp is set to the display
+ * number and @p screenp to the preferred screen number. @p screenp
+ * can be @c NULL. If @p displayname does not contain a screen number,
+ * it is set to @c 0.
+ */
+int xcb_parse_display(const char *name, char **host, int *display, int *screen);
+
+/**
+ * @brief Connects to the X server.
+ * @param displayname: The name of the display.
+ * @param screenp: A pointer to a preferred screen number.
+ * @return A newly allocated xcb_connection_t structure.
+ *
+ * Connects to the X server specified by @p displayname. If @p
+ * displayname is @c NULL, uses the value of the DISPLAY environment
+ * variable. If a particular screen on that server is preferred, the
+ * int pointed to by @p screenp (if not @c NULL) will be set to that
+ * screen; otherwise the screen will be set to 0.
+ */
+xcb_connection_t *xcb_connect(const char *displayname, int *screenp);
+
+/**
+ * @brief Connects to the X server, using an authorization information.
+ * @param display: The name of the display.
+ * @param auth: The authorization information.
+ * @param screen: A pointer to a preferred screen number.
+ * @return A newly allocated xcb_connection_t structure.
+ *
+ * Connects to the X server specified by @p displayname, using the
+ * authorization @p auth. If a particular screen on that server is
+ * preferred, the int pointed to by @p screenp (if not @c NULL) will
+ * be set to that screen; otherwise @p screenp will be set to 0.
+ */
+xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *display, xcb_auth_info_t *auth, int *screen);
+
+
+/* xcb_xid.c */
+
+/**
+ * @brief Allocates an XID for a new object.
+ * @param c: The connection.
+ * @return A newly allocated XID.
+ *
+ * Allocates an XID for a new object. Typically used just prior to
+ * various object creation functions, such as xcb_create_window.
+ */
+uint32_t xcb_generate_id(xcb_connection_t *c);
+
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __XCB_H__ */
diff --git a/libxcb/src/xcb_in.c b/libxcb/src/xcb_in.c
index a49efd5db..4acc3a27d 100644
--- a/libxcb/src/xcb_in.c
+++ b/libxcb/src/xcb_in.c
@@ -1,729 +1,700 @@
-/* Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the names of the authors or their
- * institutions shall not be used in advertising or otherwise to promote the
- * sale, use or other dealings in this Software without prior written
- * authorization from the authors.
- */
-
-/* Stuff that reads stuff from the server. */
-
-#include <assert.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <errno.h>
-
-#include "xcb.h"
-#include "xcbext.h"
-#include "xcbint.h"
-#if USE_POLL
-#include <poll.h>
-#endif
-#ifndef _WIN32
-#include <sys/select.h>
-#include <sys/socket.h>
-#endif
-
-#ifdef _WIN32
-#include "xcb_windefs.h"
-#endif /* _WIN32 */
-
-#define XCB_ERROR 0
-#define XCB_REPLY 1
-#define XCB_XGE_EVENT 35
-
-/* required for compiling for Win32 using MinGW */
-#ifndef MSG_WAITALL
-#define MSG_WAITALL 0
-#endif
-
-struct event_list {
- uint64_t sequence;
- xcb_generic_event_t *event;
- struct event_list *next;
-};
-
-struct reply_list {
- void *reply;
- struct reply_list *next;
-};
-
-typedef struct pending_reply {
- uint64_t first_request;
- uint64_t last_request;
- enum workarounds workaround;
- int flags;
- struct pending_reply *next;
-} pending_reply;
-
-typedef struct reader_list {
- uint64_t request;
- pthread_cond_t *data;
- struct reader_list *next;
-} reader_list;
-
-static void remove_finished_readers(reader_list **prev_reader, uint64_t completed)
-{
- while(*prev_reader && XCB_SEQUENCE_COMPARE((*prev_reader)->request, <=, completed))
- {
- /* If you don't have what you're looking for now, you never
- * will. Wake up and leave me alone. */
- pthread_cond_signal((*prev_reader)->data);
- *prev_reader = (*prev_reader)->next;
- }
-}
-
-static int read_packet(xcb_connection_t *c)
-{
- xcb_generic_reply_t genrep;
- int length = 32;
- int eventlength = 0; /* length after first 32 bytes for GenericEvents */
- void *buf;
- pending_reply *pend = 0;
- struct event_list *event;
-
- /* Wait for there to be enough data for us to read a whole packet */
- if(c->in.queue_len < length)
- return 0;
-
- /* Get the response type, length, and sequence number. */
- memcpy(&genrep, c->in.queue, sizeof(genrep));
-
- /* Compute 32-bit sequence number of this packet. */
- if((genrep.response_type & 0x7f) != XCB_KEYMAP_NOTIFY)
- {
- uint64_t lastread = c->in.request_read;
- c->in.request_read = (lastread & UINT64_C(0xffffffffffff0000)) | genrep.sequence;
- if(XCB_SEQUENCE_COMPARE(c->in.request_read, <, lastread))
- c->in.request_read += 0x10000;
- if(XCB_SEQUENCE_COMPARE(c->in.request_read, >, c->in.request_expected))
- c->in.request_expected = c->in.request_read;
-
- if(c->in.request_read != lastread)
- {
- if(c->in.current_reply)
- {
- _xcb_map_put(c->in.replies, lastread, c->in.current_reply);
- c->in.current_reply = 0;
- c->in.current_reply_tail = &c->in.current_reply;
- }
- c->in.request_completed = c->in.event_responses_completed = c->in.request_read - 1;
- }
-
- while(c->in.pending_replies &&
- c->in.pending_replies->workaround != WORKAROUND_EXTERNAL_SOCKET_OWNER &&
- XCB_SEQUENCE_COMPARE (c->in.pending_replies->last_request, <=, c->in.request_completed))
- {
- pending_reply *oldpend = c->in.pending_replies;
- c->in.pending_replies = oldpend->next;
- if(!oldpend->next)
- c->in.pending_replies_tail = &c->in.pending_replies;
- free(oldpend);
- }
-
- if(genrep.response_type == XCB_ERROR)
- c->in.request_completed = c->in.event_responses_completed = c->in.request_read;
- else if(genrep.response_type == XCB_REPLY)
- c->in.event_responses_completed = c->in.request_read;
-
- remove_finished_readers(&c->in.readers, c->in.request_completed);
- remove_finished_readers(&c->in.event_readers, c->in.event_responses_completed);
- }
-
- if(genrep.response_type == XCB_ERROR || genrep.response_type == XCB_REPLY)
- {
- pend = c->in.pending_replies;
- if(pend &&
- !(XCB_SEQUENCE_COMPARE(pend->first_request, <=, c->in.request_read) &&
- (pend->workaround == WORKAROUND_EXTERNAL_SOCKET_OWNER ||
- XCB_SEQUENCE_COMPARE(c->in.request_read, <=, pend->last_request))))
- pend = 0;
- }
-
- /* For reply packets, check that the entire packet is available. */
- if(genrep.response_type == XCB_REPLY)
- {
- if(pend && pend->workaround == WORKAROUND_GLX_GET_FB_CONFIGS_BUG)
- {
- uint32_t *p = (uint32_t *) c->in.queue;
- genrep.length = p[2] * p[3] * 2;
- }
- length += genrep.length * 4;
- }
-
- /* XGE events may have sizes > 32 */
- if (genrep.response_type == XCB_XGE_EVENT)
- eventlength = genrep.length * 4;
-
- buf = malloc(length + eventlength +
- (genrep.response_type == XCB_REPLY ? 0 : sizeof(uint32_t)));
- if(!buf)
- {
- _xcb_conn_shutdown(c);
- return 0;
- }
-
- if(_xcb_in_read_block(c, buf, length) <= 0)
- {
- free(buf);
- return 0;
- }
-
- /* pull in XGE event data if available, append after event struct */
- if (eventlength)
- {
- if(_xcb_in_read_block(c, &((xcb_generic_event_t*)buf)[1], eventlength) <= 0)
- {
- free(buf);
- return 0;
- }
- }
-
- if(pend && (pend->flags & XCB_REQUEST_DISCARD_REPLY))
- {
- free(buf);
- return 1;
- }
-
- if(genrep.response_type != XCB_REPLY)
- ((xcb_generic_event_t *) buf)->full_sequence = c->in.request_read;
-
- /* reply, or checked error */
- if( genrep.response_type == XCB_REPLY ||
- (genrep.response_type == XCB_ERROR && pend && (pend->flags & XCB_REQUEST_CHECKED)))
- {
- struct reply_list *cur = malloc(sizeof(struct reply_list));
- if(!cur)
- {
- _xcb_conn_shutdown(c);
- free(buf);
- return 0;
- }
- cur->reply = buf;
- cur->next = 0;
- *c->in.current_reply_tail = cur;
- c->in.current_reply_tail = &cur->next;
- if(c->in.readers && c->in.readers->request == c->in.request_read)
- pthread_cond_signal(c->in.readers->data);
- return 1;
- }
-
- /* event, or unchecked error */
- event = malloc(sizeof(struct event_list));
- if(!event)
- {
- _xcb_conn_shutdown(c);
- free(buf);
- return 0;
- }
- event->sequence = c->in.request_read;
- event->event = buf;
- event->next = 0;
- *c->in.events_tail = event;
- c->in.events_tail = &event->next;
- if(c->in.event_readers)
- pthread_cond_signal(c->in.event_readers->data);
- else
- pthread_cond_signal(&c->in.event_cond);
- return 1; /* I have something for you... */
-}
-
-static xcb_generic_event_t *get_event(xcb_connection_t *c)
-{
- struct event_list *cur = c->in.events;
- xcb_generic_event_t *ret;
- if(!c->in.events)
- return 0;
- ret = cur->event;
- c->in.events = cur->next;
- if(!cur->next)
- c->in.events_tail = &c->in.events;
- free(cur);
- return ret;
-}
-
-static void free_reply_list(struct reply_list *head)
-{
- while(head)
- {
- struct reply_list *cur = head;
- head = cur->next;
- free(cur->reply);
- free(cur);
- }
-}
-
-static int read_block(const int fd, void *buf, const ssize_t len)
-{
- int done = 0;
- while(done < len)
- {
- int ret = recv(fd, ((char *) buf) + done, len - done,MSG_WAITALL);
- if(ret > 0)
- done += ret;
-#ifndef _WIN32
- if(ret < 0 && errno == EAGAIN)
-#else
- if(ret == SOCKET_ERROR && WSAGetLastError() == WSAEWOULDBLOCK)
-#endif /* !_Win32 */
- {
-#if USE_POLL
- struct pollfd pfd;
- pfd.fd = fd;
- pfd.events = POLLIN;
- pfd.revents = 0;
- do {
- ret = poll(&pfd, 1, -1);
- } while (ret == -1 && errno == EINTR);
-#else
- fd_set fds;
- FD_ZERO(&fds);
- FD_SET(fd, &fds);
-
- /* Initializing errno here makes sure that for Win32 this loop will execute only once */
- errno = 0;
- do {
- ret = select(fd + 1, &fds, 0, 0, 0);
- } while (ret == -1 && errno == EINTR);
-#endif /* USE_POLL */
- }
- if(ret <= 0)
- return ret;
- }
- return len;
-}
-
-static int poll_for_reply(xcb_connection_t *c, uint64_t request, void **reply, xcb_generic_error_t **error)
-{
- struct reply_list *head;
-
- /* If an error occurred when issuing the request, fail immediately. */
- if(!request)
- head = 0;
- /* We've read requests past the one we want, so if it has replies we have
- * them all and they're in the replies map. */
- else if(XCB_SEQUENCE_COMPARE(request, <, c->in.request_read))
- {
- head = _xcb_map_remove(c->in.replies, request);
- if(head && head->next)
- _xcb_map_put(c->in.replies, request, head->next);
- }
- /* We're currently processing the responses to the request we want, and we
- * have a reply ready to return. So just return it without blocking. */
- else if(request == c->in.request_read && c->in.current_reply)
- {
- head = c->in.current_reply;
- c->in.current_reply = head->next;
- if(!head->next)
- c->in.current_reply_tail = &c->in.current_reply;
- }
- /* We know this request can't have any more replies, and we've already
- * established it doesn't have a reply now. Don't bother blocking. */
- else if(request == c->in.request_completed)
- head = 0;
- /* We may have more replies on the way for this request: block until we're
- * sure. */
- else
- return 0;
-
- if(error)
- *error = 0;
- *reply = 0;
-
- if(head)
- {
- if(((xcb_generic_reply_t *) head->reply)->response_type == XCB_ERROR)
- {
- if(error)
- *error = head->reply;
- else
- free(head->reply);
- }
- else
- *reply = head->reply;
-
- free(head);
- }
-
- return 1;
-}
-
-static void insert_reader(reader_list **prev_reader, reader_list *reader, uint64_t request, pthread_cond_t *cond)
-{
- while(*prev_reader && XCB_SEQUENCE_COMPARE((*prev_reader)->request, <=, request))
- prev_reader = &(*prev_reader)->next;
- reader->request = request;
- reader->data = cond;
- reader->next = *prev_reader;
- *prev_reader = reader;
-}
-
-static void remove_reader(reader_list **prev_reader, reader_list *reader)
-{
- while(*prev_reader && XCB_SEQUENCE_COMPARE((*prev_reader)->request, <=, reader->request))
- if(*prev_reader == reader)
- {
- *prev_reader = (*prev_reader)->next;
- break;
- }
-}
-
-static void *wait_for_reply(xcb_connection_t *c, uint64_t request, xcb_generic_error_t **e)
-{
- void *ret = 0;
-
- /* If this request has not been written yet, write it. */
- if(c->out.return_socket || _xcb_out_flush_to(c, request))
- {
- pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
- reader_list reader;
-
- insert_reader(&c->in.readers, &reader, request, &cond);
-
- while(!poll_for_reply(c, request, &ret, e))
- if(!_xcb_conn_wait(c, &cond, 0, 0))
- break;
-
- remove_reader(&c->in.readers, &reader);
- pthread_cond_destroy(&cond);
- }
-
- _xcb_in_wake_up_next_reader(c);
- return ret;
-}
-
-static uint64_t widen(xcb_connection_t *c, unsigned int request)
-{
- uint64_t widened_request = (c->out.request & UINT64_C(0xffffffff00000000)) | request;
- if(widened_request > c->out.request)
- widened_request -= UINT64_C(1) << 32;
- return widened_request;
-}
-
-/* Public interface */
-
-void *xcb_wait_for_reply(xcb_connection_t *c, unsigned int request, xcb_generic_error_t **e)
-{
- void *ret;
- if(e)
- *e = 0;
- if(c->has_error)
- return 0;
-
- pthread_mutex_lock(&c->iolock);
- ret = wait_for_reply(c, widen(c, request), e);
- pthread_mutex_unlock(&c->iolock);
- return ret;
-}
-
-static void insert_pending_discard(xcb_connection_t *c, pending_reply **prev_next, uint64_t seq)
-{
- pending_reply *pend;
- pend = malloc(sizeof(*pend));
- if(!pend)
- {
- _xcb_conn_shutdown(c);
- return;
- }
-
- pend->first_request = seq;
- pend->last_request = seq;
- pend->workaround = 0;
- pend->flags = XCB_REQUEST_DISCARD_REPLY;
- pend->next = *prev_next;
- *prev_next = pend;
-
- if(!pend->next)
- c->in.pending_replies_tail = &pend->next;
-}
-
-static void discard_reply(xcb_connection_t *c, uint64_t request)
-{
- void *reply;
- pending_reply **prev_pend;
-
- /* Free any replies or errors that we've already read. Stop if
- * xcb_wait_for_reply would block or we've run out of replies. */
- while(poll_for_reply(c, request, &reply, 0) && reply)
- free(reply);
-
- /* If we've proven there are no more responses coming, we're done. */
- if(XCB_SEQUENCE_COMPARE(request, <=, c->in.request_completed))
- return;
-
- /* Walk the list of pending requests. Mark the first match for deletion. */
- for(prev_pend = &c->in.pending_replies; *prev_pend; prev_pend = &(*prev_pend)->next)
- {
- if(XCB_SEQUENCE_COMPARE((*prev_pend)->first_request, >, request))
- break;
-
- if((*prev_pend)->first_request == request)
- {
- /* Pending reply found. Mark for discard: */
- (*prev_pend)->flags |= XCB_REQUEST_DISCARD_REPLY;
- return;
- }
- }
-
- /* Pending reply not found (likely due to _unchecked request). Create one: */
- insert_pending_discard(c, prev_pend, request);
-}
-
-void xcb_discard_reply(xcb_connection_t *c, unsigned int sequence)
-{
- if(c->has_error)
- return;
-
- /* If an error occurred when issuing the request, fail immediately. */
- if(!sequence)
- return;
-
- pthread_mutex_lock(&c->iolock);
- discard_reply(c, widen(c, sequence));
- pthread_mutex_unlock(&c->iolock);
-}
-
-int xcb_poll_for_reply(xcb_connection_t *c, unsigned int request, void **reply, xcb_generic_error_t **error)
-{
- int ret;
- if(c->has_error)
- {
- *reply = 0;
- if(error)
- *error = 0;
- return 1; /* would not block */
- }
- assert(reply != 0);
- pthread_mutex_lock(&c->iolock);
- ret = poll_for_reply(c, widen(c, request), reply, error);
- pthread_mutex_unlock(&c->iolock);
- return ret;
-}
-
-xcb_generic_event_t *xcb_wait_for_event(xcb_connection_t *c)
-{
- xcb_generic_event_t *ret;
- if(c->has_error)
- return 0;
- pthread_mutex_lock(&c->iolock);
- /* get_event returns 0 on empty list. */
- while(!(ret = get_event(c)))
- if(!_xcb_conn_wait(c, &c->in.event_cond, 0, 0))
- break;
-
- _xcb_in_wake_up_next_reader(c);
- pthread_mutex_unlock(&c->iolock);
- return ret;
-}
-
-xcb_generic_event_t *xcb_poll_for_event(xcb_connection_t *c)
-{
- xcb_generic_event_t *ret = 0;
- if(!c->has_error)
- {
- pthread_mutex_lock(&c->iolock);
- /* FIXME: follow X meets Z architecture changes. */
- ret = get_event(c);
- if(!ret && _xcb_in_read(c)) /* _xcb_in_read shuts down the connection on error */
- ret = get_event(c);
- pthread_mutex_unlock(&c->iolock);
- }
- return ret;
-}
-
-static xcb_generic_event_t *get_event_until(xcb_connection_t *c, uint64_t request)
-{
- if(c->in.events && XCB_SEQUENCE_COMPARE(c->in.events->sequence, <=, request))
- return get_event(c);
- return 0;
-}
-
-xcb_generic_event_t *xcb_wait_for_event_until(xcb_connection_t *c, unsigned int request)
-{
- pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
- reader_list reader;
- xcb_generic_event_t *ret;
- if(c->has_error)
- return 0;
- pthread_mutex_lock(&c->iolock);
-
- insert_reader(&c->in.event_readers, &reader, widen(c, request), &cond);
-
- while(!(ret = get_event_until(c, reader.request)) && XCB_SEQUENCE_COMPARE(c->in.event_responses_completed, <, reader.request))
- if(!_xcb_conn_wait(c, &cond, 0, 0))
- break;
-
- remove_reader(&c->in.event_readers, &reader);
- pthread_cond_destroy(&cond);
- _xcb_in_wake_up_next_reader(c);
- pthread_mutex_unlock(&c->iolock);
- return ret;
-}
-
-xcb_generic_error_t *xcb_request_check(xcb_connection_t *c, xcb_void_cookie_t cookie)
-{
- uint64_t request;
- xcb_generic_error_t *ret = 0;
- void *reply;
- if(c->has_error)
- return 0;
- pthread_mutex_lock(&c->iolock);
- request = widen(c, cookie.sequence);
- if(XCB_SEQUENCE_COMPARE(request, >=, c->in.request_expected)
- && XCB_SEQUENCE_COMPARE(request, >, c->in.request_completed))
- {
- _xcb_out_send_sync(c);
- _xcb_out_flush_to(c, c->out.request);
- }
- reply = wait_for_reply(c, request, &ret);
- assert(!reply);
- pthread_mutex_unlock(&c->iolock);
- return ret;
-}
-
-/* Private interface */
-
-int _xcb_in_init(_xcb_in *in)
-{
- if(pthread_cond_init(&in->event_cond, 0))
- return 0;
- in->reading = 0;
-
- in->queue_len = 0;
-
- in->request_read = 0;
- in->request_completed = 0;
-
- in->replies = _xcb_map_new();
- if(!in->replies)
- return 0;
-
- in->current_reply_tail = &in->current_reply;
- in->events_tail = &in->events;
- in->pending_replies_tail = &in->pending_replies;
-
- return 1;
-}
-
-void _xcb_in_destroy(_xcb_in *in)
-{
- pthread_cond_destroy(&in->event_cond);
- free_reply_list(in->current_reply);
- _xcb_map_delete(in->replies, (void (*)(void *)) free_reply_list);
- while(in->events)
- {
- struct event_list *e = in->events;
- in->events = e->next;
- free(e->event);
- free(e);
- }
- while(in->pending_replies)
- {
- pending_reply *pend = in->pending_replies;
- in->pending_replies = pend->next;
- free(pend);
- }
-}
-
-void _xcb_in_wake_up_next_reader(xcb_connection_t *c)
-{
- int pthreadret;
- if(c->in.readers)
- pthreadret = pthread_cond_signal(c->in.readers->data);
- else if(c->in.event_readers)
- pthreadret = pthread_cond_signal(c->in.event_readers->data);
- else
- pthreadret = pthread_cond_signal(&c->in.event_cond);
- assert(pthreadret == 0);
-}
-
-int _xcb_in_expect_reply(xcb_connection_t *c, uint64_t request, enum workarounds workaround, int flags)
-{
- pending_reply *pend = malloc(sizeof(pending_reply));
- assert(workaround != WORKAROUND_NONE || flags != 0);
- if(!pend)
- {
- _xcb_conn_shutdown(c);
- return 0;
- }
- pend->first_request = pend->last_request = request;
- pend->workaround = workaround;
- pend->flags = flags;
- pend->next = 0;
- *c->in.pending_replies_tail = pend;
- c->in.pending_replies_tail = &pend->next;
- return 1;
-}
-
-void _xcb_in_replies_done(xcb_connection_t *c)
-{
- struct pending_reply *pend;
- if (c->in.pending_replies_tail != &c->in.pending_replies)
- {
- pend = container_of(c->in.pending_replies_tail, struct pending_reply, next);
- if(pend->workaround == WORKAROUND_EXTERNAL_SOCKET_OWNER)
- {
- pend->last_request = c->out.request;
- pend->workaround = WORKAROUND_NONE;
- }
- }
-}
-
-int _xcb_in_read(xcb_connection_t *c)
-{
- int n = recv(c->fd, c->in.queue + c->in.queue_len, sizeof(c->in.queue) - c->in.queue_len,MSG_WAITALL);
- if(n > 0)
- c->in.queue_len += n;
- while(read_packet(c))
- /* empty */;
-#ifndef _WIN32
- if((n > 0) || (n < 0 && errno == EAGAIN))
-#else
- if((n > 0) || (n < 0 && WSAGetLastError() == WSAEWOULDBLOCK))
-#endif /* !_WIN32 */
- return 1;
- _xcb_conn_shutdown(c);
- return 0;
-}
-
-int _xcb_in_read_block(xcb_connection_t *c, void *buf, int len)
-{
- int done = c->in.queue_len;
- if(len < done)
- done = len;
-
- memcpy(buf, c->in.queue, done);
- c->in.queue_len -= done;
- memmove(c->in.queue, c->in.queue + done, c->in.queue_len);
-
- if(len > done)
- {
- int ret = read_block(c->fd, (char *) buf + done, len - done);
- if(ret <= 0)
- {
- _xcb_conn_shutdown(c);
- return ret;
- }
- }
-
- return len;
-}
+/* Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+/* Stuff that reads stuff from the server. */
+
+#include <assert.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <errno.h>
+
+#include "xcb.h"
+#include "xcbext.h"
+#include "xcbint.h"
+#if USE_POLL
+#include <poll.h>
+#endif
+#ifndef _WIN32
+#include <sys/select.h>
+#include <sys/socket.h>
+#endif
+
+#ifdef _WIN32
+#include "xcb_windefs.h"
+#endif /* _WIN32 */
+
+#define XCB_ERROR 0
+#define XCB_REPLY 1
+#define XCB_XGE_EVENT 35
+
+/* required for compiling for Win32 using MinGW */
+#ifndef MSG_WAITALL
+#define MSG_WAITALL 0
+#endif
+
+struct event_list {
+ xcb_generic_event_t *event;
+ struct event_list *next;
+};
+
+struct reply_list {
+ void *reply;
+ struct reply_list *next;
+};
+
+typedef struct pending_reply {
+ uint64_t first_request;
+ uint64_t last_request;
+ enum workarounds workaround;
+ int flags;
+ struct pending_reply *next;
+} pending_reply;
+
+typedef struct reader_list {
+ uint64_t request;
+ pthread_cond_t *data;
+ struct reader_list *next;
+} reader_list;
+
+static void remove_finished_readers(reader_list **prev_reader, uint64_t completed)
+{
+ while(*prev_reader && XCB_SEQUENCE_COMPARE((*prev_reader)->request, <=, completed))
+ {
+ /* If you don't have what you're looking for now, you never
+ * will. Wake up and leave me alone. */
+ pthread_cond_signal((*prev_reader)->data);
+ *prev_reader = (*prev_reader)->next;
+ }
+}
+
+static int read_packet(xcb_connection_t *c)
+{
+ xcb_generic_reply_t genrep;
+ int length = 32;
+ int eventlength = 0; /* length after first 32 bytes for GenericEvents */
+ void *buf;
+ pending_reply *pend = 0;
+ struct event_list *event;
+
+ /* Wait for there to be enough data for us to read a whole packet */
+ if(c->in.queue_len < length)
+ return 0;
+
+ /* Get the response type, length, and sequence number. */
+ memcpy(&genrep, c->in.queue, sizeof(genrep));
+
+ /* Compute 32-bit sequence number of this packet. */
+ if((genrep.response_type & 0x7f) != XCB_KEYMAP_NOTIFY)
+ {
+ uint64_t lastread = c->in.request_read;
+ c->in.request_read = (lastread & UINT64_C(0xffffffffffff0000)) | genrep.sequence;
+ if(XCB_SEQUENCE_COMPARE(c->in.request_read, <, lastread))
+ c->in.request_read += 0x10000;
+ if(XCB_SEQUENCE_COMPARE(c->in.request_read, >, c->in.request_expected))
+ c->in.request_expected = c->in.request_read;
+
+ if(c->in.request_read != lastread)
+ {
+ if(c->in.current_reply)
+ {
+ _xcb_map_put(c->in.replies, lastread, c->in.current_reply);
+ c->in.current_reply = 0;
+ c->in.current_reply_tail = &c->in.current_reply;
+ }
+ c->in.request_completed = c->in.request_read - 1;
+ }
+
+ while(c->in.pending_replies &&
+ c->in.pending_replies->workaround != WORKAROUND_EXTERNAL_SOCKET_OWNER &&
+ XCB_SEQUENCE_COMPARE (c->in.pending_replies->last_request, <=, c->in.request_completed))
+ {
+ pending_reply *oldpend = c->in.pending_replies;
+ c->in.pending_replies = oldpend->next;
+ if(!oldpend->next)
+ c->in.pending_replies_tail = &c->in.pending_replies;
+ free(oldpend);
+ }
+
+ if(genrep.response_type == XCB_ERROR)
+ c->in.request_completed = c->in.request_read;
+
+ remove_finished_readers(&c->in.readers, c->in.request_completed);
+ }
+
+ if(genrep.response_type == XCB_ERROR || genrep.response_type == XCB_REPLY)
+ {
+ pend = c->in.pending_replies;
+ if(pend &&
+ !(XCB_SEQUENCE_COMPARE(pend->first_request, <=, c->in.request_read) &&
+ (pend->workaround == WORKAROUND_EXTERNAL_SOCKET_OWNER ||
+ XCB_SEQUENCE_COMPARE(c->in.request_read, <=, pend->last_request))))
+ pend = 0;
+ }
+
+ /* For reply packets, check that the entire packet is available. */
+ if(genrep.response_type == XCB_REPLY)
+ {
+ if(pend && pend->workaround == WORKAROUND_GLX_GET_FB_CONFIGS_BUG)
+ {
+ uint32_t *p = (uint32_t *) c->in.queue;
+ genrep.length = p[2] * p[3] * 2;
+ }
+ length += genrep.length * 4;
+ }
+
+ /* XGE events may have sizes > 32 */
+ if ((genrep.response_type & 0x7f) == XCB_XGE_EVENT)
+ eventlength = genrep.length * 4;
+
+ buf = malloc(length + eventlength +
+ (genrep.response_type == XCB_REPLY ? 0 : sizeof(uint32_t)));
+ if(!buf)
+ {
+ _xcb_conn_shutdown(c);
+ return 0;
+ }
+
+ if(_xcb_in_read_block(c, buf, length) <= 0)
+ {
+ free(buf);
+ return 0;
+ }
+
+ /* pull in XGE event data if available, append after event struct */
+ if (eventlength)
+ {
+ if(_xcb_in_read_block(c, &((xcb_generic_event_t*)buf)[1], eventlength) <= 0)
+ {
+ free(buf);
+ return 0;
+ }
+ }
+
+ if(pend && (pend->flags & XCB_REQUEST_DISCARD_REPLY))
+ {
+ free(buf);
+ return 1;
+ }
+
+ if(genrep.response_type != XCB_REPLY)
+ ((xcb_generic_event_t *) buf)->full_sequence = c->in.request_read;
+
+ /* reply, or checked error */
+ if( genrep.response_type == XCB_REPLY ||
+ (genrep.response_type == XCB_ERROR && pend && (pend->flags & XCB_REQUEST_CHECKED)))
+ {
+ struct reply_list *cur = malloc(sizeof(struct reply_list));
+ if(!cur)
+ {
+ _xcb_conn_shutdown(c);
+ free(buf);
+ return 0;
+ }
+ cur->reply = buf;
+ cur->next = 0;
+ *c->in.current_reply_tail = cur;
+ c->in.current_reply_tail = &cur->next;
+ if(c->in.readers && c->in.readers->request == c->in.request_read)
+ pthread_cond_signal(c->in.readers->data);
+ return 1;
+ }
+
+ /* event, or unchecked error */
+ event = malloc(sizeof(struct event_list));
+ if(!event)
+ {
+ _xcb_conn_shutdown(c);
+ free(buf);
+ return 0;
+ }
+ event->event = buf;
+ event->next = 0;
+ *c->in.events_tail = event;
+ c->in.events_tail = &event->next;
+ pthread_cond_signal(&c->in.event_cond);
+ return 1; /* I have something for you... */
+}
+
+static xcb_generic_event_t *get_event(xcb_connection_t *c)
+{
+ struct event_list *cur = c->in.events;
+ xcb_generic_event_t *ret;
+ if(!c->in.events)
+ return 0;
+ ret = cur->event;
+ c->in.events = cur->next;
+ if(!cur->next)
+ c->in.events_tail = &c->in.events;
+ free(cur);
+ return ret;
+}
+
+static void free_reply_list(struct reply_list *head)
+{
+ while(head)
+ {
+ struct reply_list *cur = head;
+ head = cur->next;
+ free(cur->reply);
+ free(cur);
+ }
+}
+
+static int read_block(const int fd, void *buf, const ssize_t len)
+{
+ int done = 0;
+ while(done < len)
+ {
+ int ret = recv(fd, ((char *) buf) + done, len - done,MSG_WAITALL);
+ if(ret > 0)
+ done += ret;
+#ifndef _WIN32
+ if(ret < 0 && errno == EAGAIN)
+#else
+ if(ret == SOCKET_ERROR && WSAGetLastError() == WSAEWOULDBLOCK)
+#endif /* !_Win32 */
+ {
+#if USE_POLL
+ struct pollfd pfd;
+ pfd.fd = fd;
+ pfd.events = POLLIN;
+ pfd.revents = 0;
+ do {
+ ret = poll(&pfd, 1, -1);
+ } while (ret == -1 && errno == EINTR);
+#else
+ fd_set fds;
+ FD_ZERO(&fds);
+ FD_SET(fd, &fds);
+
+ /* Initializing errno here makes sure that for Win32 this loop will execute only once */
+ errno = 0;
+ do {
+ ret = select(fd + 1, &fds, 0, 0, 0);
+ } while (ret == -1 && errno == EINTR);
+#endif /* USE_POLL */
+ }
+ if(ret <= 0)
+ return ret;
+ }
+ return len;
+}
+
+static int poll_for_reply(xcb_connection_t *c, uint64_t request, void **reply, xcb_generic_error_t **error)
+{
+ struct reply_list *head;
+
+ /* If an error occurred when issuing the request, fail immediately. */
+ if(!request)
+ head = 0;
+ /* We've read requests past the one we want, so if it has replies we have
+ * them all and they're in the replies map. */
+ else if(XCB_SEQUENCE_COMPARE(request, <, c->in.request_read))
+ {
+ head = _xcb_map_remove(c->in.replies, request);
+ if(head && head->next)
+ _xcb_map_put(c->in.replies, request, head->next);
+ }
+ /* We're currently processing the responses to the request we want, and we
+ * have a reply ready to return. So just return it without blocking. */
+ else if(request == c->in.request_read && c->in.current_reply)
+ {
+ head = c->in.current_reply;
+ c->in.current_reply = head->next;
+ if(!head->next)
+ c->in.current_reply_tail = &c->in.current_reply;
+ }
+ /* We know this request can't have any more replies, and we've already
+ * established it doesn't have a reply now. Don't bother blocking. */
+ else if(request == c->in.request_completed)
+ head = 0;
+ /* We may have more replies on the way for this request: block until we're
+ * sure. */
+ else
+ return 0;
+
+ if(error)
+ *error = 0;
+ *reply = 0;
+
+ if(head)
+ {
+ if(((xcb_generic_reply_t *) head->reply)->response_type == XCB_ERROR)
+ {
+ if(error)
+ *error = head->reply;
+ else
+ free(head->reply);
+ }
+ else
+ *reply = head->reply;
+
+ free(head);
+ }
+
+ return 1;
+}
+
+static void insert_reader(reader_list **prev_reader, reader_list *reader, uint64_t request, pthread_cond_t *cond)
+{
+ while(*prev_reader && XCB_SEQUENCE_COMPARE((*prev_reader)->request, <=, request))
+ prev_reader = &(*prev_reader)->next;
+ reader->request = request;
+ reader->data = cond;
+ reader->next = *prev_reader;
+ *prev_reader = reader;
+}
+
+static void remove_reader(reader_list **prev_reader, reader_list *reader)
+{
+ while(*prev_reader && XCB_SEQUENCE_COMPARE((*prev_reader)->request, <=, reader->request))
+ if(*prev_reader == reader)
+ {
+ *prev_reader = (*prev_reader)->next;
+ break;
+ }
+}
+
+static void *wait_for_reply(xcb_connection_t *c, uint64_t request, xcb_generic_error_t **e)
+{
+ void *ret = 0;
+
+ /* If this request has not been written yet, write it. */
+ if(c->out.return_socket || _xcb_out_flush_to(c, request))
+ {
+ pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+ reader_list reader;
+
+ insert_reader(&c->in.readers, &reader, request, &cond);
+
+ while(!poll_for_reply(c, request, &ret, e))
+ if(!_xcb_conn_wait(c, &cond, 0, 0))
+ break;
+
+ remove_reader(&c->in.readers, &reader);
+ pthread_cond_destroy(&cond);
+ }
+
+ _xcb_in_wake_up_next_reader(c);
+ return ret;
+}
+
+static uint64_t widen(xcb_connection_t *c, unsigned int request)
+{
+ uint64_t widened_request = (c->out.request & UINT64_C(0xffffffff00000000)) | request;
+ if(widened_request > c->out.request)
+ widened_request -= UINT64_C(1) << 32;
+ return widened_request;
+}
+
+/* Public interface */
+
+void *xcb_wait_for_reply(xcb_connection_t *c, unsigned int request, xcb_generic_error_t **e)
+{
+ void *ret;
+ if(e)
+ *e = 0;
+ if(c->has_error)
+ return 0;
+
+ pthread_mutex_lock(&c->iolock);
+ ret = wait_for_reply(c, widen(c, request), e);
+ pthread_mutex_unlock(&c->iolock);
+ return ret;
+}
+
+static void insert_pending_discard(xcb_connection_t *c, pending_reply **prev_next, uint64_t seq)
+{
+ pending_reply *pend;
+ pend = malloc(sizeof(*pend));
+ if(!pend)
+ {
+ _xcb_conn_shutdown(c);
+ return;
+ }
+
+ pend->first_request = seq;
+ pend->last_request = seq;
+ pend->workaround = 0;
+ pend->flags = XCB_REQUEST_DISCARD_REPLY;
+ pend->next = *prev_next;
+ *prev_next = pend;
+
+ if(!pend->next)
+ c->in.pending_replies_tail = &pend->next;
+}
+
+static void discard_reply(xcb_connection_t *c, uint64_t request)
+{
+ void *reply;
+ pending_reply **prev_pend;
+
+ /* Free any replies or errors that we've already read. Stop if
+ * xcb_wait_for_reply would block or we've run out of replies. */
+ while(poll_for_reply(c, request, &reply, 0) && reply)
+ free(reply);
+
+ /* If we've proven there are no more responses coming, we're done. */
+ if(XCB_SEQUENCE_COMPARE(request, <=, c->in.request_completed))
+ return;
+
+ /* Walk the list of pending requests. Mark the first match for deletion. */
+ for(prev_pend = &c->in.pending_replies; *prev_pend; prev_pend = &(*prev_pend)->next)
+ {
+ if(XCB_SEQUENCE_COMPARE((*prev_pend)->first_request, >, request))
+ break;
+
+ if((*prev_pend)->first_request == request)
+ {
+ /* Pending reply found. Mark for discard: */
+ (*prev_pend)->flags |= XCB_REQUEST_DISCARD_REPLY;
+ return;
+ }
+ }
+
+ /* Pending reply not found (likely due to _unchecked request). Create one: */
+ insert_pending_discard(c, prev_pend, request);
+}
+
+void xcb_discard_reply(xcb_connection_t *c, unsigned int sequence)
+{
+ if(c->has_error)
+ return;
+
+ /* If an error occurred when issuing the request, fail immediately. */
+ if(!sequence)
+ return;
+
+ pthread_mutex_lock(&c->iolock);
+ discard_reply(c, widen(c, sequence));
+ pthread_mutex_unlock(&c->iolock);
+}
+
+int xcb_poll_for_reply(xcb_connection_t *c, unsigned int request, void **reply, xcb_generic_error_t **error)
+{
+ int ret;
+ if(c->has_error)
+ {
+ *reply = 0;
+ if(error)
+ *error = 0;
+ return 1; /* would not block */
+ }
+ assert(reply != 0);
+ pthread_mutex_lock(&c->iolock);
+ ret = poll_for_reply(c, widen(c, request), reply, error);
+ pthread_mutex_unlock(&c->iolock);
+ return ret;
+}
+
+xcb_generic_event_t *xcb_wait_for_event(xcb_connection_t *c)
+{
+ xcb_generic_event_t *ret;
+ if(c->has_error)
+ return 0;
+ pthread_mutex_lock(&c->iolock);
+ /* get_event returns 0 on empty list. */
+ while(!(ret = get_event(c)))
+ if(!_xcb_conn_wait(c, &c->in.event_cond, 0, 0))
+ break;
+
+ _xcb_in_wake_up_next_reader(c);
+ pthread_mutex_unlock(&c->iolock);
+ return ret;
+}
+
+static xcb_generic_event_t *poll_for_next_event(xcb_connection_t *c, int queued)
+{
+ xcb_generic_event_t *ret = 0;
+ if(!c->has_error)
+ {
+ pthread_mutex_lock(&c->iolock);
+ /* FIXME: follow X meets Z architecture changes. */
+ ret = get_event(c);
+ if(!ret && !queued && _xcb_in_read(c)) /* _xcb_in_read shuts down the connection on error */
+ ret = get_event(c);
+ pthread_mutex_unlock(&c->iolock);
+ }
+ return ret;
+}
+
+xcb_generic_event_t *xcb_poll_for_event(xcb_connection_t *c)
+{
+ return poll_for_next_event(c, 0);
+}
+
+xcb_generic_event_t *xcb_poll_for_queued_event(xcb_connection_t *c)
+{
+ return poll_for_next_event(c, 1);
+}
+
+xcb_generic_error_t *xcb_request_check(xcb_connection_t *c, xcb_void_cookie_t cookie)
+{
+ uint64_t request;
+ xcb_generic_error_t *ret = 0;
+ void *reply;
+ if(c->has_error)
+ return 0;
+ pthread_mutex_lock(&c->iolock);
+ request = widen(c, cookie.sequence);
+ if(XCB_SEQUENCE_COMPARE(request, >=, c->in.request_expected)
+ && XCB_SEQUENCE_COMPARE(request, >, c->in.request_completed))
+ {
+ _xcb_out_send_sync(c);
+ _xcb_out_flush_to(c, c->out.request);
+ }
+ reply = wait_for_reply(c, request, &ret);
+ assert(!reply);
+ pthread_mutex_unlock(&c->iolock);
+ return ret;
+}
+
+/* Private interface */
+
+int _xcb_in_init(_xcb_in *in)
+{
+ if(pthread_cond_init(&in->event_cond, 0))
+ return 0;
+ in->reading = 0;
+
+ in->queue_len = 0;
+
+ in->request_read = 0;
+ in->request_completed = 0;
+
+ in->replies = _xcb_map_new();
+ if(!in->replies)
+ return 0;
+
+ in->current_reply_tail = &in->current_reply;
+ in->events_tail = &in->events;
+ in->pending_replies_tail = &in->pending_replies;
+
+ return 1;
+}
+
+void _xcb_in_destroy(_xcb_in *in)
+{
+ pthread_cond_destroy(&in->event_cond);
+ free_reply_list(in->current_reply);
+ _xcb_map_delete(in->replies, (void (*)(void *)) free_reply_list);
+ while(in->events)
+ {
+ struct event_list *e = in->events;
+ in->events = e->next;
+ free(e->event);
+ free(e);
+ }
+ while(in->pending_replies)
+ {
+ pending_reply *pend = in->pending_replies;
+ in->pending_replies = pend->next;
+ free(pend);
+ }
+}
+
+void _xcb_in_wake_up_next_reader(xcb_connection_t *c)
+{
+ int pthreadret;
+ if(c->in.readers)
+ pthreadret = pthread_cond_signal(c->in.readers->data);
+ else
+ pthreadret = pthread_cond_signal(&c->in.event_cond);
+ assert(pthreadret == 0);
+}
+
+int _xcb_in_expect_reply(xcb_connection_t *c, uint64_t request, enum workarounds workaround, int flags)
+{
+ pending_reply *pend = malloc(sizeof(pending_reply));
+ assert(workaround != WORKAROUND_NONE || flags != 0);
+ if(!pend)
+ {
+ _xcb_conn_shutdown(c);
+ return 0;
+ }
+ pend->first_request = pend->last_request = request;
+ pend->workaround = workaround;
+ pend->flags = flags;
+ pend->next = 0;
+ *c->in.pending_replies_tail = pend;
+ c->in.pending_replies_tail = &pend->next;
+ return 1;
+}
+
+void _xcb_in_replies_done(xcb_connection_t *c)
+{
+ struct pending_reply *pend;
+ if (c->in.pending_replies_tail != &c->in.pending_replies)
+ {
+ pend = container_of(c->in.pending_replies_tail, struct pending_reply, next);
+ if(pend->workaround == WORKAROUND_EXTERNAL_SOCKET_OWNER)
+ {
+ pend->last_request = c->out.request;
+ pend->workaround = WORKAROUND_NONE;
+ }
+ }
+}
+
+int _xcb_in_read(xcb_connection_t *c)
+{
+ int n = recv(c->fd, c->in.queue + c->in.queue_len, sizeof(c->in.queue) - c->in.queue_len,MSG_WAITALL);
+ if(n > 0)
+ c->in.queue_len += n;
+ while(read_packet(c))
+ /* empty */;
+#ifndef _WIN32
+ if((n > 0) || (n < 0 && errno == EAGAIN))
+#else
+ if((n > 0) || (n < 0 && WSAGetLastError() == WSAEWOULDBLOCK))
+#endif /* !_WIN32 */
+ return 1;
+ _xcb_conn_shutdown(c);
+ return 0;
+}
+
+int _xcb_in_read_block(xcb_connection_t *c, void *buf, int len)
+{
+ int done = c->in.queue_len;
+ if(len < done)
+ done = len;
+
+ memcpy(buf, c->in.queue, done);
+ c->in.queue_len -= done;
+ memmove(c->in.queue, c->in.queue + done, c->in.queue_len);
+
+ if(len > done)
+ {
+ int ret = read_block(c->fd, (char *) buf + done, len - done);
+ if(ret <= 0)
+ {
+ _xcb_conn_shutdown(c);
+ return ret;
+ }
+ }
+
+ return len;
+}
diff --git a/libxcb/src/xcb_util.c b/libxcb/src/xcb_util.c
index 0128f6485..fde4f85f1 100644
--- a/libxcb/src/xcb_util.c
+++ b/libxcb/src/xcb_util.c
@@ -1,421 +1,419 @@
-/* Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the names of the authors or their
- * institutions shall not be used in advertising or otherwise to promote the
- * sale, use or other dealings in this Software without prior written
- * authorization from the authors.
- */
-
-/* Utility functions implementable using only public APIs. */
-
-#include <assert.h>
-#include <sys/types.h>
-#include <limits.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <unistd.h>
-#include <string.h>
-
-#ifdef _WIN32
-#include "xcb_windefs.h"
-#else
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <netinet/in.h>
-#include <netinet/tcp.h>
-#include <fcntl.h>
-#include <netdb.h>
-#endif /* _WIN32 */
-
-#include "xcb.h"
-#include "xcbext.h"
-#include "xcbint.h"
-
-/* must be after "xcbint.h" to get autoconf #defines */
-#if defined(HAVE_TSOL_LABEL_H) && defined(HAVE_IS_SYSTEM_LABELED)
-# include <tsol/label.h>
-# include <sys/stat.h>
-#endif
-
-int xcb_popcount(uint32_t mask)
-{
- uint32_t y;
- y = (mask >> 1) & 033333333333;
- y = mask - y - ((y >> 1) & 033333333333);
- return ((y + (y >> 3)) & 030707070707) % 077;
-}
-
-int xcb_sumof(uint8_t *list, int len)
-{
- int i, s = 0;
- for(i=0; i<len; i++) {
- s += *list;
- list++;
- }
- return s;
-}
-
-static int _xcb_parse_display(const char *name, char **host, char **protocol,
- int *displayp, int *screenp)
-{
- int len, display, screen;
- char *slash, *colon, *dot, *end;
-
- if(!name || !*name)
- name = getenv("DISPLAY");
- if(!name)
- return 0;
-
-#ifdef HAVE_LAUNCHD
- if(strncmp(name, "/tmp/launch", 11) == 0)
- slash = NULL;
- else
-#endif
- slash = strrchr(name, '/');
-
- if (slash) {
- len = slash - name;
- if (protocol) {
- *protocol = malloc(len + 1);
- if(!*protocol)
- return 0;
- memcpy(*protocol, name, len);
- (*protocol)[len] = '\0';
- }
- name = slash + 1;
- } else
- if (protocol)
- *protocol = NULL;
-
- colon = strrchr(name, ':');
- if(!colon)
- goto error_out;
- len = colon - name;
- ++colon;
- display = strtoul(colon, &dot, 10);
- if(dot == colon)
- goto error_out;
- if(*dot == '\0')
- screen = 0;
- else
- {
- if(*dot != '.')
- goto error_out;
- ++dot;
- screen = strtoul(dot, &end, 10);
- if(end == dot || *end != '\0')
- goto error_out;
- }
- /* At this point, the display string is fully parsed and valid, but
- * the caller's memory is untouched. */
-
- *host = malloc(len + 1);
- if(!*host)
- goto error_out;
- memcpy(*host, name, len);
- (*host)[len] = '\0';
- *displayp = display;
- if(screenp)
- *screenp = screen;
- return 1;
-
-error_out:
- if (protocol) {
- free(*protocol);
- *protocol = NULL;
- }
-
- return 0;
-}
-
-int xcb_parse_display(const char *name, char **host, int *displayp,
- int *screenp)
-{
- return _xcb_parse_display(name, host, NULL, displayp, screenp);
-}
-
-static int _xcb_open_tcp(const char *host, char *protocol, const unsigned short port);
-#ifndef _WIN32
-static int _xcb_open_unix(char *protocol, const char *file);
-#endif /* !WIN32 */
-#ifdef HAVE_ABSTRACT_SOCKETS
-static int _xcb_open_abstract(char *protocol, const char *file, size_t filelen);
-#endif
-
-static int _xcb_open(const char *host, char *protocol, const int display)
-{
- int fd;
- static const char unix_base[] = "/tmp/.X11-unix/X";
- const char *base = unix_base;
- size_t filelen;
- char *file = NULL;
- int actual_filelen;
-
-#ifdef HAVE_LAUNCHD
- if(strncmp(host, "/tmp/launch", 11) == 0) {
- base = host;
- host = "";
- protocol = NULL;
- }
-#endif
-
- if(*host || protocol)
- {
- if (protocol
- || strcmp("unix",host)) { /* follow the old unix: rule */
-
- /* display specifies TCP */
- unsigned short port = X_TCP_PORT + display;
- return _xcb_open_tcp(host, protocol, port);
- }
- }
-
-#ifndef _WIN32
-#if defined(HAVE_TSOL_LABEL_H) && defined(HAVE_IS_SYSTEM_LABELED)
- /* Check special path for Unix sockets under Solaris Trusted Extensions */
- if (is_system_labeled())
- {
- struct stat sbuf;
- const char *tsol_base = "/var/tsol/doors/.X11-unix/X";
- char tsol_socket[PATH_MAX];
-
- snprintf(tsol_socket, sizeof(tsol_socket), "%s%d", tsol_base, display);
-
- if (stat(tsol_socket, &sbuf) == 0)
- base = tsol_base;
- }
-#endif
-
- filelen = strlen(base) + 1 + sizeof(display) * 3 + 1;
- file = malloc(filelen);
- if(file == NULL)
- return -1;
-
- /* display specifies Unix socket */
-#ifdef HAVE_LAUNCHD
- if(strncmp(base, "/tmp/launch", 11) == 0)
- actual_filelen = snprintf(file, filelen, "%s:%d", base, display);
- else
-#endif
- actual_filelen = snprintf(file, filelen, "%s%d", base, display);
- if(actual_filelen < 0)
- {
- free(file);
- return -1;
- }
- /* snprintf may truncate the file */
- filelen = MIN(actual_filelen, filelen - 1);
-#ifdef HAVE_ABSTRACT_SOCKETS
- fd = _xcb_open_abstract(protocol, file, filelen);
- if (fd >= 0 || (errno != ENOENT && errno != ECONNREFUSED))
- {
- free(file);
- return fd;
- }
-
-#endif
- fd = _xcb_open_unix(protocol, file);
- free(file);
-
- return fd;
-#endif /* !_WIN32 */
- return -1; /* if control reaches here then something has gone wrong */
-}
-
-static int _xcb_socket(int family, int type, int proto)
-{
- int fd;
-
-#ifdef SOCK_CLOEXEC
- fd = socket(family, type | SOCK_CLOEXEC, proto);
- if (fd == -1 && errno == EINVAL)
-#endif
- {
- fd = socket(family, type, proto);
-#ifndef _WIN32
- if (fd >= 0)
- fcntl(fd, F_SETFD, FD_CLOEXEC);
-#endif
- }
- return fd;
-}
-
-
-static int _xcb_open_tcp(const char *host, char *protocol, const unsigned short port)
-{
- int fd = -1;
- struct addrinfo hints;
- char service[6]; /* "65535" with the trailing '\0' */
- struct addrinfo *results, *addr;
- char *bracket;
-
- if (protocol && strcmp("tcp",protocol) && strcmp("inet",protocol)
-#ifdef AF_INET6
- && strcmp("inet6",protocol)
-#endif
- )
- return -1;
-
- if (*host == '\0')
- host = "localhost";
-
- memset(&hints, 0, sizeof(hints));
-#ifdef AI_ADDRCONFIG
- hints.ai_flags |= AI_ADDRCONFIG;
-#endif
-#ifdef AI_NUMERICSERV
- hints.ai_flags |= AI_NUMERICSERV;
-#endif
- hints.ai_family = AF_UNSPEC;
- hints.ai_socktype = SOCK_STREAM;
-
-#ifdef AF_INET6
- /* Allow IPv6 addresses enclosed in brackets. */
- if(host[0] == '[' && (bracket = strrchr(host, ']')) && bracket[1] == '\0')
- {
- *bracket = '\0';
- ++host;
- hints.ai_flags |= AI_NUMERICHOST;
- hints.ai_family = AF_INET6;
- }
-#endif
-
- snprintf(service, sizeof(service), "%hu", port);
- if(getaddrinfo(host, service, &hints, &results))
- /* FIXME: use gai_strerror, and fill in error connection */
- return -1;
-
- for(addr = results; addr; addr = addr->ai_next)
- {
- fd = _xcb_socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol);
- if(fd >= 0) {
- int on = 1;
- setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on));
- setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on));
-
- if (connect(fd, addr->ai_addr, addr->ai_addrlen) >= 0)
- break;
- close(fd);
- fd = -1;
- }
- }
- freeaddrinfo(results);
- return fd;
-}
-
-#ifndef _WIN32
-static int _xcb_open_unix(char *protocol, const char *file)
-{
- int fd;
- struct sockaddr_un addr;
-
- if (protocol && strcmp("unix",protocol))
- return -1;
-
- strcpy(addr.sun_path, file);
- addr.sun_family = AF_UNIX;
-#ifdef HAVE_SOCKADDR_SUN_LEN
- addr.sun_len = SUN_LEN(&addr);
-#endif
- fd = _xcb_socket(AF_UNIX, SOCK_STREAM, 0);
- if(fd == -1)
- return -1;
- if(connect(fd, (struct sockaddr *) &addr, sizeof(addr)) == -1) {
- close(fd);
- return -1;
- }
- return fd;
-}
-#endif /* !_WIN32 */
-
-#ifdef HAVE_ABSTRACT_SOCKETS
-static int _xcb_open_abstract(char *protocol, const char *file, size_t filelen)
-{
- int fd;
- struct sockaddr_un addr = {0};
- socklen_t namelen;
-
- if (protocol && strcmp("unix",protocol))
- return -1;
-
- strcpy(addr.sun_path + 1, file);
- addr.sun_family = AF_UNIX;
- namelen = offsetof(struct sockaddr_un, sun_path) + 1 + filelen;
-#ifdef HAVE_SOCKADDR_SUN_LEN
- addr.sun_len = 1 + filelen;
-#endif
- fd = _xcb_socket(AF_UNIX, SOCK_STREAM, 0);
- if (fd == -1)
- return -1;
- if (connect(fd, (struct sockaddr *) &addr, namelen) == -1) {
- close(fd);
- return -1;
- }
- return fd;
-}
-#endif
-
-xcb_connection_t *xcb_connect(const char *displayname, int *screenp)
-{
- return xcb_connect_to_display_with_auth_info(displayname, NULL, screenp);
-}
-
-xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *displayname, xcb_auth_info_t *auth, int *screenp)
-{
- int fd, display = 0;
- char *host = NULL;
- char *protocol = NULL;
- xcb_auth_info_t ourauth;
- xcb_connection_t *c;
-
- int parsed = _xcb_parse_display(displayname, &host, &protocol, &display, screenp);
-
- if(!parsed) {
- c = (xcb_connection_t *) &error_connection;
- goto out;
- } else
- fd = _xcb_open(host, protocol, display);
-
- if(fd == -1) {
- c = (xcb_connection_t *) &error_connection;
- goto out;
- }
-
- if(auth) {
- c = xcb_connect_to_fd(fd, auth);
- goto out;
- }
-
- if(_xcb_get_auth_info(fd, &ourauth, display))
- {
- c = xcb_connect_to_fd(fd, &ourauth);
- free(ourauth.name);
- free(ourauth.data);
- }
- else
- c = xcb_connect_to_fd(fd, 0);
-
-out:
- free(host);
- free(protocol);
- return c;
-}
+/* Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+/* Utility functions implementable using only public APIs. */
+
+#include <assert.h>
+#include <sys/types.h>
+#include <limits.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <unistd.h>
+#include <string.h>
+
+#ifdef _WIN32
+#include "xcb_windefs.h"
+#else
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#include <fcntl.h>
+#include <netdb.h>
+#endif /* _WIN32 */
+
+#include "xcb.h"
+#include "xcbext.h"
+#include "xcbint.h"
+
+/* must be after "xcbint.h" to get autoconf #defines */
+#if defined(HAVE_TSOL_LABEL_H) && defined(HAVE_IS_SYSTEM_LABELED)
+# include <tsol/label.h>
+# include <sys/stat.h>
+#endif
+
+int xcb_popcount(uint32_t mask)
+{
+ uint32_t y;
+ y = (mask >> 1) & 033333333333;
+ y = mask - y - ((y >> 1) & 033333333333);
+ return ((y + (y >> 3)) & 030707070707) % 077;
+}
+
+int xcb_sumof(uint8_t *list, int len)
+{
+ int i, s = 0;
+ for(i=0; i<len; i++) {
+ s += *list;
+ list++;
+ }
+ return s;
+}
+
+static int _xcb_parse_display(const char *name, char **host, char **protocol,
+ int *displayp, int *screenp)
+{
+ int len, display, screen;
+ char *slash, *colon, *dot, *end;
+
+ if(!name || !*name)
+ name = getenv("DISPLAY");
+ if(!name)
+ return 0;
+
+#ifdef HAVE_LAUNCHD
+ if(strncmp(name, "/tmp/launch", 11) == 0)
+ slash = NULL;
+ else
+#endif
+ slash = strrchr(name, '/');
+
+ if (slash) {
+ len = slash - name;
+ if (protocol) {
+ *protocol = malloc(len + 1);
+ if(!*protocol)
+ return 0;
+ memcpy(*protocol, name, len);
+ (*protocol)[len] = '\0';
+ }
+ name = slash + 1;
+ } else
+ if (protocol)
+ *protocol = NULL;
+
+ colon = strrchr(name, ':');
+ if(!colon)
+ goto error_out;
+ len = colon - name;
+ ++colon;
+ display = strtoul(colon, &dot, 10);
+ if(dot == colon)
+ goto error_out;
+ if(*dot == '\0')
+ screen = 0;
+ else
+ {
+ if(*dot != '.')
+ goto error_out;
+ ++dot;
+ screen = strtoul(dot, &end, 10);
+ if(end == dot || *end != '\0')
+ goto error_out;
+ }
+ /* At this point, the display string is fully parsed and valid, but
+ * the caller's memory is untouched. */
+
+ *host = malloc(len + 1);
+ if(!*host)
+ goto error_out;
+ memcpy(*host, name, len);
+ (*host)[len] = '\0';
+ *displayp = display;
+ if(screenp)
+ *screenp = screen;
+ return 1;
+
+error_out:
+ if (protocol) {
+ free(*protocol);
+ *protocol = NULL;
+ }
+
+ return 0;
+}
+
+int xcb_parse_display(const char *name, char **host, int *displayp,
+ int *screenp)
+{
+ return _xcb_parse_display(name, host, NULL, displayp, screenp);
+}
+
+static int _xcb_open_tcp(const char *host, char *protocol, const unsigned short port);
+#ifndef _WIN32
+static int _xcb_open_unix(char *protocol, const char *file);
+#endif /* !WIN32 */
+#ifdef HAVE_ABSTRACT_SOCKETS
+static int _xcb_open_abstract(char *protocol, const char *file, size_t filelen);
+#endif
+
+static int _xcb_open(const char *host, char *protocol, const int display)
+{
+ int fd;
+ static const char unix_base[] = "/tmp/.X11-unix/X";
+ const char *base = unix_base;
+ size_t filelen;
+ char *file = NULL;
+ int actual_filelen;
+
+#ifdef HAVE_LAUNCHD
+ if(strncmp(host, "/tmp/launch", 11) == 0) {
+ base = host;
+ host = "";
+ protocol = NULL;
+ }
+#endif
+
+ /* If protocol or host is "unix", fall through to Unix socket code below */
+ if ((!protocol || (strcmp("unix",protocol) != 0)) &&
+ (*host != '\0') && (strcmp("unix",host) != 0))
+ {
+ /* display specifies TCP */
+ unsigned short port = X_TCP_PORT + display;
+ return _xcb_open_tcp(host, protocol, port);
+ }
+
+#ifndef _WIN32
+#if defined(HAVE_TSOL_LABEL_H) && defined(HAVE_IS_SYSTEM_LABELED)
+ /* Check special path for Unix sockets under Solaris Trusted Extensions */
+ if (is_system_labeled())
+ {
+ struct stat sbuf;
+ const char *tsol_base = "/var/tsol/doors/.X11-unix/X";
+ char tsol_socket[PATH_MAX];
+
+ snprintf(tsol_socket, sizeof(tsol_socket), "%s%d", tsol_base, display);
+
+ if (stat(tsol_socket, &sbuf) == 0)
+ base = tsol_base;
+ }
+#endif
+
+ filelen = strlen(base) + 1 + sizeof(display) * 3 + 1;
+ file = malloc(filelen);
+ if(file == NULL)
+ return -1;
+
+ /* display specifies Unix socket */
+#ifdef HAVE_LAUNCHD
+ if(strncmp(base, "/tmp/launch", 11) == 0)
+ actual_filelen = snprintf(file, filelen, "%s:%d", base, display);
+ else
+#endif
+ actual_filelen = snprintf(file, filelen, "%s%d", base, display);
+ if(actual_filelen < 0)
+ {
+ free(file);
+ return -1;
+ }
+ /* snprintf may truncate the file */
+ filelen = MIN(actual_filelen, filelen - 1);
+#ifdef HAVE_ABSTRACT_SOCKETS
+ fd = _xcb_open_abstract(protocol, file, filelen);
+ if (fd >= 0 || (errno != ENOENT && errno != ECONNREFUSED))
+ {
+ free(file);
+ return fd;
+ }
+
+#endif
+ fd = _xcb_open_unix(protocol, file);
+ free(file);
+
+ return fd;
+#endif /* !_WIN32 */
+ return -1; /* if control reaches here then something has gone wrong */
+}
+
+static int _xcb_socket(int family, int type, int proto)
+{
+ int fd;
+
+#ifdef SOCK_CLOEXEC
+ fd = socket(family, type | SOCK_CLOEXEC, proto);
+ if (fd == -1 && errno == EINVAL)
+#endif
+ {
+ fd = socket(family, type, proto);
+#ifndef _WIN32
+ if (fd >= 0)
+ fcntl(fd, F_SETFD, FD_CLOEXEC);
+#endif
+ }
+ return fd;
+}
+
+
+static int _xcb_open_tcp(const char *host, char *protocol, const unsigned short port)
+{
+ int fd = -1;
+ struct addrinfo hints;
+ char service[6]; /* "65535" with the trailing '\0' */
+ struct addrinfo *results, *addr;
+ char *bracket;
+
+ if (protocol && strcmp("tcp",protocol) && strcmp("inet",protocol)
+#ifdef AF_INET6
+ && strcmp("inet6",protocol)
+#endif
+ )
+ return -1;
+
+ if (*host == '\0')
+ host = "localhost";
+
+ memset(&hints, 0, sizeof(hints));
+#ifdef AI_ADDRCONFIG
+ hints.ai_flags |= AI_ADDRCONFIG;
+#endif
+#ifdef AI_NUMERICSERV
+ hints.ai_flags |= AI_NUMERICSERV;
+#endif
+ hints.ai_family = AF_UNSPEC;
+ hints.ai_socktype = SOCK_STREAM;
+
+#ifdef AF_INET6
+ /* Allow IPv6 addresses enclosed in brackets. */
+ if(host[0] == '[' && (bracket = strrchr(host, ']')) && bracket[1] == '\0')
+ {
+ *bracket = '\0';
+ ++host;
+ hints.ai_flags |= AI_NUMERICHOST;
+ hints.ai_family = AF_INET6;
+ }
+#endif
+
+ snprintf(service, sizeof(service), "%hu", port);
+ if(getaddrinfo(host, service, &hints, &results))
+ /* FIXME: use gai_strerror, and fill in error connection */
+ return -1;
+
+ for(addr = results; addr; addr = addr->ai_next)
+ {
+ fd = _xcb_socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol);
+ if(fd >= 0) {
+ int on = 1;
+ setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on));
+ setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on));
+
+ if (connect(fd, addr->ai_addr, addr->ai_addrlen) >= 0)
+ break;
+ close(fd);
+ fd = -1;
+ }
+ }
+ freeaddrinfo(results);
+ return fd;
+}
+
+#ifndef _WIN32
+static int _xcb_open_unix(char *protocol, const char *file)
+{
+ int fd;
+ struct sockaddr_un addr;
+
+ if (protocol && strcmp("unix",protocol))
+ return -1;
+
+ strcpy(addr.sun_path, file);
+ addr.sun_family = AF_UNIX;
+#ifdef HAVE_SOCKADDR_SUN_LEN
+ addr.sun_len = SUN_LEN(&addr);
+#endif
+ fd = _xcb_socket(AF_UNIX, SOCK_STREAM, 0);
+ if(fd == -1)
+ return -1;
+ if(connect(fd, (struct sockaddr *) &addr, sizeof(addr)) == -1) {
+ close(fd);
+ return -1;
+ }
+ return fd;
+}
+#endif /* !_WIN32 */
+
+#ifdef HAVE_ABSTRACT_SOCKETS
+static int _xcb_open_abstract(char *protocol, const char *file, size_t filelen)
+{
+ int fd;
+ struct sockaddr_un addr = {0};
+ socklen_t namelen;
+
+ if (protocol && strcmp("unix",protocol))
+ return -1;
+
+ strcpy(addr.sun_path + 1, file);
+ addr.sun_family = AF_UNIX;
+ namelen = offsetof(struct sockaddr_un, sun_path) + 1 + filelen;
+#ifdef HAVE_SOCKADDR_SUN_LEN
+ addr.sun_len = 1 + filelen;
+#endif
+ fd = _xcb_socket(AF_UNIX, SOCK_STREAM, 0);
+ if (fd == -1)
+ return -1;
+ if (connect(fd, (struct sockaddr *) &addr, namelen) == -1) {
+ close(fd);
+ return -1;
+ }
+ return fd;
+}
+#endif
+
+xcb_connection_t *xcb_connect(const char *displayname, int *screenp)
+{
+ return xcb_connect_to_display_with_auth_info(displayname, NULL, screenp);
+}
+
+xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *displayname, xcb_auth_info_t *auth, int *screenp)
+{
+ int fd, display = 0;
+ char *host = NULL;
+ char *protocol = NULL;
+ xcb_auth_info_t ourauth;
+ xcb_connection_t *c;
+
+ int parsed = _xcb_parse_display(displayname, &host, &protocol, &display, screenp);
+
+ if(!parsed) {
+ c = (xcb_connection_t *) &error_connection;
+ goto out;
+ } else
+ fd = _xcb_open(host, protocol, display);
+
+ if(fd == -1) {
+ c = (xcb_connection_t *) &error_connection;
+ goto out;
+ }
+
+ if(auth) {
+ c = xcb_connect_to_fd(fd, auth);
+ goto out;
+ }
+
+ if(_xcb_get_auth_info(fd, &ourauth, display))
+ {
+ c = xcb_connect_to_fd(fd, &ourauth);
+ free(ourauth.name);
+ free(ourauth.data);
+ }
+ else
+ c = xcb_connect_to_fd(fd, 0);
+
+out:
+ free(host);
+ free(protocol);
+ return c;
+}
diff --git a/libxcb/src/xcbint.h b/libxcb/src/xcbint.h
index d1f742104..096576c4a 100644
--- a/libxcb/src/xcbint.h
+++ b/libxcb/src/xcbint.h
@@ -1,210 +1,208 @@
-/*
- * Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the names of the authors or their
- * institutions shall not be used in advertising or otherwise to promote the
- * sale, use or other dealings in this Software without prior written
- * authorization from the authors.
- */
-
-#ifndef __XCBINT_H
-#define __XCBINT_H
-
-#include "bigreq.h"
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef GCC_HAS_VISIBILITY
-#pragma GCC visibility push(hidden)
-#endif
-
-enum workarounds {
- WORKAROUND_NONE,
- WORKAROUND_GLX_GET_FB_CONFIGS_BUG,
- WORKAROUND_EXTERNAL_SOCKET_OWNER
-};
-
-enum lazy_reply_tag
-{
- LAZY_NONE = 0,
- LAZY_COOKIE,
- LAZY_FORCED
-};
-
-#define XCB_PAD(i) (-(i) & 3)
-
-#define XCB_SEQUENCE_COMPARE(a,op,b) ((int64_t) ((a) - (b)) op 0)
-
-#ifndef offsetof
-#define offsetof(type,member) ((size_t) &((type *)0)->member)
-#endif
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x) : (y))
-#endif
-
-#define container_of(pointer,type,member) ((type *)(((char *)(pointer)) - offsetof(type, member)))
-
-/* xcb_list.c */
-
-typedef void (*xcb_list_free_func_t)(void *);
-
-typedef struct _xcb_map _xcb_map;
-
-_xcb_map *_xcb_map_new(void);
-void _xcb_map_delete(_xcb_map *q, xcb_list_free_func_t do_free);
-int _xcb_map_put(_xcb_map *q, unsigned int key, void *data);
-void *_xcb_map_remove(_xcb_map *q, unsigned int key);
-
-
-/* xcb_out.c */
-
-typedef struct _xcb_out {
- pthread_cond_t cond;
- int writing;
-
- pthread_cond_t socket_cond;
- void (*return_socket)(void *closure);
- void *socket_closure;
- int socket_moving;
-
- char queue[XCB_QUEUE_BUFFER_SIZE];
- int queue_len;
-
- uint64_t request;
- uint64_t request_written;
-
- pthread_mutex_t reqlenlock;
- enum lazy_reply_tag maximum_request_length_tag;
- union {
- xcb_big_requests_enable_cookie_t cookie;
- uint32_t value;
- } maximum_request_length;
-} _xcb_out;
-
-int _xcb_out_init(_xcb_out *out);
-void _xcb_out_destroy(_xcb_out *out);
-
-int _xcb_out_send(xcb_connection_t *c, struct iovec *vector, int count);
-void _xcb_out_send_sync(xcb_connection_t *c);
-int _xcb_out_flush_to(xcb_connection_t *c, uint64_t request);
-
-
-/* xcb_in.c */
-
-typedef struct _xcb_in {
- pthread_cond_t event_cond;
- int reading;
-
- char queue[4096];
- int queue_len;
-
- uint64_t request_expected;
- uint64_t request_read;
- uint64_t event_responses_completed;
- uint64_t request_completed;
- struct reply_list *current_reply;
- struct reply_list **current_reply_tail;
-
- _xcb_map *replies;
- struct event_list *events;
- struct event_list **events_tail;
- struct reader_list *readers;
- struct reader_list *event_readers;
-
- struct pending_reply *pending_replies;
- struct pending_reply **pending_replies_tail;
-} _xcb_in;
-
-int _xcb_in_init(_xcb_in *in);
-void _xcb_in_destroy(_xcb_in *in);
-
-void _xcb_in_wake_up_next_reader(xcb_connection_t *c);
-
-int _xcb_in_expect_reply(xcb_connection_t *c, uint64_t request, enum workarounds workaround, int flags);
-void _xcb_in_replies_done(xcb_connection_t *c);
-
-int _xcb_in_read(xcb_connection_t *c);
-int _xcb_in_read_block(xcb_connection_t *c, void *buf, int nread);
-
-
-/* xcb_xid.c */
-
-typedef struct _xcb_xid {
- pthread_mutex_t lock;
- uint32_t last;
- uint32_t base;
- uint32_t max;
- uint32_t inc;
-} _xcb_xid;
-
-int _xcb_xid_init(xcb_connection_t *c);
-void _xcb_xid_destroy(xcb_connection_t *c);
-
-
-/* xcb_ext.c */
-
-typedef struct _xcb_ext {
- pthread_mutex_t lock;
- struct lazyreply *extensions;
- int extensions_size;
-} _xcb_ext;
-
-int _xcb_ext_init(xcb_connection_t *c);
-void _xcb_ext_destroy(xcb_connection_t *c);
-
-
-/* xcb_conn.c */
-
-extern const int error_connection;
-
-struct xcb_connection_t {
- int has_error;
-
- /* constant data */
- xcb_setup_t *setup;
- int fd;
-
- /* I/O data */
- pthread_mutex_t iolock;
- _xcb_in in;
- _xcb_out out;
-
- /* misc data */
- _xcb_ext ext;
- _xcb_xid xid;
-};
-
-void _xcb_conn_shutdown(xcb_connection_t *c);
-int _xcb_conn_wait(xcb_connection_t *c, pthread_cond_t *cond, struct iovec **vector, int *count);
-
-
-/* xcb_auth.c */
-
-int _xcb_get_auth_info(int fd, xcb_auth_info_t *info, int display);
-
-#ifdef GCC_HAS_VISIBILITY
-#pragma GCC visibility pop
-#endif
-
-#endif
+/*
+ * Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+#ifndef __XCBINT_H
+#define __XCBINT_H
+
+#include "bigreq.h"
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef GCC_HAS_VISIBILITY
+#pragma GCC visibility push(hidden)
+#endif
+
+enum workarounds {
+ WORKAROUND_NONE,
+ WORKAROUND_GLX_GET_FB_CONFIGS_BUG,
+ WORKAROUND_EXTERNAL_SOCKET_OWNER
+};
+
+enum lazy_reply_tag
+{
+ LAZY_NONE = 0,
+ LAZY_COOKIE,
+ LAZY_FORCED
+};
+
+#define XCB_PAD(i) (-(i) & 3)
+
+#define XCB_SEQUENCE_COMPARE(a,op,b) ((int64_t) ((a) - (b)) op 0)
+
+#ifndef offsetof
+#define offsetof(type,member) ((size_t) &((type *)0)->member)
+#endif
+
+#ifndef MIN
+#define MIN(x,y) ((x) < (y) ? (x) : (y))
+#endif
+
+#define container_of(pointer,type,member) ((type *)(((char *)(pointer)) - offsetof(type, member)))
+
+/* xcb_list.c */
+
+typedef void (*xcb_list_free_func_t)(void *);
+
+typedef struct _xcb_map _xcb_map;
+
+_xcb_map *_xcb_map_new(void);
+void _xcb_map_delete(_xcb_map *q, xcb_list_free_func_t do_free);
+int _xcb_map_put(_xcb_map *q, unsigned int key, void *data);
+void *_xcb_map_remove(_xcb_map *q, unsigned int key);
+
+
+/* xcb_out.c */
+
+typedef struct _xcb_out {
+ pthread_cond_t cond;
+ int writing;
+
+ pthread_cond_t socket_cond;
+ void (*return_socket)(void *closure);
+ void *socket_closure;
+ int socket_moving;
+
+ char queue[XCB_QUEUE_BUFFER_SIZE];
+ int queue_len;
+
+ uint64_t request;
+ uint64_t request_written;
+
+ pthread_mutex_t reqlenlock;
+ enum lazy_reply_tag maximum_request_length_tag;
+ union {
+ xcb_big_requests_enable_cookie_t cookie;
+ uint32_t value;
+ } maximum_request_length;
+} _xcb_out;
+
+int _xcb_out_init(_xcb_out *out);
+void _xcb_out_destroy(_xcb_out *out);
+
+int _xcb_out_send(xcb_connection_t *c, struct iovec *vector, int count);
+void _xcb_out_send_sync(xcb_connection_t *c);
+int _xcb_out_flush_to(xcb_connection_t *c, uint64_t request);
+
+
+/* xcb_in.c */
+
+typedef struct _xcb_in {
+ pthread_cond_t event_cond;
+ int reading;
+
+ char queue[4096];
+ int queue_len;
+
+ uint64_t request_expected;
+ uint64_t request_read;
+ uint64_t request_completed;
+ struct reply_list *current_reply;
+ struct reply_list **current_reply_tail;
+
+ _xcb_map *replies;
+ struct event_list *events;
+ struct event_list **events_tail;
+ struct reader_list *readers;
+
+ struct pending_reply *pending_replies;
+ struct pending_reply **pending_replies_tail;
+} _xcb_in;
+
+int _xcb_in_init(_xcb_in *in);
+void _xcb_in_destroy(_xcb_in *in);
+
+void _xcb_in_wake_up_next_reader(xcb_connection_t *c);
+
+int _xcb_in_expect_reply(xcb_connection_t *c, uint64_t request, enum workarounds workaround, int flags);
+void _xcb_in_replies_done(xcb_connection_t *c);
+
+int _xcb_in_read(xcb_connection_t *c);
+int _xcb_in_read_block(xcb_connection_t *c, void *buf, int nread);
+
+
+/* xcb_xid.c */
+
+typedef struct _xcb_xid {
+ pthread_mutex_t lock;
+ uint32_t last;
+ uint32_t base;
+ uint32_t max;
+ uint32_t inc;
+} _xcb_xid;
+
+int _xcb_xid_init(xcb_connection_t *c);
+void _xcb_xid_destroy(xcb_connection_t *c);
+
+
+/* xcb_ext.c */
+
+typedef struct _xcb_ext {
+ pthread_mutex_t lock;
+ struct lazyreply *extensions;
+ int extensions_size;
+} _xcb_ext;
+
+int _xcb_ext_init(xcb_connection_t *c);
+void _xcb_ext_destroy(xcb_connection_t *c);
+
+
+/* xcb_conn.c */
+
+extern const int error_connection;
+
+struct xcb_connection_t {
+ int has_error;
+
+ /* constant data */
+ xcb_setup_t *setup;
+ int fd;
+
+ /* I/O data */
+ pthread_mutex_t iolock;
+ _xcb_in in;
+ _xcb_out out;
+
+ /* misc data */
+ _xcb_ext ext;
+ _xcb_xid xid;
+};
+
+void _xcb_conn_shutdown(xcb_connection_t *c);
+int _xcb_conn_wait(xcb_connection_t *c, pthread_cond_t *cond, struct iovec **vector, int *count);
+
+
+/* xcb_auth.c */
+
+int _xcb_get_auth_info(int fd, xcb_auth_info_t *info, int display);
+
+#ifdef GCC_HAS_VISIBILITY
+#pragma GCC visibility pop
+#endif
+
+#endif
diff --git a/xorg-server/xkeyboard-config/rules/base.extras.xml.in b/xorg-server/xkeyboard-config/rules/base.extras.xml.in
index 1118bec4d..60eafdd9d 100644
--- a/xorg-server/xkeyboard-config/rules/base.extras.xml.in
+++ b/xorg-server/xkeyboard-config/rules/base.extras.xml.in
@@ -23,7 +23,7 @@
<variant>
<configItem>
<name>ave</name>
- <_description>Iran - Avestan</_description>
+ <_description>Avestan</_description>
<languageList><iso639Id>ave</iso639Id></languageList>
</configItem>
</variant>
@@ -33,14 +33,74 @@
<configItem>
<name>lt</name>
<_shortDescription>Ltu</_shortDescription>
- <_description>Lithuania</_description>
+ <_description>Lithuanian</_description>
<languageList><iso639Id>lit</iso639Id></languageList>
</configItem>
<variantList>
<variant>
<configItem>
<name>dvorak</name>
- <_description>Lithuania - Dvorak</_description>
+ <_description>Lithuanian (Dvorak)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>lv</name>
+ <_shortDescription>lv</_shortDescription>
+ <_description>Latvian</_description>
+ <languageList>
+ <iso639Id>lav</iso639Id>
+ </languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>dvorak</name>
+ <_description>Latvian (US Dvorak)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ykeydvorak</name>
+ <_description>Latvian (US Dvorak, Y-letter variant)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>minuskeydvorak</name>
+ <_description>Latvian (US Dvorak, minus-letter variant)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>dvorakprogr</name>
+ <_description>Latvian (programmer US Dvorak)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ykeydvorakprogr</name>
+ <_description>Latvian (programmer US Dvorak, Y-letter variant)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>minuskeydvorakprogr</name>
+ <_description>Latvian (programmer US Dvorak - minus-letter variant)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>colemak</name>
+ <_description>Latvian (US Colemak)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>apostrophecolemak</name>
+ <_description>Latvian (US Colemak, apostrophe variant)</_description>
</configItem>
</variant>
</variantList>
@@ -56,26 +116,26 @@
<variant>
<configItem>
<name>intl-unicode</name>
- <_description>USA - International (AltGr Unicode combining)</_description>
+ <_description>English (US, international (AltGr Unicode combining)</_description>
</configItem>
</variant>
<variant>
<configItem>
<name>alt-intl-unicode</name>
- <_description>USA - International (AltGr Unicode combining, alternative)</_description>
+ <_description>English (US, international AltGr Unicode combining, alternative)</_description>
</configItem>
</variant>
<variant>
<configItem>
<name>ats</name>
- <_description>USA - Atsina</_description>
+ <_description>Atsina</_description>
<!-- No ISO code in ISO639-2, only draft ISO693-3 -->
</configItem>
</variant>
<variant>
<configItem>
<name>crd</name>
- <_description>USA - Couer D'alene Salish</_description>
+ <_description>Couer D'alene Salish</_description>
<languageList><iso639Id>crd</iso639Id></languageList>
</configItem>
</variant>
@@ -85,14 +145,14 @@
<configItem>
<name>ro</name>
<_shortDescription>Rou</_shortDescription>
- <_description>Romania</_description>
+ <_description>Romanian</_description>
<languageList><iso639Id>rum</iso639Id></languageList>
</configItem>
<variantList>
<variant>
<configItem>
<name>ergonomic</name>
- <_description>Romania - Ergonomic Touchtype</_description>
+ <_description>Romanian (ergonomic Touchtype)</_description>
</configItem>
</variant>
</variantList>
@@ -108,7 +168,7 @@
<variant>
<configItem>
<name>combiningkeys</name>
- <_description>Serbia - Combining accents instead of dead keys</_description>
+ <_description>Serbian (combining accents instead of dead keys)</_description>
</configItem>
</variant>
</variantList>
@@ -117,13 +177,13 @@
<configItem>
<name>ru</name>
<_shortDescription>Rus</_shortDescription>
- <_description>Russia</_description>
+ <_description>Russian</_description>
</configItem>
<variantList>
<variant>
<configItem>
<name>chu</name>
- <description>Russia - Church Slavonic</description>
+ <description>Church Slavonic</description>
<languageList><iso639Id>chu</iso639Id></languageList>
</configItem>
</variant>
diff --git a/xorg-server/xkeyboard-config/rules/base.xml.in b/xorg-server/xkeyboard-config/rules/base.xml.in
index 90cec4a32..3f26331cb 100644
--- a/xorg-server/xkeyboard-config/rules/base.xml.in
+++ b/xorg-server/xkeyboard-config/rules/base.xml.in
@@ -1602,7 +1602,7 @@
<variant>
<configItem>
<name>cyrillic</name>
- <_description>Azerbaijan (Cyrillic)</_description>
+ <_description>Azerbaijani (Cyrillic)</_description>
</configItem>
</variant>
</variantList>
@@ -2589,7 +2589,7 @@
<variant>
<configItem>
<name>smi</name>
- <_description>Saami (Finland)</_description>
+ <_description>Northern Saami (Finland)</_description>
<languageList><iso639Id>sme</iso639Id></languageList>
</configItem>
</variant>
@@ -3285,7 +3285,7 @@
<configItem>
<name>kh</name>
<_shortDescription>km</_shortDescription>
- <_description>Khmer (Cambodian)</_description>
+ <_description>Khmer (Cambodia)</_description>
<languageList>
<iso639Id>khm</iso639Id>
</languageList>
@@ -3389,7 +3389,7 @@
<variant>
<configItem>
<name>sundeadkeys</name>
- <_description>Spanish (Latin American, sun dead keys)</_description>
+ <_description>Spanish (Latin American, Sun dead keys)</_description>
</configItem>
</variant>
</variantList>
@@ -3449,13 +3449,13 @@
<variant>
<configItem>
<name>apostrophe</name>
- <_description>Latvian (Apostrophe ' variant)</_description>
+ <_description>Latvian (apostrophe variant)</_description>
</configItem>
</variant>
<variant>
<configItem>
<name>tilde</name>
- <_description>Latvian (Tilde ~ variant)</_description>
+ <_description>Latvian (tilde variant)</_description>
</configItem>
</variant>
<variant>
@@ -3464,13 +3464,31 @@
<_description>Latvian (F variant)</_description>
</configItem>
</variant>
+ <variant>
+ <configItem>
+ <name>modern</name>
+ <_description>Latvian (modern)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ergonomic</name>
+ <_description>Latvian (ergonomic, ŪGJRMV)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>adapted</name>
+ <_description>Latvian (adapted)</_description>
+ </configItem>
+ </variant>
</variantList>
</layout>
<layout>
<configItem>
<name>mao</name>
<_shortDescription>mi</_shortDescription>
- <_description>Māori</_description>
+ <_description>Maori</_description>
<languageList>
<iso639Id>mao</iso639Id>
</languageList>
@@ -3603,7 +3621,7 @@
<variant>
<configItem>
<name>smi</name>
- <_description>Saami (Norway)</_description>
+ <_description>Northern Saami (Norway)</_description>
<languageList>
<iso639Id>sme</iso639Id>
</languageList>
@@ -3612,7 +3630,7 @@
<variant>
<configItem>
<name>smi_nodeadkeys</name>
- <_description>Saami (Norway, eliminate dead keys)</_description>
+ <_description>Northern Saami (Norway, eliminate dead keys)</_description>
<languageList>
<iso639Id>sme</iso639Id>
</languageList>
@@ -3657,19 +3675,19 @@
<variant>
<configItem>
<name>dvorak_quotes</name>
- <_description>Polish (Dvorak, polish quotes on quotemark key)</_description>
+ <_description>Polish (Dvorak, Polish quotes on quotemark key)</_description>
</configItem>
</variant>
<variant>
<configItem>
<name>dvorak_altquotes</name>
- <_description>Polish (Dvorak, polish quotes on key 1)</_description>
+ <_description>Polish (Dvorak, Polish quotes on key 1)</_description>
</configItem>
</variant>
<variant>
<configItem>
<name>csb</name>
- <_description>Polish (Kashubian)</_description>
+ <_description>Kashubian</_description>
<languageList>
<iso639Id>csb</iso639Id>
</languageList>
@@ -3748,7 +3766,7 @@
<variant>
<configItem>
<name>nativo-epo</name>
- <_description>Portuguese (Nativo for Esperanto)</_description>
+ <_description>Esperanto (Portugal, Nativo)</_description>
<languageList>
<iso639Id>epo</iso639Id>
</languageList>
@@ -3845,7 +3863,7 @@
<variant>
<configItem>
<name>tt</name>
- <_description>Russian (Tatar)</_description>
+ <_description>Tatar</_description>
<languageList>
<iso639Id>tat</iso639Id>
</languageList>
@@ -3854,7 +3872,7 @@
<variant>
<configItem>
<name>os_legacy</name>
- <_description>Russian (Ossetian, legacy)</_description>
+ <_description>Ossetian (legacy)</_description>
<languageList>
<iso639Id>oss</iso639Id>
</languageList>
@@ -3863,7 +3881,7 @@
<variant>
<configItem>
<name>os_winkeys</name>
- <_description>Russian (Ossetian, WinKeys)</_description>
+ <_description>Ossetian (WinKeys)</_description>
<languageList>
<iso639Id>oss</iso639Id>
</languageList>
@@ -3872,7 +3890,7 @@
<variant>
<configItem>
<name>cv</name>
- <_description>Russian (Chuvash)</_description>
+ <_description>Chuvash</_description>
<languageList>
<iso639Id>chv</iso639Id>
</languageList>
@@ -3881,7 +3899,7 @@
<variant>
<configItem>
<name>cv_latin</name>
- <_description>Russian (Chuvash Latin)</_description>
+ <_description>Chuvash (Latin)</_description>
<languageList>
<iso639Id>chv</iso639Id>
</languageList>
@@ -3890,7 +3908,7 @@
<variant>
<configItem>
<name>udm</name>
- <_description>Russian (Udmurt)</_description>
+ <_description>Udmurt</_description>
<languageList>
<iso639Id>udm</iso639Id>
</languageList>
@@ -3899,7 +3917,7 @@
<variant>
<configItem>
<name>kom</name>
- <_description>Russian (Komi)</_description>
+ <_description>Komi</_description>
<languageList>
<iso639Id>kom</iso639Id>
</languageList>
@@ -3908,7 +3926,7 @@
<variant>
<configItem>
<name>sah</name>
- <_description>Russian (Yakut)</_description>
+ <_description>Yakut</_description>
<languageList>
<iso639Id>sah</iso639Id>
</languageList>
@@ -3917,7 +3935,7 @@
<variant>
<configItem>
<name>xal</name>
- <_description>Russian (Kalmyk)</_description>
+ <_description>Kalmyk</_description>
<languageList>
<iso639Id>xal</iso639Id>
</languageList>
@@ -3932,7 +3950,7 @@
<variant>
<configItem>
<name>srp</name>
- <_description>Russian (Serbian)</_description>
+ <_description>Serbian (Russia)</_description>
<languageList><iso639Id>rus</iso639Id>
<iso639Id>srp</iso639Id></languageList>
</configItem>
@@ -3940,7 +3958,7 @@
<variant>
<configItem>
<name>bak</name>
- <_description>Russian (Bashkirian)</_description>
+ <_description>Bashkirian</_description>
<languageList>
<iso639Id>bak</iso639Id>
</languageList>
@@ -3949,7 +3967,7 @@
<variant>
<configItem>
<name>chm</name>
- <_description>Russian (Mari)</_description>
+ <_description>Mari</_description>
<languageList>
<iso639Id>chm</iso639Id>
</languageList>
@@ -4012,7 +4030,7 @@
<variant>
<configItem>
<name>rue</name>
- <_description>Serbian (Pannonian Rusyn Homophonic)</_description>
+ <_description>Pannonian Rusyn (homophonic)</_description>
<languageList>
<iso639Id>rue</iso639Id>
</languageList>
@@ -4024,7 +4042,7 @@
<configItem>
<name>si</name>
<_shortDescription>sl</_shortDescription>
- <_description>Slovene</_description>
+ <_description>Slovenian</_description>
<languageList>
<iso639Id>slv</iso639Id>
</languageList>
@@ -4033,13 +4051,13 @@
<variant>
<configItem>
<name>alternatequotes</name>
- <_description>Slovene (use guillemets for quotes)</_description>
+ <_description>Slovenian (use guillemets for quotes)</_description>
</configItem>
</variant>
<variant>
<configItem>
<name>us</name>
- <_description>Slovene (US keyboard with Slovenian letters)</_description>
+ <_description>Slovenian (US keyboard with Slovenian letters)</_description>
</configItem>
</variant>
</variantList>
@@ -4111,7 +4129,7 @@
<variant>
<configItem>
<name>ast</name>
- <_description>Spanish (Asturian variant with bottom-dot H and bottom-dot L)</_description>
+ <_description>Asturian (Spain, with bottom-dot H and bottom-dot L)</_description>
<languageList>
<iso639Id>ast</iso639Id>
</languageList>
@@ -4120,7 +4138,7 @@
<variant>
<configItem>
<name>cat</name>
- <_description>Spanish (Catalan variant with middle-dot L)</_description>
+ <_description>Catalan (Spain, with middle-dot L)</_description>
<languageList>
<iso639Id>cat</iso639Id>
</languageList>
@@ -4179,7 +4197,7 @@
<variant>
<configItem>
<name>smi</name>
- <_description>Saami (Sweden)</_description>
+ <_description>Northern Saami (Sweden)</_description>
<languageList>
<iso639Id>sme</iso639Id>
</languageList>
@@ -4203,7 +4221,7 @@
<configItem>
<name>ch</name>
<_shortDescription>che</_shortDescription>
- <_description>German</_description>
+ <_description>German (Switzerland)</_description>
<languageList><iso639Id>ger</iso639Id>
<iso639Id>gsw</iso639Id></languageList>
</configItem>
@@ -4586,7 +4604,7 @@
<variant>
<configItem>
<name>rstu_ru</name>
- <_description>Ukrainian (standard RSTU on Russian layout)</_description>
+ <_description>Russian (Ukraine, standard RSTU)</_description>
</configItem>
</variant>
<variant>
@@ -4610,7 +4628,7 @@
<variant>
<configItem>
<name>extd</name>
- <_description>English (UK, extended, WinKeys)</_description>
+ <_description>English (UK, extended WinKeys)</_description>
</configItem>
</variant>
<variant>
@@ -4628,7 +4646,7 @@
<variant>
<configItem>
<name>dvorakukp</name>
- <_description>English (UK, Dvorak UK punctuation)</_description>
+ <_description>English (UK, Dvorak with UK punctuation)</_description>
</configItem>
</variant>
<variant>
@@ -4725,7 +4743,7 @@
<variant>
<configItem>
<name>CloGaelach</name>
- <_description>Irish (CloGaelach)</_description>
+ <_description>CloGaelach</_description>
<languageList>
<iso639Id>gla</iso639Id>
</languageList>
@@ -4740,13 +4758,19 @@
<variant>
<configItem>
<name>ogam</name>
- <_description>Irish (Ogham)</_description>
+ <_description>Ogham</_description>
+ <languageList>
+ <iso639Id>sga</iso639Id>
+ </languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>ogam_is434</name>
- <_description>Irish (Ogham IS434)</_description>
+ <_description>Ogham (IS434)</_description>
+ <languageList>
+ <iso639Id>sga</iso639Id>
+ </languageList>
</configItem>
</variant>
</variantList>
@@ -4765,18 +4789,12 @@
<configItem>
<name>urd-crulp</name>
<_description>Urdu (Pakistan, CRULP)</_description>
- <languageList>
- <iso639Id>urd</iso639Id>
- </languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>urd-nla</name>
<_description>Urdu (Pakistan, NLA)</_description>
- <languageList>
- <iso639Id>urd</iso639Id>
- </languageList>
</configItem>
</variant>
<variant>
@@ -4968,20 +4986,23 @@
<name>fr-oss</name>
<_shortDescription>fr</_shortDescription>
<_description>French (Mali, alternative)</_description>
+ <languageList>
+ <iso639Id>fr</iso639Id>
+ </languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>us-mac</name>
<_shortDescription>en</_shortDescription>
- <_description>English (Mali, USA Macintosh)</_description>
+ <_description>English (Mali, US Macintosh)</_description>
</configItem>
</variant>
<variant>
<configItem>
<name>us-intl</name>
<_shortDescription>en</_shortDescription>
- <_description>English (Mali, USA international)</_description>
+ <_description>English (Mali, US international)</_description>
</configItem>
</variant>
</variantList>
@@ -5137,7 +5158,7 @@
<variant>
<configItem>
<name>dvorak-bay</name>
- <_description>Philippines - Dvorak (Baybayin)</_description>
+ <_description>Filipino (Dvorak Baybayin)</_description>
<languageList><iso639Id>bik</iso639Id>
<iso639Id>ceb</iso639Id>
<iso639Id>fil</iso639Id>
diff --git a/xorg-server/xkeyboard-config/symbols/brai b/xorg-server/xkeyboard-config/symbols/brai
index b748d184b..2a7072d45 100644
--- a/xorg-server/xkeyboard-config/symbols/brai
+++ b/xorg-server/xkeyboard-config/symbols/brai
@@ -1,59 +1,59 @@
-// 10-dot patterns on the home row + v and n
-partial default alphanumeric_keys
-xkb_symbols "home_row" {
- include "brai(keypad)"
-
- name[Group1]="Braille";
-
- key <AC04> { [ braille_dot_1 ] };
- key <AC03> { [ braille_dot_2 ] };
- key <AC02> { [ braille_dot_3 ] };
- key <AC07> { [ braille_dot_4 ] };
- key <AC08> { [ braille_dot_5 ] };
- key <AC09> { [ braille_dot_6 ] };
- key <AC01> { [ braille_dot_7 ] };
- key <AC10> { [ braille_dot_8 ] };
- key <AB04> { [ braille_dot_9 ] };
- key <AB06> { [ braille_dot_10 ] };
-};
-
-// 6-dot patterns for the left hand
-partial alphanumeric_keys
-xkb_symbols "left_hand" {
- include "brai(keypad)"
-
- name[Group1]="Braille - Left hand";
-
- key <AC03> { [ braille_dot_1 ] };
- key <AC02> { [ braille_dot_2 ] };
- key <AC01> { [ braille_dot_3 ] };
- key <AC04> { [ braille_dot_4 ] };
- key <AB05> { [ braille_dot_5 ] };
- key <AB04> { [ braille_dot_6 ] };
-};
-
-// 6-dot patterns for the right hand
-partial alphanumeric_keys
-xkb_symbols "right_hand" {
- include "brai(keypad)"
-
- name[Group1]="Braille - Right hand";
-
- key <AC07> { [ braille_dot_1 ] };
- key <AB05> { [ braille_dot_2 ] };
- key <AB06> { [ braille_dot_3 ] };
- key <AC08> { [ braille_dot_4 ] };
- key <AC09> { [ braille_dot_5 ] };
- key <AC10> { [ braille_dot_6 ] };
-};
-
-// 6-dot patterns on the keypad
-partial hidden keypad_keys
-xkb_symbols "keypad" {
- key <KP4> { [ braille_dot_1 ] };
- key <KP1> { [ braille_dot_2 ] };
- key <KP0> { [ braille_dot_3 ] };
- key <KP5> { [ braille_dot_4 ] };
- key <KP6> { [ braille_dot_5 ] };
- key <KPAD> { [ braille_dot_6 ] };
-};
+// 10-dot patterns on the home row + v and n
+partial default alphanumeric_keys
+xkb_symbols "home_row" {
+ include "brai(keypad)"
+
+ name[Group1]="Braille";
+
+ key <AC04> { [ braille_dot_1 ] };
+ key <AC03> { [ braille_dot_2 ] };
+ key <AC02> { [ braille_dot_3 ] };
+ key <AC07> { [ braille_dot_4 ] };
+ key <AC08> { [ braille_dot_5 ] };
+ key <AC09> { [ braille_dot_6 ] };
+ key <AC01> { [ braille_dot_7 ] };
+ key <AC10> { [ braille_dot_8 ] };
+ key <AB04> { [ braille_dot_9 ] };
+ key <AB06> { [ braille_dot_10 ] };
+};
+
+// 6-dot patterns for the left hand
+partial alphanumeric_keys
+xkb_symbols "left_hand" {
+ include "brai(keypad)"
+
+ name[Group1]="Braille (left hand)";
+
+ key <AC03> { [ braille_dot_1 ] };
+ key <AC02> { [ braille_dot_2 ] };
+ key <AC01> { [ braille_dot_3 ] };
+ key <AC04> { [ braille_dot_4 ] };
+ key <AB05> { [ braille_dot_5 ] };
+ key <AB04> { [ braille_dot_6 ] };
+};
+
+// 6-dot patterns for the right hand
+partial alphanumeric_keys
+xkb_symbols "right_hand" {
+ include "brai(keypad)"
+
+ name[Group1]="Braille (right hand)";
+
+ key <AC07> { [ braille_dot_1 ] };
+ key <AB05> { [ braille_dot_2 ] };
+ key <AB06> { [ braille_dot_3 ] };
+ key <AC08> { [ braille_dot_4 ] };
+ key <AC09> { [ braille_dot_5 ] };
+ key <AC10> { [ braille_dot_6 ] };
+};
+
+// 6-dot patterns on the keypad
+partial hidden keypad_keys
+xkb_symbols "keypad" {
+ key <KP4> { [ braille_dot_1 ] };
+ key <KP1> { [ braille_dot_2 ] };
+ key <KP0> { [ braille_dot_3 ] };
+ key <KP5> { [ braille_dot_4 ] };
+ key <KP6> { [ braille_dot_5 ] };
+ key <KPAD> { [ braille_dot_6 ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/bw b/xorg-server/xkeyboard-config/symbols/bw
index 9243da20f..0baadbaa3 100644
--- a/xorg-server/xkeyboard-config/symbols/bw
+++ b/xorg-server/xkeyboard-config/symbols/bw
@@ -1,18 +1,18 @@
-partial default alphanumeric_keys
-xkb_symbols "tswana" {
-
- include "us"
-
- name[Group1]= "Botswana";
-
- key <AC10> { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW
- key <AC11> { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS
- key <TLDE> { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE
- key <AE06> { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT
- key <AE08> { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW
- key <AE09> { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE
- key <AE10> { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON
- key <AE11> { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW
-
- include "level3(ralt_switch)"
-};
+partial default alphanumeric_keys
+xkb_symbols "tswana" {
+
+ include "us"
+
+ name[Group1]= "Tswana";
+
+ key <AC10> { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW
+ key <AC11> { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS
+ key <TLDE> { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE
+ key <AE06> { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT
+ key <AE08> { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW
+ key <AE09> { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE
+ key <AE10> { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON
+ key <AE11> { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW
+
+ include "level3(ralt_switch)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/ch b/xorg-server/xkeyboard-config/symbols/ch
index ffb772d80..d890c33a6 100644
--- a/xorg-server/xkeyboard-config/symbols/ch
+++ b/xorg-server/xkeyboard-config/symbols/ch
@@ -1,213 +1,213 @@
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- include "latin"
-
- // Alphanumeric section
- name[Group1]= "Switzerland";
- key <TLDE> { [ section, degree ] };
- key <AE01> { [ 1, plus, bar, exclamdown ] };
- key <AE02> { [ 2, quotedbl, at, oneeighth ] };
- key <AE03> { [ 3, asterisk, numbersign ] };
- key <AE04> { [ 4, ccedilla ] };
- key <AE05> { [ 5, percent ] };
- key <AE06> { [ 6, ampersand, notsign ] };
- key <AE07> { [ 7, slash, bar ] };
- key <AE08> { [ 8, parenleft, cent ] };
- key <AE09> { [ 9, parenright ] };
- key <AE10> { [ 0, equal ] };
- key <AE11> { [ apostrophe, question, dead_acute ] };
- key <AE12> { [ dead_circumflex, dead_grave, dead_tilde ] };
-
- key <AD03> { [ e, E, EuroSign ] };
- key <AD06> { [ z, Z ] };
- key <AD11> { [ udiaeresis, egrave, bracketleft ] };
- key <AD12> { [ dead_diaeresis, exclam, bracketright ] };
-
- key <AC10> { [ odiaeresis, eacute ] };
- key <AC11> { [ adiaeresis, agrave, braceleft ] };
- key <BKSL> { [ dollar, sterling, braceright ] };
-
- key <LSGT> { [ less, greater, backslash, brokenbar ] };
- key <AB01> { [ y, Y ] };
- key <AB08> { [ comma, semicolon ] };
- key <AB09> { [ period, colon ] };
- key <AB10> { [ minus, underscore ] };
-
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "legacy" {
- include "ch(basic)"
-
- name[Group1]= "Switzerland - Legacy";
- key <AE07> { [ 7, slash, brokenbar ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "de" {
- include "ch(basic)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "de_Sundeadkeys" {
- // modify the basic Swiss German layout to use Sun dead keys
- include "ch(basic)"
- key <AE11> { [ apostrophe, question, dead_acute ] };
- key <AE12> { [ dead_circumflex, dead_grave, dead_tilde ] };
- key <AD12> { [ dead_diaeresis, exclam, bracketright ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "de_sundeadkeys" {
- include "ch(de_Sundeadkeys)"
- name[Group1]= "Switzerland - German, Sun dead keys";
-};
-
-partial alphanumeric_keys
-xkb_symbols "de_nodeadkeys" {
- // modify the basic Swiss German layout not to have any dead keys
- include "ch(basic)"
- name[Group1]= "Switzerland - German, eliminate dead keys";
- key <AE11> { [ apostrophe, question, acute ] };
- key <AE12> { [ asciicircum, grave, asciitilde ] };
- key <AD12> { [ diaeresis, exclam, bracketright ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "fr" {
-
- // Describes the differences between a very simple US/ASCII
- // keyboard and a very simple Swiss/French keybaord
-
- include "ch(basic)"
- name[Group1]= "Switzerland - French";
-
- override key <AD11> {
- [ egrave, udiaeresis, bracketleft ]
- };
- override key <AC10> {
- [ eacute, odiaeresis ]
- };
- override key <AC11> {
- [ agrave, adiaeresis, braceleft ]
- };
-};
-
-partial alphanumeric_keys
-xkb_symbols "fr_Sundeadkeys" {
- // modify the basic Swiss French layout to use Sun dead keys
- include "ch(fr)"
- key <AE11> { [ apostrophe, question, dead_acute ] };
- key <AE12> { [ dead_circumflex, dead_grave, dead_tilde ] };
- key <AD12> { [ dead_diaeresis, exclam, bracketright ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "fr_sundeadkeys" {
- include "ch(fr_Sundeadkeys)"
- name[Group1]= "Switzerland - French, Sun dead keys";
-};
-
-partial alphanumeric_keys
-xkb_symbols "fr_nodeadkeys" {
- // modify the basic Swiss French layout not to have any dead keys
- include "ch(fr)"
- name[Group1]= "Switzerland - French, eliminate dead keys";
- key <AE11> { [ apostrophe, question, acute ] };
- key <AE12> { [ asciicircum, grave, asciitilde ] };
- key <AD12> { [ diaeresis, exclam, bracketright ] };
-};
-
-// Copied from macintosh_vndr/ch
-// 03.01.2003
-// Andreas Tobler <a.tobler@schweiz.ch>
-// modified for Swiss German Apple Extended Keyboard II
-
-partial alphanumeric_keys
-xkb_symbols "de_mac" {
-
- name[Group1]= "Switzerland - German (Macintosh)";
-
- // Alphanumeric section
-
- key <AE01> { [ 1, plus, plusminus, infinity ] };
- key <AE02> { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] };
- key <AE03> { [ 3, asterisk, numbersign, leftcaret ] };
- // not displayed here
- key <AE04> { [ 4, ccedilla, Ccedilla, slash ] };
- key <AE05> { [ 5, percent, bracketleft ] };
- key <AE06> { [ 6, ampersand, bracketright ] };
- key <AE07> { [ 7, slash, bar, backslash ] };
- key <AE08> { [ 8, parenleft, braceleft, Ograve ] };
- key <AE09> { [ 9, parenright, braceright, Ocircumflex ] };
- key <AE10> { [ 0, equal, notequal, Uacute ] };
- key <AE11> { [ apostrophe, question, questiondown, NoSymbol ] };
- key <AE12> { [ dead_circumflex,dead_grave, dead_acute, asciicircum ] };
- key <AD01> { [ q, Q, oe, OE ] };
- key <AD02> { [ w, W, Greek_SIGMA, Aacute ] };
- key <AD03> { [ e, E, EuroSign, Ediaeresis ] };
- key <AD04> { [ r, R, registered, Egrave ] };
- key <AD05> { [ t, T, dagger, Icircumflex ] };
- key <AD06> { [ z, Z, Greek_OMEGA, Iacute ] };
- key <AD07> { [ u, U, degree, Ugrave ] };
- key <AD08> { [ i, I, exclamdown, idotless ] };
- key <AD09> { [ o, O, oslash, Ooblique ] };
- key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
- key <AD11> { [ udiaeresis, egrave, section, ydiaeresis ] };
- key <AD12> { [ dead_diaeresis, exclam, grave, apostrophe ] };
- key <AC01> { [ a, A, aring, Aring ] };
- key <AC02> { [ s, S, ssharp, NoSymbol ] };
- // ligature fl
- key <AC03> { [ d, D, Greek_sigma, NoSymbol ] };
- // partialderivative is not available here att
- key <AC04> { [ f, F, function, doubledagger ] };
- key <AC05> { [ g, G, at, comma ] };
- key <AC06> { [ h, H, ordfeminine, periodcentered ] };
- key <AC07> { [ j, J, masculine, eth ] };
- key <AC08> { [ k, K, Greek_DELTA, macron ] };
- key <AC09> { [ l, L, notsign, caret ] };
- key <AC10> { [ odiaeresis, eacute, cent, breve ] };
- key <AC11> { [ adiaeresis, agrave, ae, AE ] };
- key <AB01> { [ y, Y, yen, Ydiaeresis ] };
- key <AB02> { [ x, X, similarequal, trademark ] };
- key <AB03> { [ c, C, copyright, NoSymbol ] };
- key <AB04> { [ v, V, radical, diamond ] };
- key <AB05> { [ b, B, integral, NoSymbol ] };
- key <AB06> { [ n, N, dead_tilde, enopencircbullet ] };
- // to be fixed att
- key <AB07> { [ m, M, mu, dead_abovering ] };
- // not sure att
- key <AB08> { [ comma, semicolon, guillemotleft, guillemotright ] };
- key <AB09> { [ period, colon, ellipsis, division ] };
- key <AB10> { [ minus, underscore, hyphen, emdash ] };
- key <TLDE> { [ section, degree, NoSymbol, NoSymbol ] };
- // ligature fi // per mille
- key <SPCE> { [ space, nobreakspace, nobreakspace ] };
- key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] };
- key <BKSL> { [ dollar, sterling, paragraph, enfilledcircbullet ] };
-
- include "kpdl(comma)"
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "fr_mac" {
-
- // Describes the differences between a very simple US/ASCII
- // keyboard and a very simple Swiss/French keybaord
-
- include "ch(de_mac)"
- name[Group1]= "Switzerland - French (Macintosh)";
-
- override key <AD11> {
- [ egrave, udiaeresis, bracketleft ]
- };
- override key <AC10> {
- [ eacute, odiaeresis ]
- };
- override key <AC11> {
- [ agrave, adiaeresis, braceleft ]
- };
-};
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ include "latin"
+
+ // Alphanumeric section
+ name[Group1]= "German (Switzerland)";
+ key <TLDE> { [ section, degree ] };
+ key <AE01> { [ 1, plus, bar, exclamdown ] };
+ key <AE02> { [ 2, quotedbl, at, oneeighth ] };
+ key <AE03> { [ 3, asterisk, numbersign ] };
+ key <AE04> { [ 4, ccedilla ] };
+ key <AE05> { [ 5, percent ] };
+ key <AE06> { [ 6, ampersand, notsign ] };
+ key <AE07> { [ 7, slash, bar ] };
+ key <AE08> { [ 8, parenleft, cent ] };
+ key <AE09> { [ 9, parenright ] };
+ key <AE10> { [ 0, equal ] };
+ key <AE11> { [ apostrophe, question, dead_acute ] };
+ key <AE12> { [ dead_circumflex, dead_grave, dead_tilde ] };
+
+ key <AD03> { [ e, E, EuroSign ] };
+ key <AD06> { [ z, Z ] };
+ key <AD11> { [ udiaeresis, egrave, bracketleft ] };
+ key <AD12> { [ dead_diaeresis, exclam, bracketright ] };
+
+ key <AC10> { [ odiaeresis, eacute ] };
+ key <AC11> { [ adiaeresis, agrave, braceleft ] };
+ key <BKSL> { [ dollar, sterling, braceright ] };
+
+ key <LSGT> { [ less, greater, backslash, brokenbar ] };
+ key <AB01> { [ y, Y ] };
+ key <AB08> { [ comma, semicolon ] };
+ key <AB09> { [ period, colon ] };
+ key <AB10> { [ minus, underscore ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "legacy" {
+ include "ch(basic)"
+
+ name[Group1]= "German (Switzerland, legacy)";
+ key <AE07> { [ 7, slash, brokenbar ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "de" {
+ include "ch(basic)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "de_Sundeadkeys" {
+ // modify the basic Swiss German layout to use Sun dead keys
+ include "ch(basic)"
+ key <AE11> { [ apostrophe, question, dead_acute ] };
+ key <AE12> { [ dead_circumflex, dead_grave, dead_tilde ] };
+ key <AD12> { [ dead_diaeresis, exclam, bracketright ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "de_sundeadkeys" {
+ include "ch(de_Sundeadkeys)"
+ name[Group1]= "German (Switzerland, Sun dead keys)";
+};
+
+partial alphanumeric_keys
+xkb_symbols "de_nodeadkeys" {
+ // modify the basic Swiss German layout not to have any dead keys
+ include "ch(basic)"
+ name[Group1]= "German (Switzerland, eliminate dead keys)";
+ key <AE11> { [ apostrophe, question, acute ] };
+ key <AE12> { [ asciicircum, grave, asciitilde ] };
+ key <AD12> { [ diaeresis, exclam, bracketright ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "fr" {
+
+ // Describes the differences between a very simple US/ASCII
+ // keyboard and a very simple Swiss/French keybaord
+
+ include "ch(basic)"
+ name[Group1]= "French (Switzerland)";
+
+ override key <AD11> {
+ [ egrave, udiaeresis, bracketleft ]
+ };
+ override key <AC10> {
+ [ eacute, odiaeresis ]
+ };
+ override key <AC11> {
+ [ agrave, adiaeresis, braceleft ]
+ };
+};
+
+partial alphanumeric_keys
+xkb_symbols "fr_Sundeadkeys" {
+ // modify the basic Swiss French layout to use Sun dead keys
+ include "ch(fr)"
+ key <AE11> { [ apostrophe, question, dead_acute ] };
+ key <AE12> { [ dead_circumflex, dead_grave, dead_tilde ] };
+ key <AD12> { [ dead_diaeresis, exclam, bracketright ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "fr_sundeadkeys" {
+ include "ch(fr_Sundeadkeys)"
+ name[Group1]= "French (Switzerland, Sun dead keys)";
+};
+
+partial alphanumeric_keys
+xkb_symbols "fr_nodeadkeys" {
+ // modify the basic Swiss French layout not to have any dead keys
+ include "ch(fr)"
+ name[Group1]= "French (Switzerland, eliminate dead keys)";
+ key <AE11> { [ apostrophe, question, acute ] };
+ key <AE12> { [ asciicircum, grave, asciitilde ] };
+ key <AD12> { [ diaeresis, exclam, bracketright ] };
+};
+
+// Copied from macintosh_vndr/ch
+// 03.01.2003
+// Andreas Tobler <a.tobler@schweiz.ch>
+// modified for Swiss German Apple Extended Keyboard II
+
+partial alphanumeric_keys
+xkb_symbols "de_mac" {
+
+ name[Group1]= "German (Switzerland, Macintosh)";
+
+ // Alphanumeric section
+
+ key <AE01> { [ 1, plus, plusminus, infinity ] };
+ key <AE02> { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] };
+ key <AE03> { [ 3, asterisk, numbersign, leftcaret ] };
+ // not displayed here
+ key <AE04> { [ 4, ccedilla, Ccedilla, slash ] };
+ key <AE05> { [ 5, percent, bracketleft ] };
+ key <AE06> { [ 6, ampersand, bracketright ] };
+ key <AE07> { [ 7, slash, bar, backslash ] };
+ key <AE08> { [ 8, parenleft, braceleft, Ograve ] };
+ key <AE09> { [ 9, parenright, braceright, Ocircumflex ] };
+ key <AE10> { [ 0, equal, notequal, Uacute ] };
+ key <AE11> { [ apostrophe, question, questiondown, NoSymbol ] };
+ key <AE12> { [ dead_circumflex,dead_grave, dead_acute, asciicircum ] };
+ key <AD01> { [ q, Q, oe, OE ] };
+ key <AD02> { [ w, W, Greek_SIGMA, Aacute ] };
+ key <AD03> { [ e, E, EuroSign, Ediaeresis ] };
+ key <AD04> { [ r, R, registered, Egrave ] };
+ key <AD05> { [ t, T, dagger, Icircumflex ] };
+ key <AD06> { [ z, Z, Greek_OMEGA, Iacute ] };
+ key <AD07> { [ u, U, degree, Ugrave ] };
+ key <AD08> { [ i, I, exclamdown, idotless ] };
+ key <AD09> { [ o, O, oslash, Ooblique ] };
+ key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
+ key <AD11> { [ udiaeresis, egrave, section, ydiaeresis ] };
+ key <AD12> { [ dead_diaeresis, exclam, grave, apostrophe ] };
+ key <AC01> { [ a, A, aring, Aring ] };
+ key <AC02> { [ s, S, ssharp, NoSymbol ] };
+ // ligature fl
+ key <AC03> { [ d, D, Greek_sigma, NoSymbol ] };
+ // partialderivative is not available here att
+ key <AC04> { [ f, F, function, doubledagger ] };
+ key <AC05> { [ g, G, at, comma ] };
+ key <AC06> { [ h, H, ordfeminine, periodcentered ] };
+ key <AC07> { [ j, J, masculine, eth ] };
+ key <AC08> { [ k, K, Greek_DELTA, macron ] };
+ key <AC09> { [ l, L, notsign, caret ] };
+ key <AC10> { [ odiaeresis, eacute, cent, breve ] };
+ key <AC11> { [ adiaeresis, agrave, ae, AE ] };
+ key <AB01> { [ y, Y, yen, Ydiaeresis ] };
+ key <AB02> { [ x, X, similarequal, trademark ] };
+ key <AB03> { [ c, C, copyright, NoSymbol ] };
+ key <AB04> { [ v, V, radical, diamond ] };
+ key <AB05> { [ b, B, integral, NoSymbol ] };
+ key <AB06> { [ n, N, dead_tilde, enopencircbullet ] };
+ // to be fixed att
+ key <AB07> { [ m, M, mu, dead_abovering ] };
+ // not sure att
+ key <AB08> { [ comma, semicolon, guillemotleft, guillemotright ] };
+ key <AB09> { [ period, colon, ellipsis, division ] };
+ key <AB10> { [ minus, underscore, hyphen, emdash ] };
+ key <TLDE> { [ section, degree, NoSymbol, NoSymbol ] };
+ // ligature fi // per mille
+ key <SPCE> { [ space, nobreakspace, nobreakspace ] };
+ key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] };
+ key <BKSL> { [ dollar, sterling, paragraph, enfilledcircbullet ] };
+
+ include "kpdl(comma)"
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "fr_mac" {
+
+ // Describes the differences between a very simple US/ASCII
+ // keyboard and a very simple Swiss/French keybaord
+
+ include "ch(de_mac)"
+ name[Group1]= "French (Switzerland, Macintosh)";
+
+ override key <AD11> {
+ [ egrave, udiaeresis, bracketleft ]
+ };
+ override key <AC10> {
+ [ eacute, odiaeresis ]
+ };
+ override key <AC11> {
+ [ agrave, adiaeresis, braceleft ]
+ };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/epo b/xorg-server/xkeyboard-config/symbols/epo
index d5bd762fe..840501119 100644
--- a/xorg-server/xkeyboard-config/symbols/epo
+++ b/xorg-server/xkeyboard-config/symbols/epo
@@ -1,139 +1,139 @@
-// Esperanto keyboard maps -- "Ekverto"
-//
-// Ekverto A ("legacy") (2004-01-10)
-// Chusslove Illich (Ĉaslavo Iliĉo) <caslav.ilic@gmx.net>
-//
-// Ekverto B ("basic") (2006-12-02)
-// Benno Schulenberg (Beno Sĥilenberĥ) <bensberg@justemail.net>
-// Chusslove Illich (Ĉaslavo Iliĉo) <caslav.ilic@gmx.net>
-
-default partial alphanumeric_keys
-xkb_symbols "basic" {
-
- name[Group1]= "Esperanto";
-
- include "us(basic)"
-
- key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
-
- key <AD01> { [ scircumflex, Scircumflex, q, Q ] };
- key <AD02> { [ gcircumflex, Gcircumflex, w, W ] };
- key <AB02> { [ ccircumflex, Ccircumflex, x, X ] };
- key <AD06> { [ ubreve, Ubreve, y, Y ] };
-
- key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
-
- key <AD11> { [ jcircumflex, Jcircumflex, bracketleft, braceleft ] };
- key <AD12> { [ hcircumflex, Hcircumflex, bracketright, braceright ] };
-
- key <AD09> { [ o, O, braceleft, braceleft ] };
- key <AD10> { [ p, P, braceright, braceright ] };
-
- key <AC01> { [ a, A, leftsinglequotemark, NoSymbol ] };
- key <AC02> { [ s, S, rightsinglequotemark, NoSymbol ] };
- key <AC03> { [ d, D, leftdoublequotemark, NoSymbol ] };
- key <AC04> { [ f, F, rightdoublequotemark, NoSymbol ] };
-
- key <AB06> { [ n, N, endash, endash ] };
- key <AB07> { [ m, M, emdash, emdash ] };
-
- key.type[Group1] = "FOUR_LEVEL";
-
- key <AE05> { [ 5, percent, EuroSign, EuroSign ] };
-
- include "level3(ralt_switch)"
-};
-
-
-partial alphanumeric_keys
-xkb_symbols "legacy" {
-
- name[Group1]= "Esperanto - displaced semicolon and quote (obsolete)";
-
- key.type[Group1] = "FOUR_LEVEL";
-
- key <TLDE> { [ grave, asciitilde, NoSymbol, NoSymbol ] };
- key <AE01> { [ 1, exclam, NoSymbol, NoSymbol ] };
- key <AE02> { [ 2, quotedbl, NoSymbol, NoSymbol ] };
- key <AE03> { [ 3, numbersign, NoSymbol, NoSymbol ] };
- key <AE04> { [ 4, dollar, NoSymbol, NoSymbol ] };
- key <AE05> { [ 5, percent, NoSymbol, NoSymbol ] };
- key <AE06> { [ 6, apostrophe, NoSymbol, NoSymbol ] };
- key <AE07> { [ 7, ampersand, NoSymbol, NoSymbol ] };
- key <AE08> { [ 8, asterisk, NoSymbol, NoSymbol ] };
- key <AE09> { [ 9, parenleft, NoSymbol, NoSymbol ] };
- key <AE10> { [ 0, parenright, NoSymbol, NoSymbol ] };
- key <AE11> { [ minus, underscore, NoSymbol, NoSymbol ] };
- key <AE12> { [ equal, plus, NoSymbol, NoSymbol ] };
-
- key <AB08> { [ comma, semicolon, NoSymbol, NoSymbol ] };
- key <AB09> { [ period, colon, NoSymbol, NoSymbol ] };
- key <AB10> { [ slash, question, NoSymbol, NoSymbol ] };
-
- key <AD11> { [ bracketleft, braceleft, NoSymbol, NoSymbol ] };
- key <AD12> { [ bracketright, braceright, NoSymbol, NoSymbol ] };
-
- key <BKSL> { [ backslash, bar, NoSymbol, NoSymbol ] };
- key <LSGT> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
-
- key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
-
- key <AD01> { [ scircumflex, Scircumflex, at, NoSymbol ] };
- key <AD02> { [ jcircumflex, Jcircumflex, asciicircum, NoSymbol ] };
- key <AD03> { [ e, E, EuroSign, NoSymbol ] };
- key <AD04> { [ r, R, emdash, NoSymbol ] };
- key <AD05> { [ t, T, endash, NoSymbol ] };
- key <AD06> { [ gcircumflex, Gcircumflex, NoSymbol, NoSymbol ] };
- key <AD07> { [ u, U, NoSymbol, NoSymbol ] };
- key <AD08> { [ i, I, NoSymbol, NoSymbol ] };
- key <AD09> { [ o, O, NoSymbol, NoSymbol ] };
- key <AD10> { [ p, P, NoSymbol, NoSymbol ] };
-
- key <AC01> { [ a, A, less, NoSymbol ] };
- key <AC02> { [ s, S, greater, NoSymbol ] };
- key <AC03> { [ d, D, leftdoublequotemark, NoSymbol ] };
- key <AC04> { [ f, F, rightdoublequotemark, NoSymbol ] };
- key <AC05> { [ g, G, NoSymbol, NoSymbol ] };
- key <AC06> { [ h, H, NoSymbol, NoSymbol ] };
- key <AC07> { [ j, J, NoSymbol, NoSymbol ] };
- key <AC08> { [ k, K, NoSymbol, NoSymbol ] };
- key <AC09> { [ l, L, NoSymbol, NoSymbol ] };
- key <AC10> { [ ubreve, Ubreve, NoSymbol, NoSymbol ] };
- key <AC11> { [ hcircumflex, Hcircumflex, NoSymbol, NoSymbol ] };
-
- key <AB01> { [ z, Z, leftsinglequotemark, NoSymbol ] };
- key <AB02> { [ ccircumflex, Ccircumflex, rightsinglequotemark, NoSymbol ] };
- key <AB03> { [ c, C, NoSymbol, NoSymbol ] };
- key <AB04> { [ v, V, NoSymbol, NoSymbol ] };
- key <AB05> { [ b, B, NoSymbol, NoSymbol ] };
- key <AB06> { [ n, N, NoSymbol, NoSymbol ] };
- key <AB07> { [ m, M, NoSymbol, NoSymbol ] };
-
- include "level3(ralt_switch)"
-};
-
-// Add Esperanto supersignos to the corresponding key in a Qwerty keyboard.
-// This is a generic "component" that is not used to the other layouts in this
-// file but it is meant to be applied to any layout. If you have any questions
-// ask J. Pablo Fernández <pupeno@pupeno.com>.
-partial
-xkb_symbols "qwerty" {
- key <AB03> { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] };
- key <AC05> { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] };
- key <AC06> { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] };
- key <AC07> { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] };
- key <AC02> { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] };
- key <AD07> { [ NoSymbol, NoSymbol, ubreve, Ubreve ] };
-};
-
-// Add Esperanto supersignos to the corresponding key in a Dvorak keyboard.
-// Same comment as the Qwerty one above applies.
-partial
-xkb_symbols "dvorak" {
- key <AD08> { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] };
- key <AD07> { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] };
- key <AC07> { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] };
- key <AB03> { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] };
- key <AC10> { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] };
- key <AC04> { [ NoSymbol, NoSymbol, ubreve, Ubreve ] };
-};
+// Esperanto keyboard maps -- "Ekverto"
+//
+// Ekverto A ("legacy") (2004-01-10)
+// Chusslove Illich (Ĉaslavo Iliĉo) <caslav.ilic@gmx.net>
+//
+// Ekverto B ("basic") (2006-12-02)
+// Benno Schulenberg (Beno Sĥilenberĥ) <bensberg@justemail.net>
+// Chusslove Illich (Ĉaslavo Iliĉo) <caslav.ilic@gmx.net>
+
+default partial alphanumeric_keys
+xkb_symbols "basic" {
+
+ name[Group1]= "Esperanto";
+
+ include "us(basic)"
+
+ key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
+
+ key <AD01> { [ scircumflex, Scircumflex, q, Q ] };
+ key <AD02> { [ gcircumflex, Gcircumflex, w, W ] };
+ key <AB02> { [ ccircumflex, Ccircumflex, x, X ] };
+ key <AD06> { [ ubreve, Ubreve, y, Y ] };
+
+ key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
+
+ key <AD11> { [ jcircumflex, Jcircumflex, bracketleft, braceleft ] };
+ key <AD12> { [ hcircumflex, Hcircumflex, bracketright, braceright ] };
+
+ key <AD09> { [ o, O, braceleft, braceleft ] };
+ key <AD10> { [ p, P, braceright, braceright ] };
+
+ key <AC01> { [ a, A, leftsinglequotemark, NoSymbol ] };
+ key <AC02> { [ s, S, rightsinglequotemark, NoSymbol ] };
+ key <AC03> { [ d, D, leftdoublequotemark, NoSymbol ] };
+ key <AC04> { [ f, F, rightdoublequotemark, NoSymbol ] };
+
+ key <AB06> { [ n, N, endash, endash ] };
+ key <AB07> { [ m, M, emdash, emdash ] };
+
+ key.type[Group1] = "FOUR_LEVEL";
+
+ key <AE05> { [ 5, percent, EuroSign, EuroSign ] };
+
+ include "level3(ralt_switch)"
+};
+
+
+partial alphanumeric_keys
+xkb_symbols "legacy" {
+
+ name[Group1]= "Esperanto (displaced semicolon and quote, obsolete)";
+
+ key.type[Group1] = "FOUR_LEVEL";
+
+ key <TLDE> { [ grave, asciitilde, NoSymbol, NoSymbol ] };
+ key <AE01> { [ 1, exclam, NoSymbol, NoSymbol ] };
+ key <AE02> { [ 2, quotedbl, NoSymbol, NoSymbol ] };
+ key <AE03> { [ 3, numbersign, NoSymbol, NoSymbol ] };
+ key <AE04> { [ 4, dollar, NoSymbol, NoSymbol ] };
+ key <AE05> { [ 5, percent, NoSymbol, NoSymbol ] };
+ key <AE06> { [ 6, apostrophe, NoSymbol, NoSymbol ] };
+ key <AE07> { [ 7, ampersand, NoSymbol, NoSymbol ] };
+ key <AE08> { [ 8, asterisk, NoSymbol, NoSymbol ] };
+ key <AE09> { [ 9, parenleft, NoSymbol, NoSymbol ] };
+ key <AE10> { [ 0, parenright, NoSymbol, NoSymbol ] };
+ key <AE11> { [ minus, underscore, NoSymbol, NoSymbol ] };
+ key <AE12> { [ equal, plus, NoSymbol, NoSymbol ] };
+
+ key <AB08> { [ comma, semicolon, NoSymbol, NoSymbol ] };
+ key <AB09> { [ period, colon, NoSymbol, NoSymbol ] };
+ key <AB10> { [ slash, question, NoSymbol, NoSymbol ] };
+
+ key <AD11> { [ bracketleft, braceleft, NoSymbol, NoSymbol ] };
+ key <AD12> { [ bracketright, braceright, NoSymbol, NoSymbol ] };
+
+ key <BKSL> { [ backslash, bar, NoSymbol, NoSymbol ] };
+ key <LSGT> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
+
+ key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
+
+ key <AD01> { [ scircumflex, Scircumflex, at, NoSymbol ] };
+ key <AD02> { [ jcircumflex, Jcircumflex, asciicircum, NoSymbol ] };
+ key <AD03> { [ e, E, EuroSign, NoSymbol ] };
+ key <AD04> { [ r, R, emdash, NoSymbol ] };
+ key <AD05> { [ t, T, endash, NoSymbol ] };
+ key <AD06> { [ gcircumflex, Gcircumflex, NoSymbol, NoSymbol ] };
+ key <AD07> { [ u, U, NoSymbol, NoSymbol ] };
+ key <AD08> { [ i, I, NoSymbol, NoSymbol ] };
+ key <AD09> { [ o, O, NoSymbol, NoSymbol ] };
+ key <AD10> { [ p, P, NoSymbol, NoSymbol ] };
+
+ key <AC01> { [ a, A, less, NoSymbol ] };
+ key <AC02> { [ s, S, greater, NoSymbol ] };
+ key <AC03> { [ d, D, leftdoublequotemark, NoSymbol ] };
+ key <AC04> { [ f, F, rightdoublequotemark, NoSymbol ] };
+ key <AC05> { [ g, G, NoSymbol, NoSymbol ] };
+ key <AC06> { [ h, H, NoSymbol, NoSymbol ] };
+ key <AC07> { [ j, J, NoSymbol, NoSymbol ] };
+ key <AC08> { [ k, K, NoSymbol, NoSymbol ] };
+ key <AC09> { [ l, L, NoSymbol, NoSymbol ] };
+ key <AC10> { [ ubreve, Ubreve, NoSymbol, NoSymbol ] };
+ key <AC11> { [ hcircumflex, Hcircumflex, NoSymbol, NoSymbol ] };
+
+ key <AB01> { [ z, Z, leftsinglequotemark, NoSymbol ] };
+ key <AB02> { [ ccircumflex, Ccircumflex, rightsinglequotemark, NoSymbol ] };
+ key <AB03> { [ c, C, NoSymbol, NoSymbol ] };
+ key <AB04> { [ v, V, NoSymbol, NoSymbol ] };
+ key <AB05> { [ b, B, NoSymbol, NoSymbol ] };
+ key <AB06> { [ n, N, NoSymbol, NoSymbol ] };
+ key <AB07> { [ m, M, NoSymbol, NoSymbol ] };
+
+ include "level3(ralt_switch)"
+};
+
+// Add Esperanto supersignos to the corresponding key in a Qwerty keyboard.
+// This is a generic "component" that is not used to the other layouts in this
+// file but it is meant to be applied to any layout. If you have any questions
+// ask J. Pablo Fernández <pupeno@pupeno.com>.
+partial
+xkb_symbols "qwerty" {
+ key <AB03> { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] };
+ key <AC05> { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] };
+ key <AC06> { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] };
+ key <AC07> { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] };
+ key <AC02> { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] };
+ key <AD07> { [ NoSymbol, NoSymbol, ubreve, Ubreve ] };
+};
+
+// Add Esperanto supersignos to the corresponding key in a Dvorak keyboard.
+// Same comment as the Qwerty one above applies.
+partial
+xkb_symbols "dvorak" {
+ key <AD08> { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] };
+ key <AD07> { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] };
+ key <AC07> { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] };
+ key <AB03> { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] };
+ key <AC10> { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] };
+ key <AC04> { [ NoSymbol, NoSymbol, ubreve, Ubreve ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/es b/xorg-server/xkeyboard-config/symbols/es
index 88b390d97..f8483bb26 100644
--- a/xorg-server/xkeyboard-config/symbols/es
+++ b/xorg-server/xkeyboard-config/symbols/es
@@ -7,7 +7,7 @@ xkb_symbols "basic" {
include "latin(type4)"
- name[Group1]="Spain";
+ name[Group1]="Spanish";
key <AE01> { [ 1, exclam, bar, exclamdown ] };
key <AE03> { [ 3, periodcentered, numbersign, sterling ] };
@@ -42,7 +42,7 @@ xkb_symbols "sundeadkeys" {
include "es(Sundeadkeys)"
- name[Group1]="Spain - Sun dead keys";
+ name[Group1]="Spanish (Sun dead keys)";
};
partial alphanumeric_keys
@@ -50,7 +50,7 @@ xkb_symbols "nodeadkeys" {
include "es(basic)"
- name[Group1]="Spain - Eliminate dead keys";
+ name[Group1]="Spanish (eliminate dead keys)";
key <AD11> { [ grave, asciicircum, bracketleft, degree ] };
key <AD12> { [ plus, asterisk, bracketright, macron ] };
@@ -64,7 +64,7 @@ xkb_symbols "nodeadkeys" {
partial alphanumeric_keys
xkb_symbols "dvorak" {
- name[Group1]="Spain - Dvorak";
+ name[Group1]="Spanish (Dvorak)";
// Alphanumeric section
key <TLDE> {[ masculine, ordfeminine, backslash, degree ]};
@@ -127,7 +127,7 @@ xkb_symbols "cat" {
include "es(basic)"
- name[Group1]="Spain - Catalan variant with middle-dot L";
+ name[Group1]="Catalan (Spain, with middle-dot L)";
key <AC09> { [ l, L, 0x1000140, 0x100013F ] };
};
@@ -137,7 +137,7 @@ xkb_symbols "ast" {
include "es(basic)"
- name[Group1]="Spain - Asturian variant with bottom-dot H and bottom-dot L";
+ name[Group1]="Asturian (Spain, with bottom-dot H and bottom-dot L)";
key <AC06> { [ h, H, 0x1001E25, 0x1001E24 ] };
key <AC09> { [ l, L, 0x1001E37, 0x1001E36 ] };
@@ -151,7 +151,7 @@ xkb_symbols "mac" {
// keyboard and a very simple Spanish keybaord
include "es"
- name[Group1]= "Spain - Macintosh";
+ name[Group1]= "Spanish (Macintosh)";
};
@@ -159,7 +159,7 @@ partial alphanumeric_keys
xkb_symbols "olpc" {
include "us(basic)"
- name[Group1]="Spain";
+ name[Group1]="Spanish";
key <TLDE> { [ masculine, ordfeminine ] };
key <AE01> { [ 1, exclam, bar ] };
@@ -196,7 +196,7 @@ xkb_symbols "deadtilde" {
include "es(basic)"
- name[Group1]="Spain - Include dead tilde";
+ name[Group1]="Spanish (include dead tilde)";
key <AE04> { [ 4, dollar, dead_tilde, dollar ] };
};
@@ -208,7 +208,7 @@ xkb_symbols "olpc2" {
// Contact: Sayamindu Dasgupta <sayamindu@laptop.org>
include "us(olpc)"
- name[Group1]="Spain - OLPC2";
+ name[Group1]="Spanish (OLPC2)";
key <AE03> { [ 3, numbersign, dead_grave, dead_grave] }; // combining grave
key <I236> { [ XF86Start ] };
diff --git a/xorg-server/xkeyboard-config/symbols/et b/xorg-server/xkeyboard-config/symbols/et
index 7d15967e2..dccf9ca06 100644
--- a/xorg-server/xkeyboard-config/symbols/et
+++ b/xorg-server/xkeyboard-config/symbols/et
@@ -8,7 +8,7 @@
partial default alphanumeric_keys
xkb_symbols "basic" {
include "et(olpc)"
- name[Group1]="Ethiopia";
+ name[Group1]="Amharic";
};
partial alphanumeric_keys
diff --git a/xorg-server/xkeyboard-config/symbols/fi b/xorg-server/xkeyboard-config/symbols/fi
index ec944e998..d2c43fb9c 100644
--- a/xorg-server/xkeyboard-config/symbols/fi
+++ b/xorg-server/xkeyboard-config/symbols/fi
@@ -189,7 +189,7 @@ xkb_symbols "smi" {
include "no(smi)"
- name[Group1]="Saami (Finland)";
+ name[Group1]="Northern Saami (Finland)";
key <AC10> { [ odiaeresis, Odiaeresis, oslash, Oslash ] };
key <AC11> { [ adiaeresis, Adiaeresis, ae, AE ] };
diff --git a/xorg-server/xkeyboard-config/symbols/gb b/xorg-server/xkeyboard-config/symbols/gb
index 60987e68c..d460d3d61 100644
--- a/xorg-server/xkeyboard-config/symbols/gb
+++ b/xorg-server/xkeyboard-config/symbols/gb
@@ -1,199 +1,199 @@
-// based on a keyboard map from an 'xkb/symbols/gb' file
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- // Describes the differences between a very simple en_US
- // keyboard and a very simple U.K. keyboard layout defined by
- // the SVR4 European Language Supplement and sometimes also
- // known as the IBM 166 layout.
-
- include "latin"
-
- name[Group1]="United Kingdom";
-
- key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
- key <AE03> { [ 3, sterling, threesuperior, sterling ] };
- key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
-
- key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
- key <TLDE> { [ grave, notsign, bar, bar ] };
-
- key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
- key <LSGT> { [ backslash, bar, bar, brokenbar ] };
-
- include "level3(ralt_switch_multikey)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "intl" {
-
- // Describes the differences between a very simple en_US
- // keyboard and a very simple U.K. keyboard layout with
- // dead keys. By Phil Jones (philjones1@blueyonder.co.uk)
-
- // Includes the following keys:
- // dead_grave
- // dead_acute
- // dead_circumflex
- // dead_tilde
- // dead_diaeresis
-
- include "latin"
-
- name[Group1]="United Kingdom - International (with dead keys)";
-
- key <AE02> { [ 2, dead_diaeresis, twosuperior, onehalf ] };
- key <AE03> { [ 3, sterling, threesuperior, onethird ] };
- key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
- key <AE06> { [ 6, dead_circumflex, NoSymbol, onesixth ] };
-
- key <AC11> { [ dead_acute, at, apostrophe, bar ] };
- key <TLDE> { [ dead_grave, notsign, bar, bar ] };
-
- key <BKSL> { [ numbersign, dead_tilde, bar, bar ] };
- key <LSGT> { [ backslash, bar, bar, bar ] };
-
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "extd" {
- // Clone of the Microsoft "United Kingdom - Extended" layout, which
- // includes dead keys for: grave; diaeresis; circumflex; tilde; and
- // accute. It also enables direct access to accute characters using
- // the Multi_key (Alt Gr).
- //
- // Taken from...
- // "Windows Keyboard Layouts"
- // http://msdn.microsoft.com/en-us/goglobal/bb964651.aspx
- //
- // -- Jonathan Miles <jon@cybah.co.uk>
-
- include "latin"
-
- name[Group1]="United Kingdom - Extended - Winkeys";
-
- // Alphanumeric section
- key <TLDE> { [ dead_grave, notsign, brokenbar, NoSymbol ] };
-
- key <AE02> { [ 2, quotedbl, dead_diaeresis, onehalf ] };
- key <AE03> { [ 3, sterling, threesuperior, onethird ] };
- key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
- key <AE06> { [ 6, asciicircum, dead_circumflex, NoSymbol ] };
-
- key <AD02> { [ w, W, wacute, Wacute ] };
- key <AD03> { [ e, E, eacute, Eacute ] };
- key <AD06> { [ y, Y, yacute, Yacute ] };
- key <AD07> { [ u, U, uacute, Uacute ] };
- key <AD08> { [ i, I, iacute, Iacute ] };
- key <AD09> { [ o, O, oacute, Oacute ] };
-
- key <AC01> { [ a, A, aacute, Aacute ] };
- key <AC11> { [ apostrophe, at, dead_acute, NoSymbol ] };
-
- key <AB03> { [ c, C, ccedilla, Ccedilla ] };
-
- key <BKSL> { [ numbersign, asciitilde, dead_tilde, NoSymbol ] };
- key <LSGT> { [ backslash, bar, NoSymbol, NoSymbol ] };
- // End alphanumeric section
-
- include "level3(ralt_switch)"
-};
-
-// Describe the differences between the US Colemak layout
-// and a UK variant. By Andy Buckley (andy@insectnation.org)
-
-partial alphanumeric_keys
-xkb_symbols "colemak" {
- include "us(colemak)"
-
- name[Group1]="United Kingdom - Colemak";
-
- key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
- key <AE03> { [ 3, sterling, threesuperior, sterling ] };
- key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
-
- key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
- key <TLDE> { [ grave, notsign, bar, bar ] };
-
- key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
- key <LSGT> { [ backslash, bar, bar, brokenbar ] };
-
- include "level3(ralt_switch_multikey)"
-};
-
-
-// Dvorak (UK) keymap (by odaen) allowing the usage of
-// the £ and ? key and swapping the @ and " keys.
-
-partial alphanumeric_keys
-xkb_symbols "dvorak" {
- include "us(dvorak-alt-intl)"
-
- name[Group1]="United Kingdom - Dvorak";
-
- key <AD01> { [ apostrophe, at ] };
- key <AE02> { [ 2, quotedbl, twosuperior, NoSymbol ] };
- key <AE03> { [ 3, sterling, threesuperior, NoSymbol ] };
- key <BKSL> { [ numbersign, asciitilde ] };
- key <LSGT> { [ backslash, bar ] };
- key <TLDE> { [ grave, notsign, bar, bar ] };
-};
-
-// Dvorak letter positions, but punctuation all in the normal UK positions.
-partial alphanumeric_keys
-xkb_symbols "dvorakukp" {
- include "gb(dvorak)"
-
- name[Group1]="United Kingdom - Dvorak (UK Punctuation)";
-
- key <AE11> { [ minus, underscore ] };
- key <AE12> { [ equal, plus ] };
- key <AD11> { [ bracketleft, braceleft ] };
- key <AD12> { [ bracketright, braceright ] };
- key <AD01> { [ slash, question ] };
- key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
-};
-
-// Copied from macintosh_vndr/gb
-partial alphanumeric_keys
-xkb_symbols "mac" {
-
- // Describes the differences between a very simple en_US
- // keyboard and a very simple U.K. keyboard layout
-
- include "latin"
-
- name[Group1]= "United Kingdom - Macintosh";
-
- key <AE02> { [ 2, at, EuroSign ] };
- key <AE03> { [ 3, sterling, numbersign ] };
-
- // End alphanumeric section
-
- include "level3(ralt_switch)"
-};
-
-
-partial alphanumeric_keys
-xkb_symbols "mac_intl" {
-
- include "latin"
-
- name[Group1]="United Kingdom - Macintosh (International)";
-
- key <AE02> { [ 2, at, EuroSign, onehalf ] };
- key <AE03> { [ 3, sterling, twosuperior, onethird ] };
- key <AE04> { [ 4, dollar, threesuperior, onequarter ] };
- key <AE06> { [ 6, dead_circumflex, NoSymbol, onesixth ] };
- key <AD09> { [ o, O, oe, OE ] };
-
- key <AC11> { [ dead_acute, dead_diaeresis, dead_diaeresis, bar ] }; //dead_doubleacute
- key <TLDE> { [ section, plusminus, notsign, notsign ] }; //dead_grave
-
- key <BKSL> { [ backslash, bar, numbersign, bar ] };
- key <LSGT> { [ dead_grave, dead_tilde, brokenbar, bar ] };
-
- include "level3(ralt_switch)"
-};
+// based on a keyboard map from an 'xkb/symbols/gb' file
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ // Describes the differences between a very simple en_US
+ // keyboard and a very simple U.K. keyboard layout defined by
+ // the SVR4 European Language Supplement and sometimes also
+ // known as the IBM 166 layout.
+
+ include "latin"
+
+ name[Group1]="English (UK)";
+
+ key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
+ key <AE03> { [ 3, sterling, threesuperior, sterling ] };
+ key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
+
+ key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
+ key <TLDE> { [ grave, notsign, bar, bar ] };
+
+ key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
+ key <LSGT> { [ backslash, bar, bar, brokenbar ] };
+
+ include "level3(ralt_switch_multikey)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "intl" {
+
+ // Describes the differences between a very simple en_US
+ // keyboard and a very simple U.K. keyboard layout with
+ // dead keys. By Phil Jones (philjones1@blueyonder.co.uk)
+
+ // Includes the following keys:
+ // dead_grave
+ // dead_acute
+ // dead_circumflex
+ // dead_tilde
+ // dead_diaeresis
+
+ include "latin"
+
+ name[Group1]="English (UK, international with dead keys)";
+
+ key <AE02> { [ 2, dead_diaeresis, twosuperior, onehalf ] };
+ key <AE03> { [ 3, sterling, threesuperior, onethird ] };
+ key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
+ key <AE06> { [ 6, dead_circumflex, NoSymbol, onesixth ] };
+
+ key <AC11> { [ dead_acute, at, apostrophe, bar ] };
+ key <TLDE> { [ dead_grave, notsign, bar, bar ] };
+
+ key <BKSL> { [ numbersign, dead_tilde, bar, bar ] };
+ key <LSGT> { [ backslash, bar, bar, bar ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "extd" {
+ // Clone of the Microsoft "English (UK, Extended" layout, which
+ // includes dead keys for: grave; diaeresis; circumflex; tilde; and
+ // accute. It also enables direct access to accute characters using
+ // the Multi_key (Alt Gr).
+ //
+ // Taken from...
+ // "Windows Keyboard Layouts"
+ // http://msdn.microsoft.com/en-us/goglobal/bb964651.aspx
+ //
+ // -- Jonathan Miles <jon@cybah.co.uk>
+
+ include "latin"
+
+ name[Group1]="English (UK, extended WinKeys)";
+
+ // Alphanumeric section
+ key <TLDE> { [ dead_grave, notsign, brokenbar, NoSymbol ] };
+
+ key <AE02> { [ 2, quotedbl, dead_diaeresis, onehalf ] };
+ key <AE03> { [ 3, sterling, threesuperior, onethird ] };
+ key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
+ key <AE06> { [ 6, asciicircum, dead_circumflex, NoSymbol ] };
+
+ key <AD02> { [ w, W, wacute, Wacute ] };
+ key <AD03> { [ e, E, eacute, Eacute ] };
+ key <AD06> { [ y, Y, yacute, Yacute ] };
+ key <AD07> { [ u, U, uacute, Uacute ] };
+ key <AD08> { [ i, I, iacute, Iacute ] };
+ key <AD09> { [ o, O, oacute, Oacute ] };
+
+ key <AC01> { [ a, A, aacute, Aacute ] };
+ key <AC11> { [ apostrophe, at, dead_acute, NoSymbol ] };
+
+ key <AB03> { [ c, C, ccedilla, Ccedilla ] };
+
+ key <BKSL> { [ numbersign, asciitilde, dead_tilde, NoSymbol ] };
+ key <LSGT> { [ backslash, bar, NoSymbol, NoSymbol ] };
+ // End alphanumeric section
+
+ include "level3(ralt_switch)"
+};
+
+// Describe the differences between the US Colemak layout
+// and a UK variant. By Andy Buckley (andy@insectnation.org)
+
+partial alphanumeric_keys
+xkb_symbols "colemak" {
+ include "us(colemak)"
+
+ name[Group1]="English (UK, Colemak)";
+
+ key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
+ key <AE03> { [ 3, sterling, threesuperior, sterling ] };
+ key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
+
+ key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
+ key <TLDE> { [ grave, notsign, bar, bar ] };
+
+ key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
+ key <LSGT> { [ backslash, bar, bar, brokenbar ] };
+
+ include "level3(ralt_switch_multikey)"
+};
+
+
+// Dvorak (UK) keymap (by odaen) allowing the usage of
+// the £ and ? key and swapping the @ and " keys.
+
+partial alphanumeric_keys
+xkb_symbols "dvorak" {
+ include "us(dvorak-alt-intl)"
+
+ name[Group1]="English (UK, Dvorak)";
+
+ key <AD01> { [ apostrophe, at ] };
+ key <AE02> { [ 2, quotedbl, twosuperior, NoSymbol ] };
+ key <AE03> { [ 3, sterling, threesuperior, NoSymbol ] };
+ key <BKSL> { [ numbersign, asciitilde ] };
+ key <LSGT> { [ backslash, bar ] };
+ key <TLDE> { [ grave, notsign, bar, bar ] };
+};
+
+// Dvorak letter positions, but punctuation all in the normal UK positions.
+partial alphanumeric_keys
+xkb_symbols "dvorakukp" {
+ include "gb(dvorak)"
+
+ name[Group1]="English (UK, Dvorak with UK punctuation)";
+
+ key <AE11> { [ minus, underscore ] };
+ key <AE12> { [ equal, plus ] };
+ key <AD11> { [ bracketleft, braceleft ] };
+ key <AD12> { [ bracketright, braceright ] };
+ key <AD01> { [ slash, question ] };
+ key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
+};
+
+// Copied from macintosh_vndr/gb
+partial alphanumeric_keys
+xkb_symbols "mac" {
+
+ // Describes the differences between a very simple en_US
+ // keyboard and a very simple U.K. keyboard layout
+
+ include "latin"
+
+ name[Group1]= "English (UK, Macintosh)";
+
+ key <AE02> { [ 2, at, EuroSign ] };
+ key <AE03> { [ 3, sterling, numbersign ] };
+
+ // End alphanumeric section
+
+ include "level3(ralt_switch)"
+};
+
+
+partial alphanumeric_keys
+xkb_symbols "mac_intl" {
+
+ include "latin"
+
+ name[Group1]="English (UK, Macintosh international)";
+
+ key <AE02> { [ 2, at, EuroSign, onehalf ] };
+ key <AE03> { [ 3, sterling, twosuperior, onethird ] };
+ key <AE04> { [ 4, dollar, threesuperior, onequarter ] };
+ key <AE06> { [ 6, dead_circumflex, NoSymbol, onesixth ] };
+ key <AD09> { [ o, O, oe, OE ] };
+
+ key <AC11> { [ dead_acute, dead_diaeresis, dead_diaeresis, bar ] }; //dead_doubleacute
+ key <TLDE> { [ section, plusminus, notsign, notsign ] }; //dead_grave
+
+ key <BKSL> { [ backslash, bar, numbersign, bar ] };
+ key <LSGT> { [ dead_grave, dead_tilde, brokenbar, bar ] };
+
+ include "level3(ralt_switch)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/ie b/xorg-server/xkeyboard-config/symbols/ie
index ce9a0e84d..070c9d9a3 100644
--- a/xorg-server/xkeyboard-config/symbols/ie
+++ b/xorg-server/xkeyboard-config/symbols/ie
@@ -1,407 +1,407 @@
-// Irish keyboard map
-
-// Support for Irish (old and new orthography) and English
-// Seamus O Ciardhuain <seoc@cnds.ucd.ie> (19 December 2002)
-
-// The general idea is to provide the characters in ISO 8859-1,
-// ISO 8859-15, ISO 8859-14, CP1252 and "Extended Latin-8".
-// However, not all are accessible directly because there aren't
-// enough keys; some need deadkeys to access them, others the
-// "Multi_key" compose sequences.
-
-// Designed to be similar to the layouts used on Windows
-// and the Macintosh.
-
-// Everything is in Group 1 to be compatible with the
-// multi-layout keyboard support in XFree86 4.3.
-
-// The basic layout is a modern keyboard, but dotted consonants are
-// accessible using a deadkey (AltGr+H or AltGr+W).
-// If a proper Clo Gaelach keyboard is needed, then use the layout
-// defined below as ie(CloGaelach), which gives dotted consonants
-// without use of a deadkey.
-
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- // Modern keyboard for Irish and English
- // - acute-accented vowels as AltGr+vowel and AltGr+Shift+vowel
- // - euro currency sign as AltGr+4
- // - Comhartha Agus (Tironian Sign Et) as AltGr+Shift+7
- // - non-breaking space as AltGr+Space and AltGr+Shift+Space
- // - matches hardware (keys and engraved symbols) for Irish keyboards
-
- name[Group1] = "Ireland";
-
- //
- // Numeric row `1234567890-=
- //
- key <TLDE> { [ grave, notsign, brokenbar, NoSymbol ] };
- key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
- key <AE02> { [ 2, quotedbl, trademark, twosuperior ] };
- key <AE03> { [ 3, sterling, copyright, threesuperior ] };
- key <AE04> { [ 4, dollar, EuroSign, cent ] };
- key <AE05> { [ 5, percent, section, dagger ] };
- key <AE06> { [ 6, asciicircum, dead_circumflex, 0x1002030 ] };
- // per thousand
- key <AE07> { [ 7, ampersand, paragraph, 0x100204A ] };
- // Tironian Et
- key <AE08> { [ 8, asterisk, dead_diaeresis, enfilledcircbullet ] };
- key <AE09> { [ 9, parenleft, ordfeminine, periodcentered ] };
- key <AE10> { [ 0, parenright, masculine, degree ] };
- key <AE11> { [ minus, underscore, endash, emdash ] };
- key <AE12> { [ equal, plus, notequal, plusminus ] };
-
- //
- // QWERTYUIOP[]
- //
- key <AD01> { [ q, Q, oe, OE ] };
- key <AD02> { [ w, W, dead_abovedot, dead_abovedot ] };
- key <AD03> { [ e, E, eacute, Eacute ] };
- key <AD04> { [ r, R, registered, 0x1002030 ] };
- // per thousand
- key <AD05> { [ t, T, thorn, THORN ] };
- key <AD06> { [ y, Y, yen, mu ] };
- key <AD07> { [ u, U, uacute, Uacute ] };
- key <AD08> { [ i, I, iacute, Iacute ] };
- key <AD09> { [ o, O, oacute, Oacute ] };
- key <AD10> { [ p, P, singlelowquotemark, NoSymbol ] };
- key <AD11> { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] };
- key <AD12> { [ bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] };
-
- //
- // ASDFGHJKL;'#
- //
- key <AC01> { [ a, A, aacute, Aacute ] };
- key <AC02> { [ s, S, ssharp, NoSymbol ] };
- key <AC03> { [ d, D, eth, ETH ] };
- key <AC04> { [ f, F, 0x1000192, NoSymbol ] };
- // f with hook
- key <AC05> { [ g, G, copyright, NoSymbol ] };
- key <AC06> { [ h, H, dead_abovedot, dead_abovedot ] };
- key <AC07> { [ j, J, idotless, onequarter ] };
- key <AC08> { [ k, K, dead_abovering, onehalf ] };
- key <AC09> { [ l, L, acute, threequarters ] };
- key <AC10> { [ semicolon, colon, ellipsis, doubledagger ] };
- key <AC11> { [ apostrophe, at, ae, AE ] };
- key <BKSL> { [ numbersign, asciitilde, guillemotleft, guillemotright ] };
-
-
- //
- // \ZXCVBNM,./
- //
- key <LSGT> { [ backslash, bar, dead_grave, dead_acute ] };
- key <AB01> { [ z, Z, leftanglebracket, rightanglebracket ] };
- key <AB02> { [ x, X, multiply, approximate ] };
- key <AB03> { [ c, C, dead_cedilla, cedilla ] };
- key <AB04> { [ v, V, dead_caron, NoSymbol ] };
- key <AB05> { [ b, B, diaeresis, NoSymbol ] };
- key <AB06> { [ n, N, dead_tilde, NoSymbol ] };
- key <AB07> { [ m, M, macron, NoSymbol ] };
- key <AB08> { [ comma, less, lessthanequal, doublelowquotemark ] };
- key <AB09> { [ period, greater, greaterthanequal, singlelowquotemark ] };
- key <AB10> { [ slash, question, division, questiondown ] };
-
-
- key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
-
- include "level3(ralt_switch)"
-
- // NB: putting Shift+<RALT> as Multi_key gives odd behaviour since the
- // order of pressing keys affects the result.
-
- include "compose(rwin)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "CloGaelach" {
-
- // Adds support for Clo Gaelach (old orthography for Irish).
- // Changes from "basic":
- // - dotted consonants as AltGr+consonant or AltGr+Shift+consonant (TPSDFGCBM)
- // - long lowercase r as AltGr+R
- // - long lowercase s as AltGr+Z
- // - long lowercase s dotted as AltGr+Shift+Z
- // - some symbols moved around to retain them
- // - several characters unlikely to be used are lost
- // The long letters are needed only where the font provides
- // both the long and short forms as different glyphs.
-
- include "ie(basic)"
-
- name[Group1] = "Ireland - CloGaelach";
-
- key <TLDE> { [ grave, notsign, brokenbar, ssharp ] };
- key <AD04> { [ r, R, 0x100027C, registered ] };
- // long r
- key <AD05> { [ t, T, tabovedot, Tabovedot ] };
- key <AD10> { [ p, P, pabovedot, Pabovedot ] };
-
- key <AC02> { [ s, S, sabovedot, Sabovedot ] };
- key <AC03> { [ d, D, dabovedot, Dabovedot ] };
- key <AC04> { [ f, F, fabovedot, Fabovedot ] };
- key <AC05> { [ g, G, gabovedot, Gabovedot ] };
-
- key <AB01> { [ z, Z, 0x100017F, 0x1001E9B ] };
- // long s, long s dot
- key <AB03> { [ c, C, cabovedot, Cabovedot ] };
- key <AB05> { [ b, B, babovedot, Babovedot ] };
- key <AB07> { [ m, M, mabovedot, Mabovedot ] };
-
- key <LSGT> { [ backslash, bar, dead_grave, dead_cedilla ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "UnicodeExpert" {
-
-// This should eventually be a "Unicode Expert" layout like the Mac one.
-
- name[Group1] = "Ireland - UnicodeExpert";
-
- //
- // Numeric row `1234567890-=
- //
- key <TLDE> { [ grave, notsign, 0x10000A6, 0x10000A6 ] };
- // broken bar
- key <AE01> { [ 1, exclam, NoSymbol, NoSymbol ] };
- key <AE02> { [ 2, quotedbl, dead_doubleacute, dead_doubleacute ] };
- key <AE03> { [ 3, sterling, NoSymbol, NoSymbol ] };
- key <AE04> { [ 4, dollar, EuroSign, EuroSign ] };
- key <AE05> { [ 5, percent, NoSymbol, NoSymbol ] };
- key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
- key <AE07> { [ 7, ampersand, 0x100204A, 0x100204A ] };
- // Tironian Et
- key <AE08> { [ 8, asterisk, dead_abovering, dead_abovering ] };
- key <AE09> { [ 9, parenleft, dead_breve, dead_breve ] };
- key <AE10> { [ 0, parenright, dead_ogonek, dead_ogonek ] };
- key <AE11> { [ minus, underscore, dead_macron, dead_macron ] };
- key <AE12> { [ equal, plus, NoSymbol, NoSymbol ] };
-
- //
- // QWERTYUIOP[]
- //
- key <AD01> { [ q, Q, NoSymbol, NoSymbol ] };
- key <AD02> { [ w, W, NoSymbol, NoSymbol ] };
- key <AD03> { [ e, E, eacute, Eacute ] };
- key <AD04> { [ r, R, 0x100027C, 0x100027C ] };
- // long r
- key <AD05> { [ t, T, NoSymbol, NoSymbol ] };
- key <AD06> { [ y, Y, NoSymbol, NoSymbol ] };
- key <AD07> { [ u, U, uacute, Uacute ] };
- key <AD08> { [ i, I, iacute, Iacute ] };
- key <AD09> { [ o, O, oacute, Oacute ] };
- key <AD10> { [ p, P, NoSymbol, NoSymbol ] };
- key <AD11> { [ bracketleft, braceleft, dead_hook, dead_hook ] };
- key <AD12> { [ bracketright, braceright, dead_horn, dead_horn ] };
-
- //
- // ASDFGHJKL;'#
- //
- key <AC01> { [ a, A, aacute, Aacute ] };
- key <AC02> { [ s, S, NoSymbol, NoSymbol ] };
- key <AC03> { [ d, D, NoSymbol, NoSymbol ] };
- key <AC04> { [ f, F, NoSymbol, NoSymbol ] };
- key <AC05> { [ g, G, NoSymbol, NoSymbol ] };
- key <AC06> { [ h, H, dead_abovedot, dead_abovedot ] };
- key <AC07> { [ j, J, NoSymbol, NoSymbol ] };
- key <AC08> { [ k, K, NoSymbol, NoSymbol ] };
- key <AC09> { [ l, L, NoSymbol, NoSymbol ] };
- key <AC10> { [ semicolon, colon, dead_diaeresis, dead_diaeresis ] };
- key <AC11> { [ apostrophe, at, dead_acute, dead_acute ] };
- key <BKSL> { [ numbersign, asciitilde, dead_tilde, dead_tilde ] };
-
- //
- // \ZXCVBNM,./
- //
- key <LSGT> { [ backslash, bar, dead_grave, dead_grave ] };
- key <AB01> { [ z, Z, 0x100017F, 0x1001E9B ] };
- // long s, long s dot
- key <AB02> { [ x, X, NoSymbol, NoSymbol ] };
- key <AB03> { [ c, C, NoSymbol, NoSymbol ] };
- key <AB04> { [ v, V, dead_caron, dead_caron ] };
- key <AB05> { [ b, B, NoSymbol, NoSymbol ] };
- key <AB06> { [ n, N, NoSymbol, NoSymbol ] };
- key <AB07> { [ m, M, NoSymbol, NoSymbol ] };
- key <AB08> { [ comma, less, dead_cedilla, dead_cedilla ] };
- key <AB09> { [ period, greater, dead_abovedot, dead_abovedot ] };
- key <AB10> { [ slash, question, dead_belowdot, dead_belowdot ] };
-
- key <SPCE> { [ space, space, space, nobreakspace ] };
-
- include "level3(ralt_switch)"
-
- include "compose(rwin)"
-};
-
-//
-// Ogham keyboard map for XFree86
-//
-// Seamus O Ciardhuain <seoc@cnds.ucd.ie> (17 December 2002)
-//
-// Ogham keyboard layout as recommended in I.S. 434:1999.
-// Suitable for multi-layout xkbcomp.
-// Character names are given as in the Unicode standard,
-// range U+1680 to U+169F.
-
-partial alphanumeric_keys
-xkb_symbols "ogam" {
-
- name[Group1] = "Ireland - Ogham";
-
- key.type[Group1] = "ONE_LEVEL";
-
- key <LSGT> { type[Group1]="TWO_LEVEL",
- [ 0x100169B, 0x100169C ] };
- // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK
-
- key <BKSL> { [ 0x1001680 ] }; // OGHAM SPACE MARK
-
- key <TLDE> { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
-
- key <SPCE> { [ space ] };
-
- //
- // Top Row QWERTYUIOP
- //
- key <AD01> { [ 0x100168A ] }; // OGHAM LETTER CEIRT
- key <AD02> { [ 0x1001695 ] }; // OGHAM LETTER EABHADH
- key <AD03> { [ 0x1001693 ] }; // OGHAM LETTER EADHADH
- key <AD04> { [ 0x100168F ] }; // OGHAM LETTER RUIS
- key <AD05> { [ 0x1001688 ] }; // OGHAM LETTER TINNE
- key <AD06> { [ 0x1001698 ] }; // OGHAM LETTER IFIN
- key <AD07> { [ 0x1001692 ] }; // OGHAM LETTER UR
- key <AD08> { [ 0x1001694 ] }; // OGHAM LETTER IODHADH
- key <AD09> { [ 0x1001691 ] }; // OGHAM LETTER ONN
- key <AD10> { [ 0x100169A ] }; // OGHAM LETTER PEITH
-
- //
- // Middle Row ASDFGHJKL
- //
- key <AC01> { [ 0x1001690 ] }; // OGHAM LETTER AILM
- key <AC02> { [ 0x1001684 ] }; // OGHAM LETTER SAIL
- key <AC03> { [ 0x1001687 ] }; // OGHAM LETTER DAIR
- key <AC04> { [ 0x1001683 ] }; // OGHAM LETTER FEARN
- key <AC05> { [ 0x100168C ] }; // OGHAM LETTER GORT
- key <AC06> { [ 0x1001686 ] }; // OGHAM LETTER UATH
- key <AC07> { [ 0x1001697 ] }; // OGHAM LETTER UILLEANN
- key <AC08> { [ 0x1001696 ] }; // OGHAM LETTER OR
- key <AC09> { [ 0x1001682 ] }; // OGHAM LETTER LUIS
-
- //
- // Bottom Row ZXCVBNM
- //
- key <AB01> { [ 0x100168E ] }; // OGHAM LETTER STRAIF
- key <AB02> { [ 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL
- key <AB03> { [ 0x1001689 ] }; // OGHAM LETTER COLL
- key <AB04> { [ 0x100168D ] }; // OGHAM LETTER NGEADAL
- key <AB05> { [ 0x1001681 ] }; // OGHAM LETTER BEITH
- key <AB06> { [ 0x1001685 ] }; // OGHAM LETTER NION
- key <AB07> { [ 0x100168B ] }; // OGHAM LETTER MUIN
-
- // As an extension because <BKSL> and <LSGT> may not be
- // available or sensible. These are also a bit more
- // intuitive on a standard Irish keyboard.
- key <AB08> { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
- key <AB09> { [ 0x100169B ] }; // OGHAM FEATHER MARK
- key <AB10> { [ 0x1001680 ] }; // OGHAM SPACE MARK
-
- include "compose(rwin)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "ogam_is434" {
-
- // This has the full layout of IS434 with an Irish QWERTY keyboard,
- // and the Ogham characters accessed when CAPS LOCK is on.
-
- name[Group1] = "Ireland - Ogham IS434";
-
- key.type[Group1] = "THREE_LEVEL";
-
- key <LSGT> { type[Group1] = "FOUR_LEVEL_ALPHABETIC",
- [ backslash, bar, 0x100169B, 0x100169C ] };
- // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK
-
- key <BKSL> { [ numbersign, asciitilde, 0x1001680 ] }; // OGHAM SPACE MARK
- key <TLDE> { [ grave, notsign, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
- key <SPCE> { [ space, space, space ] };
-
- //
- // Numeric row
- //
- key <AE01> { type[Group1]="TWO_LEVEL", [ 1, exclam ] };
- key <AE02> { type[Group1]="TWO_LEVEL", [ 2, quotedbl ] };
- key <AE03> { type[Group1]="TWO_LEVEL", [ 3, sterling ] };
- key <AE04> { [ 4, dollar, EuroSign ] };
- key <AE05> { type[Group1]="TWO_LEVEL", [ 5, percent ] };
- key <AE06> { type[Group1]="TWO_LEVEL", [ 6, asciicircum ] };
- key <AE07> { [ 7, ampersand, 0x100204A ] }; // Tironian Et
- key <AE08> { type[Group1]="TWO_LEVEL", [ 8, asterisk ] };
- key <AE09> { type[Group1]="TWO_LEVEL", [ 9, parenleft ] };
- key <AE10> { type[Group1]="TWO_LEVEL", [ 0, parenright ] };
- key <AE11> { type[Group1]="TWO_LEVEL", [ minus, underscore ] };
- key <AE12> { type[Group1]="TWO_LEVEL", [ equal, plus ] };
-
- //
- // Top Row QWERTYUIOP
- //
- key <AD01> { [ q, Q, 0x100168A ] }; // OGHAM LETTER CEIRT
- key <AD02> { [ w, W, 0x1001695 ] }; // OGHAM LETTER EABHADH
- key <AD03> { [ e, E, 0x1001693 ] }; // OGHAM LETTER EADHADH
- key <AD04> { [ r, R, 0x100168F ] }; // OGHAM LETTER RUIS
- key <AD05> { [ t, T, 0x1001688 ] }; // OGHAM LETTER TINNE
- key <AD06> { [ y, Y, 0x1001698 ] }; // OGHAM LETTER IFIN
- key <AD07> { [ u, U, 0x1001692 ] }; // OGHAM LETTER UR
- key <AD08> { [ i, I, 0x1001694 ] }; // OGHAM LETTER IODHADH
- key <AD09> { [ o, O, 0x1001691 ] }; // OGHAM LETTER ONN
- key <AD10> { [ p, P, 0x100169A ] }; // OGHAM LETTER PEITH
-
- //
- // Middle Row ASDFGHJKL
- //
- key <AC01> { [ a, A, 0x1001690 ] }; // OGHAM LETTER AILM
- key <AC02> { [ s, S, 0x1001684 ] }; // OGHAM LETTER SAIL
- key <AC03> { [ d, D, 0x1001687 ] }; // OGHAM LETTER DAIR
- key <AC04> { [ f, F, 0x1001683 ] }; // OGHAM LETTER FEARN
- key <AC05> { [ g, G, 0x100168C ] }; // OGHAM LETTER GORT
- key <AC06> { [ h, H, 0x1001686 ] }; // OGHAM LETTER UATH
- key <AC07> { [ j, J, 0x1001697 ] }; // OGHAM LETTER UILLEANN
- key <AC08> { [ k, K, 0x1001696 ] }; // OGHAM LETTER OR
- key <AC09> { [ l, L, 0x1001682 ] }; // OGHAM LETTER LUIS
-
- //
- // Bottom Row ZXCVBNM
- //
- key <AB01> { [ z, Z, 0x100168E ] }; // OGHAM LETTER STRAIF
- key <AB02> { [ x, X, 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL
- key <AB03> { [ c, C, 0x1001689 ] }; // OGHAM LETTER COLL
- key <AB04> { [ v, V, 0x100168D ] }; // OGHAM LETTER NGEADAL
- key <AB05> { [ b, B, 0x1001681 ] }; // OGHAM LETTER BEITH
- key <AB06> { [ n, N, 0x1001685 ] }; // OGHAM LETTER NION
- key <AB07> { [ m, M, 0x100168B ] }; // OGHAM LETTER MUIN
-
- // As an extension because <BKSL> and <LSGT> may not be
- // available or sensible. These are also a bit more
- // intuitive on a standard Irish keyboard.
- key <AB08> { [ comma, less, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
- key <AB09> { [ period, greater, 0x100169B ] }; // OGHAM FEATHER MARK
- key <AB10> { [ slash, question, 0x1001680 ] }; // OGHAM SPACE MARK
-
- // The standard says the Ogham characters should be accessed when
- // Caps Lock is down; not clear if this means it should lock but
- // seems logical.
-
- key <CAPS> { type[Group1] = "ONE_LEVEL", [ ISO_Level3_Lock ] };
-
- // Also allow access to Ogham characters using RALT for convenience
- include "level3(ralt_switch)"
-
- // Redefine Scroll Lock as locking shift in case that's needed.
- // Also overcomes annoying use of Scroll Lock LED inherited from
- // US symbols but not relevant here since we're not changing group.
- key <SCLK> {type[Group1] = "ONE_LEVEL", [ Shift_Lock ] };
- modifier_map Shift { Shift_Lock };
-
- include "compose(rwin)"
-};
+// Irish keyboard map
+
+// Support for Irish (old and new orthography) and English
+// Seamus O Ciardhuain <seoc@cnds.ucd.ie> (19 December 2002)
+
+// The general idea is to provide the characters in ISO 8859-1,
+// ISO 8859-15, ISO 8859-14, CP1252 and "Extended Latin-8".
+// However, not all are accessible directly because there aren't
+// enough keys; some need deadkeys to access them, others the
+// "Multi_key" compose sequences.
+
+// Designed to be similar to the layouts used on Windows
+// and the Macintosh.
+
+// Everything is in Group 1 to be compatible with the
+// multi-layout keyboard support in XFree86 4.3.
+
+// The basic layout is a modern keyboard, but dotted consonants are
+// accessible using a deadkey (AltGr+H or AltGr+W).
+// If a proper Clo Gaelach keyboard is needed, then use the layout
+// defined below as ie(CloGaelach), which gives dotted consonants
+// without use of a deadkey.
+
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ // Modern keyboard for Irish and English
+ // - acute-accented vowels as AltGr+vowel and AltGr+Shift+vowel
+ // - euro currency sign as AltGr+4
+ // - Comhartha Agus (Tironian Sign Et) as AltGr+Shift+7
+ // - non-breaking space as AltGr+Space and AltGr+Shift+Space
+ // - matches hardware (keys and engraved symbols) for Irish keyboards
+
+ name[Group1] = "Irish";
+
+ //
+ // Numeric row `1234567890-=
+ //
+ key <TLDE> { [ grave, notsign, brokenbar, NoSymbol ] };
+ key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
+ key <AE02> { [ 2, quotedbl, trademark, twosuperior ] };
+ key <AE03> { [ 3, sterling, copyright, threesuperior ] };
+ key <AE04> { [ 4, dollar, EuroSign, cent ] };
+ key <AE05> { [ 5, percent, section, dagger ] };
+ key <AE06> { [ 6, asciicircum, dead_circumflex, 0x1002030 ] };
+ // per thousand
+ key <AE07> { [ 7, ampersand, paragraph, 0x100204A ] };
+ // Tironian Et
+ key <AE08> { [ 8, asterisk, dead_diaeresis, enfilledcircbullet ] };
+ key <AE09> { [ 9, parenleft, ordfeminine, periodcentered ] };
+ key <AE10> { [ 0, parenright, masculine, degree ] };
+ key <AE11> { [ minus, underscore, endash, emdash ] };
+ key <AE12> { [ equal, plus, notequal, plusminus ] };
+
+ //
+ // QWERTYUIOP[]
+ //
+ key <AD01> { [ q, Q, oe, OE ] };
+ key <AD02> { [ w, W, dead_abovedot, dead_abovedot ] };
+ key <AD03> { [ e, E, eacute, Eacute ] };
+ key <AD04> { [ r, R, registered, 0x1002030 ] };
+ // per thousand
+ key <AD05> { [ t, T, thorn, THORN ] };
+ key <AD06> { [ y, Y, yen, mu ] };
+ key <AD07> { [ u, U, uacute, Uacute ] };
+ key <AD08> { [ i, I, iacute, Iacute ] };
+ key <AD09> { [ o, O, oacute, Oacute ] };
+ key <AD10> { [ p, P, singlelowquotemark, NoSymbol ] };
+ key <AD11> { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] };
+ key <AD12> { [ bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] };
+
+ //
+ // ASDFGHJKL;'#
+ //
+ key <AC01> { [ a, A, aacute, Aacute ] };
+ key <AC02> { [ s, S, ssharp, NoSymbol ] };
+ key <AC03> { [ d, D, eth, ETH ] };
+ key <AC04> { [ f, F, 0x1000192, NoSymbol ] };
+ // f with hook
+ key <AC05> { [ g, G, copyright, NoSymbol ] };
+ key <AC06> { [ h, H, dead_abovedot, dead_abovedot ] };
+ key <AC07> { [ j, J, idotless, onequarter ] };
+ key <AC08> { [ k, K, dead_abovering, onehalf ] };
+ key <AC09> { [ l, L, acute, threequarters ] };
+ key <AC10> { [ semicolon, colon, ellipsis, doubledagger ] };
+ key <AC11> { [ apostrophe, at, ae, AE ] };
+ key <BKSL> { [ numbersign, asciitilde, guillemotleft, guillemotright ] };
+
+
+ //
+ // \ZXCVBNM,./
+ //
+ key <LSGT> { [ backslash, bar, dead_grave, dead_acute ] };
+ key <AB01> { [ z, Z, leftanglebracket, rightanglebracket ] };
+ key <AB02> { [ x, X, multiply, approximate ] };
+ key <AB03> { [ c, C, dead_cedilla, cedilla ] };
+ key <AB04> { [ v, V, dead_caron, NoSymbol ] };
+ key <AB05> { [ b, B, diaeresis, NoSymbol ] };
+ key <AB06> { [ n, N, dead_tilde, NoSymbol ] };
+ key <AB07> { [ m, M, macron, NoSymbol ] };
+ key <AB08> { [ comma, less, lessthanequal, doublelowquotemark ] };
+ key <AB09> { [ period, greater, greaterthanequal, singlelowquotemark ] };
+ key <AB10> { [ slash, question, division, questiondown ] };
+
+
+ key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
+
+ include "level3(ralt_switch)"
+
+ // NB: putting Shift+<RALT> as Multi_key gives odd behaviour since the
+ // order of pressing keys affects the result.
+
+ include "compose(rwin)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "CloGaelach" {
+
+ // Adds support for Clo Gaelach (old orthography for Irish).
+ // Changes from "basic":
+ // - dotted consonants as AltGr+consonant or AltGr+Shift+consonant (TPSDFGCBM)
+ // - long lowercase r as AltGr+R
+ // - long lowercase s as AltGr+Z
+ // - long lowercase s dotted as AltGr+Shift+Z
+ // - some symbols moved around to retain them
+ // - several characters unlikely to be used are lost
+ // The long letters are needed only where the font provides
+ // both the long and short forms as different glyphs.
+
+ include "ie(basic)"
+
+ name[Group1] = "CloGaelach";
+
+ key <TLDE> { [ grave, notsign, brokenbar, ssharp ] };
+ key <AD04> { [ r, R, 0x100027C, registered ] };
+ // long r
+ key <AD05> { [ t, T, tabovedot, Tabovedot ] };
+ key <AD10> { [ p, P, pabovedot, Pabovedot ] };
+
+ key <AC02> { [ s, S, sabovedot, Sabovedot ] };
+ key <AC03> { [ d, D, dabovedot, Dabovedot ] };
+ key <AC04> { [ f, F, fabovedot, Fabovedot ] };
+ key <AC05> { [ g, G, gabovedot, Gabovedot ] };
+
+ key <AB01> { [ z, Z, 0x100017F, 0x1001E9B ] };
+ // long s, long s dot
+ key <AB03> { [ c, C, cabovedot, Cabovedot ] };
+ key <AB05> { [ b, B, babovedot, Babovedot ] };
+ key <AB07> { [ m, M, mabovedot, Mabovedot ] };
+
+ key <LSGT> { [ backslash, bar, dead_grave, dead_cedilla ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "UnicodeExpert" {
+
+// This should eventually be a "Unicode Expert" layout like the Mac one.
+
+ name[Group1] = "Irish (UnicodeExpert)";
+
+ //
+ // Numeric row `1234567890-=
+ //
+ key <TLDE> { [ grave, notsign, 0x10000A6, 0x10000A6 ] };
+ // broken bar
+ key <AE01> { [ 1, exclam, NoSymbol, NoSymbol ] };
+ key <AE02> { [ 2, quotedbl, dead_doubleacute, dead_doubleacute ] };
+ key <AE03> { [ 3, sterling, NoSymbol, NoSymbol ] };
+ key <AE04> { [ 4, dollar, EuroSign, EuroSign ] };
+ key <AE05> { [ 5, percent, NoSymbol, NoSymbol ] };
+ key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
+ key <AE07> { [ 7, ampersand, 0x100204A, 0x100204A ] };
+ // Tironian Et
+ key <AE08> { [ 8, asterisk, dead_abovering, dead_abovering ] };
+ key <AE09> { [ 9, parenleft, dead_breve, dead_breve ] };
+ key <AE10> { [ 0, parenright, dead_ogonek, dead_ogonek ] };
+ key <AE11> { [ minus, underscore, dead_macron, dead_macron ] };
+ key <AE12> { [ equal, plus, NoSymbol, NoSymbol ] };
+
+ //
+ // QWERTYUIOP[]
+ //
+ key <AD01> { [ q, Q, NoSymbol, NoSymbol ] };
+ key <AD02> { [ w, W, NoSymbol, NoSymbol ] };
+ key <AD03> { [ e, E, eacute, Eacute ] };
+ key <AD04> { [ r, R, 0x100027C, 0x100027C ] };
+ // long r
+ key <AD05> { [ t, T, NoSymbol, NoSymbol ] };
+ key <AD06> { [ y, Y, NoSymbol, NoSymbol ] };
+ key <AD07> { [ u, U, uacute, Uacute ] };
+ key <AD08> { [ i, I, iacute, Iacute ] };
+ key <AD09> { [ o, O, oacute, Oacute ] };
+ key <AD10> { [ p, P, NoSymbol, NoSymbol ] };
+ key <AD11> { [ bracketleft, braceleft, dead_hook, dead_hook ] };
+ key <AD12> { [ bracketright, braceright, dead_horn, dead_horn ] };
+
+ //
+ // ASDFGHJKL;'#
+ //
+ key <AC01> { [ a, A, aacute, Aacute ] };
+ key <AC02> { [ s, S, NoSymbol, NoSymbol ] };
+ key <AC03> { [ d, D, NoSymbol, NoSymbol ] };
+ key <AC04> { [ f, F, NoSymbol, NoSymbol ] };
+ key <AC05> { [ g, G, NoSymbol, NoSymbol ] };
+ key <AC06> { [ h, H, dead_abovedot, dead_abovedot ] };
+ key <AC07> { [ j, J, NoSymbol, NoSymbol ] };
+ key <AC08> { [ k, K, NoSymbol, NoSymbol ] };
+ key <AC09> { [ l, L, NoSymbol, NoSymbol ] };
+ key <AC10> { [ semicolon, colon, dead_diaeresis, dead_diaeresis ] };
+ key <AC11> { [ apostrophe, at, dead_acute, dead_acute ] };
+ key <BKSL> { [ numbersign, asciitilde, dead_tilde, dead_tilde ] };
+
+ //
+ // \ZXCVBNM,./
+ //
+ key <LSGT> { [ backslash, bar, dead_grave, dead_grave ] };
+ key <AB01> { [ z, Z, 0x100017F, 0x1001E9B ] };
+ // long s, long s dot
+ key <AB02> { [ x, X, NoSymbol, NoSymbol ] };
+ key <AB03> { [ c, C, NoSymbol, NoSymbol ] };
+ key <AB04> { [ v, V, dead_caron, dead_caron ] };
+ key <AB05> { [ b, B, NoSymbol, NoSymbol ] };
+ key <AB06> { [ n, N, NoSymbol, NoSymbol ] };
+ key <AB07> { [ m, M, NoSymbol, NoSymbol ] };
+ key <AB08> { [ comma, less, dead_cedilla, dead_cedilla ] };
+ key <AB09> { [ period, greater, dead_abovedot, dead_abovedot ] };
+ key <AB10> { [ slash, question, dead_belowdot, dead_belowdot ] };
+
+ key <SPCE> { [ space, space, space, nobreakspace ] };
+
+ include "level3(ralt_switch)"
+
+ include "compose(rwin)"
+};
+
+//
+// Ogham keyboard map for XFree86
+//
+// Seamus O Ciardhuain <seoc@cnds.ucd.ie> (17 December 2002)
+//
+// Ogham keyboard layout as recommended in I.S. 434:1999.
+// Suitable for multi-layout xkbcomp.
+// Character names are given as in the Unicode standard,
+// range U+1680 to U+169F.
+
+partial alphanumeric_keys
+xkb_symbols "ogam" {
+
+ name[Group1] = "Ogham";
+
+ key.type[Group1] = "ONE_LEVEL";
+
+ key <LSGT> { type[Group1]="TWO_LEVEL",
+ [ 0x100169B, 0x100169C ] };
+ // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK
+
+ key <BKSL> { [ 0x1001680 ] }; // OGHAM SPACE MARK
+
+ key <TLDE> { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
+
+ key <SPCE> { [ space ] };
+
+ //
+ // Top Row QWERTYUIOP
+ //
+ key <AD01> { [ 0x100168A ] }; // OGHAM LETTER CEIRT
+ key <AD02> { [ 0x1001695 ] }; // OGHAM LETTER EABHADH
+ key <AD03> { [ 0x1001693 ] }; // OGHAM LETTER EADHADH
+ key <AD04> { [ 0x100168F ] }; // OGHAM LETTER RUIS
+ key <AD05> { [ 0x1001688 ] }; // OGHAM LETTER TINNE
+ key <AD06> { [ 0x1001698 ] }; // OGHAM LETTER IFIN
+ key <AD07> { [ 0x1001692 ] }; // OGHAM LETTER UR
+ key <AD08> { [ 0x1001694 ] }; // OGHAM LETTER IODHADH
+ key <AD09> { [ 0x1001691 ] }; // OGHAM LETTER ONN
+ key <AD10> { [ 0x100169A ] }; // OGHAM LETTER PEITH
+
+ //
+ // Middle Row ASDFGHJKL
+ //
+ key <AC01> { [ 0x1001690 ] }; // OGHAM LETTER AILM
+ key <AC02> { [ 0x1001684 ] }; // OGHAM LETTER SAIL
+ key <AC03> { [ 0x1001687 ] }; // OGHAM LETTER DAIR
+ key <AC04> { [ 0x1001683 ] }; // OGHAM LETTER FEARN
+ key <AC05> { [ 0x100168C ] }; // OGHAM LETTER GORT
+ key <AC06> { [ 0x1001686 ] }; // OGHAM LETTER UATH
+ key <AC07> { [ 0x1001697 ] }; // OGHAM LETTER UILLEANN
+ key <AC08> { [ 0x1001696 ] }; // OGHAM LETTER OR
+ key <AC09> { [ 0x1001682 ] }; // OGHAM LETTER LUIS
+
+ //
+ // Bottom Row ZXCVBNM
+ //
+ key <AB01> { [ 0x100168E ] }; // OGHAM LETTER STRAIF
+ key <AB02> { [ 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL
+ key <AB03> { [ 0x1001689 ] }; // OGHAM LETTER COLL
+ key <AB04> { [ 0x100168D ] }; // OGHAM LETTER NGEADAL
+ key <AB05> { [ 0x1001681 ] }; // OGHAM LETTER BEITH
+ key <AB06> { [ 0x1001685 ] }; // OGHAM LETTER NION
+ key <AB07> { [ 0x100168B ] }; // OGHAM LETTER MUIN
+
+ // As an extension because <BKSL> and <LSGT> may not be
+ // available or sensible. These are also a bit more
+ // intuitive on a standard Irish keyboard.
+ key <AB08> { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
+ key <AB09> { [ 0x100169B ] }; // OGHAM FEATHER MARK
+ key <AB10> { [ 0x1001680 ] }; // OGHAM SPACE MARK
+
+ include "compose(rwin)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "ogam_is434" {
+
+ // This has the full layout of IS434 with an Irish QWERTY keyboard,
+ // and the Ogham characters accessed when CAPS LOCK is on.
+
+ name[Group1] = "Ogham (IS434)";
+
+ key.type[Group1] = "THREE_LEVEL";
+
+ key <LSGT> { type[Group1] = "FOUR_LEVEL_ALPHABETIC",
+ [ backslash, bar, 0x100169B, 0x100169C ] };
+ // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK
+
+ key <BKSL> { [ numbersign, asciitilde, 0x1001680 ] }; // OGHAM SPACE MARK
+ key <TLDE> { [ grave, notsign, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
+ key <SPCE> { [ space, space, space ] };
+
+ //
+ // Numeric row
+ //
+ key <AE01> { type[Group1]="TWO_LEVEL", [ 1, exclam ] };
+ key <AE02> { type[Group1]="TWO_LEVEL", [ 2, quotedbl ] };
+ key <AE03> { type[Group1]="TWO_LEVEL", [ 3, sterling ] };
+ key <AE04> { [ 4, dollar, EuroSign ] };
+ key <AE05> { type[Group1]="TWO_LEVEL", [ 5, percent ] };
+ key <AE06> { type[Group1]="TWO_LEVEL", [ 6, asciicircum ] };
+ key <AE07> { [ 7, ampersand, 0x100204A ] }; // Tironian Et
+ key <AE08> { type[Group1]="TWO_LEVEL", [ 8, asterisk ] };
+ key <AE09> { type[Group1]="TWO_LEVEL", [ 9, parenleft ] };
+ key <AE10> { type[Group1]="TWO_LEVEL", [ 0, parenright ] };
+ key <AE11> { type[Group1]="TWO_LEVEL", [ minus, underscore ] };
+ key <AE12> { type[Group1]="TWO_LEVEL", [ equal, plus ] };
+
+ //
+ // Top Row QWERTYUIOP
+ //
+ key <AD01> { [ q, Q, 0x100168A ] }; // OGHAM LETTER CEIRT
+ key <AD02> { [ w, W, 0x1001695 ] }; // OGHAM LETTER EABHADH
+ key <AD03> { [ e, E, 0x1001693 ] }; // OGHAM LETTER EADHADH
+ key <AD04> { [ r, R, 0x100168F ] }; // OGHAM LETTER RUIS
+ key <AD05> { [ t, T, 0x1001688 ] }; // OGHAM LETTER TINNE
+ key <AD06> { [ y, Y, 0x1001698 ] }; // OGHAM LETTER IFIN
+ key <AD07> { [ u, U, 0x1001692 ] }; // OGHAM LETTER UR
+ key <AD08> { [ i, I, 0x1001694 ] }; // OGHAM LETTER IODHADH
+ key <AD09> { [ o, O, 0x1001691 ] }; // OGHAM LETTER ONN
+ key <AD10> { [ p, P, 0x100169A ] }; // OGHAM LETTER PEITH
+
+ //
+ // Middle Row ASDFGHJKL
+ //
+ key <AC01> { [ a, A, 0x1001690 ] }; // OGHAM LETTER AILM
+ key <AC02> { [ s, S, 0x1001684 ] }; // OGHAM LETTER SAIL
+ key <AC03> { [ d, D, 0x1001687 ] }; // OGHAM LETTER DAIR
+ key <AC04> { [ f, F, 0x1001683 ] }; // OGHAM LETTER FEARN
+ key <AC05> { [ g, G, 0x100168C ] }; // OGHAM LETTER GORT
+ key <AC06> { [ h, H, 0x1001686 ] }; // OGHAM LETTER UATH
+ key <AC07> { [ j, J, 0x1001697 ] }; // OGHAM LETTER UILLEANN
+ key <AC08> { [ k, K, 0x1001696 ] }; // OGHAM LETTER OR
+ key <AC09> { [ l, L, 0x1001682 ] }; // OGHAM LETTER LUIS
+
+ //
+ // Bottom Row ZXCVBNM
+ //
+ key <AB01> { [ z, Z, 0x100168E ] }; // OGHAM LETTER STRAIF
+ key <AB02> { [ x, X, 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL
+ key <AB03> { [ c, C, 0x1001689 ] }; // OGHAM LETTER COLL
+ key <AB04> { [ v, V, 0x100168D ] }; // OGHAM LETTER NGEADAL
+ key <AB05> { [ b, B, 0x1001681 ] }; // OGHAM LETTER BEITH
+ key <AB06> { [ n, N, 0x1001685 ] }; // OGHAM LETTER NION
+ key <AB07> { [ m, M, 0x100168B ] }; // OGHAM LETTER MUIN
+
+ // As an extension because <BKSL> and <LSGT> may not be
+ // available or sensible. These are also a bit more
+ // intuitive on a standard Irish keyboard.
+ key <AB08> { [ comma, less, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
+ key <AB09> { [ period, greater, 0x100169B ] }; // OGHAM FEATHER MARK
+ key <AB10> { [ slash, question, 0x1001680 ] }; // OGHAM SPACE MARK
+
+ // The standard says the Ogham characters should be accessed when
+ // Caps Lock is down; not clear if this means it should lock but
+ // seems logical.
+
+ key <CAPS> { type[Group1] = "ONE_LEVEL", [ ISO_Level3_Lock ] };
+
+ // Also allow access to Ogham characters using RALT for convenience
+ include "level3(ralt_switch)"
+
+ // Redefine Scroll Lock as locking shift in case that's needed.
+ // Also overcomes annoying use of Scroll Lock LED inherited from
+ // US symbols but not relevant here since we're not changing group.
+ key <SCLK> {type[Group1] = "ONE_LEVEL", [ Shift_Lock ] };
+ modifier_map Shift { Shift_Lock };
+
+ include "compose(rwin)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/ir b/xorg-server/xkeyboard-config/symbols/ir
index 94bdede28..0414d02d7 100644
--- a/xorg-server/xkeyboard-config/symbols/ir
+++ b/xorg-server/xkeyboard-config/symbols/ir
@@ -251,7 +251,7 @@ xkb_symbols "ku_ara" {
// Layout by Ernst Tremel, http://ubuntuforums.org/showpost.php?p=9365469&postcount=32
// Creation of this file by Simos Xenitellis.
-partial default alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "ave"
{
name[Group1] = "Avestan";
diff --git a/xorg-server/xkeyboard-config/symbols/jp b/xorg-server/xkeyboard-config/symbols/jp
index 64b50a44c..5b5db626c 100644
--- a/xorg-server/xkeyboard-config/symbols/jp
+++ b/xorg-server/xkeyboard-config/symbols/jp
@@ -1,248 +1,248 @@
-// based on:
-// symbols for a Japanese 106 keyboard(by tsuka@kawalab.dnj.ynu.ac.jp)
-
-// jp106 keyboard map
-partial default alphanumeric_keys
-xkb_symbols "106" {
- include "jp(common)"
- name[Group1]= "Japan";
-
- key <AE10> { [ 0, asciitilde ] };
- key <AE13> { [ backslash, bar ] };
-};
-
-// common latin part of jp keyboard map
-partial hidden alphanumeric_keys
-xkb_symbols "common" {
- // "Common" keys for jp 106/109A layout
-
- // Alphanumeric section
- key <HZTG> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Zenkaku_Hankaku, Kanji ]
- };
-
- key <AE01> { [ 1, exclam ] };
- key <AE02> { [ 2, quotedbl ] };
- key <AE03> { [ 3, numbersign ] };
- key <AE04> { [ 4, dollar ] };
- key <AE05> { [ 5, percent ] };
- key <AE06> { [ 6, ampersand ] };
- key <AE07> { [ 7, apostrophe ] };
- key <AE08> { [ 8, parenleft ] };
- key <AE09> { [ 9, parenright ] };
- key <AE11> { [ minus, equal ] };
- key <AE12> { [ asciicircum, asciitilde] };
-
- key <AD01> { [ q, Q ] };
- key <AD02> { [ w, W ] };
- key <AD03> { [ e, E ] };
- key <AD04> { [ r, R ] };
- key <AD05> { [ t, T ] };
- key <AD06> { [ y, Y ] };
- key <AD07> { [ u, U ] };
- key <AD08> { [ i, I ] };
- key <AD09> { [ o, O ] };
- key <AD10> { [ p, P ] };
- key <AD11> { [ at, grave ] };
- key <AD12> { [ bracketleft, braceleft ] };
-
- key <CAPS> { [ Eisu_toggle, Caps_Lock ] };
-
- key <AC01> { [ a, A ] };
- key <AC02> { [ s, S ] };
- key <AC03> { [ d, D ] };
- key <AC04> { [ f, F ] };
- key <AC05> { [ g, G ] };
- key <AC06> { [ h, H ] };
- key <AC07> { [ j, J ] };
- key <AC08> { [ k, K ] };
- key <AC09> { [ l, L ] };
- key <AC10> { [ semicolon, plus ] };
- key <AC11> { [ colon, asterisk ] };
- key <AC12> { [ bracketright, braceright ] };
-
- key <AB01> { [ z, Z ] };
- key <AB02> { [ x, X ] };
- key <AB03> { [ c, C ] };
- key <AB04> { [ v, V ] };
- key <AB05> { [ b, B ] };
- key <AB06> { [ n, N ] };
- key <AB07> { [ m, M ] };
- key <AB08> { [ comma, less ] };
- key <AB09> { [ period, greater ] };
- key <AB10> { [ slash, question ] };
- key <AB11> { [ backslash, underscore] };
- key <LCTL> { [ Control_L ] };
-
- key <NFER> { [ Muhenkan ] };
-
- key <XFER> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Henkan, Mode_switch ]
- };
- key <HKTG> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Hiragana_Katakana, Romaji ]
- };
-
- key <EISU> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Eisu_toggle ]
- };
-
- key <KANA> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Hiragana_Katakana ]
- };
-
-
- key <PRSC> {
- type[Group1]= "PC_ALT_LEVEL2",
- symbols[Group1]= [ Print, Execute ]
- };
-};
-
-// OADG109A map
-partial alphanumeric_keys
-xkb_symbols "OADG109A" {
-
- include "jp(common)"
- name[Group1]= "Japan - OADG 109A";
-
- key <AE10> { [ 0 ] };
- key <AE13> { [ yen, bar ] };
-};
-
-// 86 keys with kana map
-partial alphanumeric_keys
-xkb_symbols "kana86" {
-
- include "pc(function)"
- include "pc(editing)"
- include "keypad(numoperdecsep)"
- include "altwin(menu)"
- include "jp(kana)"
- include "jp(OADG109A)"
- name[Group1]= "Japan - Kana 86";
-
- key <ESC> { [ Escape ] };
- key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
- key <BKSP> { [ BackSpace ] };
- key <TAB> { [ Tab, ISO_Left_Tab ] };
- key <RTRN> { [ Return ] };
- key <LFSH> { [ Shift_L ] };
- key <RTSH> { [ Shift_R ] };
- key <LWIN> { [ Super_L ] };
- key <LALT> { [ Alt_L ] };
- key <SPCE> { [ space ] };
- key <RALT> { [ Alt_R ] };
-// for compatability with other keyboards connected at the same time
- key <RWIN> { [ Super_R ] };
- key <RCTL> { [ Control_R ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "kana" {
-
- name[Group1]= "Japan - Kana";
-
- // Alphanumeric section
- key <HZTG> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Zenkaku_Hankaku, Kanji ]
- };
- key <AE01> { [ kana_NU ] };
- key <AE02> { [ kana_FU ] };
- key <AE03> { [ kana_A, kana_a ] };
- key <AE04> { [ kana_U, kana_u ] };
- key <AE05> { [ kana_E, kana_e ] };
- key <AE06> { [ kana_O, kana_o ] };
- key <AE07> { [ kana_YA, kana_ya ] };
- key <AE08> { [ kana_YU, kana_yu ] };
- key <AE09> { [ kana_YO, kana_yo ] };
- key <AE10> { [ kana_WA, kana_WO ] };
- key <AE11> { [ kana_HO ] };
- key <AE12> { [ kana_HE ] };
- key <AE13> { [ prolongedsound ] };
-
- key <AD01> { [ kana_TA ] };
- key <AD02> { [ kana_TE ] };
- key <AD03> { [ kana_I, kana_i ] };
- key <AD04> { [ kana_SU ] };
- key <AD05> { [ kana_KA ] };
- key <AD06> { [ kana_N ] };
- key <AD07> { [ kana_NA ] };
- key <AD08> { [ kana_NI ] };
- key <AD09> { [ kana_RA ] };
- key <AD10> { [ kana_SE ] };
- key <AD11> { [ voicedsound ] };
- key <AD12> { [ semivoicedsound, kana_openingbracket ] };
-
- key <CAPS> { [ Eisu_toggle, Caps_Lock ] };
- key <AC01> { [ kana_CHI ] };
- key <AC02> { [ kana_TO ] };
- key <AC03> { [ kana_SHI ] };
- key <AC04> { [ kana_HA ] };
- key <AC05> { [ kana_KI ] };
- key <AC06> { [ kana_KU ] };
- key <AC07> { [ kana_MA ] };
- key <AC08> { [ kana_NO ] };
- key <AC09> { [ kana_RI ] };
- key <AC10> { [ kana_RE ] };
- key <AC11> { [ kana_KE ] };
- key <AC12> { [ kana_MU, kana_closingbracket ] };
-
- key <AB01> { [ kana_TSU, kana_tsu ] };
- key <AB02> { [ kana_SA ] };
- key <AB03> { [ kana_SO ] };
- key <AB04> { [ kana_HI ] };
- key <AB05> { [ kana_KO ] };
- key <AB06> { [ kana_MI ] };
- key <AB07> { [ kana_MO ] };
- key <AB08> { [ kana_NE, kana_comma ] };
- key <AB09> { [ kana_RU, kana_fullstop ] };
- key <AB10> { [ kana_ME, kana_middledot ] };
- key <AB11> { [ kana_RO ] };
- key <LCTL> { [ Control_L ] };
-
- key <NFER> { [ Muhenkan ] };
-
- key <XFER> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Henkan, Mode_switch ]
- };
- key <HKTG> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1]= [ Hiragana_Katakana, Romaji ]
- };
-
- // End alphanumeric section
-
- key <PRSC> {
- type[Group1]= "PC_ALT_LEVEL2",
- symbols[Group1]= [ Print, Execute ]
- };
-};
-
-partial alphanumeric_keys
-xkb_symbols "nicola_f_bs" {
- key <BKSP> {
- type="",
- symbols[Group1]= [ bracketright, braceright ]
- };
- key <AE10> { [ 0,underscore ] };
- key <AD11> { [ colon, asterisk ] };
- key <AC11> { [ BackSpace, BackSpace ] };
- key <AC12> { [ Escape ] };
- key <AB11> { [ at, grave ] };
-};
-
-// Copied from macintosh_vndr/jp
-partial alphanumeric_keys
-xkb_symbols "mac" {
- name[Group1] = "Japan - Macintosh";
- include "jp(kana)"
-
- replace key <CAPS> { [ Caps_Lock ] };
-};
+// based on:
+// symbols for a Japanese 106 keyboard(by tsuka@kawalab.dnj.ynu.ac.jp)
+
+// jp106 keyboard map
+partial default alphanumeric_keys
+xkb_symbols "106" {
+ include "jp(common)"
+ name[Group1]= "Japanese";
+
+ key <AE10> { [ 0, asciitilde ] };
+ key <AE13> { [ backslash, bar ] };
+};
+
+// common latin part of jp keyboard map
+partial hidden alphanumeric_keys
+xkb_symbols "common" {
+ // "Common" keys for jp 106/109A layout
+
+ // Alphanumeric section
+ key <HZTG> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Zenkaku_Hankaku, Kanji ]
+ };
+
+ key <AE01> { [ 1, exclam ] };
+ key <AE02> { [ 2, quotedbl ] };
+ key <AE03> { [ 3, numbersign ] };
+ key <AE04> { [ 4, dollar ] };
+ key <AE05> { [ 5, percent ] };
+ key <AE06> { [ 6, ampersand ] };
+ key <AE07> { [ 7, apostrophe ] };
+ key <AE08> { [ 8, parenleft ] };
+ key <AE09> { [ 9, parenright ] };
+ key <AE11> { [ minus, equal ] };
+ key <AE12> { [ asciicircum, asciitilde] };
+
+ key <AD01> { [ q, Q ] };
+ key <AD02> { [ w, W ] };
+ key <AD03> { [ e, E ] };
+ key <AD04> { [ r, R ] };
+ key <AD05> { [ t, T ] };
+ key <AD06> { [ y, Y ] };
+ key <AD07> { [ u, U ] };
+ key <AD08> { [ i, I ] };
+ key <AD09> { [ o, O ] };
+ key <AD10> { [ p, P ] };
+ key <AD11> { [ at, grave ] };
+ key <AD12> { [ bracketleft, braceleft ] };
+
+ key <CAPS> { [ Eisu_toggle, Caps_Lock ] };
+
+ key <AC01> { [ a, A ] };
+ key <AC02> { [ s, S ] };
+ key <AC03> { [ d, D ] };
+ key <AC04> { [ f, F ] };
+ key <AC05> { [ g, G ] };
+ key <AC06> { [ h, H ] };
+ key <AC07> { [ j, J ] };
+ key <AC08> { [ k, K ] };
+ key <AC09> { [ l, L ] };
+ key <AC10> { [ semicolon, plus ] };
+ key <AC11> { [ colon, asterisk ] };
+ key <AC12> { [ bracketright, braceright ] };
+
+ key <AB01> { [ z, Z ] };
+ key <AB02> { [ x, X ] };
+ key <AB03> { [ c, C ] };
+ key <AB04> { [ v, V ] };
+ key <AB05> { [ b, B ] };
+ key <AB06> { [ n, N ] };
+ key <AB07> { [ m, M ] };
+ key <AB08> { [ comma, less ] };
+ key <AB09> { [ period, greater ] };
+ key <AB10> { [ slash, question ] };
+ key <AB11> { [ backslash, underscore] };
+ key <LCTL> { [ Control_L ] };
+
+ key <NFER> { [ Muhenkan ] };
+
+ key <XFER> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Henkan, Mode_switch ]
+ };
+ key <HKTG> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Hiragana_Katakana, Romaji ]
+ };
+
+ key <EISU> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Eisu_toggle ]
+ };
+
+ key <KANA> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Hiragana_Katakana ]
+ };
+
+
+ key <PRSC> {
+ type[Group1]= "PC_ALT_LEVEL2",
+ symbols[Group1]= [ Print, Execute ]
+ };
+};
+
+// OADG109A map
+partial alphanumeric_keys
+xkb_symbols "OADG109A" {
+
+ include "jp(common)"
+ name[Group1]= "Japanese (OADG 109A)";
+
+ key <AE10> { [ 0 ] };
+ key <AE13> { [ yen, bar ] };
+};
+
+// 86 keys with kana map
+partial alphanumeric_keys
+xkb_symbols "kana86" {
+
+ include "pc(function)"
+ include "pc(editing)"
+ include "keypad(numoperdecsep)"
+ include "altwin(menu)"
+ include "jp(kana)"
+ include "jp(OADG109A)"
+ name[Group1]= "Japanese (Kana 86)";
+
+ key <ESC> { [ Escape ] };
+ key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
+ key <BKSP> { [ BackSpace ] };
+ key <TAB> { [ Tab, ISO_Left_Tab ] };
+ key <RTRN> { [ Return ] };
+ key <LFSH> { [ Shift_L ] };
+ key <RTSH> { [ Shift_R ] };
+ key <LWIN> { [ Super_L ] };
+ key <LALT> { [ Alt_L ] };
+ key <SPCE> { [ space ] };
+ key <RALT> { [ Alt_R ] };
+// for compatability with other keyboards connected at the same time
+ key <RWIN> { [ Super_R ] };
+ key <RCTL> { [ Control_R ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "kana" {
+
+ name[Group1]= "Japanese (Kana)";
+
+ // Alphanumeric section
+ key <HZTG> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Zenkaku_Hankaku, Kanji ]
+ };
+ key <AE01> { [ kana_NU ] };
+ key <AE02> { [ kana_FU ] };
+ key <AE03> { [ kana_A, kana_a ] };
+ key <AE04> { [ kana_U, kana_u ] };
+ key <AE05> { [ kana_E, kana_e ] };
+ key <AE06> { [ kana_O, kana_o ] };
+ key <AE07> { [ kana_YA, kana_ya ] };
+ key <AE08> { [ kana_YU, kana_yu ] };
+ key <AE09> { [ kana_YO, kana_yo ] };
+ key <AE10> { [ kana_WA, kana_WO ] };
+ key <AE11> { [ kana_HO ] };
+ key <AE12> { [ kana_HE ] };
+ key <AE13> { [ prolongedsound ] };
+
+ key <AD01> { [ kana_TA ] };
+ key <AD02> { [ kana_TE ] };
+ key <AD03> { [ kana_I, kana_i ] };
+ key <AD04> { [ kana_SU ] };
+ key <AD05> { [ kana_KA ] };
+ key <AD06> { [ kana_N ] };
+ key <AD07> { [ kana_NA ] };
+ key <AD08> { [ kana_NI ] };
+ key <AD09> { [ kana_RA ] };
+ key <AD10> { [ kana_SE ] };
+ key <AD11> { [ voicedsound ] };
+ key <AD12> { [ semivoicedsound, kana_openingbracket ] };
+
+ key <CAPS> { [ Eisu_toggle, Caps_Lock ] };
+ key <AC01> { [ kana_CHI ] };
+ key <AC02> { [ kana_TO ] };
+ key <AC03> { [ kana_SHI ] };
+ key <AC04> { [ kana_HA ] };
+ key <AC05> { [ kana_KI ] };
+ key <AC06> { [ kana_KU ] };
+ key <AC07> { [ kana_MA ] };
+ key <AC08> { [ kana_NO ] };
+ key <AC09> { [ kana_RI ] };
+ key <AC10> { [ kana_RE ] };
+ key <AC11> { [ kana_KE ] };
+ key <AC12> { [ kana_MU, kana_closingbracket ] };
+
+ key <AB01> { [ kana_TSU, kana_tsu ] };
+ key <AB02> { [ kana_SA ] };
+ key <AB03> { [ kana_SO ] };
+ key <AB04> { [ kana_HI ] };
+ key <AB05> { [ kana_KO ] };
+ key <AB06> { [ kana_MI ] };
+ key <AB07> { [ kana_MO ] };
+ key <AB08> { [ kana_NE, kana_comma ] };
+ key <AB09> { [ kana_RU, kana_fullstop ] };
+ key <AB10> { [ kana_ME, kana_middledot ] };
+ key <AB11> { [ kana_RO ] };
+ key <LCTL> { [ Control_L ] };
+
+ key <NFER> { [ Muhenkan ] };
+
+ key <XFER> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Henkan, Mode_switch ]
+ };
+ key <HKTG> {
+ type[Group1]="PC_ALT_LEVEL2",
+ symbols[Group1]= [ Hiragana_Katakana, Romaji ]
+ };
+
+ // End alphanumeric section
+
+ key <PRSC> {
+ type[Group1]= "PC_ALT_LEVEL2",
+ symbols[Group1]= [ Print, Execute ]
+ };
+};
+
+partial alphanumeric_keys
+xkb_symbols "nicola_f_bs" {
+ key <BKSP> {
+ type="",
+ symbols[Group1]= [ bracketright, braceright ]
+ };
+ key <AE10> { [ 0,underscore ] };
+ key <AD11> { [ colon, asterisk ] };
+ key <AC11> { [ BackSpace, BackSpace ] };
+ key <AC12> { [ Escape ] };
+ key <AB11> { [ at, grave ] };
+};
+
+// Copied from macintosh_vndr/jp
+partial alphanumeric_keys
+xkb_symbols "mac" {
+ name[Group1] = "Japanese (Macintosh)";
+ include "jp(kana)"
+
+ replace key <CAPS> { [ Caps_Lock ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/ke b/xorg-server/xkeyboard-config/symbols/ke
index 6d75d6780..3ecf3de89 100644
--- a/xorg-server/xkeyboard-config/symbols/ke
+++ b/xorg-server/xkeyboard-config/symbols/ke
@@ -1,42 +1,42 @@
-// Keyboard layout for Swahili in Arabic script.
-// Based on Martin Vidner's Buckwalter transliteration variant of the Arabic keyboard
-// Please notify any corrections or omissions to
-// Kevin Donnelly (kevin@dotmon.com)
-
-partial default alphanumeric_keys
-xkb_symbols "swa" {
-
- include "us"
-
- name[Group1]= "Kenya";
-
- key <AC10> { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW
- key <AC11> { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS
- key <TLDE> { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE
- key <AE06> { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT
- key <AE08> { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW
- key <AE09> { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE
- key <AE10> { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON
- key <AE11> { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW
-
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "kik" {
-
- include "us"
-
- name[Group1]= "Kenya - Kikuyu";
-
- key <AC10> { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW
- key <AC11> { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS
- key <TLDE> { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE
- key <AE06> { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT
- key <AE08> { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW
- key <AE09> { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE
- key <AE10> { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON
- key <AE11> { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW
-
- include "level3(ralt_switch)"
-};
+// Keyboard layout for Swahili in Arabic script.
+// Based on Martin Vidner's Buckwalter transliteration variant of the Arabic keyboard
+// Please notify any corrections or omissions to
+// Kevin Donnelly (kevin@dotmon.com)
+
+partial default alphanumeric_keys
+xkb_symbols "swa" {
+
+ include "us"
+
+ name[Group1]= "Swahili (Kenya)";
+
+ key <AC10> { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW
+ key <AC11> { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS
+ key <TLDE> { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE
+ key <AE06> { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT
+ key <AE08> { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW
+ key <AE09> { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE
+ key <AE10> { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON
+ key <AE11> { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "kik" {
+
+ include "us"
+
+ name[Group1]= "Kikuyu";
+
+ key <AC10> { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW
+ key <AC11> { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS
+ key <TLDE> { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE
+ key <AE06> { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT
+ key <AE08> { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW
+ key <AE09> { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE
+ key <AE10> { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON
+ key <AE11> { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW
+
+ include "level3(ralt_switch)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/kg b/xorg-server/xkeyboard-config/symbols/kg
index 8687cb608..bb1b2d538 100644
--- a/xorg-server/xkeyboard-config/symbols/kg
+++ b/xorg-server/xkeyboard-config/symbols/kg
@@ -1,133 +1,133 @@
-// Kirghiz (aka Kyrgyz) Standard Keyboard
-//
-// Standard - Phonetic
-// ______________- ________________
-// ё1234567890өң ё1234567890яю
-// Ё!"№;%:?*()ӨҢ Ё!"№;%:?-()ЯЮ
-//
-// йцукенгшщзхъү өүертыуиопчшъ
-// фывапролджэ асдфгңйклэь
-// ячсмитьбю.(,) зхжвбнмцщ.(,)
-
-// Authors:
-// Timur Jamakeev <ztimur [at] gmail.com>
-// Ilyas Bakirov <just_ilyas [at] yahoo.com>
-// Yury Fedorov <yury-fedorov [at] prime-task.com>
-// Emil Asanov <a7 [at] on.kg>
-// Ulan Melisbek <ulan.melisbek [at] gmail.com>
-
-
-// Kyrgyz standard keyboard
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- name[Group1]= "Kyrgyzstan";
-
- key <AE01> { [ 1, exclam ] };
- key <AE02> { [ 2, quotedbl ] };
- key <AE03> { [ 3, numerosign ] };
- key <AE04> { [ 4, semicolon ] };
- key <AE05> { [ 5, percent ] };
- key <AE06> { [ 6, colon ] };
- key <AE07> { [ 7, question ] };
- key <AE08> { [ 8, asterisk ] };
- key <AE09> { [ 9, parenleft ] };
- key <AE10> { [ 0, parenright ] };
- key <AE11> { [ Cyrillic_o_bar, Cyrillic_O_bar ] };
- key <AE12> { [ Cyrillic_en_descender, Cyrillic_EN_descender ] };
- key <BKSL> { [ Cyrillic_u_straight, Cyrillic_U_straight ] };
- key <AB10> { [ period, comma ] };
- key <LSGT> { [ slash, bar ] };
-
- key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
- key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
- key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] };
- key <AD03> { [ Cyrillic_u, Cyrillic_U ] };
- key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] };
- key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] };
- key <AD06> { [ Cyrillic_en, Cyrillic_EN ] };
- key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
- key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
- key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
- key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
- key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] };
- key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
- key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] };
- key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
- key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] };
- key <AC04> { [ Cyrillic_a, Cyrillic_A ] };
- key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
- key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
- key <AC07> { [ Cyrillic_o, Cyrillic_O ] };
- key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
- key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
- key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
- key <AC11> { [ Cyrillic_e, Cyrillic_E ] };
- key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
- key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] };
- key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
- key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
- key <AB05> { [ Cyrillic_i, Cyrillic_I ] };
- key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
- key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
- key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
-};
-
-// Kyrgyz phonetic layout
-partial alphanumeric_keys
-xkb_symbols "phonetic" {
-
- name[Group1]="Kyrgyzstan - Phonetic";
-
- key <AE01> { [ 1, exclam ] };
- key <AE02> { [ 2, quotedbl ] };
- key <AE03> { [ 3, numerosign ] };
- key <AE04> { [ 4, semicolon ] };
- key <AE05> { [ 5, percent ] };
- key <AE06> { [ 6, colon ] };
- key <AE07> { [ 7, question ] };
- key <AE08> { [ 8, minus ] };
- key <AE09> { [ 9, parenleft ] };
- key <AE10> { [ 0, parenright ] };
- key <AE11> { [ Cyrillic_ya, Cyrillic_YA ] };
- key <AE12> { [ Cyrillic_yu, Cyrillic_YU ] };
-
- key <AD11> { [ Cyrillic_che, Cyrillic_CHE ] };
- key <AD12> { [ Cyrillic_sha, Cyrillic_SHA ] };
- key <BKSL> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
- key <AB09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
- key <AB10> { [ period, comma ] };
- key <AB08> { [ Cyrillic_tse, Cyrillic_TSE ] };
- key <AC10> { [ Cyrillic_e, Cyrillic_E ] };
- key <AC11> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
-
- key <LatQ> { [ Cyrillic_o_bar, Cyrillic_O_bar ] };
- key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
- key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
- key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
- key <LatW> { [ Cyrillic_u_straight, Cyrillic_U_straight ] };
- key <LatC> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
- key <LatX> { [ Cyrillic_ha, Cyrillic_HA ] };
- key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
- key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
- key <LatV> { [ Cyrillic_ve, Cyrillic_VE ] };
- key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
- key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
- key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
- key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
- key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
- key <LatH> { [ Cyrillic_en_descender, Cyrillic_EN_descender ] };
- key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
- key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
- key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
- key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
- key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
- key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
- key <LatI> { [ Cyrillic_i, Cyrillic_I ] };
- key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
- key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
- key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
-
-};
+// Kirghiz (aka Kyrgyz) Standard Keyboard
+//
+// Standard - Phonetic
+// ______________- ________________
+// ё1234567890өң ё1234567890яю
+// Ё!"№;%:?*()ӨҢ Ё!"№;%:?-()ЯЮ
+//
+// йцукенгшщзхъү өүертыуиопчшъ
+// фывапролджэ асдфгңйклэь
+// ячсмитьбю.(,) зхжвбнмцщ.(,)
+
+// Authors:
+// Timur Jamakeev <ztimur [at] gmail.com>
+// Ilyas Bakirov <just_ilyas [at] yahoo.com>
+// Yury Fedorov <yury-fedorov [at] prime-task.com>
+// Emil Asanov <a7 [at] on.kg>
+// Ulan Melisbek <ulan.melisbek [at] gmail.com>
+
+
+// Kyrgyz standard keyboard
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ name[Group1]= "Kyrgyz";
+
+ key <AE01> { [ 1, exclam ] };
+ key <AE02> { [ 2, quotedbl ] };
+ key <AE03> { [ 3, numerosign ] };
+ key <AE04> { [ 4, semicolon ] };
+ key <AE05> { [ 5, percent ] };
+ key <AE06> { [ 6, colon ] };
+ key <AE07> { [ 7, question ] };
+ key <AE08> { [ 8, asterisk ] };
+ key <AE09> { [ 9, parenleft ] };
+ key <AE10> { [ 0, parenright ] };
+ key <AE11> { [ Cyrillic_o_bar, Cyrillic_O_bar ] };
+ key <AE12> { [ Cyrillic_en_descender, Cyrillic_EN_descender ] };
+ key <BKSL> { [ Cyrillic_u_straight, Cyrillic_U_straight ] };
+ key <AB10> { [ period, comma ] };
+ key <LSGT> { [ slash, bar ] };
+
+ key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
+ key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
+ key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] };
+ key <AD03> { [ Cyrillic_u, Cyrillic_U ] };
+ key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] };
+ key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] };
+ key <AD06> { [ Cyrillic_en, Cyrillic_EN ] };
+ key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
+ key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
+ key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] };
+ key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+ key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] };
+ key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] };
+ key <AC04> { [ Cyrillic_a, Cyrillic_A ] };
+ key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
+ key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <AC07> { [ Cyrillic_o, Cyrillic_O ] };
+ key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
+ key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
+ key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <AC11> { [ Cyrillic_e, Cyrillic_E ] };
+ key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
+ key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] };
+ key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
+ key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
+ key <AB05> { [ Cyrillic_i, Cyrillic_I ] };
+ key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
+ key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
+ key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
+};
+
+// Kyrgyz phonetic layout
+partial alphanumeric_keys
+xkb_symbols "phonetic" {
+
+ name[Group1]="Kyrgyz (phonetic)";
+
+ key <AE01> { [ 1, exclam ] };
+ key <AE02> { [ 2, quotedbl ] };
+ key <AE03> { [ 3, numerosign ] };
+ key <AE04> { [ 4, semicolon ] };
+ key <AE05> { [ 5, percent ] };
+ key <AE06> { [ 6, colon ] };
+ key <AE07> { [ 7, question ] };
+ key <AE08> { [ 8, minus ] };
+ key <AE09> { [ 9, parenleft ] };
+ key <AE10> { [ 0, parenright ] };
+ key <AE11> { [ Cyrillic_ya, Cyrillic_YA ] };
+ key <AE12> { [ Cyrillic_yu, Cyrillic_YU ] };
+
+ key <AD11> { [ Cyrillic_che, Cyrillic_CHE ] };
+ key <AD12> { [ Cyrillic_sha, Cyrillic_SHA ] };
+ key <BKSL> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+ key <AB09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <AB10> { [ period, comma ] };
+ key <AB08> { [ Cyrillic_tse, Cyrillic_TSE ] };
+ key <AC10> { [ Cyrillic_e, Cyrillic_E ] };
+ key <AC11> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
+
+ key <LatQ> { [ Cyrillic_o_bar, Cyrillic_O_bar ] };
+ key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
+ key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
+ key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
+ key <LatW> { [ Cyrillic_u_straight, Cyrillic_U_straight ] };
+ key <LatC> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <LatX> { [ Cyrillic_ha, Cyrillic_HA ] };
+ key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
+ key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
+ key <LatV> { [ Cyrillic_ve, Cyrillic_VE ] };
+ key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
+ key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
+ key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
+ key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
+ key <LatH> { [ Cyrillic_en_descender, Cyrillic_EN_descender ] };
+ key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
+ key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
+ key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
+ key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
+ key <LatI> { [ Cyrillic_i, Cyrillic_I ] };
+ key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
+ key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
+ key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
+
+};
diff --git a/xorg-server/xkeyboard-config/symbols/kh b/xorg-server/xkeyboard-config/symbols/kh
index 7fb5b74df..d93517a33 100644
--- a/xorg-server/xkeyboard-config/symbols/kh
+++ b/xorg-server/xkeyboard-config/symbols/kh
@@ -1,113 +1,113 @@
-//
-// khmer unicode keyboard for XFree86 4.3 or XOrg
-// (might work with older versions, not tested)
-//
-// layout defined by National Information Communications Technology Development Authority (NiDA)
-// http://www.nida.gov.kh
-//
-// version: 1.0.1
-//
-// date: 14.09.2005
-//
-// author: Jens Herden (jens at khmeros.info)
-//
-//
-// understanding the symbols:
-//
-// 0x100yyyy = unicode, yyyy is hexcode
-// codes that are not assigned in unicode (0x10017fb-0x10017ff),
-// are used to make compositions for special vowels
-//
-// voidsymbol = no symbol for this combination
-//
-// all other symbol are defined in: /usr/X11/include/X11/keysymdef.h
-// but with a leading 'XK_'
-//
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
- name[Group1]= "Cambodia";
-
-// there are four levels defined:
-//
-// normal shift right-alt right-alt + shift
-//
-
-// keys: `1234567890-=\
- key <TLDE> { [ guillemotleft, guillemotright, 0x100200d, voidsymbol ] };
- key <AE01> { [ 0x10017e1, exclam, 0x100200c, 0x10017f1 ] };
- key <AE02> { [ 0x10017e2, 0x10017d7, at, 0x10017f2 ] };
- key <AE03> { [ 0x10017e3, quotedbl, 0x10017d1, 0x10017f3 ] };
- key <AE04> { [ 0x10017e4, 0x10017db, dollar, 0x10017f4 ] };
- key <AE05> { [ 0x10017e5, percent, EuroSign, 0x10017f5 ] };
- key <AE06> { [ 0x10017e6, 0x10017cd, 0x10017d9, 0x10017f6 ] };
- key <AE07> { [ 0x10017e7, 0x10017d0, 0x10017da, 0x10017f7 ] };
- key <AE08> { [ 0x10017e8, 0x10017cf, asterisk, 0x10017f8 ] };
- key <AE09> { [ 0x10017e9, parenleft, braceleft, 0x10017f9 ] };
- key <AE10> { [ 0x10017e0, parenright, braceright, 0x10017f0 ] };
- key <AE11> { [ 0x10017a5, 0x10017cc, x, voidsymbol ] };
- key <AE12> { [ 0x10017b2, equal, 0x10017ce, voidsymbol ] };
- key <BKSL> { [ 0x10017ae, 0x10017ad, backslash, voidsymbol ] };
-
-// keys: qwertyuiop[]
- key <AD01> { [ 0x1001786, 0x1001788, 0x10017dc, 0x10019e0 ] };
- key <AD02> { [ 0x10017b9, 0x10017ba, 0x10017dd, 0x10019e1 ] };
- key <AD03> { [ 0x10017c1, 0x10017c2, 0x10017af, 0x10019e2 ] };
- key <AD04> { [ 0x100179a, 0x10017ac, 0x10017ab, 0x10019e3 ] };
- key <AD05> { [ 0x100178f, 0x1001791, 0x10017a8, 0x10019e4 ] };
- key <AD06> { [ 0x1001799, 0x10017bd, voidsymbol, 0x10019e5 ] };
- key <AD07> { [ 0x10017bb, 0x10017bc, voidsymbol, 0x10019e6 ] };
- key <AD08> { [ 0x10017b7, 0x10017b8, 0x10017a6, 0x10019e7 ] };
- key <AD09> { [ 0x10017c4, 0x10017c5, 0x10017b1, 0x10019e8 ] };
- key <AD10> { [ 0x1001795, 0x1001797, 0x10017b0, 0x10019e9 ] };
- key <AD11> { [ 0x10017c0, 0x10017bf, 0x10017a9, 0x10019ea ] };
- key <AD12> { [ 0x10017aa, 0x10017a7, 0x10017b3, 0x10019eb ] };
-
-// keys: asdfghjkl;'
- key <AC01> { [ 0x10017b6, 0x10017ff, voidsymbol, 0x10019ec ] };
- key <AC02> { [ 0x100179f, 0x10017c3, voidsymbol, 0x10019ed ] };
- key <AC03> { [ 0x100178a, 0x100178c, voidsymbol, 0x10019ee ] };
- key <AC04> { [ 0x1001790, 0x1001792, voidsymbol, 0x10019ef ] };
- key <AC05> { [ 0x1001784, 0x10017a2, voidsymbol, 0x10019f0 ] };
- key <AC06> { [ 0x10017a0, 0x10017c7, voidsymbol, 0x10019f1 ] };
- key <AC07> { [ 0x10017d2, 0x1001789, voidsymbol, 0x10019f2 ] };
- key <AC08> { [ 0x1001780, 0x1001782, 0x100179d, 0x10019f3 ] };
- key <AC09> { [ 0x100179b, 0x10017a1, voidsymbol, 0x10019f4 ] };
- key <AC10> { [ 0x10017be, 0x10017fe, 0x10017d6, 0x10019f5 ] };
- key <AC11> { [ 0x10017cb, 0x10017c9, 0x10017c8, 0x10019f6 ] };
-
-// keys: zxcvbnm,./
- key <AB01> { [ 0x100178b, 0x100178d, voidsymbol, 0x10019f7 ] };
- key <AB02> { [ 0x1001781, 0x1001783, voidsymbol, 0x10019f8 ] };
- key <AB03> { [ 0x1001785, 0x1001787, voidsymbol, 0x10019f9 ] };
- key <AB04> { [ 0x100179c, 0x10017fd, voidsymbol, 0x10019fa ] };
- key <AB05> { [ 0x1001794, 0x1001796, 0x100179e, 0x10019fb ] };
- key <AB06> { [ 0x1001793, 0x100178e, voidsymbol, 0x10019fc ] };
- key <AB07> { [ 0x1001798, 0x10017c6, voidsymbol, 0x10019fd ] };
- key <AB08> { [ 0x10017fc, 0x10017fb, comma, 0x10019fe ] };
- key <AB09> { [ 0x10017d4, 0x10017d5, period, 0x10019ff ] };
- key <AB10> { [ 0x10017ca, question, slash, voidsymbol ] };
-
- key <SPCE> { [ 0x100200b, space, 0x10000a0, voidsymbol ] };
- key <RALT> { [ Alt_R ] };
-
-// third level with right-Alt
- include "level3(ralt_switch)"
-
-};
-
-partial alphanumeric_keys
-xkb_symbols "olpc" {
- include "kh(basic)"
-
-// Contact Walter@laptop.org
-
- key <AC10> { [ 0x10017be, 0x10017c8, 0x10017d6, 0x10019f5 ] };
- key <AE01> { [ 0x10017e1, 0x100200c, exclam, 0x10017f1 ] };
- key <AE03> { [ 0x10017e3, 0x10017d1, quotedbl, 0x10017f3 ] };
- key <AE05> { [ 0x10017e5, EuroSign, percent, 0x10017f5 ] };
- key <AE12> { [ 0x10017b2, 0x10017ce, equal, voidsymbol ] };
-
- //language key
- include "group(olpc)"
-};
+//
+// khmer unicode keyboard for XFree86 4.3 or XOrg
+// (might work with older versions, not tested)
+//
+// layout defined by National Information Communications Technology Development Authority (NiDA)
+// http://www.nida.gov.kh
+//
+// version: 1.0.1
+//
+// date: 14.09.2005
+//
+// author: Jens Herden (jens at khmeros.info)
+//
+//
+// understanding the symbols:
+//
+// 0x100yyyy = unicode, yyyy is hexcode
+// codes that are not assigned in unicode (0x10017fb-0x10017ff),
+// are used to make compositions for special vowels
+//
+// voidsymbol = no symbol for this combination
+//
+// all other symbol are defined in: /usr/X11/include/X11/keysymdef.h
+// but with a leading 'XK_'
+//
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+ name[Group1]= "Khmer (Cambodia)";
+
+// there are four levels defined:
+//
+// normal shift right-alt right-alt + shift
+//
+
+// keys: `1234567890-=\
+ key <TLDE> { [ guillemotleft, guillemotright, 0x100200d, voidsymbol ] };
+ key <AE01> { [ 0x10017e1, exclam, 0x100200c, 0x10017f1 ] };
+ key <AE02> { [ 0x10017e2, 0x10017d7, at, 0x10017f2 ] };
+ key <AE03> { [ 0x10017e3, quotedbl, 0x10017d1, 0x10017f3 ] };
+ key <AE04> { [ 0x10017e4, 0x10017db, dollar, 0x10017f4 ] };
+ key <AE05> { [ 0x10017e5, percent, EuroSign, 0x10017f5 ] };
+ key <AE06> { [ 0x10017e6, 0x10017cd, 0x10017d9, 0x10017f6 ] };
+ key <AE07> { [ 0x10017e7, 0x10017d0, 0x10017da, 0x10017f7 ] };
+ key <AE08> { [ 0x10017e8, 0x10017cf, asterisk, 0x10017f8 ] };
+ key <AE09> { [ 0x10017e9, parenleft, braceleft, 0x10017f9 ] };
+ key <AE10> { [ 0x10017e0, parenright, braceright, 0x10017f0 ] };
+ key <AE11> { [ 0x10017a5, 0x10017cc, x, voidsymbol ] };
+ key <AE12> { [ 0x10017b2, equal, 0x10017ce, voidsymbol ] };
+ key <BKSL> { [ 0x10017ae, 0x10017ad, backslash, voidsymbol ] };
+
+// keys: qwertyuiop[]
+ key <AD01> { [ 0x1001786, 0x1001788, 0x10017dc, 0x10019e0 ] };
+ key <AD02> { [ 0x10017b9, 0x10017ba, 0x10017dd, 0x10019e1 ] };
+ key <AD03> { [ 0x10017c1, 0x10017c2, 0x10017af, 0x10019e2 ] };
+ key <AD04> { [ 0x100179a, 0x10017ac, 0x10017ab, 0x10019e3 ] };
+ key <AD05> { [ 0x100178f, 0x1001791, 0x10017a8, 0x10019e4 ] };
+ key <AD06> { [ 0x1001799, 0x10017bd, voidsymbol, 0x10019e5 ] };
+ key <AD07> { [ 0x10017bb, 0x10017bc, voidsymbol, 0x10019e6 ] };
+ key <AD08> { [ 0x10017b7, 0x10017b8, 0x10017a6, 0x10019e7 ] };
+ key <AD09> { [ 0x10017c4, 0x10017c5, 0x10017b1, 0x10019e8 ] };
+ key <AD10> { [ 0x1001795, 0x1001797, 0x10017b0, 0x10019e9 ] };
+ key <AD11> { [ 0x10017c0, 0x10017bf, 0x10017a9, 0x10019ea ] };
+ key <AD12> { [ 0x10017aa, 0x10017a7, 0x10017b3, 0x10019eb ] };
+
+// keys: asdfghjkl;'
+ key <AC01> { [ 0x10017b6, 0x10017ff, voidsymbol, 0x10019ec ] };
+ key <AC02> { [ 0x100179f, 0x10017c3, voidsymbol, 0x10019ed ] };
+ key <AC03> { [ 0x100178a, 0x100178c, voidsymbol, 0x10019ee ] };
+ key <AC04> { [ 0x1001790, 0x1001792, voidsymbol, 0x10019ef ] };
+ key <AC05> { [ 0x1001784, 0x10017a2, voidsymbol, 0x10019f0 ] };
+ key <AC06> { [ 0x10017a0, 0x10017c7, voidsymbol, 0x10019f1 ] };
+ key <AC07> { [ 0x10017d2, 0x1001789, voidsymbol, 0x10019f2 ] };
+ key <AC08> { [ 0x1001780, 0x1001782, 0x100179d, 0x10019f3 ] };
+ key <AC09> { [ 0x100179b, 0x10017a1, voidsymbol, 0x10019f4 ] };
+ key <AC10> { [ 0x10017be, 0x10017fe, 0x10017d6, 0x10019f5 ] };
+ key <AC11> { [ 0x10017cb, 0x10017c9, 0x10017c8, 0x10019f6 ] };
+
+// keys: zxcvbnm,./
+ key <AB01> { [ 0x100178b, 0x100178d, voidsymbol, 0x10019f7 ] };
+ key <AB02> { [ 0x1001781, 0x1001783, voidsymbol, 0x10019f8 ] };
+ key <AB03> { [ 0x1001785, 0x1001787, voidsymbol, 0x10019f9 ] };
+ key <AB04> { [ 0x100179c, 0x10017fd, voidsymbol, 0x10019fa ] };
+ key <AB05> { [ 0x1001794, 0x1001796, 0x100179e, 0x10019fb ] };
+ key <AB06> { [ 0x1001793, 0x100178e, voidsymbol, 0x10019fc ] };
+ key <AB07> { [ 0x1001798, 0x10017c6, voidsymbol, 0x10019fd ] };
+ key <AB08> { [ 0x10017fc, 0x10017fb, comma, 0x10019fe ] };
+ key <AB09> { [ 0x10017d4, 0x10017d5, period, 0x10019ff ] };
+ key <AB10> { [ 0x10017ca, question, slash, voidsymbol ] };
+
+ key <SPCE> { [ 0x100200b, space, 0x10000a0, voidsymbol ] };
+ key <RALT> { [ Alt_R ] };
+
+// third level with right-Alt
+ include "level3(ralt_switch)"
+
+};
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+ include "kh(basic)"
+
+// Contact Walter@laptop.org
+
+ key <AC10> { [ 0x10017be, 0x10017c8, 0x10017d6, 0x10019f5 ] };
+ key <AE01> { [ 0x10017e1, 0x100200c, exclam, 0x10017f1 ] };
+ key <AE03> { [ 0x10017e3, 0x10017d1, quotedbl, 0x10017f3 ] };
+ key <AE05> { [ 0x10017e5, EuroSign, percent, 0x10017f5 ] };
+ key <AE12> { [ 0x10017b2, 0x10017ce, equal, voidsymbol ] };
+
+ //language key
+ include "group(olpc)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/kr b/xorg-server/xkeyboard-config/symbols/kr
index 013c5c101..464566cf3 100644
--- a/xorg-server/xkeyboard-config/symbols/kr
+++ b/xorg-server/xkeyboard-config/symbols/kr
@@ -1,26 +1,26 @@
-default alphanumeric_keys
-xkb_symbols "kr106" {
- include "us"
- name[Group1]= "Korea, Republic of";
- include "kr(koreankeys)"
-};
-
-alphanumeric_keys
-xkb_symbols "kr104" {
- include "us"
- name[Group1]= "Korea, Republic of - 101/104 key Compatible";
- include "kr(koreankeys)"
- include "kr(koreankeys_raltctl)"
-};
-
-partial hidden function_keys
-xkb_symbols "koreankeys" {
- key <K72> { [ Hangul ] };
- key <K71> { [ Hangul_Hanja ] };
-};
-
-partial hidden function_keys
-xkb_symbols "koreankeys_raltctl" {
- key <RALT> { [ Hangul ] };
- key <RCTL> { [ Hangul_Hanja ] };
-};
+default alphanumeric_keys
+xkb_symbols "kr106" {
+ include "us"
+ name[Group1]= "Korean";
+ include "kr(koreankeys)"
+};
+
+alphanumeric_keys
+xkb_symbols "kr104" {
+ include "us"
+ name[Group1]= "Korean (101/104 key compatible)";
+ include "kr(koreankeys)"
+ include "kr(koreankeys_raltctl)"
+};
+
+partial hidden function_keys
+xkb_symbols "koreankeys" {
+ key <K72> { [ Hangul ] };
+ key <K71> { [ Hangul_Hanja ] };
+};
+
+partial hidden function_keys
+xkb_symbols "koreankeys_raltctl" {
+ key <RALT> { [ Hangul ] };
+ key <RCTL> { [ Hangul_Hanja ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/kz b/xorg-server/xkeyboard-config/symbols/kz
index 1110cc4ad..c6da615dc 100644
--- a/xorg-server/xkeyboard-config/symbols/kz
+++ b/xorg-server/xkeyboard-config/symbols/kz
@@ -1,215 +1,215 @@
-// Based on http://www.sci.kz/~sairan/keyboard/kzkbd.html
-// Baurzhan Ismagulov <ibr@radix50.net>
-//
-
-// TODO:
-// 1. AltGr with TLDE and LSGT.
-// 2. Dead key for ruskaz and kazrus.
-// 3. Ctrl + <key>.
-// 4. Alt-Tab.
-
-// RST KazSSR 903-90
-// levels 3 and 4 are non-standard extensions
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- name[Group1] = "Kazakhstan";
-
-key.type[group1] = "FOUR_LEVEL";
-
- key <TLDE> { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] };
- key <AE01> { [ doublelowquotemark, exclam ] };
- key <AE06> { [ comma, semicolon ] };
- key <AE07> { [ period, colon ] };
- key <BKSL> { [ backslash, slash ] };
- key <AB10> { [ numerosign, question ] };
- key <LSGT> { [ less, greater, bar, brokenbar ] };
-
-key.type[group1] = "ALPHABETIC";
-
- key <AE02> { [ Cyrillic_schwa, Cyrillic_SCHWA ] };
- key <AE03> { [ Ukrainian_i, Ukrainian_I ] };
- key <AE04> { [ Cyrillic_en_descender, Cyrillic_EN_descender ] };
- key <AE05> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] };
- key <AE08> { [ Cyrillic_u_straight, Cyrillic_U_straight ] };
- key <AE09> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] };
- key <AE10> { [ Cyrillic_ka_descender, Cyrillic_KA_descender ] };
- key <AE11> { [ Cyrillic_o_bar, Cyrillic_O_bar ] };
- key <AE12> { [ Cyrillic_shha, Cyrillic_SHHA ] };
-
- key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
- key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] };
- key <AD03> { [ Cyrillic_u, Cyrillic_U ] };
- key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] };
- key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] };
- key <AD06> { [ Cyrillic_en, Cyrillic_EN ] };
- key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
- key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
- key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
- key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
- key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] };
- key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
- key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] };
- key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
- key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] };
- key <AC04> { [ Cyrillic_a, Cyrillic_A ] };
- key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
- key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
- key <AC07> { [ Cyrillic_o, Cyrillic_O ] };
- key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
- key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
- key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
- key <AC11> { [ Cyrillic_e, Cyrillic_E ] };
- key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
- key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] };
- key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
- key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
- key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
- key <AB05> { [ Cyrillic_i, Cyrillic_I ] };
- key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
- key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
-
-key.type[group1]="TWO_LEVEL";
-};
-
-// Kikkarin KZ1
-partial alphanumeric_keys
-xkb_symbols "ruskaz" {
-
- name[Group1] = "Kazakhstan - Russian with Kazakh";
-
-key.type[group1] = "FOUR_LEVEL";
-
- key <AE01> { [ 1, exclam ] };
- key <AE02> { [ 2, quotedbl, at ] };
- key <AE03> { [ 3, numerosign, numbersign ] };
- key <AE04> { [ 4, semicolon, dollar ] };
- key <AE05> { [ 5, percent ] };
- key <AE06> { [ 6, colon, asciicircum ] };
- key <AE07> { [ 7, question, ampersand ] };
- key <AE08> { [ 8, asterisk ] };
- key <AE09> { [ 9, parenleft ] };
- key <AE10> { [ 0, parenright ] };
- key <AE11> { [ minus, underscore ] };
- key <AE12> { [ equal, plus ] };
- key <BKSL> { [ backslash, slash, bar ] };
- key <AB10> { [ period, comma, slash, question ] };
- key <LSGT> { [ less, greater, bar, brokenbar ] };
-
-key.type[group1] = "FOUR_LEVEL_ALPHABETIC";
-
- key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
- key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] };
- key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] };
- key <AD03> { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] };
- key <AD04> { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] };
- key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
- key <AD06> { [ Cyrillic_en, Cyrillic_EN, Cyrillic_en_descender, Cyrillic_EN_descender ] };
- key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, Cyrillic_ghe_bar, Cyrillic_GHE_bar ] };
- key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
- key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
- key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
- key <AD11> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] };
- key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
- key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] };
- key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
- key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] };
- key <AC04> { [ Cyrillic_a, Cyrillic_A, Cyrillic_schwa, Cyrillic_SCHWA ] };
- key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
- key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
- key <AC07> { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] };
- key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
- key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
- key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
- key <AC11> { [ Cyrillic_e, Cyrillic_E ] };
- key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
- key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] };
- key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
- key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
- key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
- key <AB05> { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] };
- key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
- key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
-};
-
-// Kikkarin KZ2
-partial alphanumeric_keys
-xkb_symbols "kazrus" {
-
- name[Group1] = "Kazakhstan - Kazakh with Russian";
-
-key.type[group1] = "FOUR_LEVEL";
-
- key <AE01> { [ 1, exclam ] };
- key <AE02> { [ 2, quotedbl, at ] };
- key <AE03> { [ 3, numerosign, numbersign ] };
- key <AE04> { [ 4, semicolon, dollar ] };
- key <AE05> { [ 5, percent ] };
- key <AE06> { [ 6, colon, asciicircum ] };
- key <AE07> { [ 7, question, ampersand ] };
- key <AE08> { [ 8, asterisk ] };
- key <AE09> { [ 9, parenleft ] };
- key <AE10> { [ 0, parenright ] };
- key <AE11> { [ minus, underscore ] };
- key <AE12> { [ equal, plus ] };
- key <BKSL> { [ backslash, slash, bar ] };
- key <AB10> { [ period, comma, slash, question ] };
- key <LSGT> { [ less, greater, bar, brokenbar ] };
-
-key.type[group1] = "FOUR_LEVEL_ALPHABETIC";
-
- key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
- key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
- key <AD02> { [ Cyrillic_en_descender, Cyrillic_EN_descender, Cyrillic_tse, Cyrillic_TSE ] };
- key <AD03> { [ Cyrillic_u, Cyrillic_U ] };
- key <AD04> { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] };
- key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
- key <AD06> { [ Cyrillic_en, Cyrillic_EN ] };
- key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
- key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
- key <AD09> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, Cyrillic_shcha, Cyrillic_SHCHA ] };
- key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
- key <AD11> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] };
- key <AD12> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
- key <AC01> { [ Cyrillic_o_bar, Cyrillic_O_bar, Cyrillic_ef, Cyrillic_EF ] };
- key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
- key <AC03> { [ Cyrillic_ka_descender, Cyrillic_KA_descender, Cyrillic_ve, Cyrillic_VE ] };
- key <AC04> { [ Cyrillic_a, Cyrillic_A ] };
- key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
- key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
- key <AC07> { [ Cyrillic_o, Cyrillic_O ] };
- key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
- key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
- key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
- key <AC11> { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_e, Cyrillic_E ] };
- key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
- key <AB02> { [ Ukrainian_i, Ukrainian_I, Cyrillic_che, Cyrillic_CHE ] };
- key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
- key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
- key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
- key <AB05> { [ Cyrillic_i, Cyrillic_I ] };
- key <AB07> { [ Cyrillic_u_straight, Cyrillic_U_straight, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
- key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "olpc" {
-
-// Contact: Walter Bender <walter@laptop.org>
-
-// We moved the Cyrillic IO off of the Tilde Key as an Alt-GR character
-// and moved it onto the Backslash key, making Backslash and Bar available
-// through the Latin side of the keyboard.
-
- include "kz(basic)"
-
- name[Group1] = "Kazakhstan";
-
- key <TLDE> { [ parenleft, parenright ] };
- key <BKSL> { [ Cyrillic_io, Cyrillic_IO ] };
-
- include "group(olpc)"
-};
+// Based on http://www.sci.kz/~sairan/keyboard/kzkbd.html
+// Baurzhan Ismagulov <ibr@radix50.net>
+//
+
+// TODO:
+// 1. AltGr with TLDE and LSGT.
+// 2. Dead key for ruskaz and kazrus.
+// 3. Ctrl + <key>.
+// 4. Alt-Tab.
+
+// RST KazSSR 903-90
+// levels 3 and 4 are non-standard extensions
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ name[Group1] = "Kazakh";
+
+key.type[group1] = "FOUR_LEVEL";
+
+ key <TLDE> { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] };
+ key <AE01> { [ doublelowquotemark, exclam ] };
+ key <AE06> { [ comma, semicolon ] };
+ key <AE07> { [ period, colon ] };
+ key <BKSL> { [ backslash, slash ] };
+ key <AB10> { [ numerosign, question ] };
+ key <LSGT> { [ less, greater, bar, brokenbar ] };
+
+key.type[group1] = "ALPHABETIC";
+
+ key <AE02> { [ Cyrillic_schwa, Cyrillic_SCHWA ] };
+ key <AE03> { [ Ukrainian_i, Ukrainian_I ] };
+ key <AE04> { [ Cyrillic_en_descender, Cyrillic_EN_descender ] };
+ key <AE05> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] };
+ key <AE08> { [ Cyrillic_u_straight, Cyrillic_U_straight ] };
+ key <AE09> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] };
+ key <AE10> { [ Cyrillic_ka_descender, Cyrillic_KA_descender ] };
+ key <AE11> { [ Cyrillic_o_bar, Cyrillic_O_bar ] };
+ key <AE12> { [ Cyrillic_shha, Cyrillic_SHHA ] };
+
+ key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
+ key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] };
+ key <AD03> { [ Cyrillic_u, Cyrillic_U ] };
+ key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] };
+ key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] };
+ key <AD06> { [ Cyrillic_en, Cyrillic_EN ] };
+ key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
+ key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
+ key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] };
+ key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+ key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] };
+ key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] };
+ key <AC04> { [ Cyrillic_a, Cyrillic_A ] };
+ key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
+ key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <AC07> { [ Cyrillic_o, Cyrillic_O ] };
+ key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
+ key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
+ key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <AC11> { [ Cyrillic_e, Cyrillic_E ] };
+ key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
+ key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] };
+ key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
+ key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
+ key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
+ key <AB05> { [ Cyrillic_i, Cyrillic_I ] };
+ key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
+ key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
+
+key.type[group1]="TWO_LEVEL";
+};
+
+// Kikkarin KZ1
+partial alphanumeric_keys
+xkb_symbols "ruskaz" {
+
+ name[Group1] = "Russian (Kazakhstan, with Kazakh)";
+
+key.type[group1] = "FOUR_LEVEL";
+
+ key <AE01> { [ 1, exclam ] };
+ key <AE02> { [ 2, quotedbl, at ] };
+ key <AE03> { [ 3, numerosign, numbersign ] };
+ key <AE04> { [ 4, semicolon, dollar ] };
+ key <AE05> { [ 5, percent ] };
+ key <AE06> { [ 6, colon, asciicircum ] };
+ key <AE07> { [ 7, question, ampersand ] };
+ key <AE08> { [ 8, asterisk ] };
+ key <AE09> { [ 9, parenleft ] };
+ key <AE10> { [ 0, parenright ] };
+ key <AE11> { [ minus, underscore ] };
+ key <AE12> { [ equal, plus ] };
+ key <BKSL> { [ backslash, slash, bar ] };
+ key <AB10> { [ period, comma, slash, question ] };
+ key <LSGT> { [ less, greater, bar, brokenbar ] };
+
+key.type[group1] = "FOUR_LEVEL_ALPHABETIC";
+
+ key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
+ key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] };
+ key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] };
+ key <AD03> { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] };
+ key <AD04> { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] };
+ key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
+ key <AD06> { [ Cyrillic_en, Cyrillic_EN, Cyrillic_en_descender, Cyrillic_EN_descender ] };
+ key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, Cyrillic_ghe_bar, Cyrillic_GHE_bar ] };
+ key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
+ key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
+ key <AD11> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] };
+ key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+ key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] };
+ key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] };
+ key <AC04> { [ Cyrillic_a, Cyrillic_A, Cyrillic_schwa, Cyrillic_SCHWA ] };
+ key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
+ key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <AC07> { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] };
+ key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
+ key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
+ key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <AC11> { [ Cyrillic_e, Cyrillic_E ] };
+ key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
+ key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] };
+ key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
+ key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
+ key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
+ key <AB05> { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] };
+ key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
+ key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
+};
+
+// Kikkarin KZ2
+partial alphanumeric_keys
+xkb_symbols "kazrus" {
+
+ name[Group1] = "Kazakh (with Russian)";
+
+key.type[group1] = "FOUR_LEVEL";
+
+ key <AE01> { [ 1, exclam ] };
+ key <AE02> { [ 2, quotedbl, at ] };
+ key <AE03> { [ 3, numerosign, numbersign ] };
+ key <AE04> { [ 4, semicolon, dollar ] };
+ key <AE05> { [ 5, percent ] };
+ key <AE06> { [ 6, colon, asciicircum ] };
+ key <AE07> { [ 7, question, ampersand ] };
+ key <AE08> { [ 8, asterisk ] };
+ key <AE09> { [ 9, parenleft ] };
+ key <AE10> { [ 0, parenright ] };
+ key <AE11> { [ minus, underscore ] };
+ key <AE12> { [ equal, plus ] };
+ key <BKSL> { [ backslash, slash, bar ] };
+ key <AB10> { [ period, comma, slash, question ] };
+ key <LSGT> { [ less, greater, bar, brokenbar ] };
+
+key.type[group1] = "FOUR_LEVEL_ALPHABETIC";
+
+ key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
+ key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
+ key <AD02> { [ Cyrillic_en_descender, Cyrillic_EN_descender, Cyrillic_tse, Cyrillic_TSE ] };
+ key <AD03> { [ Cyrillic_u, Cyrillic_U ] };
+ key <AD04> { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] };
+ key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
+ key <AD06> { [ Cyrillic_en, Cyrillic_EN ] };
+ key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
+ key <AD09> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
+ key <AD11> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] };
+ key <AD12> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+ key <AC01> { [ Cyrillic_o_bar, Cyrillic_O_bar, Cyrillic_ef, Cyrillic_EF ] };
+ key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key <AC03> { [ Cyrillic_ka_descender, Cyrillic_KA_descender, Cyrillic_ve, Cyrillic_VE ] };
+ key <AC04> { [ Cyrillic_a, Cyrillic_A ] };
+ key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
+ key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <AC07> { [ Cyrillic_o, Cyrillic_O ] };
+ key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
+ key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
+ key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <AC11> { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_e, Cyrillic_E ] };
+ key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
+ key <AB02> { [ Ukrainian_i, Ukrainian_I, Cyrillic_che, Cyrillic_CHE ] };
+ key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
+ key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
+ key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
+ key <AB05> { [ Cyrillic_i, Cyrillic_I ] };
+ key <AB07> { [ Cyrillic_u_straight, Cyrillic_U_straight, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
+ key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+// Contact: Walter Bender <walter@laptop.org>
+
+// We moved the Cyrillic IO off of the Tilde Key as an Alt-GR character
+// and moved it onto the Backslash key, making Backslash and Bar available
+// through the Latin side of the keyboard.
+
+ include "kz(basic)"
+
+ name[Group1] = "Kazakh";
+
+ key <TLDE> { [ parenleft, parenright ] };
+ key <BKSL> { [ Cyrillic_io, Cyrillic_IO ] };
+
+ include "group(olpc)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/la b/xorg-server/xkeyboard-config/symbols/la
index f893a0268..a174ddfcc 100644
--- a/xorg-server/xkeyboard-config/symbols/la
+++ b/xorg-server/xkeyboard-config/symbols/la
@@ -1,150 +1,150 @@
-// Lao keymap, by Anousak Souphavanh <anousak@muanglao.com>
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- // Describes the differences between a very simple US/ASCII
- // keyboard and a Lao keyboard
- // This keymap uses the Lao keyboard standard [kind of] widely used inLaos
-
- name[Group1]= "Laos";
-
- // Alphanumeric section
- key <TLDE> { [ 0x100200D ]};
- key <AE01> { [ 0x1000ea2, 0x1000ed1 ]};
- key <AE01> { [ 0x1000ea2, 0x1000ed1 ]};
- key <AE02> { [ 0x1000e9f, 0x1000ed2 ]};
- key <AE03> { [ 0x1000ec2, 0x1000ed3 ]};
- key <AE04> { [ 0x1000e96, 0x1000ed4 ]};
- key <AE05> { [ 0x1000eb8, 0x1000ecc ]};
- key <AE06> { [ 0x1000eb9, 0x1000ebc ]};
- key <AE07> { [ 0x1000e84, 0x1000ed5 ]};
- key <AE08> { [ 0x1000e95, 0x1000ed6 ]};
- key <AE09> { [ 0x1000e88, 0x1000ed7 ]};
- key <AE10> { [ 0x1000e82, 0x1000ed8 ]};
- key <AE11> { [ 0x1000e8a, 0x1000ed9 ]};
- key <AE12> { [ 0x1000ecd ]};
-
- key <AD01> { [ 0x1000ebb ]};
- key <AD02> { [ 0x1000ec4, 0x1000ed0 ]};
- key <AD03> { [ 0x1000eb3 ]};
- key <AD04> { [ 0x1000e9e, underscore ]};
- key <AD05> { [ 0x1000eb0, plus ]};
- key <AD06> { [ 0x1000eb4 ]};
- key <AD07> { [ 0x1000eb5 ]};
- key <AD08> { [ 0x1000ea3, 0x1000eae ]};
- key <AD09> { [ 0x1000e99 ]};
- key <AD10> { [ 0x1000e8d, 0x1000ebd ]};
- key <AD11> { [ 0x1000e9a, minus ]};
- key <AD12> { [ 0x1000ea5, braceright ]};
- key <BKSL> { [ 0x1000edc, 0x1000edd ]};
-
- key <AC01> { [ 0x1000eb1 ]};
- key <AC02> { [ 0x1000eab, semicolon ]};
- key <AC03> { [ 0x1000e81, period ]};
- key <AC04> { [ 0x1000e94, comma ]};
- key <AC05> { [ 0x1000ec0, colon ]};
- key <AC06> { [ 0x1000ec9, 0x1000eca ]};
- key <AC07> { [ 0x1000ec8, 0x1000ecb ]};
- key <AC08> { [ 0x1000eb2, exclam ]};
- key <AC09> { [ 0x1000eaa, question ]};
- key <AC10> { [ 0x1000ea7, percent ]};
- key <AC11> { [ 0x1000e87, equal ]};
-
- key <AB01> { [ 0x1000e9c, 0x10020ad ]};
- key <AB02> { [ 0x1000e9b, parenleft ]};
- key <AB03> { [ 0x1000ec1, 0x1000eaf ]};
- key <AB04> { [ 0x1000ead ]};
- key <AB05> { [ 0x1000eb6 ]};
- key <AB06> { [ 0x1000eb7 ]};
- key <AB07> { [ 0x1000e97, 0x1000ec6 ]};
- key <AB08> { [ 0x1000ea1, quoteleft ]};
- key <AB09> { [ 0x1000ec3, dollar ]};
- key <AB10> { [ 0x1000e9d, parenright ]};
-
-override key <LFSH> {
- type[Group1]="PC_ALT_LEVEL2",
- [ Shift_L, ISO_First_Group ]
- };
-override key <RTSH> {
- type[Group1]="PC_ALT_LEVEL2",
- [ Shift_R, ISO_Last_Group ]
- };
-};
-
-partial
-xkb_symbols "stea" {
-
- // Describes the differences between a very simple US/ASCII
- // keyboard and a Lao keyboard
- // This keymap uses the proposed Lao keyboard standard by the
- // PAN Localization Project
- // Science Technology and Environment Agency of Lao PDR
- // National University Computer and Emergency Science of Pakistan
- // International Development Research Center
- // Caveat: assigning multiple codepoints to a single key doesn't
- // work in XKB. Therefor the combining codepoint assignments
- // have been omitted.
-
-
- name[Group1]= "Laos - STEA (proposed standard layout)";
-
- // Alphanumeric section
- key <TLDE> { [ quotedbl, apostrophe ]};
- key <AE01> { [ 0x1000ea2, 1, 0x1000ed1 ]};
- key <AE02> { [ 0x1000e9f, 2, 0x1000ed2 ]};
- key <AE03> { [ 0x1000ec2, 3, 0x1000ed3 ]};
- key <AE04> { [ 0x1000e96, 4, 0x1000ed4 ]};
- key <AE05> { [ 0x1000eb8, 0x1000ecc, 0x1000ed5 ]};
- key <AE06> { [ 0x1000eb9, 0x1000ebc, 0x1000ed6 ]};
- key <AE07> { [ 0x1000e84, 5, 0x1000ed7 ]};
- key <AE08> { [ 0x1000e95, 6, 0x1000ed8 ]};
- key <AE09> { [ 0x1000e88, 7, 0x1000ed9 ]};
- key <AE10> { [ 0x1000e82, 8, 0x1000ed0 ]};
- key <AE11> { [ 0x1000e8a, 9 ]};
- key <AE12> { [ 0x1000ecd ]};
-
- key <AD01> { [ 0x1000ebb ]};
- key <AD02> { [ 0x1000ec4, 0 ]};
- key <AD03> { [ 0x1000eb3, asterisk ]};
- key <AD04> { [ 0x1000e9e, underscore ]};
- key <AD05> { [ 0x1000eb0, plus ]};
- key <AD06> { [ 0x1000eb4 ]};
- key <AD07> { [ 0x1000eb5 ]};
- key <AD08> { [ 0x1000eae, 0x1000ea3 ]};
- key <AD09> { [ 0x1000e99, 0x1000edc ]};
- key <AD10> { [ 0x1000e8d, 0x1000ebd ]};
- key <AD11> { [ 0x1000e9a, minus ]};
- key <AD12> { [ 0x1000ea5 ]};
- key <BKSL> { [ slash, backslash ]};
-
- key <AC01> { [ 0x1000eb1 ]};
- key <AC02> { [ 0x1000eab, semicolon ]};
- key <AC03> { [ 0x1000e81, period ]};
- key <AC04> { [ 0x1000e94, comma ]};
- key <AC05> { [ 0x1000ec0, colon ]};
- key <AC06> { [ 0x1000ec9, 0x1000eca ]};
- key <AC07> { [ 0x1000ec8, 0x1000ecb ]};
- key <AC08> { [ 0x1000eb2, exclam ]};
- key <AC09> { [ 0x1000eaa, question ]};
- key <AC10> { [ 0x1000ea7, percent ]};
- key <AC11> { [ 0x1000e87, equal ]};
-
- key <AB01> { [ 0x1000e9c, 0x10020ad ]};
- key <AB02> { [ 0x1000e9b, parenleft ]};
- key <AB03> { [ 0x1000ec1, 0x1000eaf ]};
- key <AB04> { [ 0x1000ead, x ]};
- key <AB05> { [ 0x1000eb6 ]};
- key <AB06> { [ 0x1000eb7 ]};
- key <AB07> { [ 0x1000e97, 0x1000ec6 ]};
- key <AB08> { [ 0x1000ea1, 0x1000edd ]};
- key <AB09> { [ 0x1000ec3, dollar ]};
- key <AB10> { [ 0x1000e9d, parenright ]};
-
- key <SPCE> { [ space, nobreakspace, nobreakspace ]};
-
- key <KPDL> { [ comma, period ]};
-
- include "level3(ralt_switch)"
-
-};
+// Lao keymap, by Anousak Souphavanh <anousak@muanglao.com>
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ // Describes the differences between a very simple US/ASCII
+ // keyboard and a Lao keyboard
+ // This keymap uses the Lao keyboard standard [kind of] widely used inLaos
+
+ name[Group1]= "Lao";
+
+ // Alphanumeric section
+ key <TLDE> { [ 0x100200D ]};
+ key <AE01> { [ 0x1000ea2, 0x1000ed1 ]};
+ key <AE01> { [ 0x1000ea2, 0x1000ed1 ]};
+ key <AE02> { [ 0x1000e9f, 0x1000ed2 ]};
+ key <AE03> { [ 0x1000ec2, 0x1000ed3 ]};
+ key <AE04> { [ 0x1000e96, 0x1000ed4 ]};
+ key <AE05> { [ 0x1000eb8, 0x1000ecc ]};
+ key <AE06> { [ 0x1000eb9, 0x1000ebc ]};
+ key <AE07> { [ 0x1000e84, 0x1000ed5 ]};
+ key <AE08> { [ 0x1000e95, 0x1000ed6 ]};
+ key <AE09> { [ 0x1000e88, 0x1000ed7 ]};
+ key <AE10> { [ 0x1000e82, 0x1000ed8 ]};
+ key <AE11> { [ 0x1000e8a, 0x1000ed9 ]};
+ key <AE12> { [ 0x1000ecd ]};
+
+ key <AD01> { [ 0x1000ebb ]};
+ key <AD02> { [ 0x1000ec4, 0x1000ed0 ]};
+ key <AD03> { [ 0x1000eb3 ]};
+ key <AD04> { [ 0x1000e9e, underscore ]};
+ key <AD05> { [ 0x1000eb0, plus ]};
+ key <AD06> { [ 0x1000eb4 ]};
+ key <AD07> { [ 0x1000eb5 ]};
+ key <AD08> { [ 0x1000ea3, 0x1000eae ]};
+ key <AD09> { [ 0x1000e99 ]};
+ key <AD10> { [ 0x1000e8d, 0x1000ebd ]};
+ key <AD11> { [ 0x1000e9a, minus ]};
+ key <AD12> { [ 0x1000ea5, braceright ]};
+ key <BKSL> { [ 0x1000edc, 0x1000edd ]};
+
+ key <AC01> { [ 0x1000eb1 ]};
+ key <AC02> { [ 0x1000eab, semicolon ]};
+ key <AC03> { [ 0x1000e81, period ]};
+ key <AC04> { [ 0x1000e94, comma ]};
+ key <AC05> { [ 0x1000ec0, colon ]};
+ key <AC06> { [ 0x1000ec9, 0x1000eca ]};
+ key <AC07> { [ 0x1000ec8, 0x1000ecb ]};
+ key <AC08> { [ 0x1000eb2, exclam ]};
+ key <AC09> { [ 0x1000eaa, question ]};
+ key <AC10> { [ 0x1000ea7, percent ]};
+ key <AC11> { [ 0x1000e87, equal ]};
+
+ key <AB01> { [ 0x1000e9c, 0x10020ad ]};
+ key <AB02> { [ 0x1000e9b, parenleft ]};
+ key <AB03> { [ 0x1000ec1, 0x1000eaf ]};
+ key <AB04> { [ 0x1000ead ]};
+ key <AB05> { [ 0x1000eb6 ]};
+ key <AB06> { [ 0x1000eb7 ]};
+ key <AB07> { [ 0x1000e97, 0x1000ec6 ]};
+ key <AB08> { [ 0x1000ea1, quoteleft ]};
+ key <AB09> { [ 0x1000ec3, dollar ]};
+ key <AB10> { [ 0x1000e9d, parenright ]};
+
+override key <LFSH> {
+ type[Group1]="PC_ALT_LEVEL2",
+ [ Shift_L, ISO_First_Group ]
+ };
+override key <RTSH> {
+ type[Group1]="PC_ALT_LEVEL2",
+ [ Shift_R, ISO_Last_Group ]
+ };
+};
+
+partial
+xkb_symbols "stea" {
+
+ // Describes the differences between a very simple US/ASCII
+ // keyboard and a Lao keyboard
+ // This keymap uses the proposed Lao keyboard standard by the
+ // PAN Localization Project
+ // Science Technology and Environment Agency of Lao PDR
+ // National University Computer and Emergency Science of Pakistan
+ // International Development Research Center
+ // Caveat: assigning multiple codepoints to a single key doesn't
+ // work in XKB. Therefor the combining codepoint assignments
+ // have been omitted.
+
+
+ name[Group1]= "Lao (STEA proposed standard layout)";
+
+ // Alphanumeric section
+ key <TLDE> { [ quotedbl, apostrophe ]};
+ key <AE01> { [ 0x1000ea2, 1, 0x1000ed1 ]};
+ key <AE02> { [ 0x1000e9f, 2, 0x1000ed2 ]};
+ key <AE03> { [ 0x1000ec2, 3, 0x1000ed3 ]};
+ key <AE04> { [ 0x1000e96, 4, 0x1000ed4 ]};
+ key <AE05> { [ 0x1000eb8, 0x1000ecc, 0x1000ed5 ]};
+ key <AE06> { [ 0x1000eb9, 0x1000ebc, 0x1000ed6 ]};
+ key <AE07> { [ 0x1000e84, 5, 0x1000ed7 ]};
+ key <AE08> { [ 0x1000e95, 6, 0x1000ed8 ]};
+ key <AE09> { [ 0x1000e88, 7, 0x1000ed9 ]};
+ key <AE10> { [ 0x1000e82, 8, 0x1000ed0 ]};
+ key <AE11> { [ 0x1000e8a, 9 ]};
+ key <AE12> { [ 0x1000ecd ]};
+
+ key <AD01> { [ 0x1000ebb ]};
+ key <AD02> { [ 0x1000ec4, 0 ]};
+ key <AD03> { [ 0x1000eb3, asterisk ]};
+ key <AD04> { [ 0x1000e9e, underscore ]};
+ key <AD05> { [ 0x1000eb0, plus ]};
+ key <AD06> { [ 0x1000eb4 ]};
+ key <AD07> { [ 0x1000eb5 ]};
+ key <AD08> { [ 0x1000eae, 0x1000ea3 ]};
+ key <AD09> { [ 0x1000e99, 0x1000edc ]};
+ key <AD10> { [ 0x1000e8d, 0x1000ebd ]};
+ key <AD11> { [ 0x1000e9a, minus ]};
+ key <AD12> { [ 0x1000ea5 ]};
+ key <BKSL> { [ slash, backslash ]};
+
+ key <AC01> { [ 0x1000eb1 ]};
+ key <AC02> { [ 0x1000eab, semicolon ]};
+ key <AC03> { [ 0x1000e81, period ]};
+ key <AC04> { [ 0x1000e94, comma ]};
+ key <AC05> { [ 0x1000ec0, colon ]};
+ key <AC06> { [ 0x1000ec9, 0x1000eca ]};
+ key <AC07> { [ 0x1000ec8, 0x1000ecb ]};
+ key <AC08> { [ 0x1000eb2, exclam ]};
+ key <AC09> { [ 0x1000eaa, question ]};
+ key <AC10> { [ 0x1000ea7, percent ]};
+ key <AC11> { [ 0x1000e87, equal ]};
+
+ key <AB01> { [ 0x1000e9c, 0x10020ad ]};
+ key <AB02> { [ 0x1000e9b, parenleft ]};
+ key <AB03> { [ 0x1000ec1, 0x1000eaf ]};
+ key <AB04> { [ 0x1000ead, x ]};
+ key <AB05> { [ 0x1000eb6 ]};
+ key <AB06> { [ 0x1000eb7 ]};
+ key <AB07> { [ 0x1000e97, 0x1000ec6 ]};
+ key <AB08> { [ 0x1000ea1, 0x1000edd ]};
+ key <AB09> { [ 0x1000ec3, dollar ]};
+ key <AB10> { [ 0x1000e9d, parenright ]};
+
+ key <SPCE> { [ space, nobreakspace, nobreakspace ]};
+
+ key <KPDL> { [ comma, period ]};
+
+ include "level3(ralt_switch)"
+
+};
diff --git a/xorg-server/xkeyboard-config/symbols/latam b/xorg-server/xkeyboard-config/symbols/latam
index de20f2109..6cc9c6850 100644
--- a/xorg-server/xkeyboard-config/symbols/latam
+++ b/xorg-server/xkeyboard-config/symbols/latam
@@ -1,68 +1,68 @@
-// based on a keyboard
-// Modified for a real Latin American Keyboard by Fabian Mandelbaum
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- include "latin(type4)"
-
- name[Group1]="Latin American";
-
- key <AE01> { [ 1, exclam, bar, exclamdown ] };
- key <AE03> { [ 3, numbersign, periodcentered, sterling ] };
- key <AE04> { [ 4, dollar, asciitilde, dollar ] };
- key <AE06> { [ 6, ampersand, notsign, fiveeighths ] };
- key <AE11> { [apostrophe, question, backslash, questiondown ] };
- key <AE12> { [questiondown, exclamdown, dead_cedilla, dead_ogonek] };
-
- key <AD11> { [dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ] };
- key <AD12> { [ plus, asterisk, asciitilde, dead_macron ] };
-
- key <AC10> { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] };
- key <AC11> { [ braceleft, bracketleft, dead_circumflex, braceleft] };
- key <TLDE> { [ bar, degree, notsign, notsign ] };
-
- key <BKSL> { [braceright, bracketright, dead_grave, braceright ] };
-
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "Sundeadkeys" {
- include "latam(basic)"
-
- key <AC11> { [dead_acute, dead_diaeresis, braceleft, braceleft ] };
- key <AD11> { [dead_grave, dead_circumflex, bracketleft, dead_abovering ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "sundeadkeys" {
- include "latam(Sundeadkeys)"
- name[Group1]="Latin American - Sun dead keys";
-};
-
-partial alphanumeric_keys
-xkb_symbols "nodeadkeys" {
-
- include "latam(basic)"
-
- name[Group1]="Latin American - Eliminate dead keys";
-
- key <AE12> { [questiondown, exclamdown, cedilla, ogonek ] };
- key <AD11> { [ grave, asciicircum, bracketleft, degree ] };
- key <AD12> { [ plus, asterisk, bracketright, macron ] };
- key <AC10> { [ ntilde, Ntilde, asciitilde, doubleacute ] };
- key <AC11> { [ acute, diaeresis, braceleft, braceleft ] };
- key <BKSL> { [ ccedilla, Ccedilla, braceright, breve ] };
- key <AB10> { [ minus, underscore, dead_belowdot, abovedot ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "deadtilde" {
-
- include "latam(basic)"
-
- name[Group1]="Latin American - Include dead tilde";
-
- key <AD12> { [ plus, asterisk, dead_tilde, dead_macron ] };
-};
+// based on a keyboard
+// Modified for a real Latin American Keyboard by Fabian Mandelbaum
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ include "latin(type4)"
+
+ name[Group1]="Spanish (Latin American)";
+
+ key <AE01> { [ 1, exclam, bar, exclamdown ] };
+ key <AE03> { [ 3, numbersign, periodcentered, sterling ] };
+ key <AE04> { [ 4, dollar, asciitilde, dollar ] };
+ key <AE06> { [ 6, ampersand, notsign, fiveeighths ] };
+ key <AE11> { [apostrophe, question, backslash, questiondown ] };
+ key <AE12> { [questiondown, exclamdown, dead_cedilla, dead_ogonek] };
+
+ key <AD11> { [dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ] };
+ key <AD12> { [ plus, asterisk, asciitilde, dead_macron ] };
+
+ key <AC10> { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] };
+ key <AC11> { [ braceleft, bracketleft, dead_circumflex, braceleft] };
+ key <TLDE> { [ bar, degree, notsign, notsign ] };
+
+ key <BKSL> { [braceright, bracketright, dead_grave, braceright ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "Sundeadkeys" {
+ include "latam(basic)"
+
+ key <AC11> { [dead_acute, dead_diaeresis, braceleft, braceleft ] };
+ key <AD11> { [dead_grave, dead_circumflex, bracketleft, dead_abovering ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "sundeadkeys" {
+ include "latam(Sundeadkeys)"
+ name[Group1]="Spanish (Latin American, Sun dead keys)";
+};
+
+partial alphanumeric_keys
+xkb_symbols "nodeadkeys" {
+
+ include "latam(basic)"
+
+ name[Group1]="Spanish (Latin American, eliminate dead keys)";
+
+ key <AE12> { [questiondown, exclamdown, cedilla, ogonek ] };
+ key <AD11> { [ grave, asciicircum, bracketleft, degree ] };
+ key <AD12> { [ plus, asterisk, bracketright, macron ] };
+ key <AC10> { [ ntilde, Ntilde, asciitilde, doubleacute ] };
+ key <AC11> { [ acute, diaeresis, braceleft, braceleft ] };
+ key <BKSL> { [ ccedilla, Ccedilla, braceright, breve ] };
+ key <AB10> { [ minus, underscore, dead_belowdot, abovedot ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "deadtilde" {
+
+ include "latam(basic)"
+
+ name[Group1]="Spanish (Latin American, include dead tilde)";
+
+ key <AD12> { [ plus, asterisk, dead_tilde, dead_macron ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/lk b/xorg-server/xkeyboard-config/symbols/lk
index 928781d05..c1a16abdd 100644
--- a/xorg-server/xkeyboard-config/symbols/lk
+++ b/xorg-server/xkeyboard-config/symbols/lk
@@ -33,7 +33,7 @@ xkb_symbols "sin_phonetic" {
include "us"
// it is default - no details in the name
- name[Group1] = "Sri Lanka";
+ name[Group1] = "Sinhala";
key.type[Group1] = "FOUR_LEVEL";
// q - p
@@ -80,12 +80,12 @@ xkb_symbols "sin_phonetic" {
partial alphanumeric_keys
xkb_symbols "tam_unicode" {
include "in(tam_unicode)"
- name[Group1]= "Sri Lanka - Tamil Unicode";
+ name[Group1]= "Tamil (Sri Lanka, Unicode)";
};
partial alphanumeric_keys
xkb_symbols "tam_TAB" {
include "in(tam_TAB)"
- name[Group1]= "Sri Lanka - Tamil TAB Typewriter";
+ name[Group1]= "Tamil (Sri Lanka, TAB Typewriter)";
};
diff --git a/xorg-server/xkeyboard-config/symbols/lt b/xorg-server/xkeyboard-config/symbols/lt
index c19629f9d..8b243edc5 100644
--- a/xorg-server/xkeyboard-config/symbols/lt
+++ b/xorg-server/xkeyboard-config/symbols/lt
@@ -14,7 +14,7 @@ xkb_symbols "basic" {
include "eurosign(e)"
include "level3(ralt_switch)"
- name[Group1]="Lithuania";
+ name[Group1]="Lithuanian";
key <TLDE> {[ grave, asciitilde, acute ]};
key <AE01> {[ aogonek, Aogonek, 1, exclam ]};
@@ -42,7 +42,7 @@ xkb_symbols "us" {
include "eurosign(e)"
include "level3(ralt_switch)"
- name[Group1]="Lithuania - US keyboard with Lithuanian letters";
+ name[Group1]="Lithuanian (US keyboard with Lithuanian letters)";
key <TLDE> {[ grave, asciitilde, acute ]};
key <AE01> {[ 1, exclam, aogonek, Aogonek ]};
@@ -78,7 +78,7 @@ xkb_symbols "std" {
include "kpdl(comma)"
include "level3(ralt_switch)"
- name[Group1]="Lithuania - Standard";
+ name[Group1]="Lithuanian (standard)";
key <TLDE> {[ grave, asciitilde, acute ]};
key <AE01> {[ exclam, 1, at ]};
@@ -130,7 +130,7 @@ xkb_symbols "ibm" {
include "nbsp(level3)"
include "level3(ralt_switch)"
- name[Group1]="Lithuania - IBM (LST 1205-92)";
+ name[Group1]="Lithuanian (IBM LST 1205-92)";
key <TLDE> {[ grave, asciitilde, acute ]};
key <AE01> {[ exclam, 1 ]};
@@ -180,7 +180,7 @@ xkb_symbols "lekp" {
include "capslock(backspace)"
include "level3(ralt_switch)"
- name[Group1]="Lithuania - LEKP";
+ name[Group1]="Lithuanian (LEKP)";
key <TLDE> {[ grave, asciitilde, acute ]};
key <AE01> {[ slash, numbersign, bar ]};
@@ -241,7 +241,7 @@ xkb_symbols "lekpa" {
include "capslock(backspace)"
include "level3(ralt_switch)"
- name[Group1]="Lithuania - LEKPa";
+ name[Group1]="Lithuanian (LEKPa)";
key <TLDE> {[ grave, asciitilde, acute ]};
key <AE01> {[ slash, quotedbl, bar ]};
@@ -300,7 +300,7 @@ xkb_symbols "dvorak" {
include "us(dvorak)"
- name[Group1]="Lithuania - Dvorak";
+ name[Group1]="Lithuanian (Dvorak)";
key <AE01> { [ aogonek, Aogonek, 1, exclam ] };
key <AE02> { [ ccaron, Ccaron, 2, at ] };
diff --git a/xorg-server/xkeyboard-config/symbols/lv b/xorg-server/xkeyboard-config/symbols/lv
index 960622486..1e7fc1fcc 100644
--- a/xorg-server/xkeyboard-config/symbols/lv
+++ b/xorg-server/xkeyboard-config/symbols/lv
@@ -1,127 +1,521 @@
-// Latvian keymap version 1.1
-// Copyright (C) Dmitry Golubev <lastguru@mail.ru>, 2003-2004
-//
-// Reworked to get rid of dead_keys (use of which in this case
-// is a dirty hack). It is now not dependent on locale settings
-// and GTK_IM_MODULES in Gnome. The map is also providing some of
-// ISO9995-3 alternate characters. Note that this version works
-// correctly under Gnome 2.6. This is to be put into symbols/
-// directory, or somewhere else.
-//
-// Permission to use, copy, modify, distribute, and sell this software and its
-// documentation for any purpose is hereby granted without fee, provided that
-// the above copyright notice appear in all copies and that both that
-// copyright notice and this permission notice appear in supporting
-// documentation, and that the name of the copyright holder(s) not be used in
-// advertising or publicity pertaining to distribution of the software without
-// specific, written prior permission. The copyright holder(s) makes no
-// representations about the suitability of this software for any purpose. It
-// is provided "as is" without express or implied warranty.
-//
-// THE COPYRIGHT HOLDER(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-// EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-// PERFORMANCE OF THIS SOFTWARE.
-
-partial default alphanumeric_keys modifier_keys
-xkb_symbols "basic" {
-
- name[Group1]= "Latvia";
-
- key <TLDE> {[grave, asciitilde, acute, asciitilde]};
- key <AE01> {[1, exclam, onesuperior, exclamdown]};
- key <AE02> {[2, at, twosuperior, oneeighth]};
- key <AE03> {[3, numbersign, threesuperior, sterling]};
- key <AE04> {[4, dollar, EuroSign, cent]};
- key <AE05> {[5, percent, onehalf, threeeighths]};
- key <AE06> {[6, asciicircum, threequarters, fiveeighths]};
- key <AE07> {[7, ampersand, braceleft, seveneighths]};
- key <AE08> {[8, asterisk, bracketleft, trademark]};
- key <AE09> {[9, parenleft, bracketright, plusminus]};
- key <AE10> {[0, parenright, braceright, degree]};
- key <AE11> {[minus, underscore, backslash, questiondown]};
- key <AE12> {[equal, plus, endash, emdash]};
-
- key <AD01> {[q, Q, q, Q]};
- key <AD02> {[w, W, w, W]};
- key <AD03> {[e, E, emacron, Emacron]};
- key <AD04> {[r, R, rcedilla, Rcedilla]};
- key <AD05> {[t, T, t, T]};
- key <AD06> {[y, Y, y, Y]};
- key <AD07> {[u, U, umacron, Umacron]};
- key <AD08> {[i, I, imacron, Imacron]};
- key <AD09> {[o, O, omacron, Omacron]};
- key <AD10> {[p, P, p, P]};
- key <AD11> {[bracketleft, braceleft, guillemotleft, leftdoublequotemark]};
- key <AD12> {[bracketright, braceright, guillemotright, rightdoublequotemark]};
-
- key <AC01> {[a, A, amacron, Amacron]};
- key <AC02> {[s, S, scaron, Scaron]};
- key <AC03> {[d, D, d, D]};
- key <AC04> {[f, F, f, F]};
- key <AC05> {[g, G, gcedilla, Gcedilla]};
- key <AC06> {[h, H, h, H]};
- key <AC07> {[j, J, j, J]};
- key <AC08> {[k, K, kcedilla, Kcedilla]};
- key <AC09> {[l, L, lcedilla, Lcedilla]};
- key <AC10> {[semicolon, colon, semicolon, colon]};
- key <AC11> {[apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark]};
-
- key <AB01> {[z, Z, zcaron, Zcaron]};
- key <AB02> {[x, X, x, X]};
- key <AB03> {[c, C, ccaron, Ccaron]};
- key <AB04> {[v, V, v, V]};
- key <AB05> {[b, B, b, B]};
- key <AB06> {[n, N, ncedilla, Ncedilla]};
- key <AB07> {[m, M, m, M]};
- key <AB08> {[comma, less, horizconnector, multiply]};
- key <AB09> {[period, greater, periodcentered, division]};
- key <AB10> {[slash, question, slash, abovedot]};
- key <BKSL> {[backslash, bar, grave, breve]};
-
- key <SPCE> {[space, space, space, space]};
-
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys modifier_keys
-xkb_symbols "apostrophe" {
-
- include "lv(basic)"
-
- name[Group1]= "Latvia - Apostrophe (') variant";
-
- key <AC11> {[ISO_Level3_Latch, quotedbl, apostrophe, quotedbl]};
- key <SPCE> {[space, space, apostrophe]};
- modifier_map Mod5 { <AC11> };
-
-};
-
-partial alphanumeric_keys modifier_keys
-xkb_symbols "tilde" {
-
- include "lv(basic)"
-
- name[Group1]= "Latvia - Tilde (~) variant";
-
- key <TLDE> {[ISO_Level3_Latch, asciitilde, grave, acute]};
- key <SPCE> {[space, space, asciitilde]};
- modifier_map Mod5 { <TLDE> };
-
-};
-
-partial alphanumeric_keys modifier_keys
-xkb_symbols "fkey" {
-
- include "lv(basic)"
-
- name[Group1]= "Latvia - F-letter (F) variant";
-
- key <AC04> {[ISO_Level3_Latch, ISO_Level3_Latch, f, F]};
- key <SPCE> {[space, space, f, F]};
- modifier_map Mod5 { <AC04> };
-
-};
+// Latvian keymap version 1.1
+// Copyright (C) Dmitry Golubev <lastguru@mail.ru>, 2003-2004
+//
+// Reworked to get rid of dead_keys (use of which in this case
+// is a dirty hack). It is now not dependent on locale settings
+// and GTK_IM_MODULES in Gnome. The map is also providing some of
+// ISO9995-3 alternate characters. Note that this version works
+// correctly under Gnome 2.6. This is to be put into symbols/
+// directory, or somewhere else.
+//
+// Permission to use, copy, modify, distribute, and sell this software and its
+// documentation for any purpose is hereby granted without fee, provided that
+// the above copyright notice appear in all copies and that both that
+// copyright notice and this permission notice appear in supporting
+// documentation, and that the name of the copyright holder(s) not be used in
+// advertising or publicity pertaining to distribution of the software without
+// specific, written prior permission. The copyright holder(s) makes no
+// representations about the suitability of this software for any purpose. It
+// is provided "as is" without express or implied warranty.
+//
+// THE COPYRIGHT HOLDER(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+// EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+// PERFORMANCE OF THIS SOFTWARE.
+
+// Modified by Aldis Berjoza <aldis@bsdroot.lv>, 12 april 2011
+// Changes:
+// * Added Latvian Ergonomic, Latvian Adapted and Latvian Modernd variants
+// Author of this work is Valdis Vītoliņš
+// http://odo.lv/LatvianKeyboard
+// http://odo.lv/Recipes/LatvianKeyboard#HErgonomiskC481stastatC5ABrasuzlikC5A1anauzLinuxdatora%22
+// * Added guillemotleft, leftdoublequotemark, guillemotright,
+// rightdoublequotemark to Latvian modern layout for AD11 and AD12
+// * Added US-Dvorac compatible Latvian layouts
+// * Added programmer US-Dvorac compatible Latvian layouts
+// * Added US-Colemak compatible Latvian layouts
+// * Reformatted layouts
+
+
+//============================================================================
+// Latvian QWERTY layout
+// http://en.wikipedia.org/wiki/QWERTY
+//
+partial default alphanumeric_keys modifier_keys
+xkb_symbols "basic" {
+
+ name[Group1]= "Latvian";
+
+ key <TLDE> {[ grave, asciitilde, acute, asciitilde ]};
+ key <AE01> {[ 1, exclam, onesuperior, exclamdown ]};
+ key <AE02> {[ 2, at, twosuperior, oneeighth ]};
+ key <AE03> {[ 3, numbersign, threesuperior, sterling ]};
+ key <AE04> {[ 4, dollar, EuroSign, cent ]};
+ key <AE05> {[ 5, percent, onehalf, threeeighths ]};
+ key <AE06> {[ 6, asciicircum, threequarters, fiveeighths ]};
+ key <AE07> {[ 7, ampersand, braceleft, seveneighths ]};
+ key <AE08> {[ 8, asterisk, bracketleft, trademark ]};
+ key <AE09> {[ 9, parenleft, bracketright, plusminus ]};
+ key <AE10> {[ 0, parenright, braceright, degree ]};
+ key <AE11> {[ minus, underscore, backslash, questiondown ]};
+ key <AE12> {[ equal, plus, endash, emdash ]};
+
+ key <AD01> {[ q, Q, q, Q ]};
+ key <AD02> {[ w, W, w, W ]};
+ key <AD03> {[ e, E, emacron, Emacron ]};
+ key <AD04> {[ r, R, rcedilla, Rcedilla ]};
+ key <AD05> {[ t, T, t, T ]};
+ key <AD06> {[ y, Y, y, Y ]};
+ key <AD07> {[ u, U, umacron, Umacron ]};
+ key <AD08> {[ i, I, imacron, Imacron ]};
+ key <AD09> {[ o, O, omacron, Omacron ]};
+ key <AD10> {[ p, P, p, P ]};
+ key <AD11> {[ bracketleft, braceleft, guillemotleft, leftdoublequotemark ]};
+ key <AD12> {[ bracketright, braceright, guillemotright, rightdoublequotemark ]};
+
+ key <AC01> {[ a, A, amacron, Amacron ]};
+ key <AC02> {[ s, S, scaron, Scaron ]};
+ key <AC03> {[ d, D, d, D ]};
+ key <AC04> {[ f, F, f, F ]};
+ key <AC05> {[ g, G, gcedilla, Gcedilla ]};
+ key <AC06> {[ h, H, h, H ]};
+ key <AC07> {[ j, J, j, J ]};
+ key <AC08> {[ k, K, kcedilla, Kcedilla ]};
+ key <AC09> {[ l, L, lcedilla, Lcedilla ]};
+ key <AC10> {[ semicolon, colon, semicolon, colon ]};
+ key <AC11> {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]};
+
+ key <AB01> {[ z, Z, zcaron, Zcaron ]};
+ key <AB02> {[ x, X, x, X ]};
+ key <AB03> {[ c, C, ccaron, Ccaron ]};
+ key <AB04> {[ v, V, v, V ]};
+ key <AB05> {[ b, B, b, B ]};
+ key <AB06> {[ n, N, ncedilla, Ncedilla ]};
+ key <AB07> {[ m, M, m, M ]};
+ key <AB08> {[ comma, less, horizconnector, multiply ]};
+ key <AB09> {[ period, greater, periodcentered, division ]};
+ key <AB10> {[ slash, question, slash, abovedot ]};
+ key <BKSL> {[ backslash, bar, grave, breve ]};
+
+ key <SPCE> {[ space, space, space, space ]};
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "apostrophe" {
+
+ include "lv(basic)"
+
+ name[Group1]= "Latvian (apostrophe variant)";
+
+ key <AC11> {[ISO_Level3_Latch, quotedbl, apostrophe, quotedbl]};
+ key <SPCE> {[space, space, apostrophe]};
+ modifier_map Mod5 { <AC11> };
+
+};
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "tilde" {
+
+ include "lv(basic)"
+
+ name[Group1]= "Latvian (tilde variant)";
+
+ key <TLDE> {[ISO_Level3_Latch, asciitilde, grave, acute]};
+ key <SPCE> {[space, space, asciitilde]};
+ modifier_map Mod5 { <TLDE> };
+
+};
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "fkey" {
+
+ include "lv(basic)"
+
+ name[Group1]= "Latvian (F variant)";
+
+ key <AC04> {[ISO_Level3_Latch, ISO_Level3_Latch, f, F]};
+ key <SPCE> {[space, space, f, F]};
+ modifier_map Mod5 { <AC04> };
+
+};
+
+//============================================================================
+// Latvian Adapted keyboard layout
+// http://odo.lv/xwiki/bin/download/Main/LatvianKeyboard/Adapted.png
+//
+// http://odo.lv/LatvianKeyboard
+// http://odo.lv/LatvianKeyboard5
+//
+partial alphanumeric_keys modifier_keys
+xkb_symbols "adapted" {
+
+ include "lv(basic)"
+
+ name[Group1]= "Latvian (adapted)";
+
+ key <AE02> {[ 2, Ccaron, at, twosuperior ]};
+ key <AE03> {[ 3, ccaron, numbersign, threesuperior ]};
+ key <AE04> {[ 4, Zcaron, dollar, EuroSign ]};
+ key <AE05> {[ 5, zcaron, percent, onehalf ]};
+
+ key <AD01> {[ scaron, Scaron, q, Q ]};
+ key <AD02> {[ emacron, Emacron, w, W ]};
+ key <AD03> {[ e, E, e, E ]};
+
+ key <AD06> {[ amacron, Amacron, y, Y ]};
+ key <AD07> {[ u, U, u, U ]};
+ key <AD08> {[ i, I, i, I ]};
+ key <AD11> {[ umacron, Umacron, bracketleft, braceleft ]};
+ key <AD12> {[ ncedilla, Ncedilla, bracketright, braceright ]};
+
+ key <AC01> {[ a, A, a, A ]};
+ key <AC02> {[ s, S, s, S ]};
+ key <AC05> {[ g, G, g, G ]};
+
+ key <AC08> {[ k, K, k, K ]};
+ key <AC09> {[ l, L, l, L ]};
+ key <AC10> {[ imacron, Imacron, semicolon, colon ]};
+
+ key <AB01> {[ z, Z, z, Z ]};
+ key <AB02> {[ kcedilla, Kcedilla, x, X ]};
+ key <AB03> {[ c, C, c, C ]};
+
+ key <AB06> {[ n, N, n, N ]};
+
+ key <AB08> {[ comma, gcedilla, less, multiply ]};
+ key <AB09> {[ period, Gcedilla, greater, division ]};
+ key <AB10> {[ lcedilla, Lcedilla, slash, question ]};
+};
+
+//============================================================================
+// Latvian Ergonomic (ŪGJRMV) keyboard layout by Valdis Vītoliņš
+// http://odo.lv/xwiki/bin/download/Main/LatvianKeyboard/Ergonomic.png
+//
+// http://odo.lv/LatvianKeyboard
+// http://odo.lv/LatvianKeyboard5
+//
+partial alphanumeric_keys modifier_keys
+xkb_symbols "ergonomic" {
+
+ include "lv(apostrophe)"
+
+ name[Group1]= "Latvian (ergonomic, ŪGJRMV)";
+
+ key <AE02> {[ 2, at, gcedilla, Gcedilla ]};
+
+ key <AE11> {[ minus, underscore, endash, emdash ]};
+ key <AE12> {[ f, F, equal, plus ]};
+
+ key <AD01> {[ umacron, Umacron, q, Q ]};
+ key <AD02> {[ g, G, g, G ]};
+ key <AD03> {[ j, J, j, J ]};
+ key <AD04> {[ r, R, rcedilla, Rcedilla ]};
+ key <AD05> {[ m, M, m, M ]};
+ key <AD06> {[ v, V, w, W ]};
+ key <AD07> {[ n, N, y, Y ]};
+ key <AD08> {[ z, Z, z, Z ]};
+ key <AD09> {[ emacron, Emacron, emacron, Emacron ]};
+ key <AD10> {[ ccaron, Ccaron, ccaron, Ccaron ]};
+ key <AD11> {[ zcaron, Zcaron, bracketleft, braceleft ]};
+ key <AD12> {[ h, H, bracketright, braceright ]};
+
+ key <AC01> {[ scaron, Scaron, scaron, Scaron ]};
+ key <AC02> {[ u, U, u, U ]};
+ key <AC03> {[ s, S, s, S ]};
+ key <AC04> {[ i, I, i, I ]};
+ key <AC05> {[ l, L, l, L ]};
+ key <AC06> {[ d, D, d, D ]};
+ key <AC07> {[ a, A, a, A ]};
+ key <AC08> {[ t, T, t, T ]};
+ key <AC09> {[ e, E, e, E ]};
+ key <AC10> {[ c, C, c, C ]};
+ key <AC11> {[ ISO_Level3_Latch, quotedbl, apostrophe, quotedbl ]};
+ key <AC12> {[ kcedilla, Kcedilla, slash, backslash ]};
+
+ key <LSGT> {[ gcedilla, Gcedilla, gcedilla, Gcedilla ]};
+ key <AB01> {[ ncedilla, Ncedilla, ncedilla, Ncedilla ]};
+ key <AB02> {[ b, B, x, X ]};
+ key <AB03> {[ imacron, Imacron, imacron, Imacron ]};
+ key <AB04> {[ k, K, k, K ]};
+ key <AB05> {[ p, P, p, P ]};
+ key <AB06> {[ o, O, omacron, Omacron ]};
+ key <AB07> {[ amacron, Amacron, amacron, Amacron ]};
+ key <AB08> {[ comma, semicolon, less, multiply ]};
+ key <AB09> {[ period, colon, greater, division ]};
+ key <AB10> {[ lcedilla, Lcedilla, question, slash ]};
+};
+
+//============================================================================
+// Latvian Modern keyboard layout by Valdis Vītoliņš
+// http://odo.lv/xwiki/bin/download/Recipes/LatvianKeyboard/Modern.png
+//
+// http://odo.lv/LatvianKeyboard
+// http://odo.lv/LatvianKeyboard5
+//
+partial alphanumeric_keys modifier_keys
+xkb_symbols "modern" {
+
+ name[Group1]= "Latvian (modern)";
+
+ key <TLDE> {[ grave, asciitilde, acute, asciitilde ]};
+ key <AE01> {[ 1, exclam, onesuperior, exclamdown ]};
+ key <AE02> {[ 2, at, twosuperior, oneeighth ]};
+ key <AE03> {[ 3, numbersign, threesuperior, sterling ]};
+ key <AE04> {[ 4, dollar, EuroSign, cent ]};
+ key <AE05> {[ 5, percent, onehalf, threeeighths ]};
+ key <AE06> {[ 6, asciicircum, threequarters, fiveeighths ]};
+ key <AE07> {[ 7, ampersand, braceleft, seveneighths ]};
+ key <AE08> {[ 8, asterisk, bracketleft, trademark ]};
+ key <AE09> {[ 9, parenleft, bracketright, plusminus ]};
+ key <AE10> {[ 0, parenright, braceright, degree ]};
+ key <AE11> {[ minus, underscore, backslash, endash ]};
+ key <AE12> {[ equal, plus, bar, emdash ]};
+
+ key <AD01> {[ emacron, Emacron, emacron, Emacron ]};
+ key <AD02> {[ o, O, omacron, Omacron ]};
+ key <AD03> {[ amacron, Amacron, amacron, Amacron ]};
+ key <AD04> {[ p, P, p, P ]};
+ key <AD05> {[ b, B, b, B ]};
+ key <AD06> {[ j, J, j, J ]};
+ key <AD07> {[ d, D, d, D ]};
+ key <AD08> {[ imacron, Imacron, imacron, Imacron ]};
+ key <AD09> {[ l, L, lcedilla, Lcedilla ]};
+ key <AD10> {[ g, G, gcedilla, Gcedilla ]};
+ key <AD11> {[ bracketleft, braceleft, guillemotleft, leftdoublequotemark ]};
+ key <AD12> {[ bracketright, braceright, guillemotright, rightdoublequotemark ]};
+
+ key <AC01> {[ e, E, e, E ]};
+ key <AC02> {[ u, U, umacron, Umacron ]};
+ key <AC03> {[ a, A, a, A ]};
+ key <AC04> {[ n, N, ncedilla, Ncedilla ]};
+ key <AC05> {[ k, K, kcedilla, Kcedilla ]};
+ key <AC06> {[ ISO_Level3_Latch, quotedbl, apostrophe, quotedbl ]};
+ key <AC07> {[ s, S, scaron, Scaron ]};
+ key <AC08> {[ i, I, i, I ]};
+ key <AC09> {[ t, T, t, T ]};
+ key <AC10> {[ r, R, rcedilla, Rcedilla ]};
+ key <AC11> {[ m, M, m, M ]};
+ key <AC12> {[ slash, question, backslash, bar ]};
+
+ key <LSGT> {[ q, Q, q, Q ]};
+ key <AB01> {[ x, X, q, Q ]};
+ key <AB02> {[ z, Z, zcaron, Zcaron ]};
+ key <AB03> {[ c, C, ccaron, Ccaron ]};
+ key <AB04> {[ v, V, v, V ]};
+ key <AB05> {[ w, W, w, W ]};
+ key <AB06> {[ f, F, f, F ]};
+ key <AB07> {[ y, Y, y, Y ]};
+ key <AB08> {[ h, H, h, H ]};
+ key <AB09> {[ comma, semicolon, less, multiply ]};
+ key <AB10> {[ period, colon, greater, division ]};
+ key <SPCE> {[ space, space, apostrophe ]};
+
+ modifier_map Mod5 { <AC06> };
+
+ include "level3(ralt_switch)"
+};
+
+// EXTRAS:
+
+//============================================================================
+// US Dvorak compatible Latvian layout
+// http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard
+//
+partial alphanumeric_keys modifier_keys
+xkb_symbols "dvorak" {
+
+ name[Group1]= "Latvian (US Dvorak)";
+
+ key <TLDE> {[ asciitilde, grave, acute, asciitilde ]};
+ key <AE01> {[ 1, exclam, onesuperior, exclamdown ]};
+ key <AE02> {[ 2, at, twosuperior, oneeighth ]};
+ key <AE03> {[ 3, numbersign, threesuperior, sterling ]};
+ key <AE04> {[ 4, dollar, EuroSign, cent ]};
+ key <AE05> {[ 5, percent, onehalf, threeeighths ]};
+ key <AE06> {[ 6, asciicircum, threequarters, fiveeighths ]};
+ key <AE07> {[ 7, ampersand, braceleft, seveneighths ]};
+ key <AE08> {[ 8, asterisk, bracketleft, trademark ]};
+ key <AE09> {[ 9, parenleft, bracketright, plusminus ]};
+ key <AE10> {[ 0, parenright, braceright, degree ]};
+ key <AE11> {[ bracketleft, braceleft, leftdoublequotemark, guillemotleft ]};
+ key <AE12> {[ bracketright, braceright, rightdoublequotemark, guillemotright ]};
+
+ key <AD01> {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]};
+ key <AD02> {[ comma, less, guillemotleft, multiply ]};
+ key <AD03> {[ period, greater, guillemotright, division ]};
+ key <AD04> {[ p, P, p, P ]};
+ key <AD05> {[ y, Y, y, Y ]};
+ key <AD06> {[ f, F, f, F ]};
+ key <AD07> {[ g, G, gcedilla, Gcedilla ]};
+ key <AD08> {[ c, C, ccaron, Ccaron ]};
+ key <AD09> {[ r, R, rcedilla, Rcedilla ]};
+ key <AD10> {[ l, L, lcedilla, Lcedilla ]};
+ key <AD11> {[ slash, question, slash, abovedot ]};
+ key <AD12> {[ equal, plus, endash, emdash ]};
+
+ key <AC01> {[ a, A, amacron, Amacron ]};
+ key <AC02> {[ o, O, omacron, Omacron ]};
+ key <AC03> {[ e, E, emacron, Emacron ]};
+ key <AC04> {[ u, U, umacron, Umacron ]};
+ key <AC05> {[ i, I, imacron, Imacron ]};
+ key <AC06> {[ d, D, d, D ]};
+ key <AC07> {[ h, H, h, H ]};
+ key <AC08> {[ t, T, t, T ]};
+ key <AC09> {[ n, N, ncedilla, Ncedilla ]};
+ key <AC10> {[ s, S, scaron, Scaron ]};
+ key <AC11> {[ minus, underscore, backslash, questiondown ]};
+
+ key <AB01> {[ semicolon, colon, semicolon, colon ]};
+ key <AB02> {[ q, Q, q, Q ]};
+ key <AB03> {[ j, J, j, J ]};
+ key <AB04> {[ k, K, kcedilla, Kcedilla ]};
+ key <AB05> {[ x, X, x, X ]};
+ key <AB06> {[ b, B, b, B ]};
+ key <AB07> {[ m, M, m, M ]};
+ key <AB08> {[ w, W, w, W ]};
+ key <AB09> {[ v, V, v, V ]};
+ key <AB10> {[ z, Z, zcaron, Zcaron ]};
+
+ key <BKSL> {[ backslash, bar, grave, breve ]};
+
+ key <SPCE> {[ space, space, space, space ]};
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "ykeydvorak" {
+
+ include "lv(dvorak)"
+
+ name[Group1]= "Latvian (US Dvorak, Y variant)";
+
+ key <AD05> {[ISO_Level3_Latch, ISO_Level3_Latch, y, Y]};
+ key <SPCE> {[space, space, y, Y]};
+ modifier_map Mod5 { <AD05> };
+
+};
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "minuskeydvorak" {
+
+ include "lv(dvorak)"
+
+ name[Group1]= "Latvian (US Dvorak, minus variant)";
+
+ key <AC11> {[ISO_Level3_Latch, ISO_Level3_Latch, mimus, underscore]};
+ key <SPCE> {[space, space, minus, underscore]};
+ modifier_map Mod5 { <AR11> };
+
+};
+
+//============================================================================
+// US Dvorak programmers layput compatible Latvian layout
+// http://www.kaufmann.no/roland/dvorak/
+//
+partial alphanumeric_keys modifier_keys
+xkb_symbols "dvorakprogr" {
+
+ include "lv(dvorak)"
+
+ name[Group1]= "Latvian (programmer US Dvorak)";
+
+ key <TLDE> {[ dollar, asciitilde, EuroSign, cent ]};
+ key <AE01> {[ ampersand, percent, acute, asciitilde ]};
+ key <AE02> {[ bracketleft, 7, onesuperior, twosuperior ]};
+ key <AE03> {[ braceleft, 5, guillemotleft, leftdoublequotemark ]};
+ key <AE04> {[ braceright, 3, guillemotright, rightdoublequotemark ]};
+ key <AE05> {[ parenleft, 1, onehalf, threeeighths ]};
+ key <AE06> {[ equal, 9, threequarters, fiveeighths ]};
+ key <AE07> {[ asterisk, 0, degree, copyright ]};
+ key <AE08> {[ parenright, 2, endash, emdash ]};
+ key <AE09> {[ plus, 4, plusminus, section ]};
+ key <AE10> {[ bracketright, 6, registered, trademark ]};
+ key <AE11> {[ exclam, 8, exclam, exclamdown ]};
+ key <AE12> {[ numbersign, grave, Greek_alpha, Greek_beta ]};
+
+ key <AD01> {[ semicolon, colon, semicolon, colon ]};
+ key <AD12> {[ at, asciicircum, at, asciicircum ]};
+
+ key <AB01> {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]};
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "ykeydvorakprogr" {
+
+ include "lv(dvorakprogr)"
+
+ name[Group1]= "Latvian (programmer US-Dvorak, Y variant)";
+
+ key <AD05> {[ISO_Level3_Latch, ISO_Level3_Latch, y, Y]};
+ key <SPCE> {[space, space, y, Y]};
+ modifier_map Mod5 { <AD05> };
+
+};
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "minuskeydvorakprogr" {
+
+ include "lv(dvorakprogr)"
+
+ name[Group1]= "Latvian (programmer US Dvorak, minus variant)";
+
+ key <AC11> {[ISO_Level3_Latch, ISO_Level3_Latch, mimus, underscore]};
+ key <SPCE> {[space, space, minus, underscore]};
+ modifier_map Mod5 { <AC11> };
+
+};
+
+//============================================================================
+// Colemak compatible Latvian layout
+// http://colemak.com/
+//
+partial alphanumeric_keys modifier_keys
+xkb_symbols "colemak" {
+
+ include "lv(basic)"
+
+ name[Group1]= "Latvian (US Colemak)";
+
+ key <AD03> {[ f, F, f, F ]};
+ key <AD04> {[ p, P, p, P ]};
+ key <AD05> {[ g, G, gcedilla, Gcedilla ]};
+ key <AD06> {[ j, J, j, J ]};
+ key <AD07> {[ l, L, lcedilla, Lcedilla ]};
+ key <AD08> {[ u, U, umacron, Umacron ]};
+ key <AD09> {[ y, Y, y, Y ]};
+ key <AD10> {[ semicolon, colon, semicolon, colon ]};
+
+ key <AC02> {[ r, R, rcedilla, Rcedilla ]};
+ key <AC03> {[ s, S, scaron, Scaron ]};
+ key <AC04> {[ t, T, t, T ]};
+ key <AC05> {[ d, D, d, D ]};
+ key <AC07> {[ n, N, ncedilla, Ncedilla ]};
+ key <AC08> {[ e, E, emacron, Emacron ]};
+ key <AC09> {[ i, I, imacron, Imacron ]};
+ key <AC10> {[ o, O, omacron, Omacron ]};
+
+ key <AB06> {[ k, K, kcedilla, Kcedilla ]};
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys modifier_keys
+xkb_symbols "apostrophecolemak" {
+
+ include "lv(colemak)"
+
+ name[Group1]= "Latvian (US Colemak, apostrophe variant)";
+
+ key <AC11> {[ISO_Level3_Latch, quotedbl, apostrophe, quotedbl]};
+ key <SPCE> {[space, space, apostrophe]};
+ modifier_map Mod5 { <AC11> };
+
+};
diff --git a/xorg-server/xkeyboard-config/symbols/me b/xorg-server/xkeyboard-config/symbols/me
index 3f1733199..e898b9d7d 100644
--- a/xorg-server/xkeyboard-config/symbols/me
+++ b/xorg-server/xkeyboard-config/symbols/me
@@ -1,52 +1,52 @@
-// Montenegro keyboard mapping
-//
-// Initially, a copy of Serbian variants
-//
-
-default partial alphanumeric_keys
-xkb_symbols "basic" {
- include "rs(latin)"
- name[Group1]= "Montenegro";
-};
-
-
-partial alphanumeric_keys
-xkb_symbols "cyrillic" {
- include "rs(basic)"
- name[Group1]= "Montenegro - Cyrillic";
-};
-
-
-partial alphanumeric_keys
-xkb_symbols "cyrillicyz" {
- include "rs(yz)"
- name[Group1]= "Montenegro - Cyrillic, Z and ZHE swapped";
-};
-
-partial alphanumeric_keys
-xkb_symbols "latinunicode" {
- include "rs(latinunicode)"
- name[Group1]= "Montenegro - Latin unicode";
-};
-
-partial alphanumeric_keys
-xkb_symbols "latinyz" {
- include "rs(latinyz)"
- name[Group1]= "Montenegro - Latin qwerty";
-};
-
-partial alphanumeric_keys
-xkb_symbols "latinunicodeyz" {
- include "rs(latinunicodeyz)"
- name[Group1]= "Montenegro - Latin unicode qwerty";
-};
-
-xkb_symbols "cyrillicalternatequotes" {
- include "rs(alternatequotes)"
- name[Group1]= "Montenegro - Cyrillic with guillemets";
-};
-
-xkb_symbols "latinalternatequotes" {
- include "rs(latinalternatequotes)"
- name[Group1]= "Montenegro - Latin with guillemets";
-};
+// Montenegro keyboard mapping
+//
+// Initially, a copy of Serbian variants
+//
+
+default partial alphanumeric_keys
+xkb_symbols "basic" {
+ include "rs(latin)"
+ name[Group1]= "Montenegrin";
+};
+
+
+partial alphanumeric_keys
+xkb_symbols "cyrillic" {
+ include "rs(basic)"
+ name[Group1]= "Montenegrin (Cyrillic)";
+};
+
+
+partial alphanumeric_keys
+xkb_symbols "cyrillicyz" {
+ include "rs(yz)"
+ name[Group1]= "Montenegrin (Cyrillic, Z and ZHE swapped)";
+};
+
+partial alphanumeric_keys
+xkb_symbols "latinunicode" {
+ include "rs(latinunicode)"
+ name[Group1]= "Montenegrin (Latin unicode)";
+};
+
+partial alphanumeric_keys
+xkb_symbols "latinyz" {
+ include "rs(latinyz)"
+ name[Group1]= "Montenegrin (Latin qwerty)";
+};
+
+partial alphanumeric_keys
+xkb_symbols "latinunicodeyz" {
+ include "rs(latinunicodeyz)"
+ name[Group1]= "Montenegrin (Latin unicode qwerty)";
+};
+
+xkb_symbols "cyrillicalternatequotes" {
+ include "rs(alternatequotes)"
+ name[Group1]= "Montenegrin (Cyrillic with guillemets)";
+};
+
+xkb_symbols "latinalternatequotes" {
+ include "rs(latinalternatequotes)"
+ name[Group1]= "Montenegrin (Latin with guillemets)";
+};
diff --git a/xorg-server/xkeyboard-config/symbols/mk b/xorg-server/xkeyboard-config/symbols/mk
index c8acb1e39..ec92c0868 100644
--- a/xorg-server/xkeyboard-config/symbols/mk
+++ b/xorg-server/xkeyboard-config/symbols/mk
@@ -1,65 +1,65 @@
-// based on keyboard map:
-// Author: Damjan Georgievski <penguinista AT mail.net.mk>
-// Revision: 1.5
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
- name[Group1]= "Macedonia";
-
- key <AB01> { [ Cyrillic_ze, Cyrillic_ZE ] };
- key <AC02> { [ Cyrillic_es, Cyrillic_ES ] };
- key <AC01> { [ Cyrillic_a, Cyrillic_A ] };
- key <AD01> { [ Cyrillic_lje, Cyrillic_LJE ] };
- key <AD02> { [ Cyrillic_nje, Cyrillic_NJE ] };
- key <AB03> { [ Cyrillic_tse, Cyrillic_TSE ] };
- key <AB02> { [ Cyrillic_dzhe, Cyrillic_DZHE ] };
- key <AC03> { [ Cyrillic_de, Cyrillic_DE ] };
- key <AD03> { [ Cyrillic_ie, Cyrillic_IE ] };
- key <AB04> { [ Cyrillic_ve, Cyrillic_VE ] };
- key <AC04> { [ Cyrillic_ef, Cyrillic_EF ] };
- key <AD05> { [ Cyrillic_te, Cyrillic_TE ] };
- key <AD04> { [ Cyrillic_er, Cyrillic_ER ] };
- key <AB06> { [ Cyrillic_en, Cyrillic_EN ] };
- key <AB05> { [ Cyrillic_be, Cyrillic_BE ] };
- key <AC06> { [ Cyrillic_ha, Cyrillic_HA ] };
- key <AC05> { [ Cyrillic_ghe, Cyrillic_GHE ] };
- key <AD06> { [ Macedonia_dse, Macedonia_DSE ] };
- key <AB07> { [ Cyrillic_em, Cyrillic_EM ] };
- key <AC07> { [ Cyrillic_je, Cyrillic_JE ] };
- key <AD07> { [ Cyrillic_u, Cyrillic_U ] };
- key <AC08> { [ Cyrillic_ka, Cyrillic_KA ] };
- key <AD08> { [ Cyrillic_i, Cyrillic_I ] };
- key <AD09> { [ Cyrillic_o, Cyrillic_O ] };
- key <AC09> { [ Cyrillic_el, Cyrillic_EL ] };
- key <AC10> { [ Cyrillic_che, Cyrillic_CHE ] };
- key <AD10> { [ Cyrillic_pe, Cyrillic_PE ] };
- key <AC11> { [ Macedonia_kje, Macedonia_KJE ] };
- key <AD11> { [ Cyrillic_sha, Cyrillic_SHA ] };
- key <AD12> { [ Macedonia_gje, Macedonia_GJE ] };
- key <BKSL> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
- key <AE12> { [ equal, plus ] };
- key <AE11> { [ minus, underscore ] };
- key <TLDE> { [ dead_grave, asciitilde ] };
- key <AE01> { [ 1, exclam ] };
- key <AE02> { [ 2, doublelowquotemark ] };
- key <AE03> { [ 3, leftdoublequotemark ] };
- key <AE04> { [ 4, dollar ] };
- key <AE05> { [ 5, percent ] };
- key <AE06> { [ 6, asciicircum ] };
- key <AE07> { [ 7, ampersand ] };
- key <AE08> { [ 8, asterisk ] };
- key <AE09> { [ 9, parenleft ] };
- key <AE10> { [ 0, parenright ] };
- key <AB08> { [ comma, semicolon ] };
- key <AB09> { [ period, colon ] };
- key <AB10> { [ slash, question ] };
-
- include "kpdl(comma)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "nodeadkeys" {
- include "mk(basic)"
- name[Group1]= "Macedonia - Eliminate dead keys";
- key <TLDE> { [ grave, asciitilde ] };
-};
+// based on keyboard map:
+// Author: Damjan Georgievski <penguinista AT mail.net.mk>
+// Revision: 1.5
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+ name[Group1]= "Macedonian";
+
+ key <AB01> { [ Cyrillic_ze, Cyrillic_ZE ] };
+ key <AC02> { [ Cyrillic_es, Cyrillic_ES ] };
+ key <AC01> { [ Cyrillic_a, Cyrillic_A ] };
+ key <AD01> { [ Cyrillic_lje, Cyrillic_LJE ] };
+ key <AD02> { [ Cyrillic_nje, Cyrillic_NJE ] };
+ key <AB03> { [ Cyrillic_tse, Cyrillic_TSE ] };
+ key <AB02> { [ Cyrillic_dzhe, Cyrillic_DZHE ] };
+ key <AC03> { [ Cyrillic_de, Cyrillic_DE ] };
+ key <AD03> { [ Cyrillic_ie, Cyrillic_IE ] };
+ key <AB04> { [ Cyrillic_ve, Cyrillic_VE ] };
+ key <AC04> { [ Cyrillic_ef, Cyrillic_EF ] };
+ key <AD05> { [ Cyrillic_te, Cyrillic_TE ] };
+ key <AD04> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <AB06> { [ Cyrillic_en, Cyrillic_EN ] };
+ key <AB05> { [ Cyrillic_be, Cyrillic_BE ] };
+ key <AC06> { [ Cyrillic_ha, Cyrillic_HA ] };
+ key <AC05> { [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key <AD06> { [ Macedonia_dse, Macedonia_DSE ] };
+ key <AB07> { [ Cyrillic_em, Cyrillic_EM ] };
+ key <AC07> { [ Cyrillic_je, Cyrillic_JE ] };
+ key <AD07> { [ Cyrillic_u, Cyrillic_U ] };
+ key <AC08> { [ Cyrillic_ka, Cyrillic_KA ] };
+ key <AD08> { [ Cyrillic_i, Cyrillic_I ] };
+ key <AD09> { [ Cyrillic_o, Cyrillic_O ] };
+ key <AC09> { [ Cyrillic_el, Cyrillic_EL ] };
+ key <AC10> { [ Cyrillic_che, Cyrillic_CHE ] };
+ key <AD10> { [ Cyrillic_pe, Cyrillic_PE ] };
+ key <AC11> { [ Macedonia_kje, Macedonia_KJE ] };
+ key <AD11> { [ Cyrillic_sha, Cyrillic_SHA ] };
+ key <AD12> { [ Macedonia_gje, Macedonia_GJE ] };
+ key <BKSL> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <AE12> { [ equal, plus ] };
+ key <AE11> { [ minus, underscore ] };
+ key <TLDE> { [ dead_grave, asciitilde ] };
+ key <AE01> { [ 1, exclam ] };
+ key <AE02> { [ 2, doublelowquotemark ] };
+ key <AE03> { [ 3, leftdoublequotemark ] };
+ key <AE04> { [ 4, dollar ] };
+ key <AE05> { [ 5, percent ] };
+ key <AE06> { [ 6, asciicircum ] };
+ key <AE07> { [ 7, ampersand ] };
+ key <AE08> { [ 8, asterisk ] };
+ key <AE09> { [ 9, parenleft ] };
+ key <AE10> { [ 0, parenright ] };
+ key <AB08> { [ comma, semicolon ] };
+ key <AB09> { [ period, colon ] };
+ key <AB10> { [ slash, question ] };
+
+ include "kpdl(comma)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "nodeadkeys" {
+ include "mk(basic)"
+ name[Group1]= "Macedonian (eliminate dead keys)";
+ key <TLDE> { [ grave, asciitilde ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/ml b/xorg-server/xkeyboard-config/symbols/ml
index 741d6a206..a3a747c48 100644
--- a/xorg-server/xkeyboard-config/symbols/ml
+++ b/xorg-server/xkeyboard-config/symbols/ml
@@ -1,83 +1,83 @@
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- include "fr(basic)"
-
- name[Group1]="Mali";
-
- key <AB06> { [ n, N, U0272, U019D ] }; // n N ɲ Ɲ
- key <AC02> { [ s, S, U0161, U0160 ] }; // s S š Š
- key <AC05> { [ g, G, U0254, U0186 ] }; // g G ɔ Ɔ
- key <AC10> { [ m, M, U014B, U014A ] }; // m M ŋ Ŋ
- key <AD02> { [ z, Z, U017E, U017d ] }; // z Z ž Ž
- key <AD03> { [ e, E, U025B, U0190 ] }; // e E ɛ Ɛ
-
-};
-
-partial alphanumeric_keys
-xkb_symbols "fr-oss" {
-
- include "fr(oss)"
-
- name[Group1]="Mali - Français (France Alternative)";
-
- // š Š on d replaces ë Ë
- // ɲ Ɲ on j replaces ü Ü
- // ŋ Ŋ on m replaces ö Ö
- // ž Ž on z replaces â Â
- // ɛ Ɛ on r replaces ê Ê
- // ɔ Ɔ on p replaces ô Ô
-
- key <AC03> { [ d, D, U0161, U0160 ] }; // d D š Š
- key <AC07> { [ j, J, U0272, U019D ] }; // j J ɲ Ɲ
- key <AC10> { [ m, M, U014B, U014A ] }; // m M ŋ Ŋ
- key <AD02> { [ z, Z, U017E, U017d ] }; // z Z ž Ž
- key <AD04> { [ r, R, U025B, U0190 ] }; // r R ɛ Ɛ
- key <AD10> { [ p, P, U0254, U0186 ] }; // p P ɔ Ɔ
-};
-
-partial alphanumeric_keys
-xkb_symbols "us-mac" {
-
- include "us(mac)"
-
- name[Group1]="Mali - English (USA Macintosh)";
-
- // ž Ž on z replaces Ω ¸
- // ɛ Ɛ on a replaces å Å
- // š Š on s replaces ß
- // ɲ Ɲ on j replaces ∆ ½
- // ŋ Ŋ on k replaces ° 
- // ɔ Ɔ on o replaces ø Ø
-
- key <AB01> { [ z, Z, U017E, U017d ] }; // z Z ž Ž
- key <AC01> { [ a, A, U025B, U0190 ] }; // a A ɛ Ɛ
- key <AC02> { [ s, S, U0161, U0160 ] }; // s S š Š
- key <AC07> { [ j, J, U0272, U019D ] }; // j J ɲ Ɲ
- key <AC08> { [ k, K, U014B, U014A ] }; // k K ŋ Ŋ
- key <AD09> { [ o, O, U0254, U0186 ] }; // o O ɔ Ɔ
-
-};
-
-partial alphanumeric_keys
-xkb_symbols "us-intl" {
-
- include "us(intl)"
-
- name[Group1]="Mali - English (USA International)";
-
- // ž Ž on x replaces
- // š Š on s replaces ß §
- // ɲ Ɲ on h replaces
- // ŋ Ŋ on j replaces
- // ɛ Ɛ on w replaces å Å
- // ɔ Ɔ on o replaces ó Ó
-
- key <AB02> { [ x, X, U017E, U017d ] }; // x X ž Ž
- key <AC02> { [ s, S, U0161, U0160 ] }; // s S š Š
- key <AC06> { [ h, H, U0272, U019D ] }; // h H ɲ Ɲ
- key <AC07> { [ j, J, U014B, U014A ] }; // j J ŋ Ŋ
- key <AD02> { [ w, W, U025B, U0190 ] }; // w W ɛ Ɛ
- key <AD09> { [ o, O, U0254, U0186 ] }; // o O ɔ Ɔ
-
-};
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ include "fr(basic)"
+
+ name[Group1]="Bambara";
+
+ key <AB06> { [ n, N, U0272, U019D ] }; // n N ɲ Ɲ
+ key <AC02> { [ s, S, U0161, U0160 ] }; // s S š Š
+ key <AC05> { [ g, G, U0254, U0186 ] }; // g G ɔ Ɔ
+ key <AC10> { [ m, M, U014B, U014A ] }; // m M ŋ Ŋ
+ key <AD02> { [ z, Z, U017E, U017d ] }; // z Z ž Ž
+ key <AD03> { [ e, E, U025B, U0190 ] }; // e E ɛ Ɛ
+
+};
+
+partial alphanumeric_keys
+xkb_symbols "fr-oss" {
+
+ include "fr(oss)"
+
+ name[Group1]="French (Mali, alternative)";
+
+ // š Š on d replaces ë Ë
+ // ɲ Ɲ on j replaces ü Ü
+ // ŋ Ŋ on m replaces ö Ö
+ // ž Ž on z replaces â Â
+ // ɛ Ɛ on r replaces ê Ê
+ // ɔ Ɔ on p replaces ô Ô
+
+ key <AC03> { [ d, D, U0161, U0160 ] }; // d D š Š
+ key <AC07> { [ j, J, U0272, U019D ] }; // j J ɲ Ɲ
+ key <AC10> { [ m, M, U014B, U014A ] }; // m M ŋ Ŋ
+ key <AD02> { [ z, Z, U017E, U017d ] }; // z Z ž Ž
+ key <AD04> { [ r, R, U025B, U0190 ] }; // r R ɛ Ɛ
+ key <AD10> { [ p, P, U0254, U0186 ] }; // p P ɔ Ɔ
+};
+
+partial alphanumeric_keys
+xkb_symbols "us-mac" {
+
+ include "us(mac)"
+
+ name[Group1]="English (Mali, US Macintosh)";
+
+ // ž Ž on z replaces Ω ¸
+ // ɛ Ɛ on a replaces å Å
+ // š Š on s replaces ß
+ // ɲ Ɲ on j replaces ∆ ½
+ // ŋ Ŋ on k replaces ° 
+ // ɔ Ɔ on o replaces ø Ø
+
+ key <AB01> { [ z, Z, U017E, U017d ] }; // z Z ž Ž
+ key <AC01> { [ a, A, U025B, U0190 ] }; // a A ɛ Ɛ
+ key <AC02> { [ s, S, U0161, U0160 ] }; // s S š Š
+ key <AC07> { [ j, J, U0272, U019D ] }; // j J ɲ Ɲ
+ key <AC08> { [ k, K, U014B, U014A ] }; // k K ŋ Ŋ
+ key <AD09> { [ o, O, U0254, U0186 ] }; // o O ɔ Ɔ
+
+};
+
+partial alphanumeric_keys
+xkb_symbols "us-intl" {
+
+ include "us(intl)"
+
+ name[Group1]="English (Mali, US international)";
+
+ // ž Ž on x replaces
+ // š Š on s replaces ß §
+ // ɲ Ɲ on h replaces
+ // ŋ Ŋ on j replaces
+ // ɛ Ɛ on w replaces å Å
+ // ɔ Ɔ on o replaces ó Ó
+
+ key <AB02> { [ x, X, U017E, U017d ] }; // x X ž Ž
+ key <AC02> { [ s, S, U0161, U0160 ] }; // s S š Š
+ key <AC06> { [ h, H, U0272, U019D ] }; // h H ɲ Ɲ
+ key <AC07> { [ j, J, U014B, U014A ] }; // j J ŋ Ŋ
+ key <AD02> { [ w, W, U025B, U0190 ] }; // w W ɛ Ɛ
+ key <AD09> { [ o, O, U0254, U0186 ] }; // o O ɔ Ɔ
+
+};
diff --git a/xorg-server/xkeyboard-config/symbols/mm b/xorg-server/xkeyboard-config/symbols/mm
index 074dfc893..8ab8f0de2 100644
--- a/xorg-server/xkeyboard-config/symbols/mm
+++ b/xorg-server/xkeyboard-config/symbols/mm
@@ -1,6 +1,6 @@
partial default alphanumeric_keys
xkb_symbols "basic" {
- name[Group1]= "Myanmar";
+ name[Group1]= "Burmese";
// Alphanumeric section
key <TLDE> { [ U1050, U100E, grave, asciitilde ] };
diff --git a/xorg-server/xkeyboard-config/symbols/mn b/xorg-server/xkeyboard-config/symbols/mn
index a838bd5e0..279514a4a 100644
--- a/xorg-server/xkeyboard-config/symbols/mn
+++ b/xorg-server/xkeyboard-config/symbols/mn
@@ -6,7 +6,7 @@
partial default alphanumeric_keys
xkb_symbols "basic" {
- name[Group1]= "Mongolia";
+ name[Group1]= "Mongolian";
key <TLDE> { [ equal, plus, degree ] };
key <AE01> { [ 1, numerosign, multiply ] };
diff --git a/xorg-server/xkeyboard-config/symbols/mt b/xorg-server/xkeyboard-config/symbols/mt
index 87307cadb..d42064a0f 100644
--- a/xorg-server/xkeyboard-config/symbols/mt
+++ b/xorg-server/xkeyboard-config/symbols/mt
@@ -1,76 +1,76 @@
-// Maltese keyboard map (based on MSA Standard DMS100)
-// by Ramon Casha (ramon.casha@linux.org.mt)
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- include "latin"
-
- name[Group1]="Malta";
-
- // Copied from GB layout
- key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
- key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
- key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
- key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
-
- // The following four sets are the four additional letters, with the UK
- // equivalents
- key <TLDE> { [ cabovedot, Cabovedot, grave, notsign ] };
- key <AD11> { [ gabovedot, Gabovedot, bracketleft, braceleft ] };
- key <AD12> { [ hstroke, Hstroke, bracketright, braceright ] };
- key <LSGT> { [ zabovedot, Zabovedot, backslash, bar ] };
-
- // Euro symbol
- key <AE03> { [ 3, EuroSign, sterling ] };
-
- // Long accent
- key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
-
- // Normal accented vowels
- key <AD03> { [ e, E, egrave, Egrave ] };
- key <AD07> { [ u, U, ugrave, Ugrave ] };
- key <AD08> { [ i, I, igrave, Igrave ] };
- key <AD09> { [ o, O, ograve, Ograve ] };
- key <AC01> { [ a, A, agrave, Agrave ] };
-
- include "level3(ralt_switch)"
-};
-
-// Maltese keyboard map (based on MSA Standard DMS100, annex A)
-// by Ramon Casha (ramon.casha@linux.org.mt)
-
-partial alphanumeric_keys
-xkb_symbols "us" {
-
- include "latin"
-
- // Describes the differences between the mt
- // keyboard and a US-based physical keyboard
-
- name[Group1]="Malta - Maltese keyboard with US layout";
-
- // The following four sets are the four additional letters, with the US
- // equivalents
- key <TLDE> { [ cabovedot, Cabovedot, grave, asciitilde ] };
- key <AD11> { [ gabovedot, Gabovedot, bracketleft, braceleft ] };
- key <AD12> { [ hstroke, Hstroke, bracketright, braceright ] };
- key <LSGT> { [ zabovedot, Zabovedot, backslash, bar ] };
- key <BKSL> { [ zabovedot, Zabovedot, backslash, bar ] };
-
- // Euro symbol
- key <AE03> { [ 3, EuroSign, numbersign ] };
-
- // Long accent
- key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
-
- // Normal accented vowels
- key <AD03> { [ e, E, egrave, Egrave ] };
- key <AD07> { [ u, U, ugrave, Ugrave ] };
- key <AD08> { [ i, I, igrave, Igrave ] };
- key <AD09> { [ o, O, ograve, Ograve ] };
- key <AC01> { [ a, A, agrave, Agrave ] };
-
- include "level3(ralt_switch)"
-
-};
+// Maltese keyboard map (based on MSA Standard DMS100)
+// by Ramon Casha (ramon.casha@linux.org.mt)
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ include "latin"
+
+ name[Group1]="Maltese";
+
+ // Copied from GB layout
+ key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
+ key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
+ key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
+ key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
+
+ // The following four sets are the four additional letters, with the UK
+ // equivalents
+ key <TLDE> { [ cabovedot, Cabovedot, grave, notsign ] };
+ key <AD11> { [ gabovedot, Gabovedot, bracketleft, braceleft ] };
+ key <AD12> { [ hstroke, Hstroke, bracketright, braceright ] };
+ key <LSGT> { [ zabovedot, Zabovedot, backslash, bar ] };
+
+ // Euro symbol
+ key <AE03> { [ 3, EuroSign, sterling ] };
+
+ // Long accent
+ key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
+
+ // Normal accented vowels
+ key <AD03> { [ e, E, egrave, Egrave ] };
+ key <AD07> { [ u, U, ugrave, Ugrave ] };
+ key <AD08> { [ i, I, igrave, Igrave ] };
+ key <AD09> { [ o, O, ograve, Ograve ] };
+ key <AC01> { [ a, A, agrave, Agrave ] };
+
+ include "level3(ralt_switch)"
+};
+
+// Maltese keyboard map (based on MSA Standard DMS100, annex A)
+// by Ramon Casha (ramon.casha@linux.org.mt)
+
+partial alphanumeric_keys
+xkb_symbols "us" {
+
+ include "latin"
+
+ // Describes the differences between the mt
+ // keyboard and a US-based physical keyboard
+
+ name[Group1]="Maltese (with US layout)";
+
+ // The following four sets are the four additional letters, with the US
+ // equivalents
+ key <TLDE> { [ cabovedot, Cabovedot, grave, asciitilde ] };
+ key <AD11> { [ gabovedot, Gabovedot, bracketleft, braceleft ] };
+ key <AD12> { [ hstroke, Hstroke, bracketright, braceright ] };
+ key <LSGT> { [ zabovedot, Zabovedot, backslash, bar ] };
+ key <BKSL> { [ zabovedot, Zabovedot, backslash, bar ] };
+
+ // Euro symbol
+ key <AE03> { [ 3, EuroSign, numbersign ] };
+
+ // Long accent
+ key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
+
+ // Normal accented vowels
+ key <AD03> { [ e, E, egrave, Egrave ] };
+ key <AD07> { [ u, U, ugrave, Ugrave ] };
+ key <AD08> { [ i, I, igrave, Igrave ] };
+ key <AD09> { [ o, O, ograve, Ograve ] };
+ key <AC01> { [ a, A, agrave, Agrave ] };
+
+ include "level3(ralt_switch)"
+
+};
diff --git a/xorg-server/xkeyboard-config/symbols/mv b/xorg-server/xkeyboard-config/symbols/mv
index 1cbea3586..ed530612c 100644
--- a/xorg-server/xkeyboard-config/symbols/mv
+++ b/xorg-server/xkeyboard-config/symbols/mv
@@ -1,81 +1,81 @@
-//
-// NOTES:
-//
-//Keymap for thaana/divehi script (divehi language)
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- name[Group1]="Maldives";
-
-// The key <TLDE> should have the same values as US_en keyboard
-
- key <TLDE> { [ quoteleft, asciitilde ] };
- key <AE01> { [ 1, exclam ] };
- key <AE02> { [ 2, at ] };
- key <AE03> { [ 3, numbersign ] };
- key <AE04> { [ 4, dollar ] };
- key <AE05> { [ 5, percent ] };
- key <AE06> { [ 6, asciicircum ] };
- key <AE07> { [ 7, ampersand ] };
- key <AE08> { [ 8, asterisk ] };
- key <AE09> { [ 9, parenleft ] };
- key <AE10> { [ 0, parenright ] };
- key <AE11> { [ minus, underscore ] };
- key <AE12> { [ equal, plus ] };
-
- key <AD01> { [ 0x10007B0, 0x10007A4 ] };
- key <AD02> { [ 0x1000787, 0x10007A2 ] };
- key <AD03> { [ 0x10007AC, 0x10007AD ] };
- key <AD04> { [ 0x1000783, 0x100079C ] };
- key <AD05> { [ 0x100078C, 0x1000793 ] };
- key <AD06> { [ 0x1000794, 0x10007A0 ] };
- key <AD07> { [ 0x10007AA, 0x10007AB ] };
- key <AD08> { [ 0x10007A8, 0x10007A9 ] };
- key <AD09> { [ 0x10007AE, 0x10007AF ] };
- key <AD10> { [ 0x1000795, division ] };
-// The following brackets are as they appear on the US_en keyboard.
-//Please verify whether the names used are correct. I referred to keysymdef.h
- key <AD11> { [ bracketleft, braceleft ] };
- key <AD12> { [ bracketright, braceright ] };
-
-
- key <AC01> { [ 0x10007A6, 0x10007A7 ] };
- key <AC02> { [ 0x1000790, 0x1000781 ] };
- key <AC03> { [ 0x100078B, 0x1000791 ] };
- key <AC04> { [ 0x100078A, 0x100fdf2 ] };
- key <AC05> { [ 0x100078E, 0x10007A3 ] };
- key <AC06> { [ 0x1000780, 0x1000799 ] };
- key <AC07> { [ 0x1000796, 0x100079B ] };
- key <AC08> { [ 0x1000786, 0x100079A ] };
- key <AC09> { [ 0x100078D, 0x1000785 ] };
- key <AC10> { [ semicolon, colon ] };
-//I used singleloquotemark- if this is the wrong name, please replace with the name for the
-//standard US_en keyboard format- its the same in the Thaana phonetic keyboard
- key <AC11> { [ quoteright, quotedbl ] };
- key <BKSL> { [ backslash, bar ] };
-
- key <LSGT> { [ bar, brokenbar ] };
- key <AB01> { [ 0x1000792, 0x10007A1 ] };
-//multiply sign is the same as the algebraic symbol which looks like an italicized x. I am presuming its the same thing here. If not, please substitute an 'x' instead
- key <AB02> { [ multiply, 0x1000798 ] };
- key <AB03> { [ 0x1000797, 0x100079D ] };
- key <AB04> { [ 0x1000788, 0x10007A5 ] };
- key <AB05> { [ 0x1000784, 0x100079E ] };
- key <AB06> { [ 0x1000782, 0x100078F ] };
- key <AB07> { [ 0x1000789, 0x100079F ] };
- key <AB08> { [ Arabic_comma, less ] };
- key <AB09> { [ period, greater ] };
- key <AB10> { [ slash, Arabic_question_mark ] };
-
- // End alphanumeric section
-
- // Begin modifier mappings
-
- modifier_map Shift { Shift_L };
- modifier_map Lock { Caps_Lock, ISO_Lock };
- modifier_map Control{ Control_L };
- modifier_map Mod3 { Mode_switch };
-};
-
-// Any additional keys (if need be added) should appear and function exactly as it does on the US_en keyboard.
+//
+// NOTES:
+//
+//Keymap for thaana/divehi script (divehi language)
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ name[Group1]="Dhivehi";
+
+// The key <TLDE> should have the same values as US_en keyboard
+
+ key <TLDE> { [ quoteleft, asciitilde ] };
+ key <AE01> { [ 1, exclam ] };
+ key <AE02> { [ 2, at ] };
+ key <AE03> { [ 3, numbersign ] };
+ key <AE04> { [ 4, dollar ] };
+ key <AE05> { [ 5, percent ] };
+ key <AE06> { [ 6, asciicircum ] };
+ key <AE07> { [ 7, ampersand ] };
+ key <AE08> { [ 8, asterisk ] };
+ key <AE09> { [ 9, parenleft ] };
+ key <AE10> { [ 0, parenright ] };
+ key <AE11> { [ minus, underscore ] };
+ key <AE12> { [ equal, plus ] };
+
+ key <AD01> { [ 0x10007B0, 0x10007A4 ] };
+ key <AD02> { [ 0x1000787, 0x10007A2 ] };
+ key <AD03> { [ 0x10007AC, 0x10007AD ] };
+ key <AD04> { [ 0x1000783, 0x100079C ] };
+ key <AD05> { [ 0x100078C, 0x1000793 ] };
+ key <AD06> { [ 0x1000794, 0x10007A0 ] };
+ key <AD07> { [ 0x10007AA, 0x10007AB ] };
+ key <AD08> { [ 0x10007A8, 0x10007A9 ] };
+ key <AD09> { [ 0x10007AE, 0x10007AF ] };
+ key <AD10> { [ 0x1000795, division ] };
+// The following brackets are as they appear on the US_en keyboard.
+//Please verify whether the names used are correct. I referred to keysymdef.h
+ key <AD11> { [ bracketleft, braceleft ] };
+ key <AD12> { [ bracketright, braceright ] };
+
+
+ key <AC01> { [ 0x10007A6, 0x10007A7 ] };
+ key <AC02> { [ 0x1000790, 0x1000781 ] };
+ key <AC03> { [ 0x100078B, 0x1000791 ] };
+ key <AC04> { [ 0x100078A, 0x100fdf2 ] };
+ key <AC05> { [ 0x100078E, 0x10007A3 ] };
+ key <AC06> { [ 0x1000780, 0x1000799 ] };
+ key <AC07> { [ 0x1000796, 0x100079B ] };
+ key <AC08> { [ 0x1000786, 0x100079A ] };
+ key <AC09> { [ 0x100078D, 0x1000785 ] };
+ key <AC10> { [ semicolon, colon ] };
+//I used singleloquotemark- if this is the wrong name, please replace with the name for the
+//standard US_en keyboard format- its the same in the Thaana phonetic keyboard
+ key <AC11> { [ quoteright, quotedbl ] };
+ key <BKSL> { [ backslash, bar ] };
+
+ key <LSGT> { [ bar, brokenbar ] };
+ key <AB01> { [ 0x1000792, 0x10007A1 ] };
+//multiply sign is the same as the algebraic symbol which looks like an italicized x. I am presuming its the same thing here. If not, please substitute an 'x' instead
+ key <AB02> { [ multiply, 0x1000798 ] };
+ key <AB03> { [ 0x1000797, 0x100079D ] };
+ key <AB04> { [ 0x1000788, 0x10007A5 ] };
+ key <AB05> { [ 0x1000784, 0x100079E ] };
+ key <AB06> { [ 0x1000782, 0x100078F ] };
+ key <AB07> { [ 0x1000789, 0x100079F ] };
+ key <AB08> { [ Arabic_comma, less ] };
+ key <AB09> { [ period, greater ] };
+ key <AB10> { [ slash, Arabic_question_mark ] };
+
+ // End alphanumeric section
+
+ // Begin modifier mappings
+
+ modifier_map Shift { Shift_L };
+ modifier_map Lock { Caps_Lock, ISO_Lock };
+ modifier_map Control{ Control_L };
+ modifier_map Mod3 { Mode_switch };
+};
+
+// Any additional keys (if need be added) should appear and function exactly as it does on the US_en keyboard.
diff --git a/xorg-server/xkeyboard-config/symbols/ng b/xorg-server/xkeyboard-config/symbols/ng
index 96a569d3a..ecf5be79e 100644
--- a/xorg-server/xkeyboard-config/symbols/ng
+++ b/xorg-server/xkeyboard-config/symbols/ng
@@ -1,114 +1,114 @@
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- include "us"
-
- name[Group1]= "Nigeria";
- key <AE04> { [ 4, 0x010020A6, dollar, cent ] };
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "yoruba" {
- include "ng(basic)"
-
- name[Group1]= "Nigeria - Yoruba";
-
- key <AD01> { [ 0x01001EB9, 0x01001EB8, q, Q ] };
- key <AB02> { [ 0x01001ECD, 0x01001ECC, x, X ] };
- key <AB04> { [ 0x01001E63, 0x01001E62, v, V ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "igbo" {
- include "ng(basic)"
-
- name[Group1]= "Nigeria - Igbo";
-
- key <AD01> { [ 0x01001ECB, 0x01001ECA, q, Q ] };
- key <AB02> { [ 0x01001E45, 0x01001E44, x, X ] };
- key <AC10> { [ 0x01001EE5, 0x01001EE4, semicolon, colon ] };
- key <AD11> { [ 0x01001ECD, 0x01001ECC, bracketleft, braceleft ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "hausa" {
- include "ng(basic)"
-
- name[Group1]= "Nigeria - Hausa";
-
- key <AD01> { [ 0x01000071, 0x01000051, q, Q ] };
- key <AD02> { [ udiaeresis, Udiaeresis, w, W ] };
- key <AD03> { [ e, E, EuroSign, cent ] };
- key <AD11> { [ 0x010001B4, 0x010001B3,bracketleft, braceleft ] };
- key <AD12> { [ gcaron, Gcaron,bracketright, braceright] };
- key <AC03> { [ 0x01000257, 0x0100018A, d, D ] };
- key <AC10> { [ 0x01000131, 0x01000130, semicolon, colon ] };
- key <AC11> { [ 0x010001DD, 0x0100018E,apostrophe, quotedbl ] };
- key <AB01> { [ 0x01000272, 0x0100019D, z, Z ] };
- key <AB07> { [ ntilde, Ntilde, m, M ] };
- key <AB09> { [ ccedilla, Ccedilla, period, greater ] };
- key <AB10> { [ scedilla, Scedilla, slash, question ] };
-
-};
-
-partial alphanumeric_keys
-xkb_symbols "olpc" {
-
- include "ng(basic)"
-
- // OLPC West Africa keyboard layout
- // See: http://wiki.laptop.org/go/Image:Nigeria-B3.png
-
- key <TLDE> { [ grave, asciitilde, exclamdown, exclamdown ] };
- key <AE01> { [ 1, exclam, sterling, sterling ] };
- key <AE02> { [ 2, at, EuroSign, EuroSign ] };
- key <AE03> { [ 3, numbersign, dollar, dollar ] };
- key <AE04> { [ 4, 0x10020A6, 0x1000301, 0x1000301 ] }; // Naira, combining acute
- key <AE05> { [ 5, percent, 0x1000300, 0x1000300 ] }; // combining grave
- key <AE06> { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above
- key <AE07> { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above
- key <AE08> { [ 8, asterisk, 0x1000324, 0x1000324 ] }; // combining caron above
- key <AE09> { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above
- key <AE10> { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above
- key <AE11> { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above
- key <AE12> { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above
-
- key <AD02> { [ w, W, 0x1001EB9, 0x1001EB8 ] }; // E with dot below
- key <AD03> { [ e, E, 0x10001DD, 0x100018E ] }; // reversed E
- key <AD04> { [ r, R, 0x10001B4, 0x10001B3 ] }; // Y with hook
- key <AD05> { [ t, T, 0x1000327, 0x1000327 ] }; // combining cedilla
- key <AD06> { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below
- key <AD07> { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below
- key <AD08> { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below
- key <AD09> { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below
- key <AD10> { [ p, P, 0x1000304, 0x1000304 ] }; // combining diaeresis below
- key <AD11> { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below
- key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below
-
- key <AC01> { [ a, A, Greek_iota, Greek_IOTA ] };
- key <AC02> { [ s, S, 0x1001E63, 0x1001E62 ] }; // S with dot below
- key <AC03> { [ d, D, 0x1000257, 0x100018A ] }; // D with hook
- key <AC04> { [ f, F, 0x1001E0D, 0x1001E0C ] }; // D with dot below
- key <AC05> { [ g, G, 0x1000272, 0x100019D ] }; // N with left hook
- key <AC06> { [ h, H, 0x1001EE5, 0x1001EE4 ] }; // U with dot below
- key <AC07> { [ j, J, 0x1001ECB, 0x1001ECA ] }; // I with dot below
- key <AC08> { [ k, K, 0x1000199, 0x1000198 ] }; // K with hook
- key <AC09> { [ l, L, 0x1001E37, 0x1001E36 ] }; // L with dot below
- key <AC10> { [ semicolon, colon, masculine, ordfeminine ] };
- key <AC11> { [ apostrophe, quotedbl, currency, currency ] };
- key <BKSL> { [ backslash, bar, section, section ] };
-
- key <AB03> { [ c, C, 0x1000254, 0x1000186 ] }; // open O
- key <AB04> { [ v, V, 0x100028B, 0x10001B2 ] }; // V with hook
- key <AB05> { [ b, B, 0x1000253, 0x1000181 ] }; // B with hook
- key <AB06> { [ n, N, eng, ENG ] };
- key <AB07> { [ m, M, 0x1001E45, 0x1001E44 ] }; // N with dot above
- key <AB08> { [ comma, less, guillemotleft, guillemotleft ] };
- key <AB09> { [ period, greater, guillemotright, guillemotright ] };
- key <AB10> { [ slash, question, questiondown, questiondown ] };
-
- key <I219> { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] };
-
- include "level3(ralt_switch)"
-};
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ include "us"
+
+ name[Group1]= "English (Nigeria)";
+ key <AE04> { [ 4, 0x010020A6, dollar, cent ] };
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "yoruba" {
+ include "ng(basic)"
+
+ name[Group1]= "Yoruba";
+
+ key <AD01> { [ 0x01001EB9, 0x01001EB8, q, Q ] };
+ key <AB02> { [ 0x01001ECD, 0x01001ECC, x, X ] };
+ key <AB04> { [ 0x01001E63, 0x01001E62, v, V ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "igbo" {
+ include "ng(basic)"
+
+ name[Group1]= "Igbo";
+
+ key <AD01> { [ 0x01001ECB, 0x01001ECA, q, Q ] };
+ key <AB02> { [ 0x01001E45, 0x01001E44, x, X ] };
+ key <AC10> { [ 0x01001EE5, 0x01001EE4, semicolon, colon ] };
+ key <AD11> { [ 0x01001ECD, 0x01001ECC, bracketleft, braceleft ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "hausa" {
+ include "ng(basic)"
+
+ name[Group1]= "Hausa";
+
+ key <AD01> { [ 0x01000071, 0x01000051, q, Q ] };
+ key <AD02> { [ udiaeresis, Udiaeresis, w, W ] };
+ key <AD03> { [ e, E, EuroSign, cent ] };
+ key <AD11> { [ 0x010001B4, 0x010001B3,bracketleft, braceleft ] };
+ key <AD12> { [ gcaron, Gcaron,bracketright, braceright] };
+ key <AC03> { [ 0x01000257, 0x0100018A, d, D ] };
+ key <AC10> { [ 0x01000131, 0x01000130, semicolon, colon ] };
+ key <AC11> { [ 0x010001DD, 0x0100018E,apostrophe, quotedbl ] };
+ key <AB01> { [ 0x01000272, 0x0100019D, z, Z ] };
+ key <AB07> { [ ntilde, Ntilde, m, M ] };
+ key <AB09> { [ ccedilla, Ccedilla, period, greater ] };
+ key <AB10> { [ scedilla, Scedilla, slash, question ] };
+
+};
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+ include "ng(basic)"
+
+ // OLPC West Africa keyboard layout
+ // See: http://wiki.laptop.org/go/Image:Nigeria-B3.png
+
+ key <TLDE> { [ grave, asciitilde, exclamdown, exclamdown ] };
+ key <AE01> { [ 1, exclam, sterling, sterling ] };
+ key <AE02> { [ 2, at, EuroSign, EuroSign ] };
+ key <AE03> { [ 3, numbersign, dollar, dollar ] };
+ key <AE04> { [ 4, 0x10020A6, 0x1000301, 0x1000301 ] }; // Naira, combining acute
+ key <AE05> { [ 5, percent, 0x1000300, 0x1000300 ] }; // combining grave
+ key <AE06> { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above
+ key <AE07> { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above
+ key <AE08> { [ 8, asterisk, 0x1000324, 0x1000324 ] }; // combining caron above
+ key <AE09> { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above
+ key <AE10> { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above
+ key <AE11> { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above
+ key <AE12> { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above
+
+ key <AD02> { [ w, W, 0x1001EB9, 0x1001EB8 ] }; // E with dot below
+ key <AD03> { [ e, E, 0x10001DD, 0x100018E ] }; // reversed E
+ key <AD04> { [ r, R, 0x10001B4, 0x10001B3 ] }; // Y with hook
+ key <AD05> { [ t, T, 0x1000327, 0x1000327 ] }; // combining cedilla
+ key <AD06> { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below
+ key <AD07> { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below
+ key <AD08> { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below
+ key <AD09> { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below
+ key <AD10> { [ p, P, 0x1000304, 0x1000304 ] }; // combining diaeresis below
+ key <AD11> { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below
+ key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below
+
+ key <AC01> { [ a, A, Greek_iota, Greek_IOTA ] };
+ key <AC02> { [ s, S, 0x1001E63, 0x1001E62 ] }; // S with dot below
+ key <AC03> { [ d, D, 0x1000257, 0x100018A ] }; // D with hook
+ key <AC04> { [ f, F, 0x1001E0D, 0x1001E0C ] }; // D with dot below
+ key <AC05> { [ g, G, 0x1000272, 0x100019D ] }; // N with left hook
+ key <AC06> { [ h, H, 0x1001EE5, 0x1001EE4 ] }; // U with dot below
+ key <AC07> { [ j, J, 0x1001ECB, 0x1001ECA ] }; // I with dot below
+ key <AC08> { [ k, K, 0x1000199, 0x1000198 ] }; // K with hook
+ key <AC09> { [ l, L, 0x1001E37, 0x1001E36 ] }; // L with dot below
+ key <AC10> { [ semicolon, colon, masculine, ordfeminine ] };
+ key <AC11> { [ apostrophe, quotedbl, currency, currency ] };
+ key <BKSL> { [ backslash, bar, section, section ] };
+
+ key <AB03> { [ c, C, 0x1000254, 0x1000186 ] }; // open O
+ key <AB04> { [ v, V, 0x100028B, 0x10001B2 ] }; // V with hook
+ key <AB05> { [ b, B, 0x1000253, 0x1000181 ] }; // B with hook
+ key <AB06> { [ n, N, eng, ENG ] };
+ key <AB07> { [ m, M, 0x1001E45, 0x1001E44 ] }; // N with dot above
+ key <AB08> { [ comma, less, guillemotleft, guillemotleft ] };
+ key <AB09> { [ period, greater, guillemotright, guillemotright ] };
+ key <AB10> { [ slash, question, questiondown, questiondown ] };
+
+ key <I219> { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] };
+
+ include "level3(ralt_switch)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/no b/xorg-server/xkeyboard-config/symbols/no
index 9515be154..3342c1ab8 100644
--- a/xorg-server/xkeyboard-config/symbols/no
+++ b/xorg-server/xkeyboard-config/symbols/no
@@ -1,225 +1,225 @@
-// based on a keyboard map from an 'xkb/symbols/no' file
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- // Describes the differences between a very simple en_US
- // keyboard and a Norwegian keyboard with dead key support
- // and all of ISO-8859-1 characters available.
-
- include "latin(type2)"
-
- name[Group1]="Norway";
-
- key <AB09> { [ period, colon, ellipsis, periodcentered ] };
- key <AB10> { [ minus, underscore, endash, emdash ] };
- key <AD04> { [ r, R, registered, trademark ] };
- key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
- key <AE05> { [ 5, percent, onehalf, 0x1002030 ] };
-
- key <AE11> { [ plus, question, plusminus, questiondown ] };
- key <AE12> { [ backslash, dead_grave, dead_acute, notsign ] };
-
-
- key <AC10> { [ oslash, Ooblique, dead_acute, dead_doubleacute ] };
- key <AC11> { [ ae, AE, dead_circumflex, dead_caron] };
- key <TLDE> { [ bar, section, brokenbar, paragraph ] };
-
- key <BKSL> { [apostrophe, asterisk, dead_doubleacute, multiply ] };
- key <LSGT> { [ less, greater, onehalf, threequarters] };
-
- include "nbsp(level3n)"
- include "keypad(ossmath)"
- include "kpdl(comma)"
-
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "nodeadkeys" {
-
- // Modifies the basic Norwegian layout to eliminate dead keys
-
- include "no(basic)"
-
- name[Group1]="Norway - Eliminate dead keys";
-
- key <AE12> { [ backslash, grave, acute, ogonek ] };
- key <AD12> { [ diaeresis, asciicircum, asciitilde, macron ] };
- key <AC10> { [ oslash, Ooblique, acute, doubleacute ] };
- key <AC11> { [ ae, AE, asciicircum, caron ] };
- key <AB08> { [ comma, semicolon, cedilla, ogonek ] };
- key <AB09> { [ period, colon, periodcentered, abovedot ] };
-};
-
-// Norwegian Dvorak
-partial alphanumeric_keys
-xkb_symbols "dvorak" {
- include "us(dvorak)"
-
- name[Group1]="Norway - Dvorak";
-
- key <TLDE> { [ bar, section, brokenbar, paragraph ] };
-
- key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
- key <AE02> { [ 2, quotedbl, at, twosuperior ] };
- key <AE03> { [ 3, numbersign, sterling, threesuperior ] };
- key <AE04> { [ 4, dollar, currency,onequarter ] };
- key <AE05> { [ 5, percent, onehalf, onehalf ] };
- key <AE06> { [ 6, ampersand, threequarters, threequarters ] };
- key <AE07> { [ 7, slash, braceleft, division ] };
- key <AE08> { [ 8, parenleft, bracketleft ] };
- key <AE09> { [ 9, parenright, bracketright ] };
- key <AE10> { [ 0, equal, braceright ] };
- key <AE11> { [ plus, question, plusminus, questiondown ] };
- key <AE12> { [ backslash, grave, dead_acute, dead_grave ] };
-
- key <AD01> { [ aring, Aring, braceright, bracketright ] };
- key <AD02> { [ comma, semicolon, dead_cedilla, cedilla ] };
- key <AD03> { [ period, colon, periodcentered ] };
- key <AD04> { [ p, P, thorn, THORN ] };
- key <AD05> { [ y, Y, yen ] };
- key <AD06> { [ f, F, ordfeminine ] };
- key <AD08> { [ c, C, ccedilla, copyright ] };
- key <AD09> { [ r, R, registered ] };
- key <AD11> { [ apostrophe, asterisk, dead_circumflex, acute ] };
- key <AD12> { [ asciitilde, asciicircum, dead_diaeresis, dead_tilde ] };
-
- key <AC03> { [ e, E, EuroSign, cent ] };
- key <AC05> { [ i, I, idotless, Iabovedot] };
- key <AC06> { [ d, D, eth, ETH ] };
- key <AC10> { [ s, S, ssharp ] };
- key <AC11> { [ minus, underscore, hyphen, diaeresis] };
-
- key <AB01> { [ ae, AE, braceleft, bracketleft] };
- key <AB05> { [ x, X, multiply ] };
- key <AB07> { [ m, M, mu ] };
- key <BKSL> { [ less, greater, guillemotleft, guillemotright ] };
-
- key <SPCE> { [ space, space, nobreakspace, nobreakspace] };
-
- key <LSGT> { [ oslash, Ooblique, bar, backslash ] };
-
- // fixed https://bugs.freedesktop.org/show_bug.cgi?id=4397
- include "level3(ralt_switch)"
-};
-
-// based on
-// Northern Sami keyboards for Finland, Norway and Sweden
-//
-// Describes the differences between a very simple en_US
-// keyboard and a Norwegian Northern Sami keyboard (with
-// dead key support) according to the spec on
-// http://www.hum.uit.no/a/trond/se-lat9-no-keys.html
-// Written by Børre Gaup <boerre.gaup@pc.nu>
-//
-
-partial alphanumeric_keys
-xkb_symbols "smi" {
- include "latin"
-
- name[Group1]= "Norway - Northern Saami";
-
- key <AE01> { [ 1, exclam, copyright, exclamdown ] };
- key <AE02> { [ 2, quotedbl, at, registered ] };
- key <AE03> { [ 3, numbersign, sterling, less ] };
- key <AE04> { [ 4, dollar, dollar, greater ] };
- key <AE05> { [ 5, percent, U2022, U2030 ] };
- key <AE06> { [ 6, ampersand, section, paragraph ] };
- key <AE07> { [ 7, slash, braceleft, bar ] };
- key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
- key <AE09> { [ 9, parenright, bracketright, braceright ] };
- key <AE10> { [ 0, equal, braceright, notequal ] };
- key <AE11> { [ plus, question, division, questiondown ] };
- key <AE12> { [ backslash, grave, acute, asciitilde ] };
-
- key <AD01> { [ aacute, Aacute, q, Q ] };
- key <AD02> { [ scaron, Scaron, w, W ] };
- key <AD03> { [ e, E, eacute, Eacute ] };
- key <AD04> { [ r, R, registered, trademark ] };
- key <AD06> { [ y, Y, yacute, Yacute ] };
- key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
- key <AD08> { [ i, I, idiaeresis, Idiaeresis ] };
- key <AD09> { [ o, O, oe, OE ] };
- key <AD11> { [ aring, Aring, acircumflex, Acircumflex ] };
- key <AD12> { [ eng, ENG, quotedbl, asciicircum ] };
-
- key <AC01> { [ a, A, agrave, Agrave ] };
- key <AC02> { [ s, S, ssharp, apostrophe ] };
- key <AC04> { [ f, F, ordfeminine, ordfeminine ] };
- key <AC05> { [ g, G, gcaron, Gcaron ] };
- key <AC06> { [ h, H, U01E5, U01E4 ] };
- key <AC07> { [ j, J, notsign, multiply ] };
- key <AC08> { [ k, K, U01E9, U01E8 ] };
- key <AC09> { [ l, L, degree, hyphen ] };
- key <AC10> { [ oslash, Ooblique, odiaeresis, Odiaeresis ] };
- key <AC11> { [ ae, AE, adiaeresis, Adiaeresis ] };
- key <TLDE> { [ bar, section, brokenbar, paragraph ] };
-
- key <BKSL> { [ dstroke, Dstroke, apostrophe, asterisk ] };
- key <AB01> { [ z, Z, U0292, U01B7 ] };
- key <AB02> { [ ccaron, Ccaron, x, X ] };
- key <AB03> { [ c, C, ccedilla, Ccedilla ] };
- key <AB04> { [ v, V, lessthanequal, guillemotleft ] };
- key <AB05> { [ b, B, greaterthanequal, guillemotright ] };
- key <AB06> { [ n, N, leftsinglequotemark, leftdoublequotemark ] };
- key <AB07> { [ m, M, rightsinglequotemark, rightdoublequotemark ] };
- key <AB08> { [ comma, semicolon, singlelowquotemark, doublelowquotemark ] };
- key <AB09> { [ period, colon, ellipsis, periodcentered ] };
- key <AB10> { [ minus, underscore, endash, emdash ] };
-
- key <LSGT> { type[Group1] = "FOUR_LEVEL",
- [ zcaron, Zcaron, U01EF, U01EE ] };
-
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "smi_nodeadkeys" {
-
- // Modifies the basic Norwegian layout to eliminate dead keys
-
- include "no(smi)"
-
- name[Group1]= "Norway - Northern Saami, eliminate dead keys";
-
- key <AE12> { [ backslash, grave, acute, ogonek ] };
-};
-
-// Copied from macintosh_vndr/no
-partial alphanumeric_keys
-xkb_symbols "mac" {
-
- // Describes the differences between a very simple en_US
- // keyboard and a very simple Norwegian keybaord
-
- include "latin(type4)"
- name[Group1]= "Norway - Macintosh";
-
- key <TLDE> { [ bar, section ] };
- key <AE03> { [ 3, numbersign, sterling, sterling ] };
- key <AE04> { [ 4, currency, dollar, dollar ] };
- key <AE06> { [ 6, ampersand, threequarters, fiveeighths ] };
- key <AE07> { [ 7, slash, bar, backslash ] };
- key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
- key <AE09> { [ 9, parenright, bracketright, braceright ] };
- key <AC10> { [ oslash, Ooblique, odiaeresis, Odiaeresis ] };
- key <AE11> { [ plus, question ] };
- key <AC11> { [ ae, AE ] };
- key <AD11> { [ aring, Aring ] };
- key <AE12> { [ dead_grave, dead_acute, acute, dead_ogonek ] };
- key <AD12> { [ diaeresis, asciicircum, asciitilde, dead_macron ] };
- key <BKSL> { [ at, asterisk ] };
-};
-
-
-partial alphanumeric_keys
-xkb_symbols "mac_nodeadkeys" {
-
- // Modifies the basic Norwegian layout to eliminate dead keys
- include "no(mac)"
- name[Group1]= "Norway - Macintosh, eliminate dead keys";
-
- key <AE12> { [ grave, acute, acute, ogonek ] };
- key <AD12> { [ diaeresis, asciicircum, asciitilde, macron ] };
-};
+// based on a keyboard map from an 'xkb/symbols/no' file
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ // Describes the differences between a very simple en_US
+ // keyboard and a Norwegian keyboard with dead key support
+ // and all of ISO-8859-1 characters available.
+
+ include "latin(type2)"
+
+ name[Group1]="Norwegian";
+
+ key <AB09> { [ period, colon, ellipsis, periodcentered ] };
+ key <AB10> { [ minus, underscore, endash, emdash ] };
+ key <AD04> { [ r, R, registered, trademark ] };
+ key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
+ key <AE05> { [ 5, percent, onehalf, 0x1002030 ] };
+
+ key <AE11> { [ plus, question, plusminus, questiondown ] };
+ key <AE12> { [ backslash, dead_grave, dead_acute, notsign ] };
+
+
+ key <AC10> { [ oslash, Ooblique, dead_acute, dead_doubleacute ] };
+ key <AC11> { [ ae, AE, dead_circumflex, dead_caron] };
+ key <TLDE> { [ bar, section, brokenbar, paragraph ] };
+
+ key <BKSL> { [apostrophe, asterisk, dead_doubleacute, multiply ] };
+ key <LSGT> { [ less, greater, onehalf, threequarters] };
+
+ include "nbsp(level3n)"
+ include "keypad(ossmath)"
+ include "kpdl(comma)"
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "nodeadkeys" {
+
+ // Modifies the basic Norwegian layout to eliminate dead keys
+
+ include "no(basic)"
+
+ name[Group1]="Norwegian (eliminate dead keys)";
+
+ key <AE12> { [ backslash, grave, acute, ogonek ] };
+ key <AD12> { [ diaeresis, asciicircum, asciitilde, macron ] };
+ key <AC10> { [ oslash, Ooblique, acute, doubleacute ] };
+ key <AC11> { [ ae, AE, asciicircum, caron ] };
+ key <AB08> { [ comma, semicolon, cedilla, ogonek ] };
+ key <AB09> { [ period, colon, periodcentered, abovedot ] };
+};
+
+// Norwegian Dvorak
+partial alphanumeric_keys
+xkb_symbols "dvorak" {
+ include "us(dvorak)"
+
+ name[Group1]="Norwegian (Dvorak)";
+
+ key <TLDE> { [ bar, section, brokenbar, paragraph ] };
+
+ key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
+ key <AE02> { [ 2, quotedbl, at, twosuperior ] };
+ key <AE03> { [ 3, numbersign, sterling, threesuperior ] };
+ key <AE04> { [ 4, dollar, currency,onequarter ] };
+ key <AE05> { [ 5, percent, onehalf, onehalf ] };
+ key <AE06> { [ 6, ampersand, threequarters, threequarters ] };
+ key <AE07> { [ 7, slash, braceleft, division ] };
+ key <AE08> { [ 8, parenleft, bracketleft ] };
+ key <AE09> { [ 9, parenright, bracketright ] };
+ key <AE10> { [ 0, equal, braceright ] };
+ key <AE11> { [ plus, question, plusminus, questiondown ] };
+ key <AE12> { [ backslash, grave, dead_acute, dead_grave ] };
+
+ key <AD01> { [ aring, Aring, braceright, bracketright ] };
+ key <AD02> { [ comma, semicolon, dead_cedilla, cedilla ] };
+ key <AD03> { [ period, colon, periodcentered ] };
+ key <AD04> { [ p, P, thorn, THORN ] };
+ key <AD05> { [ y, Y, yen ] };
+ key <AD06> { [ f, F, ordfeminine ] };
+ key <AD08> { [ c, C, ccedilla, copyright ] };
+ key <AD09> { [ r, R, registered ] };
+ key <AD11> { [ apostrophe, asterisk, dead_circumflex, acute ] };
+ key <AD12> { [ asciitilde, asciicircum, dead_diaeresis, dead_tilde ] };
+
+ key <AC03> { [ e, E, EuroSign, cent ] };
+ key <AC05> { [ i, I, idotless, Iabovedot] };
+ key <AC06> { [ d, D, eth, ETH ] };
+ key <AC10> { [ s, S, ssharp ] };
+ key <AC11> { [ minus, underscore, hyphen, diaeresis] };
+
+ key <AB01> { [ ae, AE, braceleft, bracketleft] };
+ key <AB05> { [ x, X, multiply ] };
+ key <AB07> { [ m, M, mu ] };
+ key <BKSL> { [ less, greater, guillemotleft, guillemotright ] };
+
+ key <SPCE> { [ space, space, nobreakspace, nobreakspace] };
+
+ key <LSGT> { [ oslash, Ooblique, bar, backslash ] };
+
+ // fixed https://bugs.freedesktop.org/show_bug.cgi?id=4397
+ include "level3(ralt_switch)"
+};
+
+// based on
+// Northern Sami keyboards for Finland, Norway and Sweden
+//
+// Describes the differences between a very simple en_US
+// keyboard and a Norwegian Northern Sami keyboard (with
+// dead key support) according to the spec on
+// http://www.hum.uit.no/a/trond/se-lat9-no-keys.html
+// Written by Børre Gaup <boerre.gaup@pc.nu>
+//
+
+partial alphanumeric_keys
+xkb_symbols "smi" {
+ include "latin"
+
+ name[Group1]= "Northern Saami (Norway)";
+
+ key <AE01> { [ 1, exclam, copyright, exclamdown ] };
+ key <AE02> { [ 2, quotedbl, at, registered ] };
+ key <AE03> { [ 3, numbersign, sterling, less ] };
+ key <AE04> { [ 4, dollar, dollar, greater ] };
+ key <AE05> { [ 5, percent, U2022, U2030 ] };
+ key <AE06> { [ 6, ampersand, section, paragraph ] };
+ key <AE07> { [ 7, slash, braceleft, bar ] };
+ key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
+ key <AE09> { [ 9, parenright, bracketright, braceright ] };
+ key <AE10> { [ 0, equal, braceright, notequal ] };
+ key <AE11> { [ plus, question, division, questiondown ] };
+ key <AE12> { [ backslash, grave, acute, asciitilde ] };
+
+ key <AD01> { [ aacute, Aacute, q, Q ] };
+ key <AD02> { [ scaron, Scaron, w, W ] };
+ key <AD03> { [ e, E, eacute, Eacute ] };
+ key <AD04> { [ r, R, registered, trademark ] };
+ key <AD06> { [ y, Y, yacute, Yacute ] };
+ key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
+ key <AD08> { [ i, I, idiaeresis, Idiaeresis ] };
+ key <AD09> { [ o, O, oe, OE ] };
+ key <AD11> { [ aring, Aring, acircumflex, Acircumflex ] };
+ key <AD12> { [ eng, ENG, quotedbl, asciicircum ] };
+
+ key <AC01> { [ a, A, agrave, Agrave ] };
+ key <AC02> { [ s, S, ssharp, apostrophe ] };
+ key <AC04> { [ f, F, ordfeminine, ordfeminine ] };
+ key <AC05> { [ g, G, gcaron, Gcaron ] };
+ key <AC06> { [ h, H, U01E5, U01E4 ] };
+ key <AC07> { [ j, J, notsign, multiply ] };
+ key <AC08> { [ k, K, U01E9, U01E8 ] };
+ key <AC09> { [ l, L, degree, hyphen ] };
+ key <AC10> { [ oslash, Ooblique, odiaeresis, Odiaeresis ] };
+ key <AC11> { [ ae, AE, adiaeresis, Adiaeresis ] };
+ key <TLDE> { [ bar, section, brokenbar, paragraph ] };
+
+ key <BKSL> { [ dstroke, Dstroke, apostrophe, asterisk ] };
+ key <AB01> { [ z, Z, U0292, U01B7 ] };
+ key <AB02> { [ ccaron, Ccaron, x, X ] };
+ key <AB03> { [ c, C, ccedilla, Ccedilla ] };
+ key <AB04> { [ v, V, lessthanequal, guillemotleft ] };
+ key <AB05> { [ b, B, greaterthanequal, guillemotright ] };
+ key <AB06> { [ n, N, leftsinglequotemark, leftdoublequotemark ] };
+ key <AB07> { [ m, M, rightsinglequotemark, rightdoublequotemark ] };
+ key <AB08> { [ comma, semicolon, singlelowquotemark, doublelowquotemark ] };
+ key <AB09> { [ period, colon, ellipsis, periodcentered ] };
+ key <AB10> { [ minus, underscore, endash, emdash ] };
+
+ key <LSGT> { type[Group1] = "FOUR_LEVEL",
+ [ zcaron, Zcaron, U01EF, U01EE ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "smi_nodeadkeys" {
+
+ // Modifies the basic Norwegian layout to eliminate dead keys
+
+ include "no(smi)"
+
+ name[Group1]= "Northern Saami (Norway, eliminate dead keys)";
+
+ key <AE12> { [ backslash, grave, acute, ogonek ] };
+};
+
+// Copied from macintosh_vndr/no
+partial alphanumeric_keys
+xkb_symbols "mac" {
+
+ // Describes the differences between a very simple en_US
+ // keyboard and a very simple Norwegian keybaord
+
+ include "latin(type4)"
+ name[Group1]= "Norwegian (Macintosh)";
+
+ key <TLDE> { [ bar, section ] };
+ key <AE03> { [ 3, numbersign, sterling, sterling ] };
+ key <AE04> { [ 4, currency, dollar, dollar ] };
+ key <AE06> { [ 6, ampersand, threequarters, fiveeighths ] };
+ key <AE07> { [ 7, slash, bar, backslash ] };
+ key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
+ key <AE09> { [ 9, parenright, bracketright, braceright ] };
+ key <AC10> { [ oslash, Ooblique, odiaeresis, Odiaeresis ] };
+ key <AE11> { [ plus, question ] };
+ key <AC11> { [ ae, AE ] };
+ key <AD11> { [ aring, Aring ] };
+ key <AE12> { [ dead_grave, dead_acute, acute, dead_ogonek ] };
+ key <AD12> { [ diaeresis, asciicircum, asciitilde, dead_macron ] };
+ key <BKSL> { [ at, asterisk ] };
+};
+
+
+partial alphanumeric_keys
+xkb_symbols "mac_nodeadkeys" {
+
+ // Modifies the basic Norwegian layout to eliminate dead keys
+ include "no(mac)"
+ name[Group1]= "Norwegian (Macintosh, eliminate dead keys)";
+
+ key <AE12> { [ grave, acute, acute, ogonek ] };
+ key <AD12> { [ diaeresis, asciicircum, asciitilde, macron ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/np b/xorg-server/xkeyboard-config/symbols/np
index e139b0ff7..eb8e54ad7 100644
--- a/xorg-server/xkeyboard-config/symbols/np
+++ b/xorg-server/xkeyboard-config/symbols/np
@@ -3,7 +3,7 @@
partial default alphanumeric_keys
xkb_symbols "basic" {
- name[Group1]= "Nepal";
+ name[Group1]= "Nepali";
// `,1,2,3,4,5,6,7,8,9,0,-,=
diff --git a/xorg-server/xkeyboard-config/symbols/ph b/xorg-server/xkeyboard-config/symbols/ph
index 3681562ff..7b294948e 100644
--- a/xorg-server/xkeyboard-config/symbols/ph
+++ b/xorg-server/xkeyboard-config/symbols/ph
@@ -1,996 +1,996 @@
-////////////////////////////////////////////////////////////////////////////////
-// Philippines National Keyboard Layout v1.0.0 (2010-10-23) //
-// http://laibcoms.com/sandbox/the-philippines-national-keyboard-layout //
-// //
-// License: GNU/GPLv3 //
-// //
-// Loosely based on ISO/IEC 9995-3:2009 //
-// * glyphs that are not used in Philippine Languages and //
-// Philippine English were not included //
-// * Additions/Changes that are not part of ISO/IEC 9995-3:2009 //
-// were added //
-// //
-// http://en.wikipedia.org/wiki/ISO/IEC_9995 //
-// http://www.fileformat.info/info/unicode/char/20B1/index.htm //
-// //
-// By: Ubuntu Philippines LoCo Team //
-// Site: http://ubuntu-ph.org //
-// //
-// Project Contact: JC John Sese Cuneta / 謝施洗 / ᜑᜓᜏᜈ᜔ ᜃᜓᜈᜒᜆ //
-// XMPP/Jabber: jcjohn.sesecuneta@talkr.im //
-// Email: jcjohn.sesecuneta@laibcoms.com //
-////////////////////////////////////////////////////////////////////////////////
-
-// QWERTY (Latin) version
-// http://en.wikipedia.org/wiki/QWERTY
-//
-// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
-// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & ← │ * → │ ( ↑ │ ) ↓ │ _ ◌͠ │ + ∓ ┃ ⌫ Bak ┃
-// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ - ¬ │ = ± ┃ Space ┃
-// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
-// ┃ ┃ Q │ W │ E Œ │ R ¶ │ T │ Y │ U │ I İ │ O Ø │ P │ { │ } │ | Ə │
-// ┃Tab ↹ ┃ q │ w │ e œ │ r ® │ t ™ │ y ¥ │ u │ i ı │ o ø │ p ₱ │ [ │ ] │ \ ə │
-// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
-// ┃ ┃ A Æ │ S │ D │ F ª │ G │ H │ J │ K │ L │ : │ " ̋◌ ┃ Enter ┃
-// ┃Caps ⇬ ┃ a æ │ s § │ d │ f │ g │ h │ j │ k │ l │ ; │ ' ́◌ ┃ ⏎ ┃
-// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
-// ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ B ’ │ N Ñ │ M º │ < ̨◌ │ > ␣ │ ? ¿ ┃ ┃
-// ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ b ” │ n ñ │ m µ │ , ̧◌ │ . … │ / ÷ ┃Shift ⇧ ┃
-// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
-// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃
-// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
-// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
-//
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- name[Group1]= "Philippines";
-
-// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
-// Level1 Level2 Level3 Level4
-// Base Shift AltGr AltGr+Shift
-
- // E row; Numerals row, left side
- key <TLDE> { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde)
- key <AE01> { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡
- key <AE02> { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤
- key <AE03> { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £
- key <AE04> { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ €
- key <AE05> { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ °
- // E row; Numerals row, right side
- key <AE06> { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent)
- key <AE07> { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ←
- key <AE08> { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ →
- key <AE09> { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑
- key <AE10> { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓
- key <AE11> { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠
- key <AE12> { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓
-
- // D row; QWERTY row, left side
- key <AD01> { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q
- key <AD02> { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W
- key <AD03> { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ
- key <AD04> { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶
- key <AD05> { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™
- // D row; QWERTY row, right side
- key <AD06> { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥
- key <AD07> { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U
- key <AD08> { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ
- key <AD09> { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø
- key <AD10> { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱
- key <AD11> { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ {
- key <AD12> { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] }
- key <BKSL> { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə
-
- // C row; Home row, left side
- key <AC01> { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ
- key <AC02> { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S §
- key <AC03> { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D
- key <AC04> { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª
- key <AC05> { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G
- // C row; Home row, right side
- key <AC06> { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H
- key <AC07> { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J
- key <AC08> { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K
- key <AC09> { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L
- key <AC10> { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; :
- key <AC11> { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent)
-
- // B row; Lower row, left side
- key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦
- key <AB01> { [ U007A, U005A, U00AB, U00BB ] }; // z Z « »
- key <AB02> { [ U0078, U0058, U00D7, U00B7 ] }; // x X × ·
- key <AB03> { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢
- key <AB04> { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘
- key <AB05> { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’
- // B row; Lower row, right side
- key <AB06> { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ
- key <AB07> { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º
- key <AB08> { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek)
- key <AB09> { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣
- key <AB10> { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿
-
- // A row
- key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
-
- include "level3(ralt_switch)"
-};
-
-
-// QWERTY (Baybayin) version
-//
-// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
-// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ ⌫ Bak ┃
-// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ Space ┃
-// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
-// ┃ ┃ │ │ ᜁ │ │ │ │ ᜂ │ ᜁ │ ᜂ │ │ │ │ │
-// ┃Tab ↹ ┃ │ ᜏ │ ◌ᜒ │ ᜍ │ ᜆ │ ᜌ │ ◌ᜓ │ ◌ᜒ │ ◌ᜓ │ ᜉ │ │ │ │
-// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
-// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ Enter ┃
-// ┃Caps ⇬ ┃ ᜀ │ ᜐ │ ᜇ │ │ ᜄ │ ᜑ │ │ ᜃ │ ᜎ │ │ ┃ ⏎ ┃
-// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
-// ┃ ┃ │ │ │ │ │ │ ᜅ │ │ │ │ ┃ ┃
-// ┃Shift ⇧┃ │ │ │ │ │ ᜊ │ ᜈ │ ᜋ │ ᜵ │ ᜶ │ ┃Shift ⇧ ┃
-// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
-// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃
-// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
-// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
-//
-partial alphanumeric_keys
-xkb_symbols "qwerty-bay" {
-
- name[Group1]= "Philippines - QWERTY (Baybayin)";
-
-// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
-// Level1 Level2 Level3 Level4
-// Base Shift AltGr AltGr+Shift
-
- // E row; Numerals row, left side
- key <TLDE> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- // E row; Numerals row, right side
- key <AE06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE12> { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama)
-
- // D row; QWERTY row, left side
- key <AD01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD02> { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa)
- key <AD03> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
- key <AD04> { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra)
- key <AD05> { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta)
- // D row; QWERTY row, right side
- key <AD06> { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya)
- key <AD07> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
- key <AD08> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
- key <AD09> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
- key <AD10> { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa)
- key <AD11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD12> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <BKSL> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // C row; Home row, left side
- key <AC01> { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A)
- key <AC02> { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa)
- key <AC03> { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da)
- key <AC04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AC05> { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga)
- // C row; Home row, right side
- key <AC06> { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha)
- key <AC07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AC08> { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka)
- key <AC09> { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La)
- key <AC10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AC11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // B row; Lower row, left side
- key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB05> { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba)
- // B row; Lower row, right side
- key <AB06> { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga)
- key <AB07> { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma)
- key <AB08> { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma)
- key <AB09> { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period)
- key <AB10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // A row
- key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
-
- include "level3(ralt_switch)"
-};
-
-
-// Capewell-Dvorak (Latin) version
-// http://www.michaelcapewell.com/projects/keyboard/index.htm#The_Capewell-Dvorak_Layout
-//
-// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
-// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ { │ } ┃ ⌫ Bak ┃
-// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ [ │ ] ┃ Space ┃
-// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
-// ┃ ┃ " ̋◌ │ < ̨◌ │ > ␣ │ P │ Y │ Q │ F ª │ G │ R ¶ │ K │ ? ¿ │ + ∓ │ | Ə │
-// ┃Tab ↹ ┃ ' ́◌ │ , ̧◌ │ . … │ p ₱ │ y ¥ │ q │ f │ g │ r ® │ k │ / ÷ │ = ± │ \ ə │
-// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
-// ┃ ┃ O Ø │ A Æ │ E Œ │ I İ │ U │ D │ H │ T │ N Ñ │ S │ _ ◌͠ ┃ Enter ┃
-// ┃Caps ⇬ ┃ o ø │ a æ │ e œ │ i ı │ u │ d │ h │ t ™ │ n ñ │ s § │ - ¬ ┃ ⏎ ┃
-// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
-// ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ J │ L │ M º │ W │ B ’ │ : ┃ ┃
-// ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ j │ l │ m µ │ w │ b ” │ ; ┃Shift ⇧ ┃
-// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
-// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃
-// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
-// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
-//
-partial alphanumeric_keys
-xkb_symbols "capewell-dvorak" {
-
- name[Group1]= "Philippines - Capewell-Dvorak (Latin)";
-
-// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
-// Level1 Level2 Level3 Level4
-// Base Shift AltGr AltGr+Shift
-
- // E row; Numerals row, left side
- key <TLDE> { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde)
- key <AE01> { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡
- key <AE02> { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤
- key <AE03> { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £
- key <AE04> { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ €
- key <AE05> { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ °
- // E row; Numerals row, right side
- key <AE06> { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent)
- key <AE07> { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ←
- key <AE08> { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ →
- key <AE09> { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑
- key <AE10> { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓
- key <AE11> { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ {
- key <AE12> { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] }
-
- // D row; Upper row, left side
- key <AD01> { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent)
- key <AD02> { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek)
- key <AD03> { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣
- key <AD04> { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱
- key <AD05> { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥
- // D row; Upper row, right side
- key <AD06> { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q
- key <AD07> { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª
- key <AD08> { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G
- key <AD09> { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶
- key <AD10> { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K
- key <AD11> { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿
- key <AD12> { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓
- key <BKSL> { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə
-
- // C row; Home row, left side
- key <AC01> { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø
- key <AC02> { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ
- key <AC03> { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ
- key <AC04> { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ
- key <AC05> { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U
- // C row; Home row, right side
- key <AC06> { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D
- key <AC07> { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H
- key <AC08> { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™
- key <AC09> { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ
- key <AC10> { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S §
- key <AC11> { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠
-
- // B row; Lower row, left side
- key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦
- key <AB01> { [ U007A, U005A, U00AB, U00BB ] }; // z Z « »
- key <AB02> { [ U0078, U0058, U00D7, U00B7 ] }; // x X × ·
- key <AB03> { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢
- key <AB04> { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘
- key <AB05> { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J
- // B row; Lower row, right side
- key <AB06> { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L
- key <AB07> { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º
- key <AB08> { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W
- key <AB09> { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’
- key <AB10> { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; :
-
- // A row
- key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
-
- include "level3(ralt_switch)"
-};
-
-
-// Capewell-Dvorak (Baybayin) version
-//
-// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
-// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ Bak ┃
-// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ Space ┃
-// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
-// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ │ │
-// ┃Tab ↹ ┃ │ ᜵ │ ᜶ │ ᜉ │ ᜌ │ │ │ ᜄ │ ᜍ │ ᜃ │ │ ◌᜔ │ │
-// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
-// ┃ ┃ ᜂ │ │ ᜁ │ ᜁ │ ᜂ │ │ │ │ ᜅ │ │ ┃ Enter ┃
-// ┃Caps ⇬ ┃ ◌ᜓ │ ᜀ │ ◌ᜒ │ ◌ᜒ │ ◌ᜓ │ ᜇ │ ᜑ │ ᜆ │ ᜈ │ ᜐ │ ┃ ⏎ ┃
-// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
-// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃
-// ┃Shift ⇧┃ │ │ │ │ │ │ ᜎ │ ᜋ │ ᜏ │ ᜊ │ ┃Shift ⇧ ┃
-// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
-// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃
-// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
-// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
-//
-partial alphanumeric_keys
-xkb_symbols "capewell-dvorak-bay" {
-
- name[Group1]= "Philippines - Capewell-Dvorak (Baybayin)";
-
-// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
-// Level1 Level2 Level3 Level4
-// Base Shift AltGr AltGr+Shift
-
- // E row; Numerals row, left side
- key <TLDE> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- // E row; Numerals row, right side
- key <AE06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE12> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // D row; QWERTY row, left side
- key <AD01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD02> { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma)
- key <AD03> { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period)
- key <AD04> { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa)
- key <AD05> { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya)
- // D row; QWERTY row, right side
- key <AD06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD08> { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga)
- key <AD09> { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra)
- key <AD10> { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka)
- key <AD11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD12> { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama)
- key <BKSL> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // C row; Home row, left side
- key <AC01> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
- key <AC02> { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A)
- key <AC03> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
- key <AC04> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
- key <AC05> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
- // C row; Home row, right side
- key <AC06> { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da)
- key <AC07> { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha)
- key <AC08> { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta)
- key <AC09> { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga)
- key <AC10> { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa)
- key <AC11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // B row; Lower row, left side
- key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- // B row; Lower row, right side
- key <AB06> { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La)
- key <AB07> { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma)
- key <AB08> { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa)
- key <AB09> { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba)
- key <AB10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // A row
- key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
-
- include "level3(ralt_switch)"
-};
-
-
-// Capewell-QWERF 2006 (Latin) version
-// http://www.michaelcapewell.com/projects/keyboard/index.htm#The_QWERF_Layout
-//
-// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
-// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ _ ◌͠ │ + ∓ ┃ ⌫ Bak ┃
-// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ - ¬ │ = ± ┃ Space ┃
-// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
-// ┃ ┃ Q │ W │ E Œ │ R ¶ │ F ª │ J │ Y │ K │ L │ : │ { │ } │ | Ə │
-// ┃Tab ↹ ┃ q │ w │ e œ │ r ® │ f │ j │ y ¥ │ k │ l │ ; │ [ │ ] │ \ ə │
-// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
-// ┃ ┃ A Æ │ S │ D │ T │ G │ H │ U │ I İ │ O Ø │ P │ " ̋◌ ┃ Enter ┃
-// ┃Caps ⇬ ┃ a æ │ s § │ d │ t ™ │ g │ h │ u │ i ı │ o ø │ p ₱ │ ' ́◌ ┃ ⏎ ┃
-// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
-// ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ B ’ │ N Ñ │ M º │ < ̨◌ │ > ␣ │ ? ¿ ┃ ┃
-// ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ b ” │ n ñ │ m µ │ , ̧◌ │ . … │ / ÷ ┃Shift ⇧ ┃
-// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
-// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃
-// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
-// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
-//
-partial alphanumeric_keys
-xkb_symbols "capewell-qwerf2k6" {
-
- name[Group1]= "Philippines - Capewell-QWERF 2006 (Latin)";
-
-// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
-// Level1 Level2 Level3 Level4
-// Base Shift AltGr AltGr+Shift
-
- // E row; Numerals row, left side
- key <TLDE> { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde)
- key <AE01> { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡
- key <AE02> { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤
- key <AE03> { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £
- key <AE04> { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ €
- key <AE05> { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ °
- // E row; Numerals row, right side
- key <AE06> { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent)
- key <AE07> { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ←
- key <AE08> { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ →
- key <AE09> { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑
- key <AE10> { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓
- key <AE11> { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠
- key <AE12> { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓
-
- // D row; Upper row, left side
- key <AD01> { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q
- key <AD02> { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W
- key <AD03> { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ
- key <AD04> { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶
- key <AD05> { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª
- // D row; Upper row, right side
- key <AD06> { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J
- key <AD07> { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥
- key <AD08> { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K
- key <AD09> { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L
- key <AD10> { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; :
- key <AD11> { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ {
- key <AD12> { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] }
- key <BKSL> { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə
-
- // C row; Home row, left side
- key <AC01> { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ
- key <AC02> { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S §
- key <AC03> { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D
- key <AC04> { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™
- key <AC05> { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G
- // C row; Home row, right side
- key <AC06> { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H
- key <AC07> { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U
- key <AC08> { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ
- key <AC09> { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø
- key <AC10> { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱
- key <AC11> { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent)
-
- // B row; Lower row, left side
- key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦
- key <AB01> { [ U007A, U005A, U00AB, U00BB ] }; // z Z « »
- key <AB02> { [ U0078, U0058, U00D7, U00B7 ] }; // x X × ·
- key <AB03> { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢
- key <AB04> { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘
- key <AB05> { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’
- // B row; Lower row, right side
- key <AB06> { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ
- key <AB07> { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º
- key <AB08> { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek)
- key <AB09> { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣
- key <AB10> { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿
-
- // A row
- key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
-
- include "level3(ralt_switch)"
-};
-
-
-// Capewell-QWERF 2006 (Baybayin) version
-//
-// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
-// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ ⌫ Bak ┃
-// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ Space ┃
-// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
-// ┃ ┃ │ │ ᜁ │ │ │ │ │ │ │ │ │ │ │
-// ┃Tab ↹ ┃ │ ᜏ │ ◌ᜒ │ ᜍ │ │ │ ᜌ │ ᜃ │ ᜎ │ │ │ │ │
-// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
-// ┃ ┃ │ │ │ │ │ │ ᜂ │ ᜁ │ ᜂ │ │ ┃ Enter ┃
-// ┃Caps ⇬ ┃ ᜀ │ ᜐ │ ᜇ │ ᜆ │ ᜄ │ ᜑ │ ◌ᜓ │ ◌ᜒ │ ◌ᜓ │ ᜉ │ ┃ ⏎ ┃
-// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
-// ┃ ┃ │ │ │ │ │ │ ᜅ │ │ │ │ ┃ ┃
-// ┃Shift ⇧┃ │ │ │ │ │ ᜊ │ ᜈ │ ᜋ │ ᜵ │ ᜶ │ ┃Shift ⇧ ┃
-// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
-// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃
-// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
-// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
-//
-partial alphanumeric_keys
-xkb_symbols "capewell-qwerf2k6-bay" {
-
- name[Group1]= "Philippines - Capewell-QWERF 2006 (Baybayin)";
-
-// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
-// Level1 Level2 Level3 Level4
-// Base Shift AltGr AltGr+Shift
-
- // E row; Numerals row, left side
- key <TLDE> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- // E row; Numerals row, right side
- key <AE06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE12> { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama)
-
- // D row; QWERTY row, left side
- key <AD01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD02> { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa)
- key <AD03> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
- key <AD04> { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra)
- key <AD05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- // D row; QWERTY row, right side
- key <AD06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD07> { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya)
- key <AD08> { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka)
- key <AD09> { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La)
- key <AD10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD12> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <BKSL> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // C row; Home row, left side
- key <AC01> { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A)
- key <AC02> { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa)
- key <AC03> { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da)
- key <AC04> { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta)
- key <AC05> { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga)
- // C row; Home row, right side
- key <AC06> { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha)
- key <AC07> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
- key <AC08> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
- key <AC09> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
- key <AC10> { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa)
- key <AC11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // B row; Lower row, left side
- key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB05> { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba)
- // B row; Lower row, right side
- key <AB06> { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga)
- key <AB07> { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma)
- key <AB08> { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma)
- key <AB09> { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period)
- key <AB10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // A row
- key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
-
- include "level3(ralt_switch)"
-};
-
-
-// Colemak (Latin) version
-// http://colemak.com
-//
-// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
-// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ _ ◌͠ │ + ∓ ┃ ⌫ Bak ┃
-// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ - ¬ │ = ± ┃ Space ┃
-// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
-// ┃ ┃ Q │ W │ F ª │ P │ G │ J │ L │ U │ Y │ : │ { │ } │ | Ə │
-// ┃Tab ↹ ┃ q │ w │ f │ p ₱ │ g │ j │ l │ u │ y ¥ │ ; │ [ │ ] │ \ ə │
-// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
-// ┃ ┃ A Æ │ R ¶ │ S │ T │ D │ H │ N Ñ │ E Œ │ I İ │ O Ø │ " ̋◌ ┃ Enter ┃
-// ┃Caps ⇬ ┃ a æ │ r ® │ s § │ t ™ │ d │ h │ n ñ │ e œ │ i ı │ o ø │ ' ́◌ ┃ ⏎ ┃
-// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
-// ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ B ’ │ K │ M º │ < ̨◌ │ > ␣ │ ? ¿ ┃ ┃
-// ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ b ” │ k │ m µ │ , ̧◌ │ . … │ / ÷ ┃Shift ⇧ ┃
-// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
-// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃
-// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
-// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
-//
-partial alphanumeric_keys
-xkb_symbols "colemak" {
-
- name[Group1]= "Philippines - Colemak (Latin)";
-
-// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
-// Level1 Level2 Level3 Level4
-// Base Shift AltGr AltGr+Shift
-
- // E row; Numerals row, left side
- key <TLDE> { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde)
- key <AE01> { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡
- key <AE02> { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤
- key <AE03> { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £
- key <AE04> { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ €
- key <AE05> { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ °
- // E row; Numerals row, right side
- key <AE06> { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent)
- key <AE07> { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ←
- key <AE08> { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ →
- key <AE09> { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑
- key <AE10> { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓
- key <AE11> { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠
- key <AE12> { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓
-
- // D row; Upper row, left side
- key <AD01> { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q
- key <AD02> { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W
- key <AD03> { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª
- key <AD04> { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱
- key <AD05> { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G
- // D row; Upper row, right side
- key <AD06> { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J
- key <AD07> { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L
- key <AD08> { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U
- key <AD09> { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥
- key <AD10> { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; :
- key <AD11> { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ {
- key <AD12> { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] }
- key <BKSL> { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə
-
- // C row; Home row, left side
- key <AC01> { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ
- key <AC02> { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶
- key <AC03> { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S §
- key <AC04> { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™
- key <AC05> { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D
- // C row; Home row, right side
- key <AC06> { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H
- key <AC07> { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ
- key <AC08> { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ
- key <AC09> { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ
- key <AC10> { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø
- key <AC11> { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent)
-
- // B row; Lower row, left side
- key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦
- key <AB01> { [ U007A, U005A, U00AB, U00BB ] }; // z Z « »
- key <AB02> { [ U0078, U0058, U00D7, U00B7 ] }; // x X × ·
- key <AB03> { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢
- key <AB04> { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘
- key <AB05> { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’
- // B row; Lower row, right side
- key <AB06> { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K
- key <AB07> { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º
- key <AB08> { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek)
- key <AB09> { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣
- key <AB10> { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿
-
- // A row
- key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
-
- include "level3(ralt_switch)"
-};
-
-
-// Colemak (Baybayin) version
-//
-// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
-// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ ⌫ Bak ┃
-// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ Space ┃
-// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
-// ┃ ┃ │ │ │ │ │ │ │ ᜂ │ │ │ │ │ │
-// ┃Tab ↹ ┃ │ ᜏ │ │ ᜉ │ ᜄ │ │ ᜎ │ ◌ᜓ │ ᜌ │ │ │ │ │
-// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
-// ┃ ┃ │ │ │ │ │ │ ᜅ │ ᜁ │ ᜁ │ ᜂ │ ┃ Enter ┃
-// ┃Caps ⇬ ┃ ᜀ │ ᜍ │ ᜐ │ ᜆ │ ᜇ │ ᜑ │ ᜈ │ ◌ᜒ │ ◌ᜒ │ ◌ᜓ │ ┃ ⏎ ┃
-// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
-// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃
-// ┃Shift ⇧┃ │ │ │ │ │ ᜊ │ ᜃ │ ᜋ │ ᜵ │ ᜶ │ ┃Shift ⇧ ┃
-// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
-// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃
-// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
-// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
-//
-partial alphanumeric_keys
-xkb_symbols "colemak-bay" {
-
- name[Group1]= "Philippines - Colemak (Baybayin)";
-
-// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
-// Level1 Level2 Level3 Level4
-// Base Shift AltGr AltGr+Shift
-
- // E row; Numerals row, left side
- key <TLDE> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- // E row; Numerals row, right side
- key <AE06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE12> { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama)
-
- // D row; QWERTY row, left side
- key <AD01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD02> { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa)
- key <AD03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD04> { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa)
- key <AD05> { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga)
- // D row; QWERTY row, right side
- key <AD06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD07> { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La)
- key <AD08> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
- key <AD09> { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya)
- key <AD10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD12> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <BKSL> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // C row; Home row, left side
- key <AC01> { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A)
- key <AC02> { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra)
- key <AC03> { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa)
- key <AC04> { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta)
- key <AC05> { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da)
- // C row; Home row, right side
- key <AC06> { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha)
- key <AC07> { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga)
- key <AC08> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
- key <AC09> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
- key <AC10> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
- key <AC11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // B row; Lower row, left side
- key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB05> { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba)
- // B row; Lower row, right side
- key <AB06> { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka)
- key <AB07> { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma)
- key <AB08> { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma)
- key <AB09> { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period)
- key <AB10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // A row
- key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
-
- include "level3(ralt_switch)"
-};
-
-
-// Dvorak Simplified (Latin) version
-// http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard
-//
-// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
-// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ { │ } ┃ ⌫ Bak ┃
-// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ [ │ ] ┃ Space ┃
-// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
-// ┃ ┃ " ̋◌ │ < ̨◌ │ > ␣ │ P │ Y │ F ª │ G │ C ¢ │ R ¶ │ L │ ? ¿ │ + ∓ │ | Ə │
-// ┃Tab ↹ ┃ ' ́◌ │ , ̧◌ │ . … │ p ₱ │ y ¥ │ f │ g │ c © │ r ® │ l │ / ÷ │ = ± │ \ ə │
-// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
-// ┃ ┃ A Æ │ O Ø │ E Œ │ U │ I İ │ D │ H │ T │ N Ñ │ S │ _ ◌͠ ┃ Enter ┃
-// ┃Caps ⇬ ┃ a æ │ o ø │ e œ │ u │ i ı │ d │ h │ t ™ │ n ñ │ s § │ - ¬ ┃ ⏎ ┃
-// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
-// ┃ ┃ ¦ │ : │ Q │ J │ K │ X · │ B ’ │ M º │ W │ V ‘ │ Z » ┃ ┃
-// ┃Shift ⇧┃ │ ; │ q │ j │ k │ x × │ b ” │ m µ │ w │ v “ │ z « ┃Shift ⇧ ┃
-// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
-// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃
-// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
-// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
-//
-partial alphanumeric_keys
-xkb_symbols "dvorak" {
-
- name[Group1]= "Philippines - Dvorak (Latin)";
-
-// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
-// Level1 Level2 Level3 Level4
-// Base Shift AltGr AltGr+Shift
-
- // E row; Numerals row, left side
- key <TLDE> { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde)
- key <AE01> { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡
- key <AE02> { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤
- key <AE03> { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £
- key <AE04> { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ €
- key <AE05> { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ °
- // E row; Numerals row, right side
- key <AE06> { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent)
- key <AE07> { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ←
- key <AE08> { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ →
- key <AE09> { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑
- key <AE10> { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓
- key <AE11> { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ {
- key <AE12> { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] }
-
- // D row; Upper row, left side
- key <AD01> { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent)
- key <AD02> { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek)
- key <AD03> { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣
- key <AD04> { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱
- key <AD05> { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥
- // D row; Upper row, right side
- key <AD06> { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª
- key <AD07> { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G
- key <AD08> { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢
- key <AD09> { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶
- key <AD10> { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L
- key <AD11> { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿
- key <AD12> { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓
- key <BKSL> { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə
-
- // C row; Home row, left side
- key <AC01> { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ
- key <AC02> { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø
- key <AC03> { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ
- key <AC04> { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U
- key <AC05> { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ
- // C row; Home row, right side
- key <AC06> { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D
- key <AC07> { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H
- key <AC08> { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™
- key <AC09> { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ
- key <AC10> { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S §
- key <AC11> { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠
-
- // B row; Lower row, left side
- key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦
- key <AB01> { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; :
- key <AB02> { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q
- key <AB03> { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J
- key <AB04> { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K
- key <AB05> { [ U0078, U0058, U00D7, U00B7 ] }; // x X × ·
- // B row; Lower row, right side
- key <AB06> { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’
- key <AB07> { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º
- key <AB08> { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W
- key <AB09> { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘
- key <AB10> { [ U007A, U005A, U00AB, U00BB ] }; // z Z « »
-
- // A row
- key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
-
- include "level3(ralt_switch)"
-};
-
-
-// Dvorak Simplified (Baybayin) version
-//
-// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
-// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ Bak ┃
-// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ Space ┃
-// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
-// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ │ │
-// ┃Tab ↹ ┃ │ ᜵ │ ᜶ │ ᜉ │ ᜌ │ │ ᜄ │ │ ᜍ │ ᜎ │ │ ◌᜔ │ │
-// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
-// ┃ ┃ │ ᜂ │ ᜁ │ ᜂ │ ᜁ │ │ │ │ ᜅ │ │ ┃ Enter ┃
-// ┃Caps ⇬ ┃ ᜀ │ ◌ᜓ │ ◌ᜒ │ ◌ᜓ │ ◌ᜒ │ ᜇ │ ᜑ │ ᜆ │ ᜈ │ ᜐ │ ┃ ⏎ ┃
-// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
-// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃
-// ┃Shift ⇧┃ │ │ │ │ ᜃ │ │ ᜊ │ ᜋ │ ᜏ │ │ ┃Shift ⇧ ┃
-// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
-// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃
-// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
-// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
-//
-partial alphanumeric_keys
-xkb_symbols "dvorak-bay" {
-
- name[Group1]= "Philippines - Dvorak (Baybayin)";
-
-// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
-// Level1 Level2 Level3 Level4
-// Base Shift AltGr AltGr+Shift
-
- // E row; Numerals row, left side
- key <TLDE> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- // E row; Numerals row, right side
- key <AE06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AE12> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // D row; QWERTY row, left side
- key <AD01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD02> { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma)
- key <AD03> { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period)
- key <AD04> { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa)
- key <AD05> { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya)
- // D row; QWERTY row, right side
- key <AD06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD07> { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga)
- key <AD08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD09> { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra)
- key <AD10> { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La)
- key <AD11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AD12> { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama)
- key <BKSL> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // C row; Home row, left side
- key <AC01> { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A)
- key <AC02> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
- key <AC03> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
- key <AC04> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
- key <AC05> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
- // C row; Home row, right side
- key <AC06> { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da)
- key <AC07> { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha)
- key <AC08> { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta)
- key <AC09> { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga)
- key <AC10> { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa)
- key <AC11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // B row; Lower row, left side
- key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB04> { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka)
- key <AB05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- // B row; Lower row, right side
- key <AB06> { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba)
- key <AB07> { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma)
- key <AB08> { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa)
- key <AB09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
- key <AB10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
-
- // A row
- key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
-
- include "level3(ralt_switch)"
-};
-
-
-//
-// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
-// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ Bak ┃
-// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ Space ┃
-// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
-// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ │ │
-// ┃Tab ↹ ┃ │ │ │ │ │ │ │ │ │ │ │ │ │
-// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
-// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ Enter ┃
-// ┃Caps ⇬ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ⏎ ┃
-// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
-// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃
-// ┃Shift ⇧┃ │ │ │ │ │ │ │ │ │ │ ┃Shift ⇧ ┃
-// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
-// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃
-// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
-// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
-//
+////////////////////////////////////////////////////////////////////////////////
+// Philippines National Keyboard Layout v1.0.0 (2010-10-23) //
+// http://laibcoms.com/sandbox/the-philippines-national-keyboard-layout //
+// //
+// License: GNU/GPLv3 //
+// //
+// Loosely based on ISO/IEC 9995-3:2009 //
+// * glyphs that are not used in Philippine Languages and //
+// Philippine English were not included //
+// * Additions/Changes that are not part of ISO/IEC 9995-3:2009 //
+// were added //
+// //
+// http://en.wikipedia.org/wiki/ISO/IEC_9995 //
+// http://www.fileformat.info/info/unicode/char/20B1/index.htm //
+// //
+// By: Ubuntu Philippines LoCo Team //
+// Site: http://ubuntu-ph.org //
+// //
+// Project Contact: JC John Sese Cuneta / 謝施洗 / ᜑᜓᜏᜈ᜔ ᜃᜓᜈᜒᜆ //
+// XMPP/Jabber: jcjohn.sesecuneta@talkr.im //
+// Email: jcjohn.sesecuneta@laibcoms.com //
+////////////////////////////////////////////////////////////////////////////////
+
+// QWERTY (Latin) version
+// http://en.wikipedia.org/wiki/QWERTY
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
+// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & ← │ * → │ ( ↑ │ ) ↓ │ _ ◌͠ │ + ∓ ┃ ⌫ Bak ┃
+// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ - ¬ │ = ± ┃ Space ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
+// ┃ ┃ Q │ W │ E Œ │ R ¶ │ T │ Y │ U │ I İ │ O Ø │ P │ { │ } │ | Ə │
+// ┃Tab ↹ ┃ q │ w │ e œ │ r ® │ t ™ │ y ¥ │ u │ i ı │ o ø │ p ₱ │ [ │ ] │ \ ə │
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
+// ┃ ┃ A Æ │ S │ D │ F ª │ G │ H │ J │ K │ L │ : │ " ̋◌ ┃ Enter ┃
+// ┃Caps ⇬ ┃ a æ │ s § │ d │ f │ g │ h │ j │ k │ l │ ; │ ' ́◌ ┃ ⏎ ┃
+// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
+// ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ B ’ │ N Ñ │ M º │ < ̨◌ │ > ␣ │ ? ¿ ┃ ┃
+// ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ b ” │ n ñ │ m µ │ , ̧◌ │ . … │ / ÷ ┃Shift ⇧ ┃
+// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
+// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃
+// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
+//
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ name[Group1]= "Filipino";
+
+// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
+// Level1 Level2 Level3 Level4
+// Base Shift AltGr AltGr+Shift
+
+ // E row; Numerals row, left side
+ key <TLDE> { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde)
+ key <AE01> { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡
+ key <AE02> { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤
+ key <AE03> { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £
+ key <AE04> { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ €
+ key <AE05> { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ °
+ // E row; Numerals row, right side
+ key <AE06> { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent)
+ key <AE07> { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ←
+ key <AE08> { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ →
+ key <AE09> { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑
+ key <AE10> { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓
+ key <AE11> { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠
+ key <AE12> { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓
+
+ // D row; QWERTY row, left side
+ key <AD01> { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q
+ key <AD02> { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W
+ key <AD03> { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ
+ key <AD04> { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶
+ key <AD05> { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™
+ // D row; QWERTY row, right side
+ key <AD06> { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥
+ key <AD07> { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U
+ key <AD08> { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ
+ key <AD09> { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø
+ key <AD10> { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱
+ key <AD11> { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ {
+ key <AD12> { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] }
+ key <BKSL> { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə
+
+ // C row; Home row, left side
+ key <AC01> { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ
+ key <AC02> { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S §
+ key <AC03> { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D
+ key <AC04> { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª
+ key <AC05> { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G
+ // C row; Home row, right side
+ key <AC06> { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H
+ key <AC07> { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J
+ key <AC08> { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K
+ key <AC09> { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L
+ key <AC10> { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; :
+ key <AC11> { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent)
+
+ // B row; Lower row, left side
+ key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦
+ key <AB01> { [ U007A, U005A, U00AB, U00BB ] }; // z Z « »
+ key <AB02> { [ U0078, U0058, U00D7, U00B7 ] }; // x X × ·
+ key <AB03> { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢
+ key <AB04> { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘
+ key <AB05> { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’
+ // B row; Lower row, right side
+ key <AB06> { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ
+ key <AB07> { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º
+ key <AB08> { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek)
+ key <AB09> { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣
+ key <AB10> { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿
+
+ // A row
+ key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
+
+ include "level3(ralt_switch)"
+};
+
+
+// QWERTY (Baybayin) version
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
+// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ ⌫ Bak ┃
+// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ Space ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
+// ┃ ┃ │ │ ᜁ │ │ │ │ ᜂ │ ᜁ │ ᜂ │ │ │ │ │
+// ┃Tab ↹ ┃ │ ᜏ │ ◌ᜒ │ ᜍ │ ᜆ │ ᜌ │ ◌ᜓ │ ◌ᜒ │ ◌ᜓ │ ᜉ │ │ │ │
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
+// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ Enter ┃
+// ┃Caps ⇬ ┃ ᜀ │ ᜐ │ ᜇ │ │ ᜄ │ ᜑ │ │ ᜃ │ ᜎ │ │ ┃ ⏎ ┃
+// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
+// ┃ ┃ │ │ │ │ │ │ ᜅ │ │ │ │ ┃ ┃
+// ┃Shift ⇧┃ │ │ │ │ │ ᜊ │ ᜈ │ ᜋ │ ᜵ │ ᜶ │ ┃Shift ⇧ ┃
+// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
+// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃
+// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
+//
+partial alphanumeric_keys
+xkb_symbols "qwerty-bay" {
+
+ name[Group1]= "Filipino (QWERTY Baybayin)";
+
+// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
+// Level1 Level2 Level3 Level4
+// Base Shift AltGr AltGr+Shift
+
+ // E row; Numerals row, left side
+ key <TLDE> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ // E row; Numerals row, right side
+ key <AE06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE12> { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama)
+
+ // D row; QWERTY row, left side
+ key <AD01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD02> { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa)
+ key <AD03> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
+ key <AD04> { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra)
+ key <AD05> { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta)
+ // D row; QWERTY row, right side
+ key <AD06> { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya)
+ key <AD07> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
+ key <AD08> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
+ key <AD09> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
+ key <AD10> { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa)
+ key <AD11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD12> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <BKSL> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // C row; Home row, left side
+ key <AC01> { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A)
+ key <AC02> { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa)
+ key <AC03> { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da)
+ key <AC04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AC05> { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga)
+ // C row; Home row, right side
+ key <AC06> { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha)
+ key <AC07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AC08> { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka)
+ key <AC09> { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La)
+ key <AC10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AC11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // B row; Lower row, left side
+ key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB05> { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba)
+ // B row; Lower row, right side
+ key <AB06> { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga)
+ key <AB07> { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma)
+ key <AB08> { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma)
+ key <AB09> { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period)
+ key <AB10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // A row
+ key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
+
+ include "level3(ralt_switch)"
+};
+
+
+// Capewell-Dvorak (Latin) version
+// http://www.michaelcapewell.com/projects/keyboard/index.htm#The_Capewell-Dvorak_Layout
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
+// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ { │ } ┃ ⌫ Bak ┃
+// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ [ │ ] ┃ Space ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
+// ┃ ┃ " ̋◌ │ < ̨◌ │ > ␣ │ P │ Y │ Q │ F ª │ G │ R ¶ │ K │ ? ¿ │ + ∓ │ | Ə │
+// ┃Tab ↹ ┃ ' ́◌ │ , ̧◌ │ . … │ p ₱ │ y ¥ │ q │ f │ g │ r ® │ k │ / ÷ │ = ± │ \ ə │
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
+// ┃ ┃ O Ø │ A Æ │ E Œ │ I İ │ U │ D │ H │ T │ N Ñ │ S │ _ ◌͠ ┃ Enter ┃
+// ┃Caps ⇬ ┃ o ø │ a æ │ e œ │ i ı │ u │ d │ h │ t ™ │ n ñ │ s § │ - ¬ ┃ ⏎ ┃
+// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
+// ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ J │ L │ M º │ W │ B ’ │ : ┃ ┃
+// ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ j │ l │ m µ │ w │ b ” │ ; ┃Shift ⇧ ┃
+// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
+// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃
+// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
+//
+partial alphanumeric_keys
+xkb_symbols "capewell-dvorak" {
+
+ name[Group1]= "Filipino (Capewell-Dvorak Latin)";
+
+// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
+// Level1 Level2 Level3 Level4
+// Base Shift AltGr AltGr+Shift
+
+ // E row; Numerals row, left side
+ key <TLDE> { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde)
+ key <AE01> { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡
+ key <AE02> { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤
+ key <AE03> { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £
+ key <AE04> { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ €
+ key <AE05> { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ °
+ // E row; Numerals row, right side
+ key <AE06> { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent)
+ key <AE07> { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ←
+ key <AE08> { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ →
+ key <AE09> { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑
+ key <AE10> { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓
+ key <AE11> { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ {
+ key <AE12> { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] }
+
+ // D row; Upper row, left side
+ key <AD01> { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent)
+ key <AD02> { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek)
+ key <AD03> { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣
+ key <AD04> { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱
+ key <AD05> { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥
+ // D row; Upper row, right side
+ key <AD06> { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q
+ key <AD07> { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª
+ key <AD08> { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G
+ key <AD09> { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶
+ key <AD10> { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K
+ key <AD11> { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿
+ key <AD12> { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓
+ key <BKSL> { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə
+
+ // C row; Home row, left side
+ key <AC01> { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø
+ key <AC02> { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ
+ key <AC03> { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ
+ key <AC04> { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ
+ key <AC05> { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U
+ // C row; Home row, right side
+ key <AC06> { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D
+ key <AC07> { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H
+ key <AC08> { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™
+ key <AC09> { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ
+ key <AC10> { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S §
+ key <AC11> { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠
+
+ // B row; Lower row, left side
+ key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦
+ key <AB01> { [ U007A, U005A, U00AB, U00BB ] }; // z Z « »
+ key <AB02> { [ U0078, U0058, U00D7, U00B7 ] }; // x X × ·
+ key <AB03> { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢
+ key <AB04> { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘
+ key <AB05> { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J
+ // B row; Lower row, right side
+ key <AB06> { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L
+ key <AB07> { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º
+ key <AB08> { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W
+ key <AB09> { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’
+ key <AB10> { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; :
+
+ // A row
+ key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
+
+ include "level3(ralt_switch)"
+};
+
+
+// Capewell-Dvorak (Baybayin) version
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
+// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ Bak ┃
+// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ Space ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
+// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ │ │
+// ┃Tab ↹ ┃ │ ᜵ │ ᜶ │ ᜉ │ ᜌ │ │ │ ᜄ │ ᜍ │ ᜃ │ │ ◌᜔ │ │
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
+// ┃ ┃ ᜂ │ │ ᜁ │ ᜁ │ ᜂ │ │ │ │ ᜅ │ │ ┃ Enter ┃
+// ┃Caps ⇬ ┃ ◌ᜓ │ ᜀ │ ◌ᜒ │ ◌ᜒ │ ◌ᜓ │ ᜇ │ ᜑ │ ᜆ │ ᜈ │ ᜐ │ ┃ ⏎ ┃
+// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
+// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃
+// ┃Shift ⇧┃ │ │ │ │ │ │ ᜎ │ ᜋ │ ᜏ │ ᜊ │ ┃Shift ⇧ ┃
+// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
+// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃
+// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
+//
+partial alphanumeric_keys
+xkb_symbols "capewell-dvorak-bay" {
+
+ name[Group1]= "Filipino (Capewell-Dvorak Baybayin)";
+
+// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
+// Level1 Level2 Level3 Level4
+// Base Shift AltGr AltGr+Shift
+
+ // E row; Numerals row, left side
+ key <TLDE> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ // E row; Numerals row, right side
+ key <AE06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE12> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // D row; QWERTY row, left side
+ key <AD01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD02> { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma)
+ key <AD03> { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period)
+ key <AD04> { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa)
+ key <AD05> { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya)
+ // D row; QWERTY row, right side
+ key <AD06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD08> { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga)
+ key <AD09> { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra)
+ key <AD10> { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka)
+ key <AD11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD12> { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama)
+ key <BKSL> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // C row; Home row, left side
+ key <AC01> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
+ key <AC02> { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A)
+ key <AC03> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
+ key <AC04> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
+ key <AC05> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
+ // C row; Home row, right side
+ key <AC06> { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da)
+ key <AC07> { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha)
+ key <AC08> { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta)
+ key <AC09> { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga)
+ key <AC10> { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa)
+ key <AC11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // B row; Lower row, left side
+ key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ // B row; Lower row, right side
+ key <AB06> { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La)
+ key <AB07> { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma)
+ key <AB08> { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa)
+ key <AB09> { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba)
+ key <AB10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // A row
+ key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
+
+ include "level3(ralt_switch)"
+};
+
+
+// Capewell-QWERF 2006 (Latin) version
+// http://www.michaelcapewell.com/projects/keyboard/index.htm#The_QWERF_Layout
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
+// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ _ ◌͠ │ + ∓ ┃ ⌫ Bak ┃
+// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ - ¬ │ = ± ┃ Space ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
+// ┃ ┃ Q │ W │ E Œ │ R ¶ │ F ª │ J │ Y │ K │ L │ : │ { │ } │ | Ə │
+// ┃Tab ↹ ┃ q │ w │ e œ │ r ® │ f │ j │ y ¥ │ k │ l │ ; │ [ │ ] │ \ ə │
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
+// ┃ ┃ A Æ │ S │ D │ T │ G │ H │ U │ I İ │ O Ø │ P │ " ̋◌ ┃ Enter ┃
+// ┃Caps ⇬ ┃ a æ │ s § │ d │ t ™ │ g │ h │ u │ i ı │ o ø │ p ₱ │ ' ́◌ ┃ ⏎ ┃
+// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
+// ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ B ’ │ N Ñ │ M º │ < ̨◌ │ > ␣ │ ? ¿ ┃ ┃
+// ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ b ” │ n ñ │ m µ │ , ̧◌ │ . … │ / ÷ ┃Shift ⇧ ┃
+// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
+// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃
+// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
+//
+partial alphanumeric_keys
+xkb_symbols "capewell-qwerf2k6" {
+
+ name[Group1]= "Filipino (Capewell-QWERF 2006 Latin)";
+
+// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
+// Level1 Level2 Level3 Level4
+// Base Shift AltGr AltGr+Shift
+
+ // E row; Numerals row, left side
+ key <TLDE> { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde)
+ key <AE01> { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡
+ key <AE02> { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤
+ key <AE03> { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £
+ key <AE04> { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ €
+ key <AE05> { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ °
+ // E row; Numerals row, right side
+ key <AE06> { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent)
+ key <AE07> { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ←
+ key <AE08> { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ →
+ key <AE09> { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑
+ key <AE10> { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓
+ key <AE11> { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠
+ key <AE12> { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓
+
+ // D row; Upper row, left side
+ key <AD01> { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q
+ key <AD02> { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W
+ key <AD03> { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ
+ key <AD04> { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶
+ key <AD05> { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª
+ // D row; Upper row, right side
+ key <AD06> { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J
+ key <AD07> { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥
+ key <AD08> { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K
+ key <AD09> { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L
+ key <AD10> { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; :
+ key <AD11> { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ {
+ key <AD12> { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] }
+ key <BKSL> { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə
+
+ // C row; Home row, left side
+ key <AC01> { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ
+ key <AC02> { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S §
+ key <AC03> { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D
+ key <AC04> { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™
+ key <AC05> { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G
+ // C row; Home row, right side
+ key <AC06> { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H
+ key <AC07> { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U
+ key <AC08> { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ
+ key <AC09> { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø
+ key <AC10> { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱
+ key <AC11> { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent)
+
+ // B row; Lower row, left side
+ key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦
+ key <AB01> { [ U007A, U005A, U00AB, U00BB ] }; // z Z « »
+ key <AB02> { [ U0078, U0058, U00D7, U00B7 ] }; // x X × ·
+ key <AB03> { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢
+ key <AB04> { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘
+ key <AB05> { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’
+ // B row; Lower row, right side
+ key <AB06> { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ
+ key <AB07> { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º
+ key <AB08> { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek)
+ key <AB09> { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣
+ key <AB10> { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿
+
+ // A row
+ key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
+
+ include "level3(ralt_switch)"
+};
+
+
+// Capewell-QWERF 2006 (Baybayin) version
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
+// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ ⌫ Bak ┃
+// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ Space ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
+// ┃ ┃ │ │ ᜁ │ │ │ │ │ │ │ │ │ │ │
+// ┃Tab ↹ ┃ │ ᜏ │ ◌ᜒ │ ᜍ │ │ │ ᜌ │ ᜃ │ ᜎ │ │ │ │ │
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
+// ┃ ┃ │ │ │ │ │ │ ᜂ │ ᜁ │ ᜂ │ │ ┃ Enter ┃
+// ┃Caps ⇬ ┃ ᜀ │ ᜐ │ ᜇ │ ᜆ │ ᜄ │ ᜑ │ ◌ᜓ │ ◌ᜒ │ ◌ᜓ │ ᜉ │ ┃ ⏎ ┃
+// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
+// ┃ ┃ │ │ │ │ │ │ ᜅ │ │ │ │ ┃ ┃
+// ┃Shift ⇧┃ │ │ │ │ │ ᜊ │ ᜈ │ ᜋ │ ᜵ │ ᜶ │ ┃Shift ⇧ ┃
+// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
+// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃
+// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
+//
+partial alphanumeric_keys
+xkb_symbols "capewell-qwerf2k6-bay" {
+
+ name[Group1]= "Filipino (Capewell-QWERF 2006 Baybayin)";
+
+// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
+// Level1 Level2 Level3 Level4
+// Base Shift AltGr AltGr+Shift
+
+ // E row; Numerals row, left side
+ key <TLDE> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ // E row; Numerals row, right side
+ key <AE06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE12> { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama)
+
+ // D row; QWERTY row, left side
+ key <AD01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD02> { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa)
+ key <AD03> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
+ key <AD04> { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra)
+ key <AD05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ // D row; QWERTY row, right side
+ key <AD06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD07> { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya)
+ key <AD08> { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka)
+ key <AD09> { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La)
+ key <AD10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD12> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <BKSL> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // C row; Home row, left side
+ key <AC01> { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A)
+ key <AC02> { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa)
+ key <AC03> { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da)
+ key <AC04> { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta)
+ key <AC05> { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga)
+ // C row; Home row, right side
+ key <AC06> { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha)
+ key <AC07> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
+ key <AC08> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
+ key <AC09> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
+ key <AC10> { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa)
+ key <AC11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // B row; Lower row, left side
+ key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB05> { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba)
+ // B row; Lower row, right side
+ key <AB06> { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga)
+ key <AB07> { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma)
+ key <AB08> { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma)
+ key <AB09> { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period)
+ key <AB10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // A row
+ key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
+
+ include "level3(ralt_switch)"
+};
+
+
+// Colemak (Latin) version
+// http://colemak.com
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
+// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ _ ◌͠ │ + ∓ ┃ ⌫ Bak ┃
+// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ - ¬ │ = ± ┃ Space ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
+// ┃ ┃ Q │ W │ F ª │ P │ G │ J │ L │ U │ Y │ : │ { │ } │ | Ə │
+// ┃Tab ↹ ┃ q │ w │ f │ p ₱ │ g │ j │ l │ u │ y ¥ │ ; │ [ │ ] │ \ ə │
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
+// ┃ ┃ A Æ │ R ¶ │ S │ T │ D │ H │ N Ñ │ E Œ │ I İ │ O Ø │ " ̋◌ ┃ Enter ┃
+// ┃Caps ⇬ ┃ a æ │ r ® │ s § │ t ™ │ d │ h │ n ñ │ e œ │ i ı │ o ø │ ' ́◌ ┃ ⏎ ┃
+// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
+// ┃ ┃ ¦ │ Z » │ X · │ C ¢ │ V ‘ │ B ’ │ K │ M º │ < ̨◌ │ > ␣ │ ? ¿ ┃ ┃
+// ┃Shift ⇧┃ │ z « │ x × │ c © │ v “ │ b ” │ k │ m µ │ , ̧◌ │ . … │ / ÷ ┃Shift ⇧ ┃
+// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
+// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃
+// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
+//
+partial alphanumeric_keys
+xkb_symbols "colemak" {
+
+ name[Group1]= "Filipino (Colemak Latin)";
+
+// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
+// Level1 Level2 Level3 Level4
+// Base Shift AltGr AltGr+Shift
+
+ // E row; Numerals row, left side
+ key <TLDE> { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde)
+ key <AE01> { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡
+ key <AE02> { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤
+ key <AE03> { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £
+ key <AE04> { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ €
+ key <AE05> { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ °
+ // E row; Numerals row, right side
+ key <AE06> { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent)
+ key <AE07> { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ←
+ key <AE08> { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ →
+ key <AE09> { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑
+ key <AE10> { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓
+ key <AE11> { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠
+ key <AE12> { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓
+
+ // D row; Upper row, left side
+ key <AD01> { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q
+ key <AD02> { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W
+ key <AD03> { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª
+ key <AD04> { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱
+ key <AD05> { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G
+ // D row; Upper row, right side
+ key <AD06> { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J
+ key <AD07> { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L
+ key <AD08> { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U
+ key <AD09> { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥
+ key <AD10> { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; :
+ key <AD11> { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ {
+ key <AD12> { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] }
+ key <BKSL> { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə
+
+ // C row; Home row, left side
+ key <AC01> { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ
+ key <AC02> { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶
+ key <AC03> { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S §
+ key <AC04> { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™
+ key <AC05> { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D
+ // C row; Home row, right side
+ key <AC06> { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H
+ key <AC07> { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ
+ key <AC08> { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ
+ key <AC09> { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ
+ key <AC10> { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø
+ key <AC11> { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent)
+
+ // B row; Lower row, left side
+ key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦
+ key <AB01> { [ U007A, U005A, U00AB, U00BB ] }; // z Z « »
+ key <AB02> { [ U0078, U0058, U00D7, U00B7 ] }; // x X × ·
+ key <AB03> { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢
+ key <AB04> { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘
+ key <AB05> { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’
+ // B row; Lower row, right side
+ key <AB06> { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K
+ key <AB07> { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º
+ key <AB08> { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek)
+ key <AB09> { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣
+ key <AB10> { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿
+
+ // A row
+ key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
+
+ include "level3(ralt_switch)"
+};
+
+
+// Colemak (Baybayin) version
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
+// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ ⌫ Bak ┃
+// │ │ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ ┃ Space ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
+// ┃ ┃ │ │ │ │ │ │ │ ᜂ │ │ │ │ │ │
+// ┃Tab ↹ ┃ │ ᜏ │ │ ᜉ │ ᜄ │ │ ᜎ │ ◌ᜓ │ ᜌ │ │ │ │ │
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
+// ┃ ┃ │ │ │ │ │ │ ᜅ │ ᜁ │ ᜁ │ ᜂ │ ┃ Enter ┃
+// ┃Caps ⇬ ┃ ᜀ │ ᜍ │ ᜐ │ ᜆ │ ᜇ │ ᜑ │ ᜈ │ ◌ᜒ │ ◌ᜒ │ ◌ᜓ │ ┃ ⏎ ┃
+// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
+// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃
+// ┃Shift ⇧┃ │ │ │ │ │ ᜊ │ ᜃ │ ᜋ │ ᜵ │ ᜶ │ ┃Shift ⇧ ┃
+// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
+// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃
+// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
+//
+partial alphanumeric_keys
+xkb_symbols "colemak-bay" {
+
+ name[Group1]= "Filipino (Colemak Baybayin)";
+
+// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
+// Level1 Level2 Level3 Level4
+// Base Shift AltGr AltGr+Shift
+
+ // E row; Numerals row, left side
+ key <TLDE> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ // E row; Numerals row, right side
+ key <AE06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE12> { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama)
+
+ // D row; QWERTY row, left side
+ key <AD01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD02> { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa)
+ key <AD03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD04> { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa)
+ key <AD05> { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga)
+ // D row; QWERTY row, right side
+ key <AD06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD07> { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La)
+ key <AD08> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
+ key <AD09> { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya)
+ key <AD10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD12> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <BKSL> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // C row; Home row, left side
+ key <AC01> { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A)
+ key <AC02> { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra)
+ key <AC03> { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa)
+ key <AC04> { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta)
+ key <AC05> { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da)
+ // C row; Home row, right side
+ key <AC06> { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha)
+ key <AC07> { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga)
+ key <AC08> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
+ key <AC09> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
+ key <AC10> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
+ key <AC11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // B row; Lower row, left side
+ key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB05> { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba)
+ // B row; Lower row, right side
+ key <AB06> { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka)
+ key <AB07> { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma)
+ key <AB08> { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma)
+ key <AB09> { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period)
+ key <AB10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // A row
+ key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
+
+ include "level3(ralt_switch)"
+};
+
+
+// Dvorak Simplified (Latin) version
+// http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
+// │ ~ ̃◌ │ ! ¡ │ @ ¤ │ # £ │ $ € │ % ° │ ^ ̂◌ │ & → │ * → │ ( ↑ │ ) ↓ │ { │ } ┃ ⌫ Bak ┃
+// │ ` ̀◌ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ¼ │ 5 ½ │ 6 ¾ │ 7 ⅛ │ 8 ⅜ │ 9 ⅝ │ 0 ⅞ │ [ │ ] ┃ Space ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
+// ┃ ┃ " ̋◌ │ < ̨◌ │ > ␣ │ P │ Y │ F ª │ G │ C ¢ │ R ¶ │ L │ ? ¿ │ + ∓ │ | Ə │
+// ┃Tab ↹ ┃ ' ́◌ │ , ̧◌ │ . … │ p ₱ │ y ¥ │ f │ g │ c © │ r ® │ l │ / ÷ │ = ± │ \ ə │
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
+// ┃ ┃ A Æ │ O Ø │ E Œ │ U │ I İ │ D │ H │ T │ N Ñ │ S │ _ ◌͠ ┃ Enter ┃
+// ┃Caps ⇬ ┃ a æ │ o ø │ e œ │ u │ i ı │ d │ h │ t ™ │ n ñ │ s § │ - ¬ ┃ ⏎ ┃
+// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
+// ┃ ┃ ¦ │ : │ Q │ J │ K │ X · │ B ’ │ M º │ W │ V ‘ │ Z » ┃ ┃
+// ┃Shift ⇧┃ │ ; │ q │ j │ k │ x × │ b ” │ m µ │ w │ v “ │ z « ┃Shift ⇧ ┃
+// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
+// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃
+// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
+//
+partial alphanumeric_keys
+xkb_symbols "dvorak" {
+
+ name[Group1]= "Filipino (Dvorak Latin)";
+
+// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
+// Level1 Level2 Level3 Level4
+// Base Shift AltGr AltGr+Shift
+
+ // E row; Numerals row, left side
+ key <TLDE> { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde)
+ key <AE01> { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡
+ key <AE02> { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤
+ key <AE03> { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £
+ key <AE04> { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ €
+ key <AE05> { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ °
+ // E row; Numerals row, right side
+ key <AE06> { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent)
+ key <AE07> { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ←
+ key <AE08> { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ →
+ key <AE09> { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑
+ key <AE10> { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓
+ key <AE11> { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ {
+ key <AE12> { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] }
+
+ // D row; Upper row, left side
+ key <AD01> { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent)
+ key <AD02> { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek)
+ key <AD03> { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣
+ key <AD04> { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱
+ key <AD05> { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥
+ // D row; Upper row, right side
+ key <AD06> { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª
+ key <AD07> { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G
+ key <AD08> { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢
+ key <AD09> { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶
+ key <AD10> { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L
+ key <AD11> { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿
+ key <AD12> { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓
+ key <BKSL> { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə
+
+ // C row; Home row, left side
+ key <AC01> { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ
+ key <AC02> { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø
+ key <AC03> { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ
+ key <AC04> { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U
+ key <AC05> { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ
+ // C row; Home row, right side
+ key <AC06> { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D
+ key <AC07> { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H
+ key <AC08> { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™
+ key <AC09> { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ
+ key <AC10> { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S §
+ key <AC11> { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠
+
+ // B row; Lower row, left side
+ key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦
+ key <AB01> { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; :
+ key <AB02> { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q
+ key <AB03> { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J
+ key <AB04> { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K
+ key <AB05> { [ U0078, U0058, U00D7, U00B7 ] }; // x X × ·
+ // B row; Lower row, right side
+ key <AB06> { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’
+ key <AB07> { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º
+ key <AB08> { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W
+ key <AB09> { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘
+ key <AB10> { [ U007A, U005A, U00AB, U00BB ] }; // z Z « »
+
+ // A row
+ key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
+
+ include "level3(ralt_switch)"
+};
+
+
+// Dvorak Simplified (Baybayin) version
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
+// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ Bak ┃
+// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ Space ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
+// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ◌᜔ │ │
+// ┃Tab ↹ ┃ │ ᜵ │ ᜶ │ ᜉ │ ᜌ │ │ ᜄ │ │ ᜍ │ ᜎ │ │ ◌᜔ │ │
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
+// ┃ ┃ │ ᜂ │ ᜁ │ ᜂ │ ᜁ │ │ │ │ ᜅ │ │ ┃ Enter ┃
+// ┃Caps ⇬ ┃ ᜀ │ ◌ᜓ │ ◌ᜒ │ ◌ᜓ │ ◌ᜒ │ ᜇ │ ᜑ │ ᜆ │ ᜈ │ ᜐ │ ┃ ⏎ ┃
+// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
+// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃
+// ┃Shift ⇧┃ │ │ │ │ ᜃ │ │ ᜊ │ ᜋ │ ᜏ │ │ ┃Shift ⇧ ┃
+// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
+// ┃ ┃Win ┃ ┃ ␣ Space ┃ ┃Win ┃ ┃ ┃
+// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
+//
+partial alphanumeric_keys
+xkb_symbols "dvorak-bay" {
+
+ name[Group1]= "Filipino (Dvorak Baybayin)";
+
+// ISO grouping: |--------- Group1 ---------| |--------- Group2 ---------|
+// Level1 Level2 Level3 Level4
+// Base Shift AltGr AltGr+Shift
+
+ // E row; Numerals row, left side
+ key <TLDE> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ // E row; Numerals row, right side
+ key <AE06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AE12> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // D row; QWERTY row, left side
+ key <AD01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD02> { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma)
+ key <AD03> { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period)
+ key <AD04> { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa)
+ key <AD05> { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya)
+ // D row; QWERTY row, right side
+ key <AD06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD07> { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga)
+ key <AD08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD09> { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra)
+ key <AD10> { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La)
+ key <AD11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AD12> { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama)
+ key <BKSL> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // C row; Home row, left side
+ key <AC01> { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A)
+ key <AC02> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
+ key <AC03> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
+ key <AC04> { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U)
+ key <AC05> { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I)
+ // C row; Home row, right side
+ key <AC06> { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da)
+ key <AC07> { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha)
+ key <AC08> { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta)
+ key <AC09> { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga)
+ key <AC10> { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa)
+ key <AC11> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // B row; Lower row, left side
+ key <AB00> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB04> { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka)
+ key <AB05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ // B row; Lower row, right side
+ key <AB06> { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba)
+ key <AB07> { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma)
+ key <AB08> { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa)
+ key <AB09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+ key <AB10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; //
+
+ // A row
+ key <AA03> { [ U0020, U0020, U0020, U0020 ] }; // (space) (space) (space) (space)
+
+ include "level3(ralt_switch)"
+};
+
+
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━┓
+// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ Bak ┃
+// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ Space ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┯━━━━━┩
+// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ │ │
+// ┃Tab ↹ ┃ │ │ │ │ │ │ │ │ │ │ │ │ │
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┲━━━━┷━━━━━┪
+// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ Enter ┃
+// ┃Caps ⇬ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ⏎ ┃
+// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┻━━━━━━━━━━┫
+// ┃ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ┃
+// ┃Shift ⇧┃ │ │ │ │ │ │ │ │ │ │ ┃Shift ⇧ ┃
+// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┷━┳━━━┻━━━┳━━━━━━━┫
+// ┃ ┃Win ┃ ┃ ␣ Space Space ␣ ┃ ┃Win ┃ ┃ ┃
+// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
+//
diff --git a/xorg-server/xkeyboard-config/symbols/pk b/xorg-server/xkeyboard-config/symbols/pk
index 586215958..abf2f6695 100644
--- a/xorg-server/xkeyboard-config/symbols/pk
+++ b/xorg-server/xkeyboard-config/symbols/pk
@@ -1,394 +1,394 @@
-// Urdu keymap
-// Developed by:
-// Zaeem Arshad <zaeem@linux.net.pk>
-// Last update: 2004-03-12
-//Notice:
-//Alt key combinations are yet to be put in. The unavailable keys are those which do not have a corresponding //glyph in unicode.
-
-// based on a keyboard map from an 'xkb/symbols/ur' file
-
-partial default alphanumeric_keys
-xkb_symbols "urd-phonetic" {
-
- name[Group1]= "Pakistan";
-
- key <TLDE> { [ 0x100064b , 0x100007E, 0x100200C ] };
- key <AE01> { [ 0x1000031 , 0x1000021 ] };
- key <AE02> { [ 0x1000032 , 0x1000040 ] };
- key <AE03> { [ 0x1000033 , 0x1000023 ] };
- key <AE04> { [ 0x1000034 , 0x1000024 ] };
- key <AE05> { [ 0x1000035 , 0x1000025 ] };
- key <AE06> { [ 0x1000036 , 0x100005E ] };
- key <AE07> { [ 0x1000037 , 0x1000026 ] };
- key <AE08> { [ 0x1000038 , 0x100002A ] };
- key <AE09> { [ 0x1000039 , 0x1000029 ] };
- key <AE10> { [ 0x1000030 , 0x1000028 ] };
- key <AE11> { [ 0x100002D , 0x100005F ] };
- key <AE12> { [ 0x100003D , 0x100002B ] };
- key <AD01> { [ 0x1000642 , 0x1000652, 0x100200D ] };
- key <AD02> { [ 0x1000648 , 0x1000624, 0x100200C ] };
- key <AD03> { [ 0x1000639 , 0x1000670 ] };
- key <AD04> { [ 0x1000631 , 0x1000691 ] };
- key <AD05> { [ 0x100062a , 0x1000679 ] };
- key <AD06> { [ 0x10006d2 , 0x100064E ] };
- key <AD07> { [ 0x1000621 , 0x1000626 ] };
- key <AD08> { [ 0x10006cc , 0x1000650 ] };
- key <AD09> { [ 0x10006c1 , 0x10006c3 ] };
- key <AD10> { [ 0x100067e , 0x100064f ] };
- key <AD11> { [ 0x100005d , 0x100007D ] };
- key <AD12> { [ 0x100005b , 0x100007B ] };
-
- key <AC01> { [ 0x1000627 , 0x1000622 ] };
- key <AC02> { [ 0x1000633 , 0x1000635 ] };
- key <AC03> { [ 0x100062f , 0x1000688 ] };
- key <AC04> { [ 0x1000641 , 0x1000651 ] };
- key <AC05> { [ 0x10006af , 0x100063a ] };
- key <AC06> { [ 0x100062D, 0x10006BE ] };
- key <AC07> { [ 0x100062c , 0x1000636 ] };
- key <AC08> { [ 0x10006a9 , 0x100062e ] };
- key <AC09> { [ 0x1000644 , 0x1000654 ] };
- key <AC10> { [ 0x100061b , 0x100003a ] };
- key <AC11> { [ 0x1000027 , 0x1000022 ] };
- key <BKSL> { [ 0x100005C, 0x100007C ] };
-
- key <LSGT> { [ bar , brokenbar ] };
- key <AB01> { [ 0x1000632 , 0x1000630, 0x100200E ] };
- key <AB02> { [ 0x1000634 , 0x1000698, 0x100202A ] };
- key <AB03> { [ 0x1000686 , 0x100062b, 0x100202D ] };
- key <AB04> { [ 0x1000637 , 0x1000638, 0x100202C ] };
- key <AB05> { [ 0x1000628 , 0x100002e, 0x100202E ] };
- key <AB06> { [ 0x1000646 , 0x10006ba, 0x100202B ] };
- key <AB07> { [ 0x1000645 , 0x1000658, 0x100200F ] };
- key <AB08> { [ 0x100060c , 0x100003c ] };
- key <AB09> { [ 0x10006d4 , 0x100003E ] };
- key <AB10> { [ 0x100002f , 0x100061f ] };
-
-// key <RALT> { [ Mode_switch, Multi_key ] };
-
- include "level3(ralt_switch)"
-
- // End alphanumeric section
-};
-
-partial alphanumeric_keys
-xkb_symbols "urd-crulp" {
-
- name[Group1]= "Pakistan - CRULP";
-// www.crulp.org phonetic v1.1
-
- key <TLDE> { [ 0x100007E , 0x100064B ] };
- key <AE01> { [ 0x10006F1 , 0x1000031, 0x1000021 ] };
- key <AE02> { [ 0x10006F2 , 0x1000032, 0x1000040 ] };
- key <AE03> { [ 0x10006F3 , 0x1000033, 0x1000023 ] };
- key <AE04> { [ 0x10006F4 , 0x1000034 ] };
- key <AE05> { [ 0x10006F5 , 0x1000035, 0x100066A ] };
- key <AE06> { [ 0x10006F6 , 0x1000036 ] };
- key <AE07> { [ 0x10006F7 , 0x1000037, 0x1000026 ] };
- key <AE08> { [ 0x10006F8 , 0x1000038, 0x100002A ] };
- key <AE09> { [ 0x10006F9 , 0x1000039, 0x1000029 ] };
- key <AE10> { [ 0x10006F0 , 0x1000030, 0x1000028 ] };
- key <AE11> { [ 0x100002D , 0x100005F ] };
- key <AE12> { [ 0x100003D , 0x100002B ] };
- key <AD01> { [ 0x1000642 , 0x1000652 ] };
- key <AD02> { [ 0x1000648 , 0x1000651, 0x1000602 ] };
- key <AD03> { [ 0x1000639 , 0x1000670, 0x1000656 ] };
- key <AD04> { [ 0x1000631 , 0x1000691, 0x1000613 ] };
- key <AD05> { [ 0x100062a , 0x1000679, 0x1000614 ] };
- key <AD06> { [ 0x10006d2 , 0x100064E, 0x1000601 ] };
- key <AD07> { [ 0x1000621 , 0x1000626, 0x1000654 ] };
- key <AD08> { [ 0x10006cc , 0x1000650, 0x1000611 ] };
- key <AD09> { [ 0x10006c1 , 0x10006c3 ] };
- key <AD10> { [ 0x100067e , 0x100064f, 0x1000657 ] };
- key <AD11> { [ 0x100005d , 0x100007D ] };
- key <AD12> { [ 0x100005b , 0x100007B ] };
-
- key <AC01> { [ 0x1000627 , 0x1000622, 0x100FDF2 ] };
- key <AC02> { [ 0x1000633 , 0x1000635, 0x1000610 ] };
- key <AC03> { [ 0x100062f , 0x1000688, 0x100FDFA ] };
- key <AC04> { [ 0x1000641 , 0x1000651 ] };
- key <AC05> { [ 0x10006af , 0x100063a ] };
- key <AC06> { [ 0x100062D, 0x10006BE, 0x1000612 ] };
- key <AC07> { [ 0x100062c , 0x1000636, 0x100FDFB ] };
- key <AC08> { [ 0x10006a9 , 0x100062e ] };
- key <AC09> { [ 0x1000644 , 0x1000654 ] };
- key <AC10> { [ 0x100061b , 0x100003a ] };
- key <AC11> { [ 0x1000027 , 0x1000022 ] };
- key <BKSL> { [ 0x100005C, 0x100007C ] };
-
- key <LSGT> { [ bar , brokenbar ] };
- key <AB01> { [ 0x1000632 , 0x1000630, 0x100060F ] };
- key <AB02> { [ 0x1000634 , 0x1000698, 0x100060E ] };
- key <AB03> { [ 0x1000686 , 0x100062b, 0x1000603 ] };
- key <AB04> { [ 0x1000637 , 0x1000638 ] };
- key <AB05> { [ 0x1000628 , 0x100002e, 0x100FDFD ] };
- key <AB06> { [ 0x1000646 , 0x10006ba, 0x1000600 ] };
- key <AB07> { [ 0x1000645 , 0x1000658 ] };
- key <AB08> { [ 0x100060c , 0x100003c, 0x100003C ] };
- key <AB09> { [ 0x10006d4 , 0x100066B, 0x100003E ] };
- key <AB10> { [ 0x100002f , 0x100061F ] };
-
-// key <RALT> { [ Mode_switch, Multi_key ] };
-
- include "level3(ralt_switch)"
-
- // End alphanumeric section
-};
-
-
-partial alphanumeric_keys
-xkb_symbols "urd-nla" {
- name[Group1]= "Pakistan - NLA";
-// www.nla.gov.pk
-
- key <TLDE> { [ 0x1000060 , 0x100007E, 0x100200C ] };
- key <AE01> { [ 0x1000031 , 0x1000021 ] };
- key <AE02> { [ 0x1000032 , 0x1000040 ] };
- key <AE03> { [ 0x1000033 , 0x1000023 ] };
- key <AE04> { [ 0x1000034 , 0x1000024 ] };
- key <AE05> { [ 0x1000035 , 0x100066A ] };
- key <AE06> { [ 0x1000036 , 0x100005E ] };
- key <AE07> { [ 0x1000037 , 0x10006D6 ] };
- key <AE08> { [ 0x1000038 , 0x100066D ] };
- key <AE09> { [ 0x1000039 , 0x1000029 ] };
- key <AE10> { [ 0x1000030 , 0x1000028 ] };
- key <AE11> { [ 0x100002D , 0x100005F ] };
- key <AE12> { [ 0x100003D , 0x100002B ] };
- key <AD01> { [ 0x1000637 , 0x1000638, 0x100200D ] };
- key <AD02> { [ 0x1000635 , 0x1000636, 0x100200C ] };
- key <AD03> { [ 0x10006BE , 0x1000630 ] };
- key <AD04> { [ 0x100062F , 0x1000688 ] };
- key <AD05> { [ 0x1000679 , 0x100062B ] };
- key <AD06> { [ 0x100067E , 0x1000651 ] };
- key <AD07> { [ 0x100062A , 0x10006C3 ] };
- key <AD08> { [ 0x1000628 , 0x1000640 ] };
- key <AD09> { [ 0x100062C , 0x1000686 ] };
- key <AD10> { [ 0x100062D , 0x100062E ] };
- key <AD11> { [ 0x100005d , 0x100007D ] };
- key <AD12> { [ 0x100005b , 0x100007B ] };
-
- key <AC01> { [ 0x1000645 , 0x1000698 ] };
- key <AC02> { [ 0x1000648 , 0x1000632 ] };
- key <AC03> { [ 0x1000631 , 0x1000691 ] };
- key <AC04> { [ 0x1000646 , 0x10006BA ] };
- key <AC05> { [ 0x1000644 , 0x10006C2 ] };
- key <AC06> { [ 0x10006C1 , 0x1000621 ] };
- key <AC07> { [ 0x1000627 , 0x1000622 ] };
- key <AC08> { [ 0x10006a9 , 0x10006AF ] };
- key <AC09> { [ 0x10006CC , 0x100064A ] };
- key <AC10> { [ 0x100061b , 0x100003a ] };
- key <AC11> { [ 0x1000027 , 0x1000022 ] };
- key <BKSL> { [ 0x100005C , 0x100007C ] };
-
- key <LSGT> { [ bar , brokenbar ] };
- key <AB01> { [ 0x1000642 , 0x100200D, 0x100200E ] };
- key <AB02> { [ 0x1000641 , 0x100200C, 0x100202A ] };
- key <AB03> { [ 0x10006D2 , 0x10006D3, 0x100202D ] };
- key <AB04> { [ 0x1000633 , 0x100200E, 0x100202C ] };
- key <AB05> { [ 0x1000634 , 0x1000624, 0x100202E ] };
- key <AB06> { [ 0x100063A , 0x1000626, 0x100202B ] };
- key <AB07> { [ 0x1000639 , 0x100200F, 0x100200F ] };
- key <AB08> { [ 0x100060c , 0x100003E ] };
- key <AB09> { [ 0x10006d4 , 0x100003C ] };
- key <AB10> { [ 0x100002F , 0x100061f ] };
-
-
- include "level3(ralt_switch)"
-
- // End alphanumeric section
-};
-
-partial alphanumeric_keys
-xkb_symbols "snd" {
- name[Group1]= "Pakistan - Sindhi";
-// www.bhurgri.com
-
- key <TLDE> { [ 0x1002019, 0x1002018 ] };
- key <AE01> { [ 1, exclam, 0x1000610 ] };
- key <AE02> { [ 2, 0x1000670, 0x1000611 ] };
- key <AE03> { [ 3, 0x1000621, 0x1000613 ] };
- key <AE04> { [ 4, 0x1000621, 0x1000612 ] };
- key <AE05> { [ 5, 0x1000621, 0x1002026 ] };
- key <AE06> { [ 6, 0x1000621, 0x1002022 ] };
- key <AE07> { [ 7, 0x10006FD ] };
- key <AE08> { [ 8, asterisk ] };
- key <AE09> { [ 9, parenright ] };
- key <AE10> { [ 0, parenleft ] };
- key <AE11> { [ 0x100068F, 0x100005F, 0x100002D ] };
- key <AE12> { [ 0x100068C, plus, 0x100003D ] };
- key <BKSL> { [ 0x100068D, 0x100067A, 0x100007C ] };
-
- key <AD01> { [ 0x1000642, 0x100064E, 0x100064B ] };
- key <AD02> { [ 0x1000635, 0x1000636, 0x100FDFA ] };
- key <AD03> { [ 0x100064A, 0x1000650, 0x1000656 ] };
- key <AD04> { [ 0x1000631, 0x1000699, 0x100FDE6 ] };
- key <AD05> { [ 0x100062A, 0x100067D, 0x1000629 ] };
- key <AD06> { [ 0x100067F, 0x100062B, 0x100FDE5 ] };
- key <AD07> { [ 0x1000639, 0x100063A, 0x100FDE3 ] };
- key <AD08> { [ 0x10006B3, 0x10006BE, 0x100FDE4 ] };
- key <AD09> { [ 0x1000648, 0x100064F, 0x1000657 ] };
- key <AD10> { [ 0x100067E, 0x10006A6 ] };
- key <AD11> { [ 0x1000687, 0x1000683 ] };
- key <AD12> { [ 0x1000686, 0x1000684 ] };
-
- key <AC01> { [ 0x1000627, 0x1000622, 0x1000649 ] };
- key <AC02> { [ 0x1000633, 0x1000634 ] };
- key <AC03> { [ 0x100062F, 0x100068A ] };
- key <AC04> { [ 0x1000641, 0x10006A6 ] };
- key <AC05> { [ 0x10006AF, 0x10006AF ] };
- key <AC06> { [ 0x1000647, 0x100062D, 0x10006C1 ] };
- key <AC07> { [ 0x100062C, 0x100062C, 0x100FDFB ] };
- key <AC08> { [ 0x10006AA, 0x10006E1 ] };
- key <AC09> { [ 0x1000644, 0x100003A ] };
- key <AC10> { [ 0x10006A9, 0x100061B ] };
- key <AC11> { [ 0x10006B1, 0x1000640 ] };
-
- key <AB01> { [ 0x1000632, 0x1000630, 0x1000652 ] };
- key <AB02> { [ 0x100062E, 0x1000651, 0x100200C ] };
- key <AB03> { [ 0x1000637, 0x1000638, 0x100200D ] };
- key <AB04> { [ 0x1000680, 0x1000621, 0x1000624 ] };
- key <AB05> { [ 0x1000628, 0x100067B, 0x100FDE1 ] };
- key <AB06> { [ 0x1000646, 0x10006BB, 0x100200E ] };
- key <AB07> { [ 0x1000645, 0x10006FE, 0x100FDF4 ] };
- key <AB08> { [ 0x100060C, 0x100201C, 0x100200F ] };
- key <AB09> { [ period, 0x100201D, 0x10006D4 ] };
- key <AB10> { [ 0x1000626, Arabic_question_mark, 0x100002F ] };
-
- include "level3(ralt_switch)"
-
- // End alphanumeric section
-};
-
-partial alphanumeric_keys
-xkb_symbols "ara" {
- name[Group1]= "Pakistan - Arabic";
-
-// NOTES:
-//
-// there is also combined shadda diacritis in AltGr position of simple
-// diacritics fatha, fathatan, damma, dammatan, kasra and kasratan
-// should a third state be added to Group2 ?
-//
-// How is this different from ara(basic)? --bernie
-
- key <TLDE> { [ 0x100064d , 0x100064b ] };
- key <AE01> { [ 0x10006F1 , 0x1000021 ] };
- key <AE02> { [ 0x10006F2 , 0x1000003 ] };
- key <AE03> { [ 0x10006F3 , 0x100002f ] };
- key <AE04> { [ 0x10006F4 , 0x1000626 ] };
- key <AE05> { [ 0x10006F5 , 0x1000003 ] };
- key <AE06> { [ 0x10006F6 , 0x10006d6 ] };
- key <AE07> { [ 0x10006F7 , 0x1000654 ] };
- key <AE08> { [ 0x10006F8 , 0x100064c ] };
- key <AE09> { [ 0x10006F9 , 0x1000029 ] };
- key <AE10> { [ 0x10006F0 , 0x1000028 ] };
- key <AE11> { [ 0x1000623 , 0x1000651 ] };
- key <AE12> { [ 0x1000624 , 0x1000622 ] };
- key <AD01> { [ 0x1000642 , 0x1000652 ] };
- key <AD02> { [ 0x1000648 , 0x10000a3 ] };
- key <AD03> { [ 0x1000639 , 0x10000a5 ] };
- key <AD04> { [ 0x1000631 , 0x1000691 ] };
- key <AD05> { [ 0x100062a , 0x1000679 ] };
- key <AD06> { [ 0x10006d2 , 0x1000601 ] };
- key <AD07> { [ 0x1000621 , 0x100060c ] };
- key <AD08> { [ 0x10006cc , 0x1000670 ] };
- key <AD09> { [ 0x10006c1 , 0x10006c3 ] };
- key <AD10> { [ 0x100067e , 0x100064f ] };
- key <AD11> { [ 0x100005d , 0x1000670 ] };
- key <AD12> { [ 0x100005b , 0x1000670 ] };
-
- key <AC01> { [ 0x1000627 , 0x1000653 ] };
- key <AC02> { [ 0x1000633 , 0x1000635 ] };
- key <AC03> { [ 0x100062f , 0x1000688 ] };
- key <AC04> { [ 0x1000641 , 0x1000003 ] };
- key <AC05> { [ 0x10006af , 0x100063a ] };
- key <AC06> { [ 0x10006be , 0x100062d ] };
- key <AC07> { [ 0x100062c , 0x1000636 ] };
- key <AC08> { [ 0x10006a9 , 0x100062e ] };
- key <AC09> { [ 0x1000644 , 0x1000613 ] };
- key <AC10> { [ 0x100061b , 0x100003a ] };
- key <AC11> { [ 0x1000670 , 0x1000022 ] };
- key <BKSL> { [ 0x100060e , 0x1000614 ] };
-
- key <LSGT> { [ bar , brokenbar ] };
- key <AB01> { [ 0x1000632 , 0x1000630 ] };
- key <AB02> { [ 0x1000634 , 0x1000698 ] };
- key <AB03> { [ 0x1000686 , 0x100062b ] };
- key <AB04> { [ 0x1000637 , 0x1000638 ] };
- key <AB05> { [ 0x1000628 , 0x1000612 ] };
- key <AB06> { [ 0x1000646 , 0x10006ba ] };
- key <AB07> { [ 0x1000645 , 0x1000003 ] };
- key <AB08> { [ 0x100060c , 0x1000650 ] };
- key <AB09> { [ 0x10006d4 , 0x100064e ] };
- key <AB10> { [ 0x1000003 , 0x100061f ] };
-
- // End alphanumeric section
-};
-
-partial alphanumeric_keys
-xkb_symbols "olpc" {
-
-// Contact: Walter Bender <walter@laptop.org>
-
- include "pk(ara)"
-
- name[Group1]= "Pakistan";
-
- // Keys '~' - '='
- key <TLDE> { [ 0x1000654, 0x100064B ] };
- key <AE01> { [ 0x10006F1, 0x1000603 ] };
- key <AE02> { [ 0x10006F2, 0x1000602 ] };
- key <AE03> { [ 0x10006F3, 0x1000601 ] };
- key <AE04> { [ 0x10006F4, 0x1000600 ] };
- key <AE05> { [ 0x10006F5, 0x100060F ] };
- key <AE06> { [ 0x10006F6, 0x100060E ] };
- key <AE07> { [ 0x10006F7, 0x1000614 ] };
- key <AE08> { [ 0x10006F8, 0x1000612 ] };
- key <AE09> { [ 0x10006F9, 0x1000611 ] };
- key <AE10> { [ 0x10006F0, 0x1000613 ] };
- key <AE11> { [ minus, 0x1000610 ] };
- key <AE12> { [ equal, plus ] };
-
- //Keys 'Q' - ']'
- key <AD01> { [ 0x1000642, 0x1000652 ] };
- key <AD02> { [ 0x1000648, 0x1000651 ] };
- key <AD03> { [ 0x1000639, 0x1000670 ] };
- key <AD04> { [ 0x1000631, 0x1000691 ] };
- key <AD05> { [ 0x100062A, 0x1000679 ] };
- key <AD06> { [ 0x10006D2, 0x100064E ] };
- key <AD07> { [ 0x1000621, 0x1000626 ] };
- key <AD08> { [ 0x10006CC, 0x1000650 ] };
- key <AD09> { [ 0x10006C1, 0x10006C3 ] };
- key <AD10> { [ 0x100067E, 0x100064F ] };
- key <AD12> { [ 0x100FDFD, 0x100FDFA ] };
- key <AD11> { [ 0x100FDF2, 0x100FDFB ] };
-
- // Keys 'A' - '''
- key <AC01> { [ 0x1000627, 0x1000622 ] };
- key <AC02> { [ 0x1000633, 0x1000635 ] };
- key <AC03> { [ 0x100062F, 0x1000688 ] };
- key <AC04> { [ 0x1000641 ] }; //shift key not available
- key <AC05> { [ 0x10006AF, 0x100063A ] };
- key <AC06> { [ 0x100062D, 0x10006BE ] };
- key <AC07> { [ 0x100062C, 0x1000636 ] };
- key <AC08> { [ 0x10006A9, 0x100062E ] };
- key <AC09> { [ 0x1000644, 0x1000656 ] };
- key <AC10> { [ 0x100061B, colon ] };
- key <AC11> { [ quote, doublequote ] };
-
- key <BKSL> { [ backslash, bar ] };
- key <SPCE> { [ space ] };
-
- // Keys: 'Z' - '/'
- key <AB01> { [ 0x1000632, 0x1000622 ] };
- key <AB02> { [ 0x1000634, 0x1000635 ] };
- key <AB03> { [ 0x1000686, 0x1000688 ] };
- key <AB04> { [ 0x1000637 ] }; //shift key unavailable
- key <AB05> { [ 0x1000628, 0x100063A ] };
- key <AB06> { [ 0x1000646, 0x10006BE ] };
- key <AB07> { [ 0x1000645, 0x1000636 ] };
- key <AB08> { [ 0x100060C, 0x100062E ] };
- key <AB09> { [ 0x10006D4, 0x1000656 ] };
- key <AB10> { [ slash, 0x100061F ] };
-
- include "group(olpc)"
-};
+// Urdu keymap
+// Developed by:
+// Zaeem Arshad <zaeem@linux.net.pk>
+// Last update: 2004-03-12
+//Notice:
+//Alt key combinations are yet to be put in. The unavailable keys are those which do not have a corresponding //glyph in unicode.
+
+// based on a keyboard map from an 'xkb/symbols/ur' file
+
+partial default alphanumeric_keys
+xkb_symbols "urd-phonetic" {
+
+ name[Group1]= "Urdu (Pakistan)";
+
+ key <TLDE> { [ 0x100064b , 0x100007E, 0x100200C ] };
+ key <AE01> { [ 0x1000031 , 0x1000021 ] };
+ key <AE02> { [ 0x1000032 , 0x1000040 ] };
+ key <AE03> { [ 0x1000033 , 0x1000023 ] };
+ key <AE04> { [ 0x1000034 , 0x1000024 ] };
+ key <AE05> { [ 0x1000035 , 0x1000025 ] };
+ key <AE06> { [ 0x1000036 , 0x100005E ] };
+ key <AE07> { [ 0x1000037 , 0x1000026 ] };
+ key <AE08> { [ 0x1000038 , 0x100002A ] };
+ key <AE09> { [ 0x1000039 , 0x1000029 ] };
+ key <AE10> { [ 0x1000030 , 0x1000028 ] };
+ key <AE11> { [ 0x100002D , 0x100005F ] };
+ key <AE12> { [ 0x100003D , 0x100002B ] };
+ key <AD01> { [ 0x1000642 , 0x1000652, 0x100200D ] };
+ key <AD02> { [ 0x1000648 , 0x1000624, 0x100200C ] };
+ key <AD03> { [ 0x1000639 , 0x1000670 ] };
+ key <AD04> { [ 0x1000631 , 0x1000691 ] };
+ key <AD05> { [ 0x100062a , 0x1000679 ] };
+ key <AD06> { [ 0x10006d2 , 0x100064E ] };
+ key <AD07> { [ 0x1000621 , 0x1000626 ] };
+ key <AD08> { [ 0x10006cc , 0x1000650 ] };
+ key <AD09> { [ 0x10006c1 , 0x10006c3 ] };
+ key <AD10> { [ 0x100067e , 0x100064f ] };
+ key <AD11> { [ 0x100005d , 0x100007D ] };
+ key <AD12> { [ 0x100005b , 0x100007B ] };
+
+ key <AC01> { [ 0x1000627 , 0x1000622 ] };
+ key <AC02> { [ 0x1000633 , 0x1000635 ] };
+ key <AC03> { [ 0x100062f , 0x1000688 ] };
+ key <AC04> { [ 0x1000641 , 0x1000651 ] };
+ key <AC05> { [ 0x10006af , 0x100063a ] };
+ key <AC06> { [ 0x100062D, 0x10006BE ] };
+ key <AC07> { [ 0x100062c , 0x1000636 ] };
+ key <AC08> { [ 0x10006a9 , 0x100062e ] };
+ key <AC09> { [ 0x1000644 , 0x1000654 ] };
+ key <AC10> { [ 0x100061b , 0x100003a ] };
+ key <AC11> { [ 0x1000027 , 0x1000022 ] };
+ key <BKSL> { [ 0x100005C, 0x100007C ] };
+
+ key <LSGT> { [ bar , brokenbar ] };
+ key <AB01> { [ 0x1000632 , 0x1000630, 0x100200E ] };
+ key <AB02> { [ 0x1000634 , 0x1000698, 0x100202A ] };
+ key <AB03> { [ 0x1000686 , 0x100062b, 0x100202D ] };
+ key <AB04> { [ 0x1000637 , 0x1000638, 0x100202C ] };
+ key <AB05> { [ 0x1000628 , 0x100002e, 0x100202E ] };
+ key <AB06> { [ 0x1000646 , 0x10006ba, 0x100202B ] };
+ key <AB07> { [ 0x1000645 , 0x1000658, 0x100200F ] };
+ key <AB08> { [ 0x100060c , 0x100003c ] };
+ key <AB09> { [ 0x10006d4 , 0x100003E ] };
+ key <AB10> { [ 0x100002f , 0x100061f ] };
+
+// key <RALT> { [ Mode_switch, Multi_key ] };
+
+ include "level3(ralt_switch)"
+
+ // End alphanumeric section
+};
+
+partial alphanumeric_keys
+xkb_symbols "urd-crulp" {
+
+ name[Group1]= "Urdu (Pakistan, CRULP)";
+// www.crulp.org phonetic v1.1
+
+ key <TLDE> { [ 0x100007E , 0x100064B ] };
+ key <AE01> { [ 0x10006F1 , 0x1000031, 0x1000021 ] };
+ key <AE02> { [ 0x10006F2 , 0x1000032, 0x1000040 ] };
+ key <AE03> { [ 0x10006F3 , 0x1000033, 0x1000023 ] };
+ key <AE04> { [ 0x10006F4 , 0x1000034 ] };
+ key <AE05> { [ 0x10006F5 , 0x1000035, 0x100066A ] };
+ key <AE06> { [ 0x10006F6 , 0x1000036 ] };
+ key <AE07> { [ 0x10006F7 , 0x1000037, 0x1000026 ] };
+ key <AE08> { [ 0x10006F8 , 0x1000038, 0x100002A ] };
+ key <AE09> { [ 0x10006F9 , 0x1000039, 0x1000029 ] };
+ key <AE10> { [ 0x10006F0 , 0x1000030, 0x1000028 ] };
+ key <AE11> { [ 0x100002D , 0x100005F ] };
+ key <AE12> { [ 0x100003D , 0x100002B ] };
+ key <AD01> { [ 0x1000642 , 0x1000652 ] };
+ key <AD02> { [ 0x1000648 , 0x1000651, 0x1000602 ] };
+ key <AD03> { [ 0x1000639 , 0x1000670, 0x1000656 ] };
+ key <AD04> { [ 0x1000631 , 0x1000691, 0x1000613 ] };
+ key <AD05> { [ 0x100062a , 0x1000679, 0x1000614 ] };
+ key <AD06> { [ 0x10006d2 , 0x100064E, 0x1000601 ] };
+ key <AD07> { [ 0x1000621 , 0x1000626, 0x1000654 ] };
+ key <AD08> { [ 0x10006cc , 0x1000650, 0x1000611 ] };
+ key <AD09> { [ 0x10006c1 , 0x10006c3 ] };
+ key <AD10> { [ 0x100067e , 0x100064f, 0x1000657 ] };
+ key <AD11> { [ 0x100005d , 0x100007D ] };
+ key <AD12> { [ 0x100005b , 0x100007B ] };
+
+ key <AC01> { [ 0x1000627 , 0x1000622, 0x100FDF2 ] };
+ key <AC02> { [ 0x1000633 , 0x1000635, 0x1000610 ] };
+ key <AC03> { [ 0x100062f , 0x1000688, 0x100FDFA ] };
+ key <AC04> { [ 0x1000641 , 0x1000651 ] };
+ key <AC05> { [ 0x10006af , 0x100063a ] };
+ key <AC06> { [ 0x100062D, 0x10006BE, 0x1000612 ] };
+ key <AC07> { [ 0x100062c , 0x1000636, 0x100FDFB ] };
+ key <AC08> { [ 0x10006a9 , 0x100062e ] };
+ key <AC09> { [ 0x1000644 , 0x1000654 ] };
+ key <AC10> { [ 0x100061b , 0x100003a ] };
+ key <AC11> { [ 0x1000027 , 0x1000022 ] };
+ key <BKSL> { [ 0x100005C, 0x100007C ] };
+
+ key <LSGT> { [ bar , brokenbar ] };
+ key <AB01> { [ 0x1000632 , 0x1000630, 0x100060F ] };
+ key <AB02> { [ 0x1000634 , 0x1000698, 0x100060E ] };
+ key <AB03> { [ 0x1000686 , 0x100062b, 0x1000603 ] };
+ key <AB04> { [ 0x1000637 , 0x1000638 ] };
+ key <AB05> { [ 0x1000628 , 0x100002e, 0x100FDFD ] };
+ key <AB06> { [ 0x1000646 , 0x10006ba, 0x1000600 ] };
+ key <AB07> { [ 0x1000645 , 0x1000658 ] };
+ key <AB08> { [ 0x100060c , 0x100003c, 0x100003C ] };
+ key <AB09> { [ 0x10006d4 , 0x100066B, 0x100003E ] };
+ key <AB10> { [ 0x100002f , 0x100061F ] };
+
+// key <RALT> { [ Mode_switch, Multi_key ] };
+
+ include "level3(ralt_switch)"
+
+ // End alphanumeric section
+};
+
+
+partial alphanumeric_keys
+xkb_symbols "urd-nla" {
+ name[Group1]= "Urdu (Pakistan, NLA)";
+// www.nla.gov.pk
+
+ key <TLDE> { [ 0x1000060 , 0x100007E, 0x100200C ] };
+ key <AE01> { [ 0x1000031 , 0x1000021 ] };
+ key <AE02> { [ 0x1000032 , 0x1000040 ] };
+ key <AE03> { [ 0x1000033 , 0x1000023 ] };
+ key <AE04> { [ 0x1000034 , 0x1000024 ] };
+ key <AE05> { [ 0x1000035 , 0x100066A ] };
+ key <AE06> { [ 0x1000036 , 0x100005E ] };
+ key <AE07> { [ 0x1000037 , 0x10006D6 ] };
+ key <AE08> { [ 0x1000038 , 0x100066D ] };
+ key <AE09> { [ 0x1000039 , 0x1000029 ] };
+ key <AE10> { [ 0x1000030 , 0x1000028 ] };
+ key <AE11> { [ 0x100002D , 0x100005F ] };
+ key <AE12> { [ 0x100003D , 0x100002B ] };
+ key <AD01> { [ 0x1000637 , 0x1000638, 0x100200D ] };
+ key <AD02> { [ 0x1000635 , 0x1000636, 0x100200C ] };
+ key <AD03> { [ 0x10006BE , 0x1000630 ] };
+ key <AD04> { [ 0x100062F , 0x1000688 ] };
+ key <AD05> { [ 0x1000679 , 0x100062B ] };
+ key <AD06> { [ 0x100067E , 0x1000651 ] };
+ key <AD07> { [ 0x100062A , 0x10006C3 ] };
+ key <AD08> { [ 0x1000628 , 0x1000640 ] };
+ key <AD09> { [ 0x100062C , 0x1000686 ] };
+ key <AD10> { [ 0x100062D , 0x100062E ] };
+ key <AD11> { [ 0x100005d , 0x100007D ] };
+ key <AD12> { [ 0x100005b , 0x100007B ] };
+
+ key <AC01> { [ 0x1000645 , 0x1000698 ] };
+ key <AC02> { [ 0x1000648 , 0x1000632 ] };
+ key <AC03> { [ 0x1000631 , 0x1000691 ] };
+ key <AC04> { [ 0x1000646 , 0x10006BA ] };
+ key <AC05> { [ 0x1000644 , 0x10006C2 ] };
+ key <AC06> { [ 0x10006C1 , 0x1000621 ] };
+ key <AC07> { [ 0x1000627 , 0x1000622 ] };
+ key <AC08> { [ 0x10006a9 , 0x10006AF ] };
+ key <AC09> { [ 0x10006CC , 0x100064A ] };
+ key <AC10> { [ 0x100061b , 0x100003a ] };
+ key <AC11> { [ 0x1000027 , 0x1000022 ] };
+ key <BKSL> { [ 0x100005C , 0x100007C ] };
+
+ key <LSGT> { [ bar , brokenbar ] };
+ key <AB01> { [ 0x1000642 , 0x100200D, 0x100200E ] };
+ key <AB02> { [ 0x1000641 , 0x100200C, 0x100202A ] };
+ key <AB03> { [ 0x10006D2 , 0x10006D3, 0x100202D ] };
+ key <AB04> { [ 0x1000633 , 0x100200E, 0x100202C ] };
+ key <AB05> { [ 0x1000634 , 0x1000624, 0x100202E ] };
+ key <AB06> { [ 0x100063A , 0x1000626, 0x100202B ] };
+ key <AB07> { [ 0x1000639 , 0x100200F, 0x100200F ] };
+ key <AB08> { [ 0x100060c , 0x100003E ] };
+ key <AB09> { [ 0x10006d4 , 0x100003C ] };
+ key <AB10> { [ 0x100002F , 0x100061f ] };
+
+
+ include "level3(ralt_switch)"
+
+ // End alphanumeric section
+};
+
+partial alphanumeric_keys
+xkb_symbols "snd" {
+ name[Group1]= "Sindhi";
+// www.bhurgri.com
+
+ key <TLDE> { [ 0x1002019, 0x1002018 ] };
+ key <AE01> { [ 1, exclam, 0x1000610 ] };
+ key <AE02> { [ 2, 0x1000670, 0x1000611 ] };
+ key <AE03> { [ 3, 0x1000621, 0x1000613 ] };
+ key <AE04> { [ 4, 0x1000621, 0x1000612 ] };
+ key <AE05> { [ 5, 0x1000621, 0x1002026 ] };
+ key <AE06> { [ 6, 0x1000621, 0x1002022 ] };
+ key <AE07> { [ 7, 0x10006FD ] };
+ key <AE08> { [ 8, asterisk ] };
+ key <AE09> { [ 9, parenright ] };
+ key <AE10> { [ 0, parenleft ] };
+ key <AE11> { [ 0x100068F, 0x100005F, 0x100002D ] };
+ key <AE12> { [ 0x100068C, plus, 0x100003D ] };
+ key <BKSL> { [ 0x100068D, 0x100067A, 0x100007C ] };
+
+ key <AD01> { [ 0x1000642, 0x100064E, 0x100064B ] };
+ key <AD02> { [ 0x1000635, 0x1000636, 0x100FDFA ] };
+ key <AD03> { [ 0x100064A, 0x1000650, 0x1000656 ] };
+ key <AD04> { [ 0x1000631, 0x1000699, 0x100FDE6 ] };
+ key <AD05> { [ 0x100062A, 0x100067D, 0x1000629 ] };
+ key <AD06> { [ 0x100067F, 0x100062B, 0x100FDE5 ] };
+ key <AD07> { [ 0x1000639, 0x100063A, 0x100FDE3 ] };
+ key <AD08> { [ 0x10006B3, 0x10006BE, 0x100FDE4 ] };
+ key <AD09> { [ 0x1000648, 0x100064F, 0x1000657 ] };
+ key <AD10> { [ 0x100067E, 0x10006A6 ] };
+ key <AD11> { [ 0x1000687, 0x1000683 ] };
+ key <AD12> { [ 0x1000686, 0x1000684 ] };
+
+ key <AC01> { [ 0x1000627, 0x1000622, 0x1000649 ] };
+ key <AC02> { [ 0x1000633, 0x1000634 ] };
+ key <AC03> { [ 0x100062F, 0x100068A ] };
+ key <AC04> { [ 0x1000641, 0x10006A6 ] };
+ key <AC05> { [ 0x10006AF, 0x10006AF ] };
+ key <AC06> { [ 0x1000647, 0x100062D, 0x10006C1 ] };
+ key <AC07> { [ 0x100062C, 0x100062C, 0x100FDFB ] };
+ key <AC08> { [ 0x10006AA, 0x10006E1 ] };
+ key <AC09> { [ 0x1000644, 0x100003A ] };
+ key <AC10> { [ 0x10006A9, 0x100061B ] };
+ key <AC11> { [ 0x10006B1, 0x1000640 ] };
+
+ key <AB01> { [ 0x1000632, 0x1000630, 0x1000652 ] };
+ key <AB02> { [ 0x100062E, 0x1000651, 0x100200C ] };
+ key <AB03> { [ 0x1000637, 0x1000638, 0x100200D ] };
+ key <AB04> { [ 0x1000680, 0x1000621, 0x1000624 ] };
+ key <AB05> { [ 0x1000628, 0x100067B, 0x100FDE1 ] };
+ key <AB06> { [ 0x1000646, 0x10006BB, 0x100200E ] };
+ key <AB07> { [ 0x1000645, 0x10006FE, 0x100FDF4 ] };
+ key <AB08> { [ 0x100060C, 0x100201C, 0x100200F ] };
+ key <AB09> { [ period, 0x100201D, 0x10006D4 ] };
+ key <AB10> { [ 0x1000626, Arabic_question_mark, 0x100002F ] };
+
+ include "level3(ralt_switch)"
+
+ // End alphanumeric section
+};
+
+partial alphanumeric_keys
+xkb_symbols "ara" {
+ name[Group1]= "Arabic (Pakistan)";
+
+// NOTES:
+//
+// there is also combined shadda diacritis in AltGr position of simple
+// diacritics fatha, fathatan, damma, dammatan, kasra and kasratan
+// should a third state be added to Group2 ?
+//
+// How is this different from ara(basic)? --bernie
+
+ key <TLDE> { [ 0x100064d , 0x100064b ] };
+ key <AE01> { [ 0x10006F1 , 0x1000021 ] };
+ key <AE02> { [ 0x10006F2 , 0x1000003 ] };
+ key <AE03> { [ 0x10006F3 , 0x100002f ] };
+ key <AE04> { [ 0x10006F4 , 0x1000626 ] };
+ key <AE05> { [ 0x10006F5 , 0x1000003 ] };
+ key <AE06> { [ 0x10006F6 , 0x10006d6 ] };
+ key <AE07> { [ 0x10006F7 , 0x1000654 ] };
+ key <AE08> { [ 0x10006F8 , 0x100064c ] };
+ key <AE09> { [ 0x10006F9 , 0x1000029 ] };
+ key <AE10> { [ 0x10006F0 , 0x1000028 ] };
+ key <AE11> { [ 0x1000623 , 0x1000651 ] };
+ key <AE12> { [ 0x1000624 , 0x1000622 ] };
+ key <AD01> { [ 0x1000642 , 0x1000652 ] };
+ key <AD02> { [ 0x1000648 , 0x10000a3 ] };
+ key <AD03> { [ 0x1000639 , 0x10000a5 ] };
+ key <AD04> { [ 0x1000631 , 0x1000691 ] };
+ key <AD05> { [ 0x100062a , 0x1000679 ] };
+ key <AD06> { [ 0x10006d2 , 0x1000601 ] };
+ key <AD07> { [ 0x1000621 , 0x100060c ] };
+ key <AD08> { [ 0x10006cc , 0x1000670 ] };
+ key <AD09> { [ 0x10006c1 , 0x10006c3 ] };
+ key <AD10> { [ 0x100067e , 0x100064f ] };
+ key <AD11> { [ 0x100005d , 0x1000670 ] };
+ key <AD12> { [ 0x100005b , 0x1000670 ] };
+
+ key <AC01> { [ 0x1000627 , 0x1000653 ] };
+ key <AC02> { [ 0x1000633 , 0x1000635 ] };
+ key <AC03> { [ 0x100062f , 0x1000688 ] };
+ key <AC04> { [ 0x1000641 , 0x1000003 ] };
+ key <AC05> { [ 0x10006af , 0x100063a ] };
+ key <AC06> { [ 0x10006be , 0x100062d ] };
+ key <AC07> { [ 0x100062c , 0x1000636 ] };
+ key <AC08> { [ 0x10006a9 , 0x100062e ] };
+ key <AC09> { [ 0x1000644 , 0x1000613 ] };
+ key <AC10> { [ 0x100061b , 0x100003a ] };
+ key <AC11> { [ 0x1000670 , 0x1000022 ] };
+ key <BKSL> { [ 0x100060e , 0x1000614 ] };
+
+ key <LSGT> { [ bar , brokenbar ] };
+ key <AB01> { [ 0x1000632 , 0x1000630 ] };
+ key <AB02> { [ 0x1000634 , 0x1000698 ] };
+ key <AB03> { [ 0x1000686 , 0x100062b ] };
+ key <AB04> { [ 0x1000637 , 0x1000638 ] };
+ key <AB05> { [ 0x1000628 , 0x1000612 ] };
+ key <AB06> { [ 0x1000646 , 0x10006ba ] };
+ key <AB07> { [ 0x1000645 , 0x1000003 ] };
+ key <AB08> { [ 0x100060c , 0x1000650 ] };
+ key <AB09> { [ 0x10006d4 , 0x100064e ] };
+ key <AB10> { [ 0x1000003 , 0x100061f ] };
+
+ // End alphanumeric section
+};
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+// Contact: Walter Bender <walter@laptop.org>
+
+ include "pk(ara)"
+
+ name[Group1]= "Urdu (Pakistan)";
+
+ // Keys '~' - '='
+ key <TLDE> { [ 0x1000654, 0x100064B ] };
+ key <AE01> { [ 0x10006F1, 0x1000603 ] };
+ key <AE02> { [ 0x10006F2, 0x1000602 ] };
+ key <AE03> { [ 0x10006F3, 0x1000601 ] };
+ key <AE04> { [ 0x10006F4, 0x1000600 ] };
+ key <AE05> { [ 0x10006F5, 0x100060F ] };
+ key <AE06> { [ 0x10006F6, 0x100060E ] };
+ key <AE07> { [ 0x10006F7, 0x1000614 ] };
+ key <AE08> { [ 0x10006F8, 0x1000612 ] };
+ key <AE09> { [ 0x10006F9, 0x1000611 ] };
+ key <AE10> { [ 0x10006F0, 0x1000613 ] };
+ key <AE11> { [ minus, 0x1000610 ] };
+ key <AE12> { [ equal, plus ] };
+
+ //Keys 'Q' - ']'
+ key <AD01> { [ 0x1000642, 0x1000652 ] };
+ key <AD02> { [ 0x1000648, 0x1000651 ] };
+ key <AD03> { [ 0x1000639, 0x1000670 ] };
+ key <AD04> { [ 0x1000631, 0x1000691 ] };
+ key <AD05> { [ 0x100062A, 0x1000679 ] };
+ key <AD06> { [ 0x10006D2, 0x100064E ] };
+ key <AD07> { [ 0x1000621, 0x1000626 ] };
+ key <AD08> { [ 0x10006CC, 0x1000650 ] };
+ key <AD09> { [ 0x10006C1, 0x10006C3 ] };
+ key <AD10> { [ 0x100067E, 0x100064F ] };
+ key <AD12> { [ 0x100FDFD, 0x100FDFA ] };
+ key <AD11> { [ 0x100FDF2, 0x100FDFB ] };
+
+ // Keys 'A' - '''
+ key <AC01> { [ 0x1000627, 0x1000622 ] };
+ key <AC02> { [ 0x1000633, 0x1000635 ] };
+ key <AC03> { [ 0x100062F, 0x1000688 ] };
+ key <AC04> { [ 0x1000641 ] }; //shift key not available
+ key <AC05> { [ 0x10006AF, 0x100063A ] };
+ key <AC06> { [ 0x100062D, 0x10006BE ] };
+ key <AC07> { [ 0x100062C, 0x1000636 ] };
+ key <AC08> { [ 0x10006A9, 0x100062E ] };
+ key <AC09> { [ 0x1000644, 0x1000656 ] };
+ key <AC10> { [ 0x100061B, colon ] };
+ key <AC11> { [ quote, doublequote ] };
+
+ key <BKSL> { [ backslash, bar ] };
+ key <SPCE> { [ space ] };
+
+ // Keys: 'Z' - '/'
+ key <AB01> { [ 0x1000632, 0x1000622 ] };
+ key <AB02> { [ 0x1000634, 0x1000635 ] };
+ key <AB03> { [ 0x1000686, 0x1000688 ] };
+ key <AB04> { [ 0x1000637 ] }; //shift key unavailable
+ key <AB05> { [ 0x1000628, 0x100063A ] };
+ key <AB06> { [ 0x1000646, 0x10006BE ] };
+ key <AB07> { [ 0x1000645, 0x1000636 ] };
+ key <AB08> { [ 0x100060C, 0x100062E ] };
+ key <AB09> { [ 0x10006D4, 0x1000656 ] };
+ key <AB10> { [ slash, 0x100061F ] };
+
+ include "group(olpc)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/pl b/xorg-server/xkeyboard-config/symbols/pl
index a90198e78..12f3e012d 100644
--- a/xorg-server/xkeyboard-config/symbols/pl
+++ b/xorg-server/xkeyboard-config/symbols/pl
@@ -1,350 +1,350 @@
-// based on a keyboard map from an 'xkb/symbols/pl' file
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- include "latin"
-
- name[Group1]="Poland";
-
- key <AD01> { [ q, Q ] };
- key <AD02> { [ w, W ] };
- key <AD03> { [ e, E, eogonek, Eogonek ] };
- key <AD09> { [ o, O, oacute, Oacute ] };
-
- key <AC01> { [ a, A, aogonek, Aogonek ] };
- key <AC02> { [ s, S, sacute, Sacute ] };
- key <AC04> { [ f, F ] };
-
- key <AB01> { [ z, Z, zabovedot, Zabovedot ] };
- key <AB02> { [ x, X, zacute, Zacute ] };
- key <AB03> { [ c, C, cacute, Cacute ] };
- key <AB06> { [ n, N, nacute, Nacute ] };
-
- include "kpdl(comma)"
-
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "qwertz" {
-
- // Describes the differences between a very simple en_US
- // keyboard and a very simple QWERTZ Polish keybaord
-
- include "latin(type3)"
-
- name[Group1]="Poland - qwertz";
-
- key <AE01> { [ 1, exclam, asciitilde, exclamdown ] };
- key <AE02> { [ 2, quotedbl, dead_caron, oneeighth ] };
- key <AE03> { [ 3, numbersign, dead_circumflex, sterling ] };
- key <AE04> { [ 4, dollar, dead_breve, dollar ] };
- key <AE05> { [ 5, percent, degree, threeeighths ] };
- key <AE06> { [ 6, ampersand, dead_ogonek, fiveeighths ] };
- key <AE07> { [ 7, slash, dead_grave, seveneighths ] };
- key <AE08> { [ 8, parenleft, dead_abovedot, trademark ] };
- key <AE09> { [ 9, parenright, dead_acute, plusminus ] };
- key <AE10> { [ 0, equal, dead_doubleacute, degree ] };
- key <AE11> { [ plus, question, dead_diaeresis, questiondown ] };
- key <AE12> { [apostrophe, asterisk, dead_cedilla, dead_ogonek ] };
-
- key <AD01> { [ q, Q ] };
- key <AD02> { [ w, W ] };
- key <AD03> { [ e, E, EuroSign, cent ] };
- key <AD11> { [ zabovedot, nacute, division, dead_abovering ] };
- key <AD12> { [ sacute, cacute, multiply, dead_macron ] };
-
- key <AC02> { [ s, S, dstroke, section ] };
- key <AC03> { [ d, D, Dstroke, ETH ] };
- key <AC04> { [ f, F ] };
- key <AC08> { [ k, K, kra, ampersand ] };
- key <AC09> { [ l, L, lstroke, Lstroke ] };
- key <AC10> { [ lstroke, Lstroke, dollar, dead_doubleacute ] };
- key <AC11> { [ aogonek, eogonek, ssharp, dead_caron ] };
- key <TLDE> { [ abovedot, dead_ogonek, notsign, notsign ] };
-
- key <BKSL> { [ oacute, zacute, dead_grave, dead_breve ] };
- key <AB03> { [ c, C, cent, copyright ] };
- key <AB10> { [ minus, underscore, dead_belowdot, dead_abovedot ] };
-
- include "kpdl(comma)"
-
- include "level3(ralt_switch)"
-};
-
-// Polish Dvorak keymaps
-// by Rafal Rzepecki <divide@users.sf.net>
-
-// The base keymap "pl" places Polish quotes on quotemark key and
-// moves the dead symbols from there to "1/!" key. If you are used to common
-// dead keys placement, you could use "pl_altquotes"; in this layout
-// dead keys remain in the old place, whereas Polish quotes are placed on the
-// "1/!" key. If you do not use Polish quotes at all, you can use "pl_basic" map.
-
-// Basic Polish keymap (without Polish quotes)
-partial alphanumeric_keys
-xkb_symbols "dvorak" {
- include "us(dvorak)"
-
- name[Group1] = "Poland - Dvorak";
-
- key <AD08> { [ c, C, cacute, Cacute ] };
- key <AD10> { [ l, L, lstroke, Lstroke ] };
- key <AC01> { [ a, A, aogonek, Aogonek ] };
- key <AC02> { [ o, O, oacute, Oacute ] };
- key <AC03> { [ e, E, eogonek, Eogonek ] };
- key <AC09> { [ n, N, nacute, Nacute ] };
- key <AC10> { [ s, S, sacute, Sacute ] };
- key <AB09> { [ v, V, zacute, Zacute ] };
- key <AB10> { [ z, Z, zabovedot, Zabovedot ] };
-
- include "kpdl(comma)"
-
- // this to allow writing ALL CAPS with a Shift key
- include "level3(ralt_switch)"
-
- // use one of compose:* options to choose Multi_key, if you will,
- // or layout +level3(ralt_switch_multikey) to revert standard behaviour
-};
-
-// Default Polish keymap with Polish quotes on quotemark key
-partial alphanumeric_keys
-xkb_symbols "dvorak_quotes" {
- include "pl(dvorak)"
-
- name[Group1] = "Poland - Dvorak, Polish quotes on quotemark key";
-
- key <AD01> { [ apostrophe, quotedbl, doublelowquotemark, rightdoublequotemark ] };
-
- // Dead symbols moved to this key
- key <AE01> { [ 1, exclam, dead_acute, dead_diaeresis ] };
-};
-
-// Polish keymap with Polish quotes on key "1/!"
-partial alphanumeric_keys
-xkb_symbols "dvorak_altquotes" {
- include "pl(dvorak)"
-
- name[Group1] = "Poland - Dvorak, Polish quotes on key 1";
-
- key <AE01> { [ 1, exclam, doublelowquotemark, rightdoublequotemark ] };
-};
-
-// Polish Programmer Dvorak keymap by Michal Nazarewicz <mina86@mina86.com>
-// based on Programmer Dvorak by Roland Kaufmann <rlndkfmn at gmail dot com>
-// and Polish Dvorak keymaps by Rafal Rzepecki <divide@users.sf.net
-// and latin(basic)
-//
-// * Numbers are in shift position (like French).
-// * Symbols have been placed in locations that give good
-// hand-alternation and finger rolling with symbols that usually
-// follows.
-// * Polish diacritics on AltGr+"acelnosxz" (same as in basic pl(basic)).
-// * Aditionaly, zacute on AltGr+"v" so that both zacute and zabovedot
-// next to each other same as in pl(basic).
-// * Polish open and close quotes on AltGr+& (same location as in
-// pl(dvp_altquotes)).
-// * English open quote on AltGr+k (same location as in latin(basic))
-// * English/Polish close quote on AltGr+b (similar location as in
-// latin(basic) but moved right because AltGr+x is taken for zacute).
-// * Polish open and close quote on AltGr+j.
-//
-// Those rules overwrite only the following rules from us(dvp):
-// * ccedilla on AltGr+c
-// * aring on Alt+a
-// * oslash/Ooblique on Alt+o
-// * ae on Alt+e
-// * ntilde on Alt+n
-//
-partial alphanumeric_keys
-xkb_symbols "dvp" {
- include "us(dvp)"
-
- name[Group1] = "Poland - Programmer Dvorak";
-
- // Unmodified Shift AltGr Shift+AltGr
- // symbols row, left side
- key <AE01> { [ ampersand, percent, doublelowquotemark, rightdoublequotemark ] };
-
- // symbols row, right side
-
- // upper row, left side
-
- // // upper row, right side
- key <AD08> { [ c, C, cacute, Cacute ] };
- key <AD10> { [ l, L, lstroke, Lstroke ] };
-
- // home row, left side
- key <AC01> { [ a, A, aogonek, Aogonek ], type[Group1] = "EIGHT_LEVEL_ALPHABETIC" };
- key <AC02> { [ o, O, oacute, Oacute ] };
- key <AC03> { [ e, E, eogonek, Eogonek ] };
-
- // home row, right side
- key <AC09> { [ n, N, nacute, Nacute ] };
- key <AC10> { [ s, S, sacute, Sacute ] };
- key <AC11> { [ minus, underscore, hyphen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
- key <BKSL> { [ backslash, bar ] };
-
- // lower row, left side
- key <AB03> { [ j, J, doublelowquotemark, rightdoublequotemark ] };
- key <AB04> { [ k, K, leftdoublequotemark, leftsinglequotemark ] };
- key <AB05> { [ x, X, zacute, Zacute ] };
-
- // lower row, right side
- key <AB06> { [ b, B, rightdoublequotemark, rightsinglequotemark ] };
- key <AB09> { [ v, V, zacute, Zacute ] };
- key <AB10> { [ z, Z, zabovedot, Zabovedot ] };
-
- include "kpdl(comma)"
-
- // this to allow writing ALL CAPS with a Shift key
- include "level3(ralt_switch)"
-
- // use one of compose:* options to choose Multi_key, if you will,
- // or layout +level3(ralt_switch_multikey) to revert standard behaviour
-};
-
-
-partial alphanumeric_keys
-xkb_symbols "csb" {
-
- include "latin"
-
- name[Group1]="Poland - Kashubian";
-
- key <AD01> { [ q, Q ] };
- key <AD02> { [ w, W ] };
- key <AD03> { [ e, E, eacute, Eacute ] };
- key <AD04> { [ r, R, ediaeresis, Ediaeresis ] };
- key <AD06> { [ y, Y, EuroSign, cent ] };
- key <AD07> { [ u, U, ugrave, Ugrave ] };
- key <AD08> { [ i, I, ograve, Ograve ] };
- key <AD09> { [ o, O, oacute, Oacute ] };
- key <AD10> { [ p, P, ocircumflex, Ocircumflex ] };
-
- key <AC01> { [ a, A, aogonek, Aogonek ] };
- key <AC02> { [ s, S, atilde, Atilde ] };
- key <AC04> { [ f, F ] };
- key <AC09> { [ l, L, lstroke, Lstroke ] };
-
- key <AB01> { [ z, Z, zabovedot, Zabovedot ] };
- key <AB06> { [ n, N, nacute, Nacute ] };
-
- include "kpdl(comma)"
-
- include "level3(ralt_switch)"
-};
-
-// Russian Polish-phonetic Dvorak
-// by Adrian Dziubek <adrian.dziubek@gmail.com>
-//
-// This layout aims to enable Polish Dvorak users to type with Russian
-// Cyrillic alphabet by using the sound correspondence between Polish and
-// Russian languages.
-//
-// This keyboard should be intuitive. Please let me know, if my intuition
-// lets You down.
-//
-// The guidelines used:
-// - no Cyrillic symbols are placed on punctuation symbols,
-// - visual similarities are ignored if there is a sound correspondence:
-// no Cyrillic_es on c, no Cyrillic_er on p, no Cyrillic_ha on x etc.,
-// - the Latin symbols that have close sound correspondence (as read in Polish)
-// to Cyrillic symbols (as read in Russian) are mapped respectively:
-// * j -> Cyrillic_shorti,
-// * k -> Cyrillic_ka,
-// * b -> Cyrillic_be,
-// * m -> Cyrillic_em,
-// * w -> Cyrillic_ve,
-// * z -> Cyrillic_ze
-// * a -> Cyrillic_a,
-// * o -> Cyrillic_o,
-// * u -> Cyrillic_u,
-// * i -> Cyrillic_i,
-// * d -> Cyrillic_de,
-// * h -> Cyrillic_ha,
-// * t -> Cyrillic_te,
-// * n -> Cyrillic_en,
-// * s -> Cyrillic_es,
-// * p -> Cyrillic_pe,
-// * y -> Cyrillic_yeru,
-// * f -> Cyrillic_ef,
-// * g -> Cyrillic_ghe,
-// * c -> Cyrillic_tse,
-// * r -> Cyrillic_er,
-// * l -> Cyrillic_el,
-// - ...and little more distant:
-// * AltGr + s (sacute) -> Cyrillic_sha,
-// * AltGr + z (zabovedot) -> Cyrillic_zhe,
-// * AltGr + c (cacute) -> Cyrillic_che,
-// - the soft versions of Russian vowels are accessible through AltGr + vowel:
-// * AltGr + a -> Cyrillic_ya,
-// * AltGr + o -> Cyrillic_io,
-// * AltGr + u -> Cyrillic_yu,
-// - ...except for Cyrillic_ie which is more frequently used than Cyrillic_e:
-// * AltGr + e -> Cyrillic_e,
-// * e -> Cyrillic_ie,
-// - q is also mapped to Cyrillic_ya, following the US phonetic keyboard
-// choice, as Cyrillic_ya and Cyrillic_a are both often used:
-// * q -> Cyrillic_ya,
-// - the soft and hard symbols that have no Polish counterparts are mapped
-// to rarely used in Polish x character:
-// * x -> Cyrillic_softsign
-// * AltGr + x -> Cyrillic_hardsign,
-// - the soft sign is additionally available as AltGr + consonant combination
-// for every consonant that can be softened or separated by soft sign:
-// * AltGr + l -> Cyrillic_softsign,
-// * AltGr + d -> Cyrillic_softsign,
-// * AltGr + n -> Cyrillic_softsign,
-// * AltGr + r -> Cyrillic_softsign,
-// * AltGr + t -> Cyrillic_softsign,
-// * AltGr + p -> Cyrillic_softsign,
-// - ...and also because of visual similarity under level3 b:
-// * AltGr + b -> Cyrillic_softsign,
-// * Shift + AltGr + b -> Cyrillic_hardsign,
-// - the Cyrillic_shcha symbol is placed under AltGr + w (visual similarity):
-// * AltGr + w -> Cyrillic_shcha
-// - v, also rarely unused in Polish is mapped like w:
-// * v -> Cyrillic_ve,
-//
-partial alphanumeric_keys
-xkb_symbols "ru_phonetic_dvorak" {
- include "us(dvorak)"
-
- name[Group1] = "Poland - Russian phonetic Dvorak";
-
- // lower row
- key <AB02> { [ Cyrillic_ya, Cyrillic_YA ] };
- key <AB03> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
- key <AB04> { [ Cyrillic_ka, Cyrillic_KA ] };
- key <AB05> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
- key <AB06> { [ Cyrillic_be, Cyrillic_BE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
- key <AB07> { [ Cyrillic_em, Cyrillic_EM ] };
- key <AB08> { [ Cyrillic_ve, Cyrillic_VE, Cyrillic_shcha, Cyrillic_SHCHA ] };
- key <AB09> { [ Cyrillic_ve, Cyrillic_VE, Cyrillic_shcha, Cyrillic_SHCHA ] };
- key <AB10> { [ Cyrillic_ze, Cyrillic_ZE, Cyrillic_zhe, Cyrillic_ZHE ] };
- // home row
- key <AC01> { [ Cyrillic_a, Cyrillic_A, Cyrillic_ya, Cyrillic_YA ] };
- key <AC02> { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] };
- key <AC03> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ] };
- key <AC04> { [ Cyrillic_u, Cyrillic_U, Cyrillic_yu, Cyrillic_YU ] };
- key <AC05> { [ Cyrillic_i, Cyrillic_I ] };
- key <AC06> { [ Cyrillic_de, Cyrillic_DE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- key <AC07> { [ Cyrillic_ha, Cyrillic_HA ] };
- key <AC08> { [ Cyrillic_te, Cyrillic_TE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- key <AC09> { [ Cyrillic_en, Cyrillic_EN, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- key <AC10> { [ Cyrillic_es, Cyrillic_ES, Cyrillic_sha, Cyrillic_SHA ] };
- // upper row
- key <AD04> { [ Cyrillic_pe, Cyrillic_PE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- key <AD05> { [ Cyrillic_yeru, Cyrillic_YERU ] };
- key <AD06> { [ Cyrillic_ef, Cyrillic_EF ] };
- key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
- key <AD08> { [ Cyrillic_tse, Cyrillic_TSE, Cyrillic_che, Cyrillic_CHE ] };
- key <AD09> { [ Cyrillic_er, Cyrillic_ER, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- key <AD10> { [ Cyrillic_el, Cyrillic_EL, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
-
- include "kpdl(comma)"
-
- include "level3(ralt_switch)"
-};
+// based on a keyboard map from an 'xkb/symbols/pl' file
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ include "latin"
+
+ name[Group1]="Polish";
+
+ key <AD01> { [ q, Q ] };
+ key <AD02> { [ w, W ] };
+ key <AD03> { [ e, E, eogonek, Eogonek ] };
+ key <AD09> { [ o, O, oacute, Oacute ] };
+
+ key <AC01> { [ a, A, aogonek, Aogonek ] };
+ key <AC02> { [ s, S, sacute, Sacute ] };
+ key <AC04> { [ f, F ] };
+
+ key <AB01> { [ z, Z, zabovedot, Zabovedot ] };
+ key <AB02> { [ x, X, zacute, Zacute ] };
+ key <AB03> { [ c, C, cacute, Cacute ] };
+ key <AB06> { [ n, N, nacute, Nacute ] };
+
+ include "kpdl(comma)"
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "qwertz" {
+
+ // Describes the differences between a very simple en_US
+ // keyboard and a very simple QWERTZ Polish keybaord
+
+ include "latin(type3)"
+
+ name[Group1]="Polish (qwertz)";
+
+ key <AE01> { [ 1, exclam, asciitilde, exclamdown ] };
+ key <AE02> { [ 2, quotedbl, dead_caron, oneeighth ] };
+ key <AE03> { [ 3, numbersign, dead_circumflex, sterling ] };
+ key <AE04> { [ 4, dollar, dead_breve, dollar ] };
+ key <AE05> { [ 5, percent, degree, threeeighths ] };
+ key <AE06> { [ 6, ampersand, dead_ogonek, fiveeighths ] };
+ key <AE07> { [ 7, slash, dead_grave, seveneighths ] };
+ key <AE08> { [ 8, parenleft, dead_abovedot, trademark ] };
+ key <AE09> { [ 9, parenright, dead_acute, plusminus ] };
+ key <AE10> { [ 0, equal, dead_doubleacute, degree ] };
+ key <AE11> { [ plus, question, dead_diaeresis, questiondown ] };
+ key <AE12> { [apostrophe, asterisk, dead_cedilla, dead_ogonek ] };
+
+ key <AD01> { [ q, Q ] };
+ key <AD02> { [ w, W ] };
+ key <AD03> { [ e, E, EuroSign, cent ] };
+ key <AD11> { [ zabovedot, nacute, division, dead_abovering ] };
+ key <AD12> { [ sacute, cacute, multiply, dead_macron ] };
+
+ key <AC02> { [ s, S, dstroke, section ] };
+ key <AC03> { [ d, D, Dstroke, ETH ] };
+ key <AC04> { [ f, F ] };
+ key <AC08> { [ k, K, kra, ampersand ] };
+ key <AC09> { [ l, L, lstroke, Lstroke ] };
+ key <AC10> { [ lstroke, Lstroke, dollar, dead_doubleacute ] };
+ key <AC11> { [ aogonek, eogonek, ssharp, dead_caron ] };
+ key <TLDE> { [ abovedot, dead_ogonek, notsign, notsign ] };
+
+ key <BKSL> { [ oacute, zacute, dead_grave, dead_breve ] };
+ key <AB03> { [ c, C, cent, copyright ] };
+ key <AB10> { [ minus, underscore, dead_belowdot, dead_abovedot ] };
+
+ include "kpdl(comma)"
+
+ include "level3(ralt_switch)"
+};
+
+// Polish Dvorak keymaps
+// by Rafal Rzepecki <divide@users.sf.net>
+
+// The base keymap "pl" places Polish quotes on quotemark key and
+// moves the dead symbols from there to "1/!" key. If you are used to common
+// dead keys placement, you could use "pl_altquotes"; in this layout
+// dead keys remain in the old place, whereas Polish quotes are placed on the
+// "1/!" key. If you do not use Polish quotes at all, you can use "pl_basic" map.
+
+// Basic Polish keymap (without Polish quotes)
+partial alphanumeric_keys
+xkb_symbols "dvorak" {
+ include "us(dvorak)"
+
+ name[Group1] = "Polish (Dvorak)";
+
+ key <AD08> { [ c, C, cacute, Cacute ] };
+ key <AD10> { [ l, L, lstroke, Lstroke ] };
+ key <AC01> { [ a, A, aogonek, Aogonek ] };
+ key <AC02> { [ o, O, oacute, Oacute ] };
+ key <AC03> { [ e, E, eogonek, Eogonek ] };
+ key <AC09> { [ n, N, nacute, Nacute ] };
+ key <AC10> { [ s, S, sacute, Sacute ] };
+ key <AB09> { [ v, V, zacute, Zacute ] };
+ key <AB10> { [ z, Z, zabovedot, Zabovedot ] };
+
+ include "kpdl(comma)"
+
+ // this to allow writing ALL CAPS with a Shift key
+ include "level3(ralt_switch)"
+
+ // use one of compose:* options to choose Multi_key, if you will,
+ // or layout +level3(ralt_switch_multikey) to revert standard behaviour
+};
+
+// Default Polish keymap with Polish quotes on quotemark key
+partial alphanumeric_keys
+xkb_symbols "dvorak_quotes" {
+ include "pl(dvorak)"
+
+ name[Group1] = "Polish (Dvorak, Polish quotes on quotemark key)";
+
+ key <AD01> { [ apostrophe, quotedbl, doublelowquotemark, rightdoublequotemark ] };
+
+ // Dead symbols moved to this key
+ key <AE01> { [ 1, exclam, dead_acute, dead_diaeresis ] };
+};
+
+// Polish keymap with Polish quotes on key "1/!"
+partial alphanumeric_keys
+xkb_symbols "dvorak_altquotes" {
+ include "pl(dvorak)"
+
+ name[Group1] = "Polish (Dvorak, Polish quotes on key 1)";
+
+ key <AE01> { [ 1, exclam, doublelowquotemark, rightdoublequotemark ] };
+};
+
+// Polish Programmer Dvorak keymap by Michal Nazarewicz <mina86@mina86.com>
+// based on Programmer Dvorak by Roland Kaufmann <rlndkfmn at gmail dot com>
+// and Polish Dvorak keymaps by Rafal Rzepecki <divide@users.sf.net
+// and latin(basic)
+//
+// * Numbers are in shift position (like French).
+// * Symbols have been placed in locations that give good
+// hand-alternation and finger rolling with symbols that usually
+// follows.
+// * Polish diacritics on AltGr+"acelnosxz" (same as in basic pl(basic)).
+// * Aditionaly, zacute on AltGr+"v" so that both zacute and zabovedot
+// next to each other same as in pl(basic).
+// * Polish open and close quotes on AltGr+& (same location as in
+// pl(dvp_altquotes)).
+// * English open quote on AltGr+k (same location as in latin(basic))
+// * English/Polish close quote on AltGr+b (similar location as in
+// latin(basic) but moved right because AltGr+x is taken for zacute).
+// * Polish open and close quote on AltGr+j.
+//
+// Those rules overwrite only the following rules from us(dvp):
+// * ccedilla on AltGr+c
+// * aring on Alt+a
+// * oslash/Ooblique on Alt+o
+// * ae on Alt+e
+// * ntilde on Alt+n
+//
+partial alphanumeric_keys
+xkb_symbols "dvp" {
+ include "us(dvp)"
+
+ name[Group1] = "Polish (programmer Dvorak)";
+
+ // Unmodified Shift AltGr Shift+AltGr
+ // symbols row, left side
+ key <AE01> { [ ampersand, percent, doublelowquotemark, rightdoublequotemark ] };
+
+ // symbols row, right side
+
+ // upper row, left side
+
+ // // upper row, right side
+ key <AD08> { [ c, C, cacute, Cacute ] };
+ key <AD10> { [ l, L, lstroke, Lstroke ] };
+
+ // home row, left side
+ key <AC01> { [ a, A, aogonek, Aogonek ], type[Group1] = "EIGHT_LEVEL_ALPHABETIC" };
+ key <AC02> { [ o, O, oacute, Oacute ] };
+ key <AC03> { [ e, E, eogonek, Eogonek ] };
+
+ // home row, right side
+ key <AC09> { [ n, N, nacute, Nacute ] };
+ key <AC10> { [ s, S, sacute, Sacute ] };
+ key <AC11> { [ minus, underscore, hyphen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
+ key <BKSL> { [ backslash, bar ] };
+
+ // lower row, left side
+ key <AB03> { [ j, J, doublelowquotemark, rightdoublequotemark ] };
+ key <AB04> { [ k, K, leftdoublequotemark, leftsinglequotemark ] };
+ key <AB05> { [ x, X, zacute, Zacute ] };
+
+ // lower row, right side
+ key <AB06> { [ b, B, rightdoublequotemark, rightsinglequotemark ] };
+ key <AB09> { [ v, V, zacute, Zacute ] };
+ key <AB10> { [ z, Z, zabovedot, Zabovedot ] };
+
+ include "kpdl(comma)"
+
+ // this to allow writing ALL CAPS with a Shift key
+ include "level3(ralt_switch)"
+
+ // use one of compose:* options to choose Multi_key, if you will,
+ // or layout +level3(ralt_switch_multikey) to revert standard behaviour
+};
+
+
+partial alphanumeric_keys
+xkb_symbols "csb" {
+
+ include "latin"
+
+ name[Group1]="Kashubian";
+
+ key <AD01> { [ q, Q ] };
+ key <AD02> { [ w, W ] };
+ key <AD03> { [ e, E, eacute, Eacute ] };
+ key <AD04> { [ r, R, ediaeresis, Ediaeresis ] };
+ key <AD06> { [ y, Y, EuroSign, cent ] };
+ key <AD07> { [ u, U, ugrave, Ugrave ] };
+ key <AD08> { [ i, I, ograve, Ograve ] };
+ key <AD09> { [ o, O, oacute, Oacute ] };
+ key <AD10> { [ p, P, ocircumflex, Ocircumflex ] };
+
+ key <AC01> { [ a, A, aogonek, Aogonek ] };
+ key <AC02> { [ s, S, atilde, Atilde ] };
+ key <AC04> { [ f, F ] };
+ key <AC09> { [ l, L, lstroke, Lstroke ] };
+
+ key <AB01> { [ z, Z, zabovedot, Zabovedot ] };
+ key <AB06> { [ n, N, nacute, Nacute ] };
+
+ include "kpdl(comma)"
+
+ include "level3(ralt_switch)"
+};
+
+// Russian Polish-phonetic Dvorak
+// by Adrian Dziubek <adrian.dziubek@gmail.com>
+//
+// This layout aims to enable Polish Dvorak users to type with Russian
+// Cyrillic alphabet by using the sound correspondence between Polish and
+// Russian languages.
+//
+// This keyboard should be intuitive. Please let me know, if my intuition
+// lets You down.
+//
+// The guidelines used:
+// - no Cyrillic symbols are placed on punctuation symbols,
+// - visual similarities are ignored if there is a sound correspondence:
+// no Cyrillic_es on c, no Cyrillic_er on p, no Cyrillic_ha on x etc.,
+// - the Latin symbols that have close sound correspondence (as read in Polish)
+// to Cyrillic symbols (as read in Russian) are mapped respectively:
+// * j -> Cyrillic_shorti,
+// * k -> Cyrillic_ka,
+// * b -> Cyrillic_be,
+// * m -> Cyrillic_em,
+// * w -> Cyrillic_ve,
+// * z -> Cyrillic_ze
+// * a -> Cyrillic_a,
+// * o -> Cyrillic_o,
+// * u -> Cyrillic_u,
+// * i -> Cyrillic_i,
+// * d -> Cyrillic_de,
+// * h -> Cyrillic_ha,
+// * t -> Cyrillic_te,
+// * n -> Cyrillic_en,
+// * s -> Cyrillic_es,
+// * p -> Cyrillic_pe,
+// * y -> Cyrillic_yeru,
+// * f -> Cyrillic_ef,
+// * g -> Cyrillic_ghe,
+// * c -> Cyrillic_tse,
+// * r -> Cyrillic_er,
+// * l -> Cyrillic_el,
+// - ...and little more distant:
+// * AltGr + s (sacute) -> Cyrillic_sha,
+// * AltGr + z (zabovedot) -> Cyrillic_zhe,
+// * AltGr + c (cacute) -> Cyrillic_che,
+// - the soft versions of Russian vowels are accessible through AltGr + vowel:
+// * AltGr + a -> Cyrillic_ya,
+// * AltGr + o -> Cyrillic_io,
+// * AltGr + u -> Cyrillic_yu,
+// - ...except for Cyrillic_ie which is more frequently used than Cyrillic_e:
+// * AltGr + e -> Cyrillic_e,
+// * e -> Cyrillic_ie,
+// - q is also mapped to Cyrillic_ya, following the US phonetic keyboard
+// choice, as Cyrillic_ya and Cyrillic_a are both often used:
+// * q -> Cyrillic_ya,
+// - the soft and hard symbols that have no Polish counterparts are mapped
+// to rarely used in Polish x character:
+// * x -> Cyrillic_softsign
+// * AltGr + x -> Cyrillic_hardsign,
+// - the soft sign is additionally available as AltGr + consonant combination
+// for every consonant that can be softened or separated by soft sign:
+// * AltGr + l -> Cyrillic_softsign,
+// * AltGr + d -> Cyrillic_softsign,
+// * AltGr + n -> Cyrillic_softsign,
+// * AltGr + r -> Cyrillic_softsign,
+// * AltGr + t -> Cyrillic_softsign,
+// * AltGr + p -> Cyrillic_softsign,
+// - ...and also because of visual similarity under level3 b:
+// * AltGr + b -> Cyrillic_softsign,
+// * Shift + AltGr + b -> Cyrillic_hardsign,
+// - the Cyrillic_shcha symbol is placed under AltGr + w (visual similarity):
+// * AltGr + w -> Cyrillic_shcha
+// - v, also rarely unused in Polish is mapped like w:
+// * v -> Cyrillic_ve,
+//
+partial alphanumeric_keys
+xkb_symbols "ru_phonetic_dvorak" {
+ include "us(dvorak)"
+
+ name[Group1] = "Russian (Poland, phonetic Dvorak)";
+
+ // lower row
+ key <AB02> { [ Cyrillic_ya, Cyrillic_YA ] };
+ key <AB03> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
+ key <AB04> { [ Cyrillic_ka, Cyrillic_KA ] };
+ key <AB05> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <AB06> { [ Cyrillic_be, Cyrillic_BE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+ key <AB07> { [ Cyrillic_em, Cyrillic_EM ] };
+ key <AB08> { [ Cyrillic_ve, Cyrillic_VE, Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <AB09> { [ Cyrillic_ve, Cyrillic_VE, Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <AB10> { [ Cyrillic_ze, Cyrillic_ZE, Cyrillic_zhe, Cyrillic_ZHE ] };
+ // home row
+ key <AC01> { [ Cyrillic_a, Cyrillic_A, Cyrillic_ya, Cyrillic_YA ] };
+ key <AC02> { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] };
+ key <AC03> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ] };
+ key <AC04> { [ Cyrillic_u, Cyrillic_U, Cyrillic_yu, Cyrillic_YU ] };
+ key <AC05> { [ Cyrillic_i, Cyrillic_I ] };
+ key <AC06> { [ Cyrillic_de, Cyrillic_DE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <AC07> { [ Cyrillic_ha, Cyrillic_HA ] };
+ key <AC08> { [ Cyrillic_te, Cyrillic_TE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <AC09> { [ Cyrillic_en, Cyrillic_EN, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <AC10> { [ Cyrillic_es, Cyrillic_ES, Cyrillic_sha, Cyrillic_SHA ] };
+ // upper row
+ key <AD04> { [ Cyrillic_pe, Cyrillic_PE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <AD05> { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key <AD06> { [ Cyrillic_ef, Cyrillic_EF ] };
+ key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key <AD08> { [ Cyrillic_tse, Cyrillic_TSE, Cyrillic_che, Cyrillic_CHE ] };
+ key <AD09> { [ Cyrillic_er, Cyrillic_ER, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <AD10> { [ Cyrillic_el, Cyrillic_EL, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+
+ include "kpdl(comma)"
+
+ include "level3(ralt_switch)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/pt b/xorg-server/xkeyboard-config/symbols/pt
index e4472d1ec..d55af93b6 100644
--- a/xorg-server/xkeyboard-config/symbols/pt
+++ b/xorg-server/xkeyboard-config/symbols/pt
@@ -47,7 +47,7 @@ xkb_symbols "nodeadkeys" {
include "pt(basic)" // for consistent naming
- name[Group1]="Portugal - Eliminate dead keys";
+ name[Group1]="Portuguese (eliminate dead keys)";
key <AE12> { [guillemotleft, guillemotright, cedilla, ogonek ] };
key <AD11> { [ plus, asterisk, quotedbl, quotedbl ] };
@@ -67,7 +67,7 @@ xkb_symbols "mac" {
// keyboard and a very simple Portuguese keybaord
include "pt"
- name[Group1]= "Portugal - Macintosh";
+ name[Group1]= "Portuguese (Macintosh)";
key <AE06> { [ 6, ampersand, threequarters, fiveeighths ] };
key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
@@ -82,7 +82,7 @@ xkb_symbols "mac" {
partial alphanumeric_keys
xkb_symbols "mac_sundeadkeys" {
include "pt(mac)"
- name[Group1]= "Portugal - Macintosh, Sun dead keys";
+ name[Group1]= "Portuguese (Macintosh, Sun dead keys)";
key <AE12> { [ plus, asterisk, dead_diaeresis, dead_diaeresis ] };
key <AC11> { [ dead_tilde, dead_circumflex ] };
@@ -92,7 +92,7 @@ xkb_symbols "mac_sundeadkeys" {
partial alphanumeric_keys
xkb_symbols "mac_nodeadkeys" {
include "pt(mac)"
- name[Group1]= "Portugal - Macintosh, eliminate dead keys";
+ name[Group1]= "Portuguese (Macintosh, eliminate dead keys)";
key <AE12> { [ plus, asterisk, quotedbl, quotedbl ] };
key <AC11> { [ asciitilde, asciicircum ] };
@@ -110,7 +110,7 @@ xkb_symbols "mac_nodeadkeys" {
partial alphanumeric_keys
xkb_symbols "nativo" {
- name[Group1]="Portugal - Nativo";
+ name[Group1]="Portuguese (Nativo)";
// Numeric row
key <TLDE> { [ plus, asterisk, dead_diaeresis, plusminus ] };
@@ -186,7 +186,7 @@ partial alphanumeric_keys
xkb_symbols "nativo-us" {
include "pt(nativo)"
- name[Group1]="Portugal - Nativo for USA keyboards";
+ name[Group1]="Portuguese (Nativo for USA keyboards)";
// Lower row
key <AB01> { [ y, Y, ccedilla, Ccedilla ] };
@@ -205,7 +205,7 @@ partial alphanumeric_keys
xkb_symbols "nativo-epo" {
include "pt(nativo)"
- name[Group1]="Portugal - Nativo for Esperanto";
+ name[Group1]="Esperanto (Portugal, Nativo)";
// Upper row Esperanto
key <AD04> { [ h, H, hcircumflex, Hcircumflex ] };
diff --git a/xorg-server/xkeyboard-config/symbols/ro b/xorg-server/xkeyboard-config/symbols/ro
index 1d405a76a..58e58c561 100644
--- a/xorg-server/xkeyboard-config/symbols/ro
+++ b/xorg-server/xkeyboard-config/symbols/ro
@@ -25,7 +25,7 @@ xkb_symbols "basic" {
include "us"
- name[Group1]="Romania";
+ name[Group1]="Romanian";
key <AE01> { [ 1, exclam, dead_tilde ] };
key <AE02> { [ 2, at, dead_caron ] };
@@ -67,7 +67,7 @@ xkb_symbols "cedilla" {
include "ro(basic)"
- name[Group1]="Romania - Cedilla";
+ name[Group1]="Romanian (cedilla)";
key <AD05> { [ t, T, tcedilla, Tcedilla ] };
key <AC02> { [ s, S, scedilla, Scedilla ] };
@@ -82,7 +82,7 @@ xkb_symbols "std" {
include "us"
- name[Group1]="Romania - Standard";
+ name[Group1]="Romanian (standard)";
key <TLDE> { [ doublelowquotemark, rightdoublequotemark, grave, asciitilde ] };
key <AE01> { [ 1, exclam, dead_tilde ] };
@@ -126,7 +126,7 @@ xkb_symbols "std_cedilla" {
include "ro(std)"
- name[Group1]="Romania - Standard (Cedilla)";
+ name[Group1]="Romanian (standard cedilla)";
key <AC10> { [ scedilla, Scedilla ] };
key <AC11> { [ tcedilla, Tcedilla ] };
@@ -141,7 +141,7 @@ xkb_symbols "winkeys" {
include "latin"
- name[Group1]="Romania - Winkeys";
+ name[Group1]="Romanian (WinKeys)";
// Alphanumeric section
key <TLDE> { [ bracketright, bracketleft ] };
@@ -202,7 +202,7 @@ xkb_symbols "crh_dobruja" {
include "tr(crh)"
- name[Group1]="Romania - Crimean Tatar (Dobruja Q)";
+ name[Group1]="Crimean Tatar (Dobruja Q)";
key <AD02> { [ w, W, abreve, Abreve ] };
key <AD05> { [ t, T, 0x100021b, 0x100021a ] };
@@ -224,7 +224,7 @@ xkb_symbols "ergonomic" {
include "ro(basic)"
- name[Group1]="Romania - Ergonomic Touchtype";
+ name[Group1]="Romanian (ergonomic Touchtype)";
key <AD01> { [ abreve, Abreve, q, Q ] };
key <AD02> { [ 0x1000219, 0x1000218, w, W ] };
diff --git a/xorg-server/xkeyboard-config/symbols/rs b/xorg-server/xkeyboard-config/symbols/rs
index d4628852f..71541bcbc 100644
--- a/xorg-server/xkeyboard-config/symbols/rs
+++ b/xorg-server/xkeyboard-config/symbols/rs
@@ -16,7 +16,7 @@
default partial alphanumeric_keys
xkb_symbols "basic" {
- name[Group1]= "Serbia";
+ name[Group1]= "Serbian";
include "rs(cyrlevel3)"
include "rs(common)"
@@ -28,7 +28,7 @@ xkb_symbols "basic" {
partial alphanumeric_keys
xkb_symbols "latin" {
- name[Group1]= "Serbia - Latin";
+ name[Group1]= "Serbian (Latin)";
include "latin(type3)"
include "rs(latalpha)"
@@ -42,7 +42,7 @@ partial alphanumeric_keys
xkb_symbols "yz" {
// Cyrillic_zhe and Cyrillic_ze swapped.
- name[Group1]= "Serbia - Z and ZHE swapped";
+ name[Group1]= "Serbian (Z and ZHE swapped)";
include "rs(basic)"
@@ -247,7 +247,7 @@ xkb_symbols "latinunicode" {
// This mapping supports the Unicode characters 0x1c4-0x1cc (dz, lj, and nj
// as single character). You get the title form with AltGr+Shift.
- name[Group1]= "Serbia - Latin Unicode";
+ name[Group1]= "Serbian (Latin Unicode)";
include "rs(latin)"
include "rs(twoletter)"
@@ -257,7 +257,7 @@ partial alphanumeric_keys
xkb_symbols "latinyz" {
// For those who insist on using "english-position" Z and Y.
- name[Group1]= "Serbia - Latin qwerty";
+ name[Group1]= "Serbian (Latin qwerty)";
include "rs(latin)"
@@ -269,7 +269,7 @@ partial alphanumeric_keys
xkb_symbols "latinunicodeyz" {
// Unicode, ZHE and Z swapped.
- name[Group1]= "Serbia - Latin Unicode qwerty";
+ name[Group1]= "Serbian (Latin Unicode qwerty)";
include "rs(latinunicode)"
@@ -280,7 +280,7 @@ xkb_symbols "latinunicodeyz" {
xkb_symbols "alternatequotes" {
// Another acceptable »pair of quotes« for Serbian
- name[Group1]= "Serbia - With guillemets";
+ name[Group1]= "Serbian (with guillemets)";
include "rs(basic)"
@@ -291,7 +291,7 @@ xkb_symbols "alternatequotes" {
xkb_symbols "latinalternatequotes" {
// Another acceptable »pair of quotes« for Serbian
- name[Group1]= "Serbia - Latin with guillemets";
+ name[Group1]= "Serbian (Latin with guillemets)";
include "rs(latin)"
@@ -304,7 +304,7 @@ xkb_symbols "rue" {
// Croatia by the Rusyn people), based on Ukrainian homophonic.
// Author: Ljubomir J. Papuga (Любомир Я. Папуґа) <papuga.rs@gmail.com>
- name[Group1]= "Serbia - Pannonian Rusyn Homophonic";
+ name[Group1]= "Pannonian Rusyn (homophonic)";
include "ua(homophonic)"
@@ -332,7 +332,7 @@ xkb_symbols "combiningkeys" {
// Raw combining characters instead of dead keys,
// especially good for post-accenting texts.
- name[Group1]= "Serbia - Combining accents instead of dead keys";
+ name[Group1]= "Serbian (combining accents instead of dead keys)";
include "rs(basic)"
diff --git a/xorg-server/xkeyboard-config/symbols/ru b/xorg-server/xkeyboard-config/symbols/ru
index 79323ca89..7cbb28f46 100644
--- a/xorg-server/xkeyboard-config/symbols/ru
+++ b/xorg-server/xkeyboard-config/symbols/ru
@@ -9,7 +9,7 @@ partial default alphanumeric_keys
xkb_symbols "winkeys" {
include "ru(common)"
- name[Group1]= "Russia";
+ name[Group1]= "Russian";
key <AE03> { [ 3, numerosign ] };
key <AE04> { [ 4, semicolon ] };
@@ -84,7 +84,7 @@ partial alphanumeric_keys
xkb_symbols "legacy" {
include "ru(common)"
- name[Group1]= "Russia - Legacy";
+ name[Group1]= "Russian (legacy)";
};
partial alphanumeric_keys
@@ -106,7 +106,7 @@ xkb_symbols "olpc" {
partial alphanumeric_keys
xkb_symbols "typewriter" {
include "ru(common)"
- name[Group1]= "Russia - Typewriter";
+ name[Group1]= "Russian (typewriter)";
key <TLDE> { [ bar, plus ] };
key <AE01> { [ numerosign, 1 ] };
key <AE02> { [ minus, 2 ] };
@@ -130,7 +130,7 @@ xkb_symbols "typewriter" {
partial alphanumeric_keys
xkb_symbols "typewriter-legacy" {
include "ru(common)"
- name[Group1]= "Russia - Typewriter, legacy";
+ name[Group1]= "Russian (typewriter, legacy)";
key <TLDE> { [ apostrophe, quotedbl ] };
key <AE01> { [ exclam, 1 ] };
key <AE02> { [ numerosign, 2 ] };
@@ -151,7 +151,7 @@ xkb_symbols "typewriter-legacy" {
partial alphanumeric_keys
xkb_symbols "phonetic" {
- name[Group1]= "Russia - Phonetic";
+ name[Group1]= "Russian (phonetic)";
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
@@ -210,7 +210,7 @@ partial alphanumeric_keys
xkb_symbols "phonetic_winkeys" {
include "ru(phonetic)"
- name[Group1]= "Russia - Phonetic Winkeys";
+ name[Group1]= "Russian (phonetic WinKeys)";
key <LatX> { [ Cyrillic_ha, Cyrillic_HA ] };
key <LatH> { [ Cyrillic_che, Cyrillic_CHE ] };
@@ -221,7 +221,7 @@ xkb_symbols "phonetic_winkeys" {
partial alphanumeric_keys
xkb_symbols "tt" {
include "ru(winkeys)"
- name[Group1]= "Russia - Tatar";
+ name[Group1]= "Tatar";
key.type[group1]="FOUR_LEVEL";
@@ -246,7 +246,7 @@ partial alphanumeric_keys
xkb_symbols "os_legacy" {
include "ru(common)"
- name[Group1]= "Russia - Ossetian, legacy";
+ name[Group1]= "Ossetian (legacy)";
key <TLDE> { [ Cyrillic_e, Cyrillic_E ] };
key <AC07> { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] };
@@ -257,7 +257,7 @@ partial alphanumeric_keys
xkb_symbols "os_winkeys" {
include "ru(winkeys)"
- name[Group1]= "Russia - Ossetian, Winkeys";
+ name[Group1]= "Ossetian (WinKeys)";
key <TLDE> { [ Cyrillic_e, Cyrillic_E ] };
key <AC07> { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] };
@@ -268,7 +268,7 @@ partial alphanumeric_keys
xkb_symbols "cv" {
include "ru(winkeys)"
- name[Group1]= "Russia - Chuvash";
+ name[Group1]= "Chuvash";
key.type[group1]="FOUR_LEVEL";
@@ -288,7 +288,7 @@ partial alphanumeric_keys
xkb_symbols "udm" {
include "ru(winkeys)"
- name[Group1]= "Russia - Udmurt";
+ name[Group1]= "Udmurt";
key.type[group1]="FOUR_LEVEL";
@@ -310,7 +310,7 @@ partial alphanumeric_keys
xkb_symbols "cv_latin" {
include "us(alt-intl)"
- name[Group1]= "Russia - Chuvash Latin";
+ name[Group1]= "Chuvash (Latin)";
key.type[group1]="FOUR_LEVEL";
@@ -341,7 +341,7 @@ xkb_symbols "kom" {
include "ru(winkeys)"
- name[Group1]= "Russia - Komi";
+ name[Group1]= "Komi";
key.type[group1]="FOUR_LEVEL_ALPHABETIC";
@@ -365,7 +365,7 @@ xkb_symbols "sah" {
include "ru(winkeys)"
- name[Group1]= "Russia - Yakut";
+ name[Group1]= "Yakut";
key.type[group1]="FOUR_LEVEL_ALPHABETIC";
@@ -409,7 +409,7 @@ partial alphanumeric_keys
xkb_symbols "xal" {
include "ru(winkeys)"
- name[Group1]= "Russia - Kalmyk";
+ name[Group1]= "Kalmyk";
key.type[group1]="FOUR_LEVEL";
@@ -445,7 +445,7 @@ xkb_symbols "dos" {
include "ru(common)"
- name[Group1]= "Russia - DOS";
+ name[Group1]= "Russian (DOS)";
key <TLDE> { [ parenright, parenleft ] };
key <AE04> { [ 4, currency ] };
@@ -459,7 +459,7 @@ partial alphanumeric_keys
xkb_symbols "bak" {
include "ru(winkeys)"
- name[Group1]= "Russia - Bashkirian";
+ name[Group1]= "Bashkirian";
key.type[group1]="FOUR_LEVEL";
key <TLDE> { [ 0x010004d9, 0x010004d8, Cyrillic_io, Cyrillic_IO ] };
@@ -487,7 +487,7 @@ xkb_symbols "srp" {
include "ru(common)"
include "level3(ralt_switch)"
- name[Group1]= "Russia - Serbian";
+ name[Group1]= "Serbian (Russia)";
key <AE03> { [ 3, numerosign ] };
key <AE04> { [ 4, semicolon ] };
@@ -512,7 +512,7 @@ partial alphanumeric_keys
xkb_symbols "chm" {
include "ru(common)"
- name[Group1]= "Russia - Mari";
+ name[Group1]= "Mari";
key.type[group1]="FOUR_LEVEL_ALPHABETIC";
key <AC04> { [ Cyrillic_a, Cyrillic_A, U04D3, U04D2 ] };
@@ -537,7 +537,7 @@ xkb_symbols "chm" {
partial alphanumeric_keys
xkb_symbols "chu"
{
- name[Group1]= "Russia - Church Slavonic";
+ name[Group1]= "Church Slavonic";
key <TLDE> { [ U0457, U0407, U0482, U20DD ] }; // ї Ї ҂ e.g: а⃝ where the last is a combining ten thousands sign
key <AE01> { [ U0461, U0460, U047D, U047C] }; // ѡ Ѡ ѽ Ѽ
key <AE02> { [ U0454, U0404, U0465, U0464] }; // є Є ѥ Ѥ
diff --git a/xorg-server/xkeyboard-config/symbols/se b/xorg-server/xkeyboard-config/symbols/se
index 7ba3b36db..d2865c338 100644
--- a/xorg-server/xkeyboard-config/symbols/se
+++ b/xorg-server/xkeyboard-config/symbols/se
@@ -1,253 +1,253 @@
-// based on a keyboard map from an 'xkb/symbols/se' file
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
- include "latin(type2)"
- include "se(se)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "se" {
-
- name[Group1]="Sweden";
-
- key <AE05> { [ 5, percent, EuroSign, cent ] };
- key <AE11> { [ plus, question, backslash, questiondown ] };
- key <AE12> { [dead_acute, dead_grave, plusminus, notsign ] };
-
-
- key <AC10> { [odiaeresis, Odiaeresis, oslash, Ooblique ] };
- key <AC11> { [adiaeresis, Adiaeresis, ae, AE ] };
- key <TLDE> { [ section, onehalf, paragraph, threequarters] };
-
- key <BKSL> { [apostrophe, asterisk, acute, multiply ] };
-
- key <SPCE> { [ space, space, space, nobreakspace ] };
-
- key <LSGT> { [ less, greater, bar, brokenbar ] };
- include "kpdl(comma)"
-
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "nodeadkeys" {
-
- // Modifies the basic Swedish layout to eliminate all dead keys
-
- include "latin(type2)"
- include "latin(type2_nodeadkeys)"
- include "se(se)"
-
- name[Group1]="Sweden - Eliminate dead keys";
-
- key <AE12> { [ acute, grave, plusminus, notsign ] };
-
-};
-
-// Swedish Dvorak
-partial alphanumeric_keys
-xkb_symbols "dvorak" {
-
- name[Group1]="Sweden - Dvorak";
-
- include "se(basic)"
-
- key <AD01> { [ aring, Aring, backslash ] };
- key <AD02> { [ adiaeresis, Adiaeresis, braceleft, bracketleft ] };
- key <AD03> { [ odiaeresis, Odiaeresis, braceright, bracketright ] };
- key <AD04> { [ p, P, thorn, THORN ] };
- key <AD05> { [ y, Y, leftarrow, yen ] };
- key <AD06> { [ f, F, dstroke, ordfeminine ] };
- key <AD07> { [ g, G, eng, ENG ] };
- key <AD08> { [ c, C, copyright, copyright ] };
- key <AD09> { [ r, R, registered, registered ] };
- key <AD10> { [ l, L, lstroke, Lstroke ] };
- key <AD11> { [ comma, semicolon, dead_cedilla, dead_ogonek ] };
- key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde, asciicircum ] };
-
- key <AC01> { [ a, A, ae, AE ] };
- key <AC02> { [ o, O, oe, OE ] };
- key <AC03> { [ e, E, EuroSign, cent ] };
- key <AC04> { [ u, U, downarrow, uparrow ] };
- key <AC05> { [ i, I, rightarrow, idotless ] };
- key <AC06> { [ d, D, eth, ETH ] };
- key <AC07> { [ h, H, hstroke, Hstroke ] };
- key <AC08> { [ t, T, tslash, Tslash ] };
- key <AC09> { [ n, N ] };
- key <AC10> { [ s, S, ssharp, section ] };
- key <AC11> { [ minus, underscore, dead_belowdot, dead_abovedot ] };
-
- key <AB01> { [ period, colon, periodcentered, dead_abovedot ] };
- key <AB02> { [ q, Q, at, Greek_OMEGA ] };
- key <AB03> { [ j, J ] };
- key <AB04> { [ k, K, kra, ampersand ] };
- key <AB05> { [ x, X, guillemotright, greater ] };
- key <AB06> { [ b, B, rightdoublequotemark, apostrophe ] };
- key <AB07> { [ m, M, mu, masculine ] };
- key <AB08> { [ w, W, lstroke, Lstroke ] };
- key <AB09> { [ v, V, leftdoublequotemark, grave ] };
- key <AB10> { [ z, Z, guillemotleft, less ] };
-};
-
-// Ivan Popov, 2005-07-17
-// phonetic layout for Russian cyrillic letters
-// on Swedish (latin type2) keyboards
-
-// level3 modifier is a shortcut to the "se" meaning of the keys where
-// we place cyrillic letters, handy for accessing the corresponding
-// punctuation marks.
-// It is important to have access to punctuation marks, and the rest of
-// alphabetical keys are added for being consequent so that the users
-// can expect the level3 modifier to give what the key label shows.
-
-partial alphanumeric_keys
-xkb_symbols "rus" {
- include "se(basic)"
-
- name[Group1]="Sweden - Russian phonetic";
- key.type[group1]="ALPHABETIC";
-
- key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
- key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
-
- key <AD01> { [ Cyrillic_ya, Cyrillic_YA ] };
- key <AD02> { [ Cyrillic_ve, Cyrillic_VE ] };
- key <AD03> { [ Cyrillic_ie, Cyrillic_IE ] };
- key <AD04> { [ Cyrillic_er, Cyrillic_ER ] };
- key <AD05> { [ Cyrillic_te, Cyrillic_TE ] };
- key <AD06> { [ Cyrillic_yeru, Cyrillic_YERU ] };
- key <AD07> { [ Cyrillic_u, Cyrillic_U ] };
- key <AD08> { [ Cyrillic_i, Cyrillic_I ] };
- key <AD09> { [ Cyrillic_o, Cyrillic_O ] };
- key <AD10> { [ Cyrillic_pe, Cyrillic_PE ] };
- key <AD11> { [ Cyrillic_e, Cyrillic_E ] };
-
- key <AC01> { [ Cyrillic_a, Cyrillic_A ] };
- key <AC02> { [ Cyrillic_es, Cyrillic_ES ] };
- key <AC03> { [ Cyrillic_de, Cyrillic_DE ] };
- key <AC04> { [ Cyrillic_ef, Cyrillic_EF ] };
- key <AC05> { [ Cyrillic_ghe, Cyrillic_GHE ] };
- key <AC06> { [ Cyrillic_ha, Cyrillic_HA ] };
- key <AC07> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
- key <AC08> { [ Cyrillic_ka, Cyrillic_KA ] };
- key <AC09> { [ Cyrillic_el, Cyrillic_EL ] };
- key <AC10> { [ Cyrillic_sha, Cyrillic_SHA ] };
- key <AC11> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
- key <BKSL> { [ Cyrillic_yu, Cyrillic_YU ] };
-
- key <LSGT> { [ Cyrillic_che, Cyrillic_CHE ] };
- key <AB01> { [ Cyrillic_ze, Cyrillic_ZE ] };
- key <AB02> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- key <AB03> { [ Cyrillic_tse, Cyrillic_TSE ] };
- key <AB04> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
- key <AB05> { [ Cyrillic_be, Cyrillic_BE ] };
- key <AB06> { [ Cyrillic_en, Cyrillic_EN ] };
- key <AB07> { [ Cyrillic_em, Cyrillic_EM ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "rus_nodeadkeys" {
-
- include "se(nodeadkeys)"
- include "se(rus)"
-
- name[Group1]="Sweden - Russian phonetic, eliminate dead keys";
-
- key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
-};
-
-xkb_symbols "smi" {
-
- // Describes the differences between a Norwegian Northern Sami
- // (keyboard with dead key support) and a Swedish/Finnish Sami
- // keyboard according to the specs at:
- // http://www.hum.uit.no/a/trond/se-lat9-sefi-keys.html
-
- include "fi(smi)"
-
- name[Group1]= "Sweden - Northern Saami";
-};
-
-// Copied from macintosh_vndr/se
-partial alphanumeric_keys
-xkb_symbols "mac" {
-
- // Describes the differences between a very simple en_US
- // keyboard and a very simple Swedish(Sweden) keybaord
-
- include "latin"
- name[Group1]= "Sweden - Macintosh";
-
- key <TLDE> { [ section, degree ] };
- key <AE01> { [ 1, exclam, copyright, exclamdown ] };
- key <AE02> { [ 2, quotedbl, at, oneeighth ] };
- key <AE03> { [ 3, numbersign, sterling, yen ] };
- key <AE04> { [ 4, currency, dollar, cent ] };
- key <AE06> { [ 6, ampersand ] };
- key <AE07> { [ 7, slash, bar, backslash ] };
- key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
- key <AE09> { [ 9, parenright, bracketright, braceright ] };
- key <AB08> { [ comma, semicolon ] };
- key <AE10> { [ 0, equal ] };
- key <AB09> { [ period, colon ] };
- key <AB10> { [ minus, underscore ] };
- key <AC10> { [ odiaeresis, Odiaeresis, oslash, Ooblique ] };
- key <AE11> { [ plus, question ] };
- key <AC11> { [ adiaeresis, Adiaeresis, ae, AE ] };
- key <AD11> { [ aring, Aring ] };
- key <AE12> { [ acute, grave ] };
- key <AD12> { [ diaeresis, asciicircum, asciitilde ] };
- key <BKSL> { [ apostrophe, asterisk, at ] };
-
- include "kpdl(comma)"
- include "level3(ralt_switch)"
-};
-
-// Svdvorak
-// This version of Dvorak follows danish and norwegian style in hope for a
-// Scandinavian standard.
-partial alphanumeric_keys
-xkb_symbols "svdvorak" {
-
- name[Group1]="Sweden - Svdvorak";
-
- include "se(basic)"
-
- key <AD01> { [ aring, Aring, braceleft ] };
- key <AD02> { [ comma, semicolon, bracketleft ] };
- key <AD03> { [ period, colon, bracketright ] };
- key <AD04> { [ p, P, braceright ] };
- key <AD05> { [ y, Y ] };
- key <AD06> { [ f, F ] };
- key <AD07> { [ g, G ] };
- key <AD08> { [ c, C ] };
- key <AD09> { [ r, R ] };
- key <AD10> { [ l, L ] };
- key <AD11> { [ apostrophe, asterisk ] };
-
- key <AC01> { [ a, A ] };
- key <AC02> { [ o, O, parenleft ] };
- key <AC03> { [ e, E, parenright ] };
- key <AC04> { [ u, U ] };
- key <AC05> { [ i, I ] };
- key <AC06> { [ d, D ] };
- key <AC07> { [ h, H ] };
- key <AC08> { [ t, T ] };
- key <AC09> { [ n, N ] };
- key <AC10> { [ s, S, ssharp ] };
- key <AC11> { [ minus, underscore ] };
- key <BKSL> { [ less, greater, bar ] };
-
- key <LSGT> { [ odiaeresis, Odiaeresis ] };
- key <AB01> { [ adiaeresis, Adiaeresis ] };
- key <AB02> { [ q, Q ] };
- key <AB03> { [ j, J ] };
- key <AB04> { [ k, K ] };
- key <AB05> { [ x, X ] };
- key <AB06> { [ b, B ] };
- key <AB07> { [ m, M ] };
- key <AB08> { [ w, W ] };
- key <AB09> { [ v, V ] };
- key <AB10> { [ z, Z ] };
-};
+// based on a keyboard map from an 'xkb/symbols/se' file
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+ include "latin(type2)"
+ include "se(se)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "se" {
+
+ name[Group1]="Swedish";
+
+ key <AE05> { [ 5, percent, EuroSign, cent ] };
+ key <AE11> { [ plus, question, backslash, questiondown ] };
+ key <AE12> { [dead_acute, dead_grave, plusminus, notsign ] };
+
+
+ key <AC10> { [odiaeresis, Odiaeresis, oslash, Ooblique ] };
+ key <AC11> { [adiaeresis, Adiaeresis, ae, AE ] };
+ key <TLDE> { [ section, onehalf, paragraph, threequarters] };
+
+ key <BKSL> { [apostrophe, asterisk, acute, multiply ] };
+
+ key <SPCE> { [ space, space, space, nobreakspace ] };
+
+ key <LSGT> { [ less, greater, bar, brokenbar ] };
+ include "kpdl(comma)"
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "nodeadkeys" {
+
+ // Modifies the basic Swedish layout to eliminate all dead keys
+
+ include "latin(type2)"
+ include "latin(type2_nodeadkeys)"
+ include "se(se)"
+
+ name[Group1]="Swedish (eliminate dead keys)";
+
+ key <AE12> { [ acute, grave, plusminus, notsign ] };
+
+};
+
+// Swedish Dvorak
+partial alphanumeric_keys
+xkb_symbols "dvorak" {
+
+ name[Group1]="Swedish (Dvorak)";
+
+ include "se(basic)"
+
+ key <AD01> { [ aring, Aring, backslash ] };
+ key <AD02> { [ adiaeresis, Adiaeresis, braceleft, bracketleft ] };
+ key <AD03> { [ odiaeresis, Odiaeresis, braceright, bracketright ] };
+ key <AD04> { [ p, P, thorn, THORN ] };
+ key <AD05> { [ y, Y, leftarrow, yen ] };
+ key <AD06> { [ f, F, dstroke, ordfeminine ] };
+ key <AD07> { [ g, G, eng, ENG ] };
+ key <AD08> { [ c, C, copyright, copyright ] };
+ key <AD09> { [ r, R, registered, registered ] };
+ key <AD10> { [ l, L, lstroke, Lstroke ] };
+ key <AD11> { [ comma, semicolon, dead_cedilla, dead_ogonek ] };
+ key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde, asciicircum ] };
+
+ key <AC01> { [ a, A, ae, AE ] };
+ key <AC02> { [ o, O, oe, OE ] };
+ key <AC03> { [ e, E, EuroSign, cent ] };
+ key <AC04> { [ u, U, downarrow, uparrow ] };
+ key <AC05> { [ i, I, rightarrow, idotless ] };
+ key <AC06> { [ d, D, eth, ETH ] };
+ key <AC07> { [ h, H, hstroke, Hstroke ] };
+ key <AC08> { [ t, T, tslash, Tslash ] };
+ key <AC09> { [ n, N ] };
+ key <AC10> { [ s, S, ssharp, section ] };
+ key <AC11> { [ minus, underscore, dead_belowdot, dead_abovedot ] };
+
+ key <AB01> { [ period, colon, periodcentered, dead_abovedot ] };
+ key <AB02> { [ q, Q, at, Greek_OMEGA ] };
+ key <AB03> { [ j, J ] };
+ key <AB04> { [ k, K, kra, ampersand ] };
+ key <AB05> { [ x, X, guillemotright, greater ] };
+ key <AB06> { [ b, B, rightdoublequotemark, apostrophe ] };
+ key <AB07> { [ m, M, mu, masculine ] };
+ key <AB08> { [ w, W, lstroke, Lstroke ] };
+ key <AB09> { [ v, V, leftdoublequotemark, grave ] };
+ key <AB10> { [ z, Z, guillemotleft, less ] };
+};
+
+// Ivan Popov, 2005-07-17
+// phonetic layout for Russian cyrillic letters
+// on Swedish (latin type2) keyboards
+
+// level3 modifier is a shortcut to the "se" meaning of the keys where
+// we place cyrillic letters, handy for accessing the corresponding
+// punctuation marks.
+// It is important to have access to punctuation marks, and the rest of
+// alphabetical keys are added for being consequent so that the users
+// can expect the level3 modifier to give what the key label shows.
+
+partial alphanumeric_keys
+xkb_symbols "rus" {
+ include "se(basic)"
+
+ name[Group1]="Russian (Sweden, phonetic)";
+ key.type[group1]="ALPHABETIC";
+
+ key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
+ key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+
+ key <AD01> { [ Cyrillic_ya, Cyrillic_YA ] };
+ key <AD02> { [ Cyrillic_ve, Cyrillic_VE ] };
+ key <AD03> { [ Cyrillic_ie, Cyrillic_IE ] };
+ key <AD04> { [ Cyrillic_er, Cyrillic_ER ] };
+ key <AD05> { [ Cyrillic_te, Cyrillic_TE ] };
+ key <AD06> { [ Cyrillic_yeru, Cyrillic_YERU ] };
+ key <AD07> { [ Cyrillic_u, Cyrillic_U ] };
+ key <AD08> { [ Cyrillic_i, Cyrillic_I ] };
+ key <AD09> { [ Cyrillic_o, Cyrillic_O ] };
+ key <AD10> { [ Cyrillic_pe, Cyrillic_PE ] };
+ key <AD11> { [ Cyrillic_e, Cyrillic_E ] };
+
+ key <AC01> { [ Cyrillic_a, Cyrillic_A ] };
+ key <AC02> { [ Cyrillic_es, Cyrillic_ES ] };
+ key <AC03> { [ Cyrillic_de, Cyrillic_DE ] };
+ key <AC04> { [ Cyrillic_ef, Cyrillic_EF ] };
+ key <AC05> { [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key <AC06> { [ Cyrillic_ha, Cyrillic_HA ] };
+ key <AC07> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
+ key <AC08> { [ Cyrillic_ka, Cyrillic_KA ] };
+ key <AC09> { [ Cyrillic_el, Cyrillic_EL ] };
+ key <AC10> { [ Cyrillic_sha, Cyrillic_SHA ] };
+ key <AC11> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
+ key <BKSL> { [ Cyrillic_yu, Cyrillic_YU ] };
+
+ key <LSGT> { [ Cyrillic_che, Cyrillic_CHE ] };
+ key <AB01> { [ Cyrillic_ze, Cyrillic_ZE ] };
+ key <AB02> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
+ key <AB03> { [ Cyrillic_tse, Cyrillic_TSE ] };
+ key <AB04> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key <AB05> { [ Cyrillic_be, Cyrillic_BE ] };
+ key <AB06> { [ Cyrillic_en, Cyrillic_EN ] };
+ key <AB07> { [ Cyrillic_em, Cyrillic_EM ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "rus_nodeadkeys" {
+
+ include "se(nodeadkeys)"
+ include "se(rus)"
+
+ name[Group1]="Russian (Sweden, phonetic, eliminate dead keys)";
+
+ key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+};
+
+xkb_symbols "smi" {
+
+ // Describes the differences between a Norwegian Northern Sami
+ // (keyboard with dead key support) and a Swedish/Finnish Sami
+ // keyboard according to the specs at:
+ // http://www.hum.uit.no/a/trond/se-lat9-sefi-keys.html
+
+ include "fi(smi)"
+
+ name[Group1]= "Northern Saami (Sweden)";
+};
+
+// Copied from macintosh_vndr/se
+partial alphanumeric_keys
+xkb_symbols "mac" {
+
+ // Describes the differences between a very simple en_US
+ // keyboard and a very simple Swedish(Sweden) keybaord
+
+ include "latin"
+ name[Group1]= "Swedish (Macintosh)";
+
+ key <TLDE> { [ section, degree ] };
+ key <AE01> { [ 1, exclam, copyright, exclamdown ] };
+ key <AE02> { [ 2, quotedbl, at, oneeighth ] };
+ key <AE03> { [ 3, numbersign, sterling, yen ] };
+ key <AE04> { [ 4, currency, dollar, cent ] };
+ key <AE06> { [ 6, ampersand ] };
+ key <AE07> { [ 7, slash, bar, backslash ] };
+ key <AE08> { [ 8, parenleft, bracketleft, braceleft ] };
+ key <AE09> { [ 9, parenright, bracketright, braceright ] };
+ key <AB08> { [ comma, semicolon ] };
+ key <AE10> { [ 0, equal ] };
+ key <AB09> { [ period, colon ] };
+ key <AB10> { [ minus, underscore ] };
+ key <AC10> { [ odiaeresis, Odiaeresis, oslash, Ooblique ] };
+ key <AE11> { [ plus, question ] };
+ key <AC11> { [ adiaeresis, Adiaeresis, ae, AE ] };
+ key <AD11> { [ aring, Aring ] };
+ key <AE12> { [ acute, grave ] };
+ key <AD12> { [ diaeresis, asciicircum, asciitilde ] };
+ key <BKSL> { [ apostrophe, asterisk, at ] };
+
+ include "kpdl(comma)"
+ include "level3(ralt_switch)"
+};
+
+// Svdvorak
+// This version of Dvorak follows danish and norwegian style in hope for a
+// Scandinavian standard.
+partial alphanumeric_keys
+xkb_symbols "svdvorak" {
+
+ name[Group1]="Swedish (Svdvorak)";
+
+ include "se(basic)"
+
+ key <AD01> { [ aring, Aring, braceleft ] };
+ key <AD02> { [ comma, semicolon, bracketleft ] };
+ key <AD03> { [ period, colon, bracketright ] };
+ key <AD04> { [ p, P, braceright ] };
+ key <AD05> { [ y, Y ] };
+ key <AD06> { [ f, F ] };
+ key <AD07> { [ g, G ] };
+ key <AD08> { [ c, C ] };
+ key <AD09> { [ r, R ] };
+ key <AD10> { [ l, L ] };
+ key <AD11> { [ apostrophe, asterisk ] };
+
+ key <AC01> { [ a, A ] };
+ key <AC02> { [ o, O, parenleft ] };
+ key <AC03> { [ e, E, parenright ] };
+ key <AC04> { [ u, U ] };
+ key <AC05> { [ i, I ] };
+ key <AC06> { [ d, D ] };
+ key <AC07> { [ h, H ] };
+ key <AC08> { [ t, T ] };
+ key <AC09> { [ n, N ] };
+ key <AC10> { [ s, S, ssharp ] };
+ key <AC11> { [ minus, underscore ] };
+ key <BKSL> { [ less, greater, bar ] };
+
+ key <LSGT> { [ odiaeresis, Odiaeresis ] };
+ key <AB01> { [ adiaeresis, Adiaeresis ] };
+ key <AB02> { [ q, Q ] };
+ key <AB03> { [ j, J ] };
+ key <AB04> { [ k, K ] };
+ key <AB05> { [ x, X ] };
+ key <AB06> { [ b, B ] };
+ key <AB07> { [ m, M ] };
+ key <AB08> { [ w, W ] };
+ key <AB09> { [ v, V ] };
+ key <AB10> { [ z, Z ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/si b/xorg-server/xkeyboard-config/symbols/si
index b3b9cbaf8..7503bce1e 100644
--- a/xorg-server/xkeyboard-config/symbols/si
+++ b/xorg-server/xkeyboard-config/symbols/si
@@ -1,30 +1,30 @@
-default partial alphanumeric_keys
-xkb_symbols "basic" {
-
- name[Group1]="Slovenia";
-
- include "rs(latin)"
-
- key <TLDE> { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "us" {
-
- name[Group1]= "Slovenia - US keyboard with Slovenian letters";
-
- include "rs(latinyz)"
-
- key <TLDE> { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] };
-};
-
-
-partial alphanumeric_keys
-xkb_symbols "alternatequotes" {
-
- name[Group1]= "Slovenia - Use guillemets for quotes";
-
- include "rs(latinalternatequotes)"
-
- key <TLDE> { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] };
-};
+default partial alphanumeric_keys
+xkb_symbols "basic" {
+
+ name[Group1]="Slovenian";
+
+ include "rs(latin)"
+
+ key <TLDE> { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "us" {
+
+ name[Group1]= "Slovenian (US keyboard with Slovenian letters)";
+
+ include "rs(latinyz)"
+
+ key <TLDE> { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] };
+};
+
+
+partial alphanumeric_keys
+xkb_symbols "alternatequotes" {
+
+ name[Group1]= "Slovenian (use guillemets for quotes)";
+
+ include "rs(latinalternatequotes)"
+
+ key <TLDE> { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/sk b/xorg-server/xkeyboard-config/symbols/sk
index 342dee6ca..3a1b4a49b 100644
--- a/xorg-server/xkeyboard-config/symbols/sk
+++ b/xorg-server/xkeyboard-config/symbols/sk
@@ -1,103 +1,103 @@
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- // This layout conforms to a new sk compromise standard designed
- // to satisfy most unix, windows and mac users.
- // 2001 by Kamil Toman <ktoman@email.cz>
-
- include "latin"
-
- name[Group1] = "Slovakia";
-
- key <TLDE> { [ semicolon, dead_abovering, grave, asciitilde ] };
- key <AE01> { [ plus, 1, exclam, dead_tilde ] };
- key <AE02> { [ lcaron, 2, at, dead_caron ] };
- key <AE03> { [ scaron, 3, numbersign, dead_circumflex ] };
- key <AE04> { [ ccaron, 4, dollar, dead_breve ] };
- key <AE05> { [ tcaron, 5, percent, dead_abovering ] };
- key <AE06> { [ zcaron, 6, asciicircum, dead_ogonek ] };
- key <AE07> { [ yacute, 7, ampersand, dead_grave ] };
- key <AE08> { [ aacute, 8, asterisk, dead_abovedot ] };
- key <AE09> { [ iacute, 9, braceleft, dead_acute ] };
- key <AE10> { [ eacute, 0, braceright, dead_doubleacute ] };
- key <AE11> { [ equal, percent, NoSymbol, dead_diaeresis ] };
- key <AE12> { [dead_acute, dead_caron, dead_macron, dead_cedilla ] };
-
- key <AD01> { [ q, Q, backslash, NoSymbol ] };
- key <AD02> { [ w, W, bar, Nosymbol ] };
- key <AD03> { [ e, E, EuroSign, NoSymbol ] };
- key <AD04> { [ r, R, NoSymbol, NoSymbol ] };
- key <AD05> { [ t, T, NoSymbol, NoSymbol ] };
- key <AD06> { [ z, Z, NoSymbol, NoSymbol ] };
- key <AD07> { [ u, U, NoSymbol, NoSymbol ] };
- key <AD08> { [ i, I, NoSymbol, NoSymbol ] };
- key <AD09> { [ o, O, NoSymbol, NoSymbol ] };
- key <AD10> { [ p, P, NoSymbol, NoSymbol ] };
-
- key <AD11> { [ uacute, slash, bracketleft, division ] };
- key <AD12> { [adiaeresis, parenleft, bracketright, multiply ] };
-
- key <AC01> { [ a, A, asciitilde, NoSymbol ] };
- key <AC02> { [ s, S, dstroke, NoSymbol ] };
- key <AC03> { [ d, D, Dstroke, NoSymbol ] };
- key <AC04> { [ f, F, bracketleft, NoSymbol ] };
- key <AC05> { [ g, G, bracketright, NoSymbol ] };
- key <AC06> { [ h, H, grave, NoSymbol ] };
- key <AC07> { [ j, J, apostrophe, NoSymbol ] };
- key <AC08> { [ k, K, lstroke, NoSymbol ] };
- key <AC09> { [ l, L, Lstroke, NoSymbol ] };
-
- key <AC10> { [ocircumflex, quotedbl, dollar, NoSymbol ] };
- key <AC11> { [ section, exclam, apostrophe, ssharp ] };
- key <AC12> { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] };
- key <BKSL> { [ ncaron, parenright, backslash, bar ] };
-
- key <LSGT> { [ backslash, bar, slash, NoSymbol ] };
- key <AB01> { [ y, Y, degree, NoSymbol ] };
- key <AB02> { [ x, X, numbersign, Nosymbol ] };
- key <AB03> { [ c, C, ampersand, NoSymbol ] };
- key <AB04> { [ v, V, at, NoSymbol ] };
- key <AB05> { [ b, B, braceleft, NoSymbol ] };
- key <AB06> { [ n, N, braceright, NoSymbol ] };
- key <AB07> { [ m, M, asciicircum, NoSymbol ] };
- key <AB08> { [ comma, question, less, NoSymbol ] };
- key <AB09> { [ period, colon, greater, NoSymbol ] };
- key <AB10> { [ minus, underscore, asterisk, NoSymbol ] };
-
- key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
-
- include "level3(ralt_switch)"
-};
-
-// Use <BKSL> instead of <LSGT> (useful for keyboard without <LSGT> key)
-xkb_symbols "bksl" {
- include "sk(basic)"
-
- name[Group1] = "Slovakia - Extended Backslash";
-
- key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "qwerty" {
-
- // This layout should work exactly as a sk with the exception
- // of 'Z' and 'Y' keys, which are in the qwerty style (ie. swapped).
- // 2001 by Kamil Toman <ktoman@email.cz>
-
- include "sk(basic)"
-
- name[Group1] = "Slovakia - qwerty";
-
- key <AB01> { [ z, Z, degree, NoSymbol ] };
- key <AD06> { [ y, Y, NoSymbol, NoSymbol ] };
-};
-
-// Use <BKSL> instead of <LSGT> (useful for keyboard without <LSGT> key)
-xkb_symbols "qwerty_bksl" {
- include "sk(qwerty)"
-
- name[Group1] = "Slovakia - qwerty, extended Backslash";
-
- key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
-};
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ // This layout conforms to a new sk compromise standard designed
+ // to satisfy most unix, windows and mac users.
+ // 2001 by Kamil Toman <ktoman@email.cz>
+
+ include "latin"
+
+ name[Group1] = "Slovak";
+
+ key <TLDE> { [ semicolon, dead_abovering, grave, asciitilde ] };
+ key <AE01> { [ plus, 1, exclam, dead_tilde ] };
+ key <AE02> { [ lcaron, 2, at, dead_caron ] };
+ key <AE03> { [ scaron, 3, numbersign, dead_circumflex ] };
+ key <AE04> { [ ccaron, 4, dollar, dead_breve ] };
+ key <AE05> { [ tcaron, 5, percent, dead_abovering ] };
+ key <AE06> { [ zcaron, 6, asciicircum, dead_ogonek ] };
+ key <AE07> { [ yacute, 7, ampersand, dead_grave ] };
+ key <AE08> { [ aacute, 8, asterisk, dead_abovedot ] };
+ key <AE09> { [ iacute, 9, braceleft, dead_acute ] };
+ key <AE10> { [ eacute, 0, braceright, dead_doubleacute ] };
+ key <AE11> { [ equal, percent, NoSymbol, dead_diaeresis ] };
+ key <AE12> { [dead_acute, dead_caron, dead_macron, dead_cedilla ] };
+
+ key <AD01> { [ q, Q, backslash, NoSymbol ] };
+ key <AD02> { [ w, W, bar, Nosymbol ] };
+ key <AD03> { [ e, E, EuroSign, NoSymbol ] };
+ key <AD04> { [ r, R, NoSymbol, NoSymbol ] };
+ key <AD05> { [ t, T, NoSymbol, NoSymbol ] };
+ key <AD06> { [ z, Z, NoSymbol, NoSymbol ] };
+ key <AD07> { [ u, U, NoSymbol, NoSymbol ] };
+ key <AD08> { [ i, I, NoSymbol, NoSymbol ] };
+ key <AD09> { [ o, O, NoSymbol, NoSymbol ] };
+ key <AD10> { [ p, P, NoSymbol, NoSymbol ] };
+
+ key <AD11> { [ uacute, slash, bracketleft, division ] };
+ key <AD12> { [adiaeresis, parenleft, bracketright, multiply ] };
+
+ key <AC01> { [ a, A, asciitilde, NoSymbol ] };
+ key <AC02> { [ s, S, dstroke, NoSymbol ] };
+ key <AC03> { [ d, D, Dstroke, NoSymbol ] };
+ key <AC04> { [ f, F, bracketleft, NoSymbol ] };
+ key <AC05> { [ g, G, bracketright, NoSymbol ] };
+ key <AC06> { [ h, H, grave, NoSymbol ] };
+ key <AC07> { [ j, J, apostrophe, NoSymbol ] };
+ key <AC08> { [ k, K, lstroke, NoSymbol ] };
+ key <AC09> { [ l, L, Lstroke, NoSymbol ] };
+
+ key <AC10> { [ocircumflex, quotedbl, dollar, NoSymbol ] };
+ key <AC11> { [ section, exclam, apostrophe, ssharp ] };
+ key <AC12> { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] };
+ key <BKSL> { [ ncaron, parenright, backslash, bar ] };
+
+ key <LSGT> { [ backslash, bar, slash, NoSymbol ] };
+ key <AB01> { [ y, Y, degree, NoSymbol ] };
+ key <AB02> { [ x, X, numbersign, Nosymbol ] };
+ key <AB03> { [ c, C, ampersand, NoSymbol ] };
+ key <AB04> { [ v, V, at, NoSymbol ] };
+ key <AB05> { [ b, B, braceleft, NoSymbol ] };
+ key <AB06> { [ n, N, braceright, NoSymbol ] };
+ key <AB07> { [ m, M, asciicircum, NoSymbol ] };
+ key <AB08> { [ comma, question, less, NoSymbol ] };
+ key <AB09> { [ period, colon, greater, NoSymbol ] };
+ key <AB10> { [ minus, underscore, asterisk, NoSymbol ] };
+
+ key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
+
+ include "level3(ralt_switch)"
+};
+
+// Use <BKSL> instead of <LSGT> (useful for keyboard without <LSGT> key)
+xkb_symbols "bksl" {
+ include "sk(basic)"
+
+ name[Group1] = "Slovak (extended Backslash)";
+
+ key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "qwerty" {
+
+ // This layout should work exactly as a sk with the exception
+ // of 'Z' and 'Y' keys, which are in the qwerty style (ie. swapped).
+ // 2001 by Kamil Toman <ktoman@email.cz>
+
+ include "sk(basic)"
+
+ name[Group1] = "Slovak (qwerty)";
+
+ key <AB01> { [ z, Z, degree, NoSymbol ] };
+ key <AD06> { [ y, Y, NoSymbol, NoSymbol ] };
+};
+
+// Use <BKSL> instead of <LSGT> (useful for keyboard without <LSGT> key)
+xkb_symbols "qwerty_bksl" {
+ include "sk(qwerty)"
+
+ name[Group1] = "Slovak (qwerty, extended Backslash)";
+
+ key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/sn b/xorg-server/xkeyboard-config/symbols/sn
index 90ffe6111..5b0befc88 100644
--- a/xorg-server/xkeyboard-config/symbols/sn
+++ b/xorg-server/xkeyboard-config/symbols/sn
@@ -3,7 +3,7 @@ xkb_symbols "basic" {
include "latin"
- name[Group1]="Senegal";
+ name[Group1]="Wolof";
key <AE01> { [ ampersand, 1, bar, NoSymbol ] };
key <AE02> { [ eacute, 2, asciitilde, Eacute ] };
diff --git a/xorg-server/xkeyboard-config/symbols/sy b/xorg-server/xkeyboard-config/symbols/sy
index e5684f191..6e2932b14 100644
--- a/xorg-server/xkeyboard-config/symbols/sy
+++ b/xorg-server/xkeyboard-config/symbols/sy
@@ -1,162 +1,162 @@
-partial default alphanumeric_keys
-xkb_symbols "basic" {
- include "ara(basic)"
- name[Group1]= "Syria";
-};
-
-partial alphanumeric_keys
-xkb_symbols "syc" {
- name[Group1]= "Syria - Syriac";
-
- key <TLDE> { [ 0x100070F, 0x100032E, Arabic_shadda ] };
- key <AE01> { [ 1, exclam, 0x1000701 ] };
- key <AE02> { [ 2, 0x100030A, 0x1000702 ] };
- key <AE03> { [ 3, 0x1000325, 0x1000703 ] };
- key <AE04> { [ 4, 0x1000749, 0x1000704 ] };
- key <AE05> { [ 5, 0x1002670, 0x1000705 ] };
- key <AE06> { [ 6, 0x1002671, 0x1000708 ] };
- key <AE07> { [ 7, 0x100070A, 0x1000709 ] };
- key <AE08> { [ 8, 0x10000BB, 0x100070B ] };
- key <AE09> { [ 9, parenright, 0x100070C ] };
- key <AE10> { [ 0, parenleft, 0x100070D ] };
- key <AE11> { [ minus, 0x10000AB, 0x100250C ] };
- key <AE12> { [ equal, plus, 0x1002510 ] };
-
- key <AD01> { [ 0x1000714, 0x1000730, Arabic_fatha ] };
- key <AD02> { [ 0x1000728, 0x1000733, Arabic_fathatan ] };
- key <AD03> { [ 0x1000716, 0x1000736, Arabic_damma ] };
- key <AD04> { [ 0x1000729, 0x100073A, Arabic_dammatan ] };
- key <AD05> { [ 0x1000726, 0x100073D, Arabic_madda_above ] };
- key <AD06> { [ 0x100071C, 0x1000740, Arabic_hamza_above ] };
- key <AD07> { [ 0x1000725, 0x1000741, 0x1000747 ] };
- key <AD08> { [ 0x1000717, 0x1000308, 0x1000743 ] };
- key <AD09> { [ 0x100071E, 0x1000304, 0x1000745 ] };
- key <AD10> { [ 0x100071A, 0x1000307, 0x100032D ] };
- key <AD11> { [ 0x1000713, 0x1000303 ] };
- key <AD12> { [ 0x1000715, 0x100074A ] };
- key <BKSL> { [ 0x1000706, colon ] };
-
- key <AC01> { [ 0x100072B, 0x1000731, Arabic_kasra ] };
- key <AC02> { [ 0x1000723, 0x1000734, Arabic_kasratan ] };
- key <AC03> { [ 0x100071D, 0x1000737 ] };
- key <AC04> { [ 0x1000712, 0x100073B, Arabic_hamza ] };
- key <AC05> { [ 0x1000720, 0x100073E, Arabic_hamza_below ] };
- key <AC06> { [ 0x1000710, 0x1000711, Arabic_superscript_alef ] };
- key <AC07> { [ 0x100072C, Arabic_tatweel, 0x1000748 ] };
- key <AC08> { [ 0x1000722, 0x1000324, 0x1000744 ] };
- key <AC09> { [ 0x1000721, 0x1000331, 0x1000746 ] };
- key <AC10> { [ 0x100071F, 0x1000323 ] };
- key <AC11> { [ 0x100071B, 0x1000330 ] };
-
- key <AB01> { [ bracketright, 0x1000732, Arabic_sukun ] };
- key <AB02> { [ bracketleft, 0x1000735 ] };
- key <AB03> { [ 0x1000724, 0x1000738, 0x100200D ] };
- key <AB04> { [ 0x100072A, 0x100073C, 0x100200C ] };
- key <AB05> { [ 0x1000727, 0x100073F, 0x100200E ] };
- key <AB06> { [ 0x1000700, 0x1000739, 0x100200F ] };
- key <AB07> { [ 0x100002E, 0x1000742 ] };
- key <AB08> { [ 0x1000718, Arabic_comma ] };
- key <AB09> { [ 0x1000719, Arabic_semicolon ] };
- key <AB10> { [ 0x1000707, Arabic_question_mark ] };
-
- // End Alphanumeric Section
-
- // Space
- include "nbsp(zwnj2)"
-
- // Begin Modifier Mappings
-
- modifier_map Shift { Shift_L, Shift_R };
- modifier_map Lock { Caps_Lock, ISO_Lock };
- modifier_map Control{ Control_L, Control_R };
- modifier_map Mod1 { Alt_L, Alt_R };
- modifier_map Mod2 { Mode_switch };
-
-};
-
-partial alphanumeric_keys
-xkb_symbols "syc_phonetic" {
- name[Group1]= "Syria - Syriac phonetic";
-
- key <TLDE> { [ 0x100070F, 0x100032E, Arabic_shadda ] };
- key <AE01> { [ 1, exclam, 0x1000701 ] };
- key <AE02> { [ 2, 0x100030A, 0x1000702 ] };
- key <AE03> { [ 3, 0x1000325, 0x1000703 ] };
- key <AE04> { [ 4, 0x1000749, 0x1000704 ] };
- key <AE05> { [ 5, 0x1002670, 0x1000705 ] };
- key <AE06> { [ 6, 0x1002671, 0x1000708 ] };
- key <AE07> { [ 7, 0x100070A, 0x1000709 ] };
- key <AE08> { [ 8, 0x10000BB, 0x100070B ] };
- key <AE09> { [ 9, parenright, 0x100070C ] };
- key <AE10> { [ 0, parenleft, 0x100070D ] };
- key <AE11> { [ minus, 0x10000AB, 0x100250C ] };
- key <AE12> { [ equal, plus, 0x1002510 ] };
-
- key <AD01> { [ 0x1000729, 0x1000730, Arabic_fatha ] };
- key <AD02> { [ 0x1000718, 0x1000733, Arabic_fathatan ] };
- key <AD03> { [ 0x1000716, 0x1000736, Arabic_damma ] };
- key <AD04> { [ 0x100072A, 0x100073A, Arabic_dammatan ] };
- key <AD05> { [ 0x100072C, 0x100073D, Arabic_madda_above ] };
- key <AD06> { [ 0x100071D, 0x1000740, Arabic_hamza_above ] };
- key <AD07> { [ 0x100071C, 0x1000741, 0x1000747 ] };
- key <AD08> { [ 0x1000725, 0x1000308, 0x1000743 ] };
- key <AD09> { [ 0x1000727, 0x1000304, 0x1000745 ] };
- key <AD10> { [ 0x1000726, 0x1000307, 0x100032D ] };
- key <AD11> { [ bracketright, 0x1000303 ] };
- key <AD12> { [ bracketleft, 0x100074A ] };
- key <BKSL> { [ 0x1000706, colon ] };
-
- key <AC01> { [ 0x1000710, 0x1000731, Arabic_kasra ] };
- key <AC02> { [ 0x1000723, 0x1000734, Arabic_kasratan ] };
- key <AC03> { [ 0x1000715, 0x1000737 ] };
- key <AC04> { [ 0x1000714, 0x100073B, Arabic_hamza ] };
- key <AC05> { [ 0x1000713, 0x100073E, Arabic_hamza_below ] };
- key <AC06> { [ 0x1000717, 0x1000711, Arabic_superscript_alef ] };
- key <AC07> { [ 0x100071B, Arabic_tatweel, 0x1000748 ] };
- key <AC08> { [ 0x100071F, 0x1000324, 0x1000744 ] };
- key <AC09> { [ 0x1000720, 0x1000331, 0x1000746 ] };
- key <AC10> { [ 0x100071A, 0x1000323 ] };
- key <AC11> { [ 0x100071E, 0x1000330 ] };
-
- key <SPCE> { [ space, 0x100200c ] };
- key <AB01> { [ 0x1000719, 0x1000732, Arabic_sukun ] };
- key <AB02> { [ 0x1000728, 0x1000735 ] };
- key <AB03> { [ 0x1000724, 0x1000738, 0x100200D ] };
- key <AB04> { [ 0x100072B, 0x100073C, 0x100200C ] };
- key <AB05> { [ 0x1000712, 0x100073F, 0x100200E ] };
- key <AB06> { [ 0x1000722, 0x1000739, 0x100200F ] };
- key <AB07> { [ 0x1000721, 0x1000742 ] };
- key <AB08> { [ 0x1000700, Arabic_comma ] };
- key <AB09> { [ 0x100002E, Arabic_semicolon ] };
- key <AB10> { [ 0x1000707, Arabic_question_mark ] };
-
- // End Alphanumeric Section
-
-
- // Begin Modifier Mappings
-
- modifier_map Shift { Shift_L, Shift_R };
- modifier_map Lock { Caps_Lock, ISO_Lock };
- modifier_map Control{ Control_L, Control_R };
- modifier_map Mod1 { Alt_L, Alt_R };
- modifier_map Mod2 { Mode_switch };
-
-};
-
-partial alphanumeric_keys
-xkb_symbols "ku" {
- include "tr(ku)"
- name[Group1]= "Syria - Kurdish, Latin Q";
-};
-
-partial alphanumeric_keys
-xkb_symbols "ku_f" {
- include "tr(ku_f)"
- name[Group1]= "Syria - Kurdish, (F)";
-};
-
-partial alphanumeric_keys
-xkb_symbols "ku_alt" {
- include "tr(ku_alt)"
- name[Group1]= "Syria - Kurdish, Latin Alt-Q";
-};
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+ include "ara(basic)"
+ name[Group1]= "Arabic (Syria)";
+};
+
+partial alphanumeric_keys
+xkb_symbols "syc" {
+ name[Group1]= "Syriac";
+
+ key <TLDE> { [ 0x100070F, 0x100032E, Arabic_shadda ] };
+ key <AE01> { [ 1, exclam, 0x1000701 ] };
+ key <AE02> { [ 2, 0x100030A, 0x1000702 ] };
+ key <AE03> { [ 3, 0x1000325, 0x1000703 ] };
+ key <AE04> { [ 4, 0x1000749, 0x1000704 ] };
+ key <AE05> { [ 5, 0x1002670, 0x1000705 ] };
+ key <AE06> { [ 6, 0x1002671, 0x1000708 ] };
+ key <AE07> { [ 7, 0x100070A, 0x1000709 ] };
+ key <AE08> { [ 8, 0x10000BB, 0x100070B ] };
+ key <AE09> { [ 9, parenright, 0x100070C ] };
+ key <AE10> { [ 0, parenleft, 0x100070D ] };
+ key <AE11> { [ minus, 0x10000AB, 0x100250C ] };
+ key <AE12> { [ equal, plus, 0x1002510 ] };
+
+ key <AD01> { [ 0x1000714, 0x1000730, Arabic_fatha ] };
+ key <AD02> { [ 0x1000728, 0x1000733, Arabic_fathatan ] };
+ key <AD03> { [ 0x1000716, 0x1000736, Arabic_damma ] };
+ key <AD04> { [ 0x1000729, 0x100073A, Arabic_dammatan ] };
+ key <AD05> { [ 0x1000726, 0x100073D, Arabic_madda_above ] };
+ key <AD06> { [ 0x100071C, 0x1000740, Arabic_hamza_above ] };
+ key <AD07> { [ 0x1000725, 0x1000741, 0x1000747 ] };
+ key <AD08> { [ 0x1000717, 0x1000308, 0x1000743 ] };
+ key <AD09> { [ 0x100071E, 0x1000304, 0x1000745 ] };
+ key <AD10> { [ 0x100071A, 0x1000307, 0x100032D ] };
+ key <AD11> { [ 0x1000713, 0x1000303 ] };
+ key <AD12> { [ 0x1000715, 0x100074A ] };
+ key <BKSL> { [ 0x1000706, colon ] };
+
+ key <AC01> { [ 0x100072B, 0x1000731, Arabic_kasra ] };
+ key <AC02> { [ 0x1000723, 0x1000734, Arabic_kasratan ] };
+ key <AC03> { [ 0x100071D, 0x1000737 ] };
+ key <AC04> { [ 0x1000712, 0x100073B, Arabic_hamza ] };
+ key <AC05> { [ 0x1000720, 0x100073E, Arabic_hamza_below ] };
+ key <AC06> { [ 0x1000710, 0x1000711, Arabic_superscript_alef ] };
+ key <AC07> { [ 0x100072C, Arabic_tatweel, 0x1000748 ] };
+ key <AC08> { [ 0x1000722, 0x1000324, 0x1000744 ] };
+ key <AC09> { [ 0x1000721, 0x1000331, 0x1000746 ] };
+ key <AC10> { [ 0x100071F, 0x1000323 ] };
+ key <AC11> { [ 0x100071B, 0x1000330 ] };
+
+ key <AB01> { [ bracketright, 0x1000732, Arabic_sukun ] };
+ key <AB02> { [ bracketleft, 0x1000735 ] };
+ key <AB03> { [ 0x1000724, 0x1000738, 0x100200D ] };
+ key <AB04> { [ 0x100072A, 0x100073C, 0x100200C ] };
+ key <AB05> { [ 0x1000727, 0x100073F, 0x100200E ] };
+ key <AB06> { [ 0x1000700, 0x1000739, 0x100200F ] };
+ key <AB07> { [ 0x100002E, 0x1000742 ] };
+ key <AB08> { [ 0x1000718, Arabic_comma ] };
+ key <AB09> { [ 0x1000719, Arabic_semicolon ] };
+ key <AB10> { [ 0x1000707, Arabic_question_mark ] };
+
+ // End Alphanumeric Section
+
+ // Space
+ include "nbsp(zwnj2)"
+
+ // Begin Modifier Mappings
+
+ modifier_map Shift { Shift_L, Shift_R };
+ modifier_map Lock { Caps_Lock, ISO_Lock };
+ modifier_map Control{ Control_L, Control_R };
+ modifier_map Mod1 { Alt_L, Alt_R };
+ modifier_map Mod2 { Mode_switch };
+
+};
+
+partial alphanumeric_keys
+xkb_symbols "syc_phonetic" {
+ name[Group1]= "Syriac (phonetic)";
+
+ key <TLDE> { [ 0x100070F, 0x100032E, Arabic_shadda ] };
+ key <AE01> { [ 1, exclam, 0x1000701 ] };
+ key <AE02> { [ 2, 0x100030A, 0x1000702 ] };
+ key <AE03> { [ 3, 0x1000325, 0x1000703 ] };
+ key <AE04> { [ 4, 0x1000749, 0x1000704 ] };
+ key <AE05> { [ 5, 0x1002670, 0x1000705 ] };
+ key <AE06> { [ 6, 0x1002671, 0x1000708 ] };
+ key <AE07> { [ 7, 0x100070A, 0x1000709 ] };
+ key <AE08> { [ 8, 0x10000BB, 0x100070B ] };
+ key <AE09> { [ 9, parenright, 0x100070C ] };
+ key <AE10> { [ 0, parenleft, 0x100070D ] };
+ key <AE11> { [ minus, 0x10000AB, 0x100250C ] };
+ key <AE12> { [ equal, plus, 0x1002510 ] };
+
+ key <AD01> { [ 0x1000729, 0x1000730, Arabic_fatha ] };
+ key <AD02> { [ 0x1000718, 0x1000733, Arabic_fathatan ] };
+ key <AD03> { [ 0x1000716, 0x1000736, Arabic_damma ] };
+ key <AD04> { [ 0x100072A, 0x100073A, Arabic_dammatan ] };
+ key <AD05> { [ 0x100072C, 0x100073D, Arabic_madda_above ] };
+ key <AD06> { [ 0x100071D, 0x1000740, Arabic_hamza_above ] };
+ key <AD07> { [ 0x100071C, 0x1000741, 0x1000747 ] };
+ key <AD08> { [ 0x1000725, 0x1000308, 0x1000743 ] };
+ key <AD09> { [ 0x1000727, 0x1000304, 0x1000745 ] };
+ key <AD10> { [ 0x1000726, 0x1000307, 0x100032D ] };
+ key <AD11> { [ bracketright, 0x1000303 ] };
+ key <AD12> { [ bracketleft, 0x100074A ] };
+ key <BKSL> { [ 0x1000706, colon ] };
+
+ key <AC01> { [ 0x1000710, 0x1000731, Arabic_kasra ] };
+ key <AC02> { [ 0x1000723, 0x1000734, Arabic_kasratan ] };
+ key <AC03> { [ 0x1000715, 0x1000737 ] };
+ key <AC04> { [ 0x1000714, 0x100073B, Arabic_hamza ] };
+ key <AC05> { [ 0x1000713, 0x100073E, Arabic_hamza_below ] };
+ key <AC06> { [ 0x1000717, 0x1000711, Arabic_superscript_alef ] };
+ key <AC07> { [ 0x100071B, Arabic_tatweel, 0x1000748 ] };
+ key <AC08> { [ 0x100071F, 0x1000324, 0x1000744 ] };
+ key <AC09> { [ 0x1000720, 0x1000331, 0x1000746 ] };
+ key <AC10> { [ 0x100071A, 0x1000323 ] };
+ key <AC11> { [ 0x100071E, 0x1000330 ] };
+
+ key <SPCE> { [ space, 0x100200c ] };
+ key <AB01> { [ 0x1000719, 0x1000732, Arabic_sukun ] };
+ key <AB02> { [ 0x1000728, 0x1000735 ] };
+ key <AB03> { [ 0x1000724, 0x1000738, 0x100200D ] };
+ key <AB04> { [ 0x100072B, 0x100073C, 0x100200C ] };
+ key <AB05> { [ 0x1000712, 0x100073F, 0x100200E ] };
+ key <AB06> { [ 0x1000722, 0x1000739, 0x100200F ] };
+ key <AB07> { [ 0x1000721, 0x1000742 ] };
+ key <AB08> { [ 0x1000700, Arabic_comma ] };
+ key <AB09> { [ 0x100002E, Arabic_semicolon ] };
+ key <AB10> { [ 0x1000707, Arabic_question_mark ] };
+
+ // End Alphanumeric Section
+
+
+ // Begin Modifier Mappings
+
+ modifier_map Shift { Shift_L, Shift_R };
+ modifier_map Lock { Caps_Lock, ISO_Lock };
+ modifier_map Control{ Control_L, Control_R };
+ modifier_map Mod1 { Alt_L, Alt_R };
+ modifier_map Mod2 { Mode_switch };
+
+};
+
+partial alphanumeric_keys
+xkb_symbols "ku" {
+ include "tr(ku)"
+ name[Group1]= "Kurdish (Syria, Latin Q)";
+};
+
+partial alphanumeric_keys
+xkb_symbols "ku_f" {
+ include "tr(ku_f)"
+ name[Group1]= "Kurdish (Syria, F)";
+};
+
+partial alphanumeric_keys
+xkb_symbols "ku_alt" {
+ include "tr(ku_alt)"
+ name[Group1]= "Kurdish (Syria, Latin Alt-Q)";
+};
diff --git a/xorg-server/xkeyboard-config/symbols/th b/xorg-server/xkeyboard-config/symbols/th
index 1251997f0..a23ff45a3 100644
--- a/xorg-server/xkeyboard-config/symbols/th
+++ b/xorg-server/xkeyboard-config/symbols/th
@@ -1,245 +1,245 @@
-// based on a keyboard map from an 'xkb/symbols/th' file
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
- name[Group1]= "Thailand";
-
- // converted to THai keysysms - Pablo Saratxaga <pablo@mandrakesoft.com>
-
- key <TLDE> { [ underscore, percent ] };
- key <AE01> { [ Thai_lakkhangyao, plus ] };
- key <AE02> { [ slash, Thai_leknung ] };
- key <AE03> { [ minus, Thai_leksong ] };
- key <AE04> { [ Thai_phosamphao, Thai_leksam ] };
- key <AE05> { [ Thai_thothung, Thai_leksi ] };
- key <AE06> { [ Thai_sarau, Thai_sarauu ] };
- key <AE07> { [ Thai_saraue, Thai_baht ] };
- key <AE08> { [ Thai_khokhwai, Thai_lekha ] };
- key <AE09> { [ Thai_totao, Thai_lekhok ] };
- key <AE10> { [ Thai_chochan, Thai_lekchet ] };
- key <AE11> { [ Thai_khokhai, Thai_lekpaet ] };
- key <AE12> { [ Thai_chochang, Thai_lekkao ] };
-
- key <AD01> { [ Thai_maiyamok, Thai_leksun ] };
- key <AD02> { [ Thai_saraaimaimalai, quotedbl ] };
- key <AD03> { [ Thai_saraam, Thai_dochada ] };
- key <AD04> { [ Thai_phophan, Thai_thonangmontho ] };
- key <AD05> { [ Thai_saraa, Thai_thothong ] };
- key <AD06> { [ Thai_maihanakat, Thai_nikhahit ] };
- key <AD07> { [ Thai_saraii, Thai_maitri ] };
- key <AD08> { [ Thai_rorua, Thai_nonen ] };
- key <AD09> { [ Thai_nonu, Thai_paiyannoi ] };
- key <AD10> { [ Thai_yoyak, Thai_yoying ] };
- key <AD11> { [ Thai_bobaimai, Thai_thothan ] };
- key <AD12> { [ Thai_loling, comma ] };
-
- key <AC01> { [ Thai_fofan, Thai_ru ] };
- key <AC02> { [ Thai_hohip, Thai_khorakhang ] };
- key <AC03> { [ Thai_kokai, Thai_topatak ] };
- key <AC04> { [ Thai_dodek, Thai_sarao ] };
- key <AC05> { [ Thai_sarae, Thai_chochoe ] };
- key <AC06> { [ Thai_maitho, Thai_maitaikhu ] };
- key <AC07> { [ Thai_maiek, Thai_maichattawa ] };
- key <AC08> { [ Thai_saraaa, Thai_sorusi ] };
- key <AC09> { [ Thai_sosua, Thai_sosala ] };
- key <AC10> { [ Thai_wowaen, Thai_soso ] };
- key <AC11> { [ Thai_ngongu, period ] };
-
- key <AB01> { [ Thai_phophung, parenleft ] };
- key <AB02> { [ Thai_popla, parenright ] };
- key <AB03> { [ Thai_saraae, Thai_choching ] };
- key <AB04> { [ Thai_oang, Thai_honokhuk ] };
- key <AB05> { [ Thai_sarai, Thai_phinthu ] };
- key <AB06> { [ Thai_sarauee, Thai_thanthakhat ] };
- key <AB07> { [ Thai_thothahan, question ] };
- key <AB08> { [ Thai_moma, Thai_thophuthao ] };
- key <AB09> { [ Thai_saraaimaimuan, Thai_lochula ] };
- key <AB10> { [ Thai_fofa, Thai_lu ] };
-
- key <BKSL> { [ Thai_khokhuat, Thai_khokhon ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "pat" {
- name[Group1]= "Thailand - Pattachote";
- // The thai layout defines a second keyboard group and changes
- // the behavior of a few modifier keys.
-
- // converted to THai keysysms - Pablo Saratxaga pablo@mandrakesoft.com
- // Pattachote modification by Visanu Euarchukiati -- visanu@inet.co.th
- key <TLDE> { [ underscore, Thai_baht ] };
- key <AE01> { [ equal, plus ] };
- key <AE02> { [ Thai_leksong, quotedbl ] };
- key <AE03> { [ Thai_leksam, slash ] };
- key <AE04> { [ Thai_leksi, comma ] };
- key <AE05> { [ Thai_lekha, question ] };
- key <AE06> { [ Thai_sarauu, Thai_sarau ] };
- key <AE07> { [ Thai_lekchet, underscore ] };
- key <AE08> { [ Thai_lekpaet, period ] };
- key <AE09> { [ Thai_lekkao, parenleft ] };
- key <AE10> { [ Thai_leksun, parenright ] };
- key <AE11> { [ Thai_leknung, minus ] };
- key <AE12> { [ Thai_lekhok, percent ] };
-
- key <AD01> { [ Thai_maitaikhu, Thai_maitri ] };
- key <AD02> { [ Thai_totao, Thai_ru ] };
- key <AD03> { [ Thai_yoyak, Thai_maiyamok ] };
- key <AD04> { [ Thai_oang, Thai_yoying ] };
- key <AD05> { [ Thai_rorua, Thai_sorusi ] };
- key <AD06> { [ Thai_maiek, Thai_saraue ] };
- key <AD07> { [ Thai_dodek, Thai_fofa ] };
- key <AD08> { [ Thai_moma, Thai_soso ] };
- key <AD09> { [ Thai_wowaen, Thai_thothung ] };
- key <AD10> { [ Thai_saraae, Thai_thophuthao ] };
- key <AD11> { [ Thai_saraaimaimuan, Thai_paiyannoi ] };
- key <AD12> { [ Thai_chochoe, Thai_lu ] };
-
- key <AC01> { [ Thai_maitho, Thai_maichattawa] };
- key <AC02> { [ Thai_thothahan, Thai_thothong ] };
- key <AC03> { [ Thai_ngongu, Thai_saraam ] };
- key <AC04> { [ Thai_kokai, Thai_nonen ] };
- key <AC05> { [ Thai_maihanakat, Thai_thanthakhat] };
- key <AC06> { [ Thai_saraii, Thai_sarauee ] };
- key <AC07> { [ Thai_saraaa, Thai_phophung ] };
- key <AC08> { [ Thai_nonu, Thai_chochang ] };
- key <AC09> { [ Thai_sarae, Thai_sarao ] };
- key <AC10> { [ Thai_saraaimaimalai, Thai_khorakhang ] };
- key <AC11> { [ Thai_khokhai, Thai_thonangmontho ] };
-
- key <AB01> { [ Thai_bobaimai, Thai_dochada ] };
- key <AB02> { [ Thai_popla, Thai_topatak ] };
- key <AB03> { [ Thai_loling, Thai_thothan ] };
- key <AB04> { [ Thai_hohip, Thai_phosamphao ] };
- key <AB05> { [ Thai_sarai, Thai_phinthu ] };
- key <AB06> { [ Thai_khokhwai, Thai_sosala ] };
- key <AB07> { [ Thai_sosua, Thai_honokhuk ] };
- key <AB08> { [ Thai_saraa, Thai_fofan ] };
- key <AB09> { [ Thai_chochan, Thai_choching ] };
- key <AB10> { [ Thai_phophan, Thai_lochula ] };
-
- key <BKSL> { [ Thai_lakkhangyao, Thai_nikhahit ] };
-};
-
-
-partial alphanumeric_keys
-xkb_symbols "tis" {
- name[Group1]= "Thailand - TIS-820.2538";
- // The thai layout defines a second keyboard group and changes
- // the behavior of a few modifier keys.
-
- // converted to THai keysysms - Pablo Saratxaga <pablo@mandrakesoft.com>
- // modified to TIS-820.2538 - Theppitak Karoonboonyanan <thep@linux.thai.net>
- key <TLDE> { [ 0x1000e4f, 0x1000e5b ] };
- key <AE01> { [ Thai_baht, Thai_lakkhangyao] };
- key <AE02> { [ slash, Thai_leknung ] };
- key <AE03> { [ minus, Thai_leksong ] };
- key <AE04> { [ Thai_phosamphao, Thai_leksam ] };
- key <AE05> { [ Thai_thothung, Thai_leksi ] };
- key <AE06> { [ Thai_sarau, Thai_sarauu ] };
- key <AE07> { [ Thai_saraue, 0x1000e4e ] };
- key <AE08> { [ Thai_khokhwai, Thai_lekha ] };
- key <AE09> { [ Thai_totao, Thai_lekhok ] };
- key <AE10> { [ Thai_chochan, Thai_lekchet ] };
- key <AE11> { [ Thai_khokhai, Thai_lekpaet ] };
- key <AE12> { [ Thai_chochang, Thai_lekkao ] };
-
- key <AD01> { [ Thai_maiyamok, Thai_leksun ] };
- key <AD02> { [ Thai_saraaimaimalai, quotedbl ] };
- key <AD03> { [ Thai_saraam, Thai_dochada ] };
- key <AD04> { [ Thai_phophan, Thai_thonangmontho ] };
- key <AD05> { [ Thai_saraa, Thai_thothong ] };
- key <AD06> { [ Thai_maihanakat, Thai_nikhahit ] };
- key <AD07> { [ Thai_saraii, Thai_maitri ] };
- key <AD08> { [ Thai_rorua, Thai_nonen ] };
- key <AD09> {type[Group1]="THREE_LEVEL",
- [ Thai_nonu, Thai_paiyannoi, 0x1000e5a] };
- key <AD10> { [ Thai_yoyak, Thai_yoying ] };
- key <AD11> { [ Thai_bobaimai, Thai_thothan ] };
- key <AD12> { [ Thai_loling, comma ] };
-
- key <AC01> { [ Thai_fofan, Thai_ru ] };
- key <AC02> { [ Thai_hohip, Thai_khorakhang ] };
- key <AC03> { [ Thai_kokai, Thai_topatak ] };
- key <AC04> { [ Thai_dodek, Thai_sarao ] };
- key <AC05> { [ Thai_sarae, Thai_chochoe ] };
- key <AC06> { [ Thai_maitho, Thai_maitaikhu ] };
- key <AC07> { [ Thai_maiek, Thai_maichattawa ] };
- key <AC08> { [ Thai_saraaa, Thai_sorusi ] };
- key <AC09> { [ Thai_sosua, Thai_sosala ] };
- key <AC10> { [ Thai_wowaen, Thai_soso ] };
- key <AC11> { [ Thai_ngongu, period ] };
-
- key <AB01> { [ Thai_phophung, parenleft ] };
- key <AB02> { [ Thai_popla, parenright ] };
- key <AB03> { [ Thai_saraae, Thai_choching ] };
- key <AB04> { [ Thai_oang, Thai_honokhuk ] };
- key <AB05> { [ Thai_sarai, Thai_phinthu ] };
- key <AB06> { [ Thai_sarauee, Thai_thanthakhat ] };
- key <AB07> { [ Thai_thothahan, question ] };
- key <AB08> { [ Thai_moma, Thai_thophuthao ] };
- key <AB09> { [ Thai_saraaimaimuan, Thai_lochula ] };
- key <AB10> { [ Thai_fofa, Thai_lu ] };
-
- key <BKSL> { [ Thai_khokhon, Thai_khokhuat ] };
-};
-
-partial alphanumeric_keys
-xkb_symbols "olpc" {
-
- name[Group1]= "Thailand";
- // The OLPC thai layout
- // walter@laptop.org
-
- key <TLDE> { [ 0x1000E4F, 0x1000E5B ] };
- key <AE01> { [ 0x1000E3F, 0x1000E45 ] };
- key <AE02> { [ slash, 0x1000E51 ] };
- key <AE03> { [ minus, 0x1000E52 ] };
- key <AE04> { [ 0x1000E20, 0x1000E53 ] };
- key <AE05> { [ 0x1000E16, 0x1000E54 ] };
- key <AE06> { [ 0x1000E38, 0x1000E39 ] };
- key <AE07> { [ 0x1000E36, 0x1000E4E ] };
- key <AE08> { [ 0x1000E04, 0x1000E55 ] };
- key <AE09> { [ 0x1000E15, 0x1000E56 ] };
- key <AE10> { [ 0x1000E08, 0x1000E57 ] };
- key <AE11> { [ 0x1000E02, 0x1000E58 ] };
- key <AE12> { [ 0x1000E0A, 0x1000E59 ] };
-
- key <AD01> { [ 0x1000E46, 0x1000E50 ] };
- key <AD02> { [ 0x1000E44, quotedbl ] };
- key <AD03> { [ 0x1000E33, 0x1000E0E ] };
- key <AD04> { [ 0x1000E1E, 0x1000E11 ] };
- key <AD05> { [ 0x1000E30, 0x1000E18 ] };
- key <AD06> { [ 0x1000E31, 0x1000E4D ] };
- key <AD07> { [ 0x1000E35, 0x1000E4A ] };
- key <AD08> { [ 0x1000E23, 0x1000E13 ] };
- key <AD09> { [ 0x1000E19, 0x1000E2F ] };
- key <AD10> { [ 0x1000E22, 0x1000E0D ] };
- key <AD11> { [ 0x1000E1A, 0x1000E10 ] };
- key <AD12> { [ 0x1000E25, comma ] };
-
- key <AC01> { [ 0x1000E1F, 0x1000E24 ] };
- key <AC02> { [ 0x1000E2B, 0x1000E06 ] };
- key <AC03> { [ 0x1000E01, 0x1000E0F ] };
- key <AC04> { [ 0x1000E14, 0x1000E42 ] };
- key <AC05> { [ 0x1000E40, 0x1000E0C ] };
- key <AC06> { [ 0x1000E49, 0x1000E47 ] };
- key <AC07> { [ 0x1000E48, 0x1000E4B ] };
- key <AC08> { [ 0x1000E32, 0x1000E29 ] };
- key <AC09> { [ 0x1000E2A, 0x1000E28 ] };
- key <AC10> { [ 0x1000E27, 0x1000E0B ] };
- key <AC11> { [ 0x1000E07, period ] };
- key <BKSL> { [ 0x1000E05, 0x1000E03 ] };
-
- key <AB01> { [ 0x1000E1C, parenleft ] };
- key <AB02> { [ 0x1000E1B, parenright ] };
- key <AB03> { [ 0x1000E41, 0x1000E09 ] };
- key <AB04> { [ 0x1000E2D, 0x1000E2E ] };
- key <AB05> { [ 0x1000E34, 0x1000E3A ] };
- key <AB06> { [ 0x1000E37, 0x1000E4C ] };
- key <AB07> { [ 0x1000E17, question ] };
- key <AB08> { [ 0x1000E21, 0x1000E12 ] };
- key <AB09> { [ 0x1000E43, 0x1000E2C ] };
- key <AB10> { [ 0x1000E1D, 0x1000E26 ] };
-
- include "group(olpc)"
-};
+// based on a keyboard map from an 'xkb/symbols/th' file
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+ name[Group1]= "Thai";
+
+ // converted to THai keysysms - Pablo Saratxaga <pablo@mandrakesoft.com>
+
+ key <TLDE> { [ underscore, percent ] };
+ key <AE01> { [ Thai_lakkhangyao, plus ] };
+ key <AE02> { [ slash, Thai_leknung ] };
+ key <AE03> { [ minus, Thai_leksong ] };
+ key <AE04> { [ Thai_phosamphao, Thai_leksam ] };
+ key <AE05> { [ Thai_thothung, Thai_leksi ] };
+ key <AE06> { [ Thai_sarau, Thai_sarauu ] };
+ key <AE07> { [ Thai_saraue, Thai_baht ] };
+ key <AE08> { [ Thai_khokhwai, Thai_lekha ] };
+ key <AE09> { [ Thai_totao, Thai_lekhok ] };
+ key <AE10> { [ Thai_chochan, Thai_lekchet ] };
+ key <AE11> { [ Thai_khokhai, Thai_lekpaet ] };
+ key <AE12> { [ Thai_chochang, Thai_lekkao ] };
+
+ key <AD01> { [ Thai_maiyamok, Thai_leksun ] };
+ key <AD02> { [ Thai_saraaimaimalai, quotedbl ] };
+ key <AD03> { [ Thai_saraam, Thai_dochada ] };
+ key <AD04> { [ Thai_phophan, Thai_thonangmontho ] };
+ key <AD05> { [ Thai_saraa, Thai_thothong ] };
+ key <AD06> { [ Thai_maihanakat, Thai_nikhahit ] };
+ key <AD07> { [ Thai_saraii, Thai_maitri ] };
+ key <AD08> { [ Thai_rorua, Thai_nonen ] };
+ key <AD09> { [ Thai_nonu, Thai_paiyannoi ] };
+ key <AD10> { [ Thai_yoyak, Thai_yoying ] };
+ key <AD11> { [ Thai_bobaimai, Thai_thothan ] };
+ key <AD12> { [ Thai_loling, comma ] };
+
+ key <AC01> { [ Thai_fofan, Thai_ru ] };
+ key <AC02> { [ Thai_hohip, Thai_khorakhang ] };
+ key <AC03> { [ Thai_kokai, Thai_topatak ] };
+ key <AC04> { [ Thai_dodek, Thai_sarao ] };
+ key <AC05> { [ Thai_sarae, Thai_chochoe ] };
+ key <AC06> { [ Thai_maitho, Thai_maitaikhu ] };
+ key <AC07> { [ Thai_maiek, Thai_maichattawa ] };
+ key <AC08> { [ Thai_saraaa, Thai_sorusi ] };
+ key <AC09> { [ Thai_sosua, Thai_sosala ] };
+ key <AC10> { [ Thai_wowaen, Thai_soso ] };
+ key <AC11> { [ Thai_ngongu, period ] };
+
+ key <AB01> { [ Thai_phophung, parenleft ] };
+ key <AB02> { [ Thai_popla, parenright ] };
+ key <AB03> { [ Thai_saraae, Thai_choching ] };
+ key <AB04> { [ Thai_oang, Thai_honokhuk ] };
+ key <AB05> { [ Thai_sarai, Thai_phinthu ] };
+ key <AB06> { [ Thai_sarauee, Thai_thanthakhat ] };
+ key <AB07> { [ Thai_thothahan, question ] };
+ key <AB08> { [ Thai_moma, Thai_thophuthao ] };
+ key <AB09> { [ Thai_saraaimaimuan, Thai_lochula ] };
+ key <AB10> { [ Thai_fofa, Thai_lu ] };
+
+ key <BKSL> { [ Thai_khokhuat, Thai_khokhon ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "pat" {
+ name[Group1]= "Thai (Pattachote)";
+ // The thai layout defines a second keyboard group and changes
+ // the behavior of a few modifier keys.
+
+ // converted to THai keysysms - Pablo Saratxaga pablo@mandrakesoft.com
+ // Pattachote modification by Visanu Euarchukiati -- visanu@inet.co.th
+ key <TLDE> { [ underscore, Thai_baht ] };
+ key <AE01> { [ equal, plus ] };
+ key <AE02> { [ Thai_leksong, quotedbl ] };
+ key <AE03> { [ Thai_leksam, slash ] };
+ key <AE04> { [ Thai_leksi, comma ] };
+ key <AE05> { [ Thai_lekha, question ] };
+ key <AE06> { [ Thai_sarauu, Thai_sarau ] };
+ key <AE07> { [ Thai_lekchet, underscore ] };
+ key <AE08> { [ Thai_lekpaet, period ] };
+ key <AE09> { [ Thai_lekkao, parenleft ] };
+ key <AE10> { [ Thai_leksun, parenright ] };
+ key <AE11> { [ Thai_leknung, minus ] };
+ key <AE12> { [ Thai_lekhok, percent ] };
+
+ key <AD01> { [ Thai_maitaikhu, Thai_maitri ] };
+ key <AD02> { [ Thai_totao, Thai_ru ] };
+ key <AD03> { [ Thai_yoyak, Thai_maiyamok ] };
+ key <AD04> { [ Thai_oang, Thai_yoying ] };
+ key <AD05> { [ Thai_rorua, Thai_sorusi ] };
+ key <AD06> { [ Thai_maiek, Thai_saraue ] };
+ key <AD07> { [ Thai_dodek, Thai_fofa ] };
+ key <AD08> { [ Thai_moma, Thai_soso ] };
+ key <AD09> { [ Thai_wowaen, Thai_thothung ] };
+ key <AD10> { [ Thai_saraae, Thai_thophuthao ] };
+ key <AD11> { [ Thai_saraaimaimuan, Thai_paiyannoi ] };
+ key <AD12> { [ Thai_chochoe, Thai_lu ] };
+
+ key <AC01> { [ Thai_maitho, Thai_maichattawa] };
+ key <AC02> { [ Thai_thothahan, Thai_thothong ] };
+ key <AC03> { [ Thai_ngongu, Thai_saraam ] };
+ key <AC04> { [ Thai_kokai, Thai_nonen ] };
+ key <AC05> { [ Thai_maihanakat, Thai_thanthakhat] };
+ key <AC06> { [ Thai_saraii, Thai_sarauee ] };
+ key <AC07> { [ Thai_saraaa, Thai_phophung ] };
+ key <AC08> { [ Thai_nonu, Thai_chochang ] };
+ key <AC09> { [ Thai_sarae, Thai_sarao ] };
+ key <AC10> { [ Thai_saraaimaimalai, Thai_khorakhang ] };
+ key <AC11> { [ Thai_khokhai, Thai_thonangmontho ] };
+
+ key <AB01> { [ Thai_bobaimai, Thai_dochada ] };
+ key <AB02> { [ Thai_popla, Thai_topatak ] };
+ key <AB03> { [ Thai_loling, Thai_thothan ] };
+ key <AB04> { [ Thai_hohip, Thai_phosamphao ] };
+ key <AB05> { [ Thai_sarai, Thai_phinthu ] };
+ key <AB06> { [ Thai_khokhwai, Thai_sosala ] };
+ key <AB07> { [ Thai_sosua, Thai_honokhuk ] };
+ key <AB08> { [ Thai_saraa, Thai_fofan ] };
+ key <AB09> { [ Thai_chochan, Thai_choching ] };
+ key <AB10> { [ Thai_phophan, Thai_lochula ] };
+
+ key <BKSL> { [ Thai_lakkhangyao, Thai_nikhahit ] };
+};
+
+
+partial alphanumeric_keys
+xkb_symbols "tis" {
+ name[Group1]= "Thai (TIS-820.2538)";
+ // The thai layout defines a second keyboard group and changes
+ // the behavior of a few modifier keys.
+
+ // converted to THai keysysms - Pablo Saratxaga <pablo@mandrakesoft.com>
+ // modified to TIS-820.2538 - Theppitak Karoonboonyanan <thep@linux.thai.net>
+ key <TLDE> { [ 0x1000e4f, 0x1000e5b ] };
+ key <AE01> { [ Thai_baht, Thai_lakkhangyao] };
+ key <AE02> { [ slash, Thai_leknung ] };
+ key <AE03> { [ minus, Thai_leksong ] };
+ key <AE04> { [ Thai_phosamphao, Thai_leksam ] };
+ key <AE05> { [ Thai_thothung, Thai_leksi ] };
+ key <AE06> { [ Thai_sarau, Thai_sarauu ] };
+ key <AE07> { [ Thai_saraue, 0x1000e4e ] };
+ key <AE08> { [ Thai_khokhwai, Thai_lekha ] };
+ key <AE09> { [ Thai_totao, Thai_lekhok ] };
+ key <AE10> { [ Thai_chochan, Thai_lekchet ] };
+ key <AE11> { [ Thai_khokhai, Thai_lekpaet ] };
+ key <AE12> { [ Thai_chochang, Thai_lekkao ] };
+
+ key <AD01> { [ Thai_maiyamok, Thai_leksun ] };
+ key <AD02> { [ Thai_saraaimaimalai, quotedbl ] };
+ key <AD03> { [ Thai_saraam, Thai_dochada ] };
+ key <AD04> { [ Thai_phophan, Thai_thonangmontho ] };
+ key <AD05> { [ Thai_saraa, Thai_thothong ] };
+ key <AD06> { [ Thai_maihanakat, Thai_nikhahit ] };
+ key <AD07> { [ Thai_saraii, Thai_maitri ] };
+ key <AD08> { [ Thai_rorua, Thai_nonen ] };
+ key <AD09> {type[Group1]="THREE_LEVEL",
+ [ Thai_nonu, Thai_paiyannoi, 0x1000e5a] };
+ key <AD10> { [ Thai_yoyak, Thai_yoying ] };
+ key <AD11> { [ Thai_bobaimai, Thai_thothan ] };
+ key <AD12> { [ Thai_loling, comma ] };
+
+ key <AC01> { [ Thai_fofan, Thai_ru ] };
+ key <AC02> { [ Thai_hohip, Thai_khorakhang ] };
+ key <AC03> { [ Thai_kokai, Thai_topatak ] };
+ key <AC04> { [ Thai_dodek, Thai_sarao ] };
+ key <AC05> { [ Thai_sarae, Thai_chochoe ] };
+ key <AC06> { [ Thai_maitho, Thai_maitaikhu ] };
+ key <AC07> { [ Thai_maiek, Thai_maichattawa ] };
+ key <AC08> { [ Thai_saraaa, Thai_sorusi ] };
+ key <AC09> { [ Thai_sosua, Thai_sosala ] };
+ key <AC10> { [ Thai_wowaen, Thai_soso ] };
+ key <AC11> { [ Thai_ngongu, period ] };
+
+ key <AB01> { [ Thai_phophung, parenleft ] };
+ key <AB02> { [ Thai_popla, parenright ] };
+ key <AB03> { [ Thai_saraae, Thai_choching ] };
+ key <AB04> { [ Thai_oang, Thai_honokhuk ] };
+ key <AB05> { [ Thai_sarai, Thai_phinthu ] };
+ key <AB06> { [ Thai_sarauee, Thai_thanthakhat ] };
+ key <AB07> { [ Thai_thothahan, question ] };
+ key <AB08> { [ Thai_moma, Thai_thophuthao ] };
+ key <AB09> { [ Thai_saraaimaimuan, Thai_lochula ] };
+ key <AB10> { [ Thai_fofa, Thai_lu ] };
+
+ key <BKSL> { [ Thai_khokhon, Thai_khokhuat ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "olpc" {
+
+ name[Group1]= "Thai";
+ // The OLPC thai layout
+ // walter@laptop.org
+
+ key <TLDE> { [ 0x1000E4F, 0x1000E5B ] };
+ key <AE01> { [ 0x1000E3F, 0x1000E45 ] };
+ key <AE02> { [ slash, 0x1000E51 ] };
+ key <AE03> { [ minus, 0x1000E52 ] };
+ key <AE04> { [ 0x1000E20, 0x1000E53 ] };
+ key <AE05> { [ 0x1000E16, 0x1000E54 ] };
+ key <AE06> { [ 0x1000E38, 0x1000E39 ] };
+ key <AE07> { [ 0x1000E36, 0x1000E4E ] };
+ key <AE08> { [ 0x1000E04, 0x1000E55 ] };
+ key <AE09> { [ 0x1000E15, 0x1000E56 ] };
+ key <AE10> { [ 0x1000E08, 0x1000E57 ] };
+ key <AE11> { [ 0x1000E02, 0x1000E58 ] };
+ key <AE12> { [ 0x1000E0A, 0x1000E59 ] };
+
+ key <AD01> { [ 0x1000E46, 0x1000E50 ] };
+ key <AD02> { [ 0x1000E44, quotedbl ] };
+ key <AD03> { [ 0x1000E33, 0x1000E0E ] };
+ key <AD04> { [ 0x1000E1E, 0x1000E11 ] };
+ key <AD05> { [ 0x1000E30, 0x1000E18 ] };
+ key <AD06> { [ 0x1000E31, 0x1000E4D ] };
+ key <AD07> { [ 0x1000E35, 0x1000E4A ] };
+ key <AD08> { [ 0x1000E23, 0x1000E13 ] };
+ key <AD09> { [ 0x1000E19, 0x1000E2F ] };
+ key <AD10> { [ 0x1000E22, 0x1000E0D ] };
+ key <AD11> { [ 0x1000E1A, 0x1000E10 ] };
+ key <AD12> { [ 0x1000E25, comma ] };
+
+ key <AC01> { [ 0x1000E1F, 0x1000E24 ] };
+ key <AC02> { [ 0x1000E2B, 0x1000E06 ] };
+ key <AC03> { [ 0x1000E01, 0x1000E0F ] };
+ key <AC04> { [ 0x1000E14, 0x1000E42 ] };
+ key <AC05> { [ 0x1000E40, 0x1000E0C ] };
+ key <AC06> { [ 0x1000E49, 0x1000E47 ] };
+ key <AC07> { [ 0x1000E48, 0x1000E4B ] };
+ key <AC08> { [ 0x1000E32, 0x1000E29 ] };
+ key <AC09> { [ 0x1000E2A, 0x1000E28 ] };
+ key <AC10> { [ 0x1000E27, 0x1000E0B ] };
+ key <AC11> { [ 0x1000E07, period ] };
+ key <BKSL> { [ 0x1000E05, 0x1000E03 ] };
+
+ key <AB01> { [ 0x1000E1C, parenleft ] };
+ key <AB02> { [ 0x1000E1B, parenright ] };
+ key <AB03> { [ 0x1000E41, 0x1000E09 ] };
+ key <AB04> { [ 0x1000E2D, 0x1000E2E ] };
+ key <AB05> { [ 0x1000E34, 0x1000E3A ] };
+ key <AB06> { [ 0x1000E37, 0x1000E4C ] };
+ key <AB07> { [ 0x1000E17, question ] };
+ key <AB08> { [ 0x1000E21, 0x1000E12 ] };
+ key <AB09> { [ 0x1000E43, 0x1000E2C ] };
+ key <AB10> { [ 0x1000E1D, 0x1000E26 ] };
+
+ include "group(olpc)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/tj b/xorg-server/xkeyboard-config/symbols/tj
index fdaf7321d..e4c4af4f6 100644
--- a/xorg-server/xkeyboard-config/symbols/tj
+++ b/xorg-server/xkeyboard-config/symbols/tj
@@ -1,136 +1,136 @@
-// 17/07/2008
-// -------------------------------------------------------------
-// Standard Tojiki Keyboard Layout, Official Standard
-// -------------------------------------------------------------
-// Created by Victor Ibragimov <victor.ibragimov@gmail.com>
-// Tajik Fedora & Software Localization Team
-// -------------------------------------------------------------
-// DUAL INPUT METHOD
-// --------------------------------------------------------------------
-// -------------- Tajiki Official Keyboard Layout----------------------
-// --------------------------------------------------------------------
-//
-
-partial default alphanumeric_keys
-xkb_symbols "basic"
-{
- name[Group1] = "Tajikistan";
-
- include "kpdl(comma)"
- include "level3(ralt_switch)"
-
- key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я
- key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] }; // ч Ч
- key <AB03> { [ Cyrillic_es, Cyrillic_ES ] }; // с С
- key <AB04> { [ Cyrillic_em, Cyrillic_EM ] }; // м М
- key <AB05> { [ Cyrillic_i, Cyrillic_I ] }; // и И
- key <AB06> { [ Cyrillic_te, Cyrillic_TE ] }; // т Т
- key <AB07> { [ 0x10004e3, 0x10004e2 ] }; // ӣ Ӣ
- key <AB08> { [ Cyrillic_be, Cyrillic_BE ] }; // б Б
- key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю
- key <AB10> { [ period, comma ] }; // . ,
- key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф
- key <AC02> { [ 0x10004b7, 0x10004b6 ] }; // ҷ Ҷ
- key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] }; // в В
- key <AC04> { [ Cyrillic_a, Cyrillic_A ] }; // а А
- key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] }; // п П
- key <AC06> { [ Cyrillic_er, Cyrillic_ER ] }; // р Р
- key <AC07> { [ Cyrillic_o, Cyrillic_O ] }; // о О
- key <AC08> { [ Cyrillic_el, Cyrillic_EL ] }; // л Л
- key <AC09> { [ Cyrillic_de, Cyrillic_DE ] }; // д Д
- key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж
- key <AC11> { [ Cyrillic_e, Cyrillic_E ] }; // э Э
- key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й
- key <AD02> { [ 0x100049b, 0x100049a ] }; // қ Қ
- key <AD03> { [ Cyrillic_u, Cyrillic_U ] }; // у У
- key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] }; // к К
- key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е
- key <AD06> { [ Cyrillic_en, Cyrillic_EN ] }; // н Н
- key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] }; // г Г
- key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш
- key <AD09> { [ 0x10004b3, 0x10004b2 ] }; // ҳ Ҳ
- key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З
- key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] }; // х Х
- key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ
- key <AE01> { [ 1, exclam, 0x10000a7 ] }; // 1 ! §
- key <AE02> { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « »
- key <AE03> { [ 3, numerosign ] }; // 3 №
- key <AE04> { [ 4, semicolon ] }; // 4 ;
- key <AE05> { [ 5, percent ] }; // 5 %
- key <AE06> { [ 6, colon, 0x1002013 ] }; // 6 : –
- key <AE07> { [ 7, question, ampersand ] }; // 7 ? &
- key <AE08> { [ 8, asterisk ] }; // 8 *
- key <AE09> { [ 9, parenleft ] }; // 9 (
- key <AE10> { [ 0, parenright, 0x10000b0 ] }; // 0 ) °
- key <AE11> { [ 0x1000493, 0x1000492, minus, underscore ] }; // ғ Ғ - _
- key <AE12> { [ 0x10004ef, 0x10004ee, equal, plus ] }; // ӯ Ӯ = +
- key <BKSL> { [ backslash, slash ] }; // \ /
- key <LSGT> { [ slash, bar ] }; // / |
- key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё
-};
-
-// --------------------------------------------------------------------
-// -------------- Tojiki Rusi Keyboard Layout--------------------------
-// --------------------------------------------------------------------
-// AEN <aen@logic.ru>
-// 2001/12/23 by Leon Kanter <leon@blackcatlinux.com>
-// 2005/12/09 Valery Inozemtsev <shrek@altlinux.ru>
-// Pablo Saratxaga <pablo@mandrakesoft> (for the dead keys changes)
-// --------------------------------------------------------------------
-
-xkb_symbols "legacy"
-{
- name[Group1] = "Tajikistan - Legacy";
-
- include "kpdl(comma)"
- include "level3(ralt_switch)"
-
- key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я
- key <AB02> { [ Cyrillic_che, Cyrillic_CHE, 0x10004b7, 0x10004b6 ] }; // ч Ч ҷ Ҷ
- key <AB03> { [ Cyrillic_es, Cyrillic_ES ] }; // с С
- key <AB04> { [ Cyrillic_em, Cyrillic_EM ] }; // м М
- key <AB05> { [ Cyrillic_i, Cyrillic_I, 0x10004e3, 0x10004e2 ] }; // и И ӣ Ӣ
- key <AB06> { [ Cyrillic_te, Cyrillic_TE ] }; // т Т
- key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; // ь Ь
- key <AB08> { [ Cyrillic_be, Cyrillic_BE ] }; // б Б
- key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю
- key <AB10> { [ period, comma ] }; // . ,
- key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф
- key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] }; // ы Ы
- key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] }; // в В
- key <AC04> { [ Cyrillic_a, Cyrillic_A ] }; // а А
- key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] }; // п П
- key <AC06> { [ Cyrillic_er, Cyrillic_ER ] }; // р Р
- key <AC07> { [ Cyrillic_o, Cyrillic_O ] }; // о О
- key <AC08> { [ Cyrillic_el, Cyrillic_EL ] }; // л Л
- key <AC09> { [ Cyrillic_de, Cyrillic_DE ] }; // д Д
- key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж
- key <AC11> { [ Cyrillic_e, Cyrillic_E ] }; // э Э
- key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й
- key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] }; // ц Ц
- key <AD03> { [ Cyrillic_u, Cyrillic_U, 0x10004ef, 0x10004ee ] }; // у У ӯ Ӯ
- key <AD04> { [ Cyrillic_ka, Cyrillic_KA, 0x100049b, 0x100049a ] }; // к К қ Қ
- key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е
- key <AD06> { [ Cyrillic_en, Cyrillic_EN ] }; // н Н
- key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, 0x1000493, 0x1000492 ] }; // г Г ғ Ғ
- key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш
- key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; // щ Щ
- key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З
- key <AD11> { [ Cyrillic_ha, Cyrillic_HA, 0x10004b3, 0x10004b2 ] }; // х Х ҳ Ҳ
- key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ
- key <AE01> { [ 1, exclam, 0x10000a7 ] }; // 1 ! §
- key <AE02> { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « »
- key <AE03> { [ 3, numerosign ] }; // 3 №
- key <AE04> { [ 4, semicolon ] }; // 4 ;
- key <AE05> { [ 5, percent ] }; // 5 %
- key <AE06> { [ 6, colon, 0x1002013 ] }; // 6 : –
- key <AE07> { [ 7, question, ampersand ] }; // 7 ? &
- key <AE08> { [ 8, asterisk ] }; // 8 *
- key <AE09> { [ 9, parenleft ] }; // 9 (
- key <AE10> { [ 0, parenright ] }; // 0 )
- key <AE11> { [ minus, underscore ] }; // - _
- key <AE12> { [ equal, plus ] }; // = +
- key <BKSL> { [ backslash, slash ] }; // \ /
- key <LSGT> { [ slash, bar ] }; // / |
- key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё
-};
+// 17/07/2008
+// -------------------------------------------------------------
+// Standard Tojiki Keyboard Layout, Official Standard
+// -------------------------------------------------------------
+// Created by Victor Ibragimov <victor.ibragimov@gmail.com>
+// Tajik Fedora & Software Localization Team
+// -------------------------------------------------------------
+// DUAL INPUT METHOD
+// --------------------------------------------------------------------
+// -------------- Tajiki Official Keyboard Layout----------------------
+// --------------------------------------------------------------------
+//
+
+partial default alphanumeric_keys
+xkb_symbols "basic"
+{
+ name[Group1] = "Tajik";
+
+ include "kpdl(comma)"
+ include "level3(ralt_switch)"
+
+ key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я
+ key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] }; // ч Ч
+ key <AB03> { [ Cyrillic_es, Cyrillic_ES ] }; // с С
+ key <AB04> { [ Cyrillic_em, Cyrillic_EM ] }; // м М
+ key <AB05> { [ Cyrillic_i, Cyrillic_I ] }; // и И
+ key <AB06> { [ Cyrillic_te, Cyrillic_TE ] }; // т Т
+ key <AB07> { [ 0x10004e3, 0x10004e2 ] }; // ӣ Ӣ
+ key <AB08> { [ Cyrillic_be, Cyrillic_BE ] }; // б Б
+ key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю
+ key <AB10> { [ period, comma ] }; // . ,
+ key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф
+ key <AC02> { [ 0x10004b7, 0x10004b6 ] }; // ҷ Ҷ
+ key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] }; // в В
+ key <AC04> { [ Cyrillic_a, Cyrillic_A ] }; // а А
+ key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] }; // п П
+ key <AC06> { [ Cyrillic_er, Cyrillic_ER ] }; // р Р
+ key <AC07> { [ Cyrillic_o, Cyrillic_O ] }; // о О
+ key <AC08> { [ Cyrillic_el, Cyrillic_EL ] }; // л Л
+ key <AC09> { [ Cyrillic_de, Cyrillic_DE ] }; // д Д
+ key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж
+ key <AC11> { [ Cyrillic_e, Cyrillic_E ] }; // э Э
+ key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й
+ key <AD02> { [ 0x100049b, 0x100049a ] }; // қ Қ
+ key <AD03> { [ Cyrillic_u, Cyrillic_U ] }; // у У
+ key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] }; // к К
+ key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е
+ key <AD06> { [ Cyrillic_en, Cyrillic_EN ] }; // н Н
+ key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] }; // г Г
+ key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш
+ key <AD09> { [ 0x10004b3, 0x10004b2 ] }; // ҳ Ҳ
+ key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З
+ key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] }; // х Х
+ key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ
+ key <AE01> { [ 1, exclam, 0x10000a7 ] }; // 1 ! §
+ key <AE02> { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « »
+ key <AE03> { [ 3, numerosign ] }; // 3 №
+ key <AE04> { [ 4, semicolon ] }; // 4 ;
+ key <AE05> { [ 5, percent ] }; // 5 %
+ key <AE06> { [ 6, colon, 0x1002013 ] }; // 6 : –
+ key <AE07> { [ 7, question, ampersand ] }; // 7 ? &
+ key <AE08> { [ 8, asterisk ] }; // 8 *
+ key <AE09> { [ 9, parenleft ] }; // 9 (
+ key <AE10> { [ 0, parenright, 0x10000b0 ] }; // 0 ) °
+ key <AE11> { [ 0x1000493, 0x1000492, minus, underscore ] }; // ғ Ғ - _
+ key <AE12> { [ 0x10004ef, 0x10004ee, equal, plus ] }; // ӯ Ӯ = +
+ key <BKSL> { [ backslash, slash ] }; // \ /
+ key <LSGT> { [ slash, bar ] }; // / |
+ key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё
+};
+
+// --------------------------------------------------------------------
+// -------------- Tojiki Rusi Keyboard Layout--------------------------
+// --------------------------------------------------------------------
+// AEN <aen@logic.ru>
+// 2001/12/23 by Leon Kanter <leon@blackcatlinux.com>
+// 2005/12/09 Valery Inozemtsev <shrek@altlinux.ru>
+// Pablo Saratxaga <pablo@mandrakesoft> (for the dead keys changes)
+// --------------------------------------------------------------------
+
+xkb_symbols "legacy"
+{
+ name[Group1] = "Tajik (legacy)";
+
+ include "kpdl(comma)"
+ include "level3(ralt_switch)"
+
+ key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я
+ key <AB02> { [ Cyrillic_che, Cyrillic_CHE, 0x10004b7, 0x10004b6 ] }; // ч Ч ҷ Ҷ
+ key <AB03> { [ Cyrillic_es, Cyrillic_ES ] }; // с С
+ key <AB04> { [ Cyrillic_em, Cyrillic_EM ] }; // м М
+ key <AB05> { [ Cyrillic_i, Cyrillic_I, 0x10004e3, 0x10004e2 ] }; // и И ӣ Ӣ
+ key <AB06> { [ Cyrillic_te, Cyrillic_TE ] }; // т Т
+ key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; // ь Ь
+ key <AB08> { [ Cyrillic_be, Cyrillic_BE ] }; // б Б
+ key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю
+ key <AB10> { [ period, comma ] }; // . ,
+ key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф
+ key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] }; // ы Ы
+ key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] }; // в В
+ key <AC04> { [ Cyrillic_a, Cyrillic_A ] }; // а А
+ key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] }; // п П
+ key <AC06> { [ Cyrillic_er, Cyrillic_ER ] }; // р Р
+ key <AC07> { [ Cyrillic_o, Cyrillic_O ] }; // о О
+ key <AC08> { [ Cyrillic_el, Cyrillic_EL ] }; // л Л
+ key <AC09> { [ Cyrillic_de, Cyrillic_DE ] }; // д Д
+ key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж
+ key <AC11> { [ Cyrillic_e, Cyrillic_E ] }; // э Э
+ key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й
+ key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] }; // ц Ц
+ key <AD03> { [ Cyrillic_u, Cyrillic_U, 0x10004ef, 0x10004ee ] }; // у У ӯ Ӯ
+ key <AD04> { [ Cyrillic_ka, Cyrillic_KA, 0x100049b, 0x100049a ] }; // к К қ Қ
+ key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е
+ key <AD06> { [ Cyrillic_en, Cyrillic_EN ] }; // н Н
+ key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, 0x1000493, 0x1000492 ] }; // г Г ғ Ғ
+ key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш
+ key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; // щ Щ
+ key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З
+ key <AD11> { [ Cyrillic_ha, Cyrillic_HA, 0x10004b3, 0x10004b2 ] }; // х Х ҳ Ҳ
+ key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ
+ key <AE01> { [ 1, exclam, 0x10000a7 ] }; // 1 ! §
+ key <AE02> { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « »
+ key <AE03> { [ 3, numerosign ] }; // 3 №
+ key <AE04> { [ 4, semicolon ] }; // 4 ;
+ key <AE05> { [ 5, percent ] }; // 5 %
+ key <AE06> { [ 6, colon, 0x1002013 ] }; // 6 : –
+ key <AE07> { [ 7, question, ampersand ] }; // 7 ? &
+ key <AE08> { [ 8, asterisk ] }; // 8 *
+ key <AE09> { [ 9, parenleft ] }; // 9 (
+ key <AE10> { [ 0, parenright ] }; // 0 )
+ key <AE11> { [ minus, underscore ] }; // - _
+ key <AE12> { [ equal, plus ] }; // = +
+ key <BKSL> { [ backslash, slash ] }; // \ /
+ key <LSGT> { [ slash, bar ] }; // / |
+ key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё
+};
diff --git a/xorg-server/xkeyboard-config/symbols/tm b/xorg-server/xkeyboard-config/symbols/tm
index 56bd85d1e..ad520a6df 100644
--- a/xorg-server/xkeyboard-config/symbols/tm
+++ b/xorg-server/xkeyboard-config/symbols/tm
@@ -1,45 +1,45 @@
-// Nazar Annagurban <nazar_xg@hotmail.com>, 2009
-
-// Default layout (based on Vista Turkmen layout)
-default partial
-xkb_symbols "basic" {
- name[Group1]="Turkmenistan";
-
- include "us"
- key <TLDE> { [ zcaron, Zcaron, grave, asciitilde ] };
-
- key <AD01> { [ adiaeresis, Adiaeresis, q, Q ] };
- key <AD11> { [ ncaron, Ncaron, bracketleft, braceleft ] };
- key <AD12> { [odiaeresis, Odiaeresis, bracketright, braceright ] };
-
- key <AB02> { [udiaeresis, Udiaeresis, x, X ] };
- key <AB03> { [ ccedilla, Ccedilla, c, C ] };
- key <AB04> { [ yacute, Yacute, v, V ] };
-
- key <BKSL> { [ scedilla, Scedilla, backslash, bar ] };
-
- include "level3(ralt_switch)"
-};
-
-// Turkmen Alt-Q Layout
-// This layout provides turkmen letter via the AltGr key
-partial
-xkb_symbols "alt" {
- name[Group1]="Turkmenistan - Alt-Q";
-
- include "us"
-
- key <AD06> { [ y, Y, yacute, Yacute ] };
- key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
- key <AD09> { [ o, O, odiaeresis, Odiaeresis ] };
-
- key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
- key <AC02> { [ s, S, scedilla, Scedilla ] };
-
- key <AB01> { [ z, Z, zcaron, Zcaron ] };
- key <AB03> { [ c, C, ccedilla, Ccedilla ] };
- key <AB06> { [ n, N, ncaron, Ncaron ] };
-
- include "level3(ralt_switch)"
-
-};
+// Nazar Annagurban <nazar_xg@hotmail.com>, 2009
+
+// Default layout (based on Vista Turkmen layout)
+default partial
+xkb_symbols "basic" {
+ name[Group1]="Turkmen";
+
+ include "us"
+ key <TLDE> { [ zcaron, Zcaron, grave, asciitilde ] };
+
+ key <AD01> { [ adiaeresis, Adiaeresis, q, Q ] };
+ key <AD11> { [ ncaron, Ncaron, bracketleft, braceleft ] };
+ key <AD12> { [odiaeresis, Odiaeresis, bracketright, braceright ] };
+
+ key <AB02> { [udiaeresis, Udiaeresis, x, X ] };
+ key <AB03> { [ ccedilla, Ccedilla, c, C ] };
+ key <AB04> { [ yacute, Yacute, v, V ] };
+
+ key <BKSL> { [ scedilla, Scedilla, backslash, bar ] };
+
+ include "level3(ralt_switch)"
+};
+
+// Turkmen Alt-Q Layout
+// This layout provides turkmen letter via the AltGr key
+partial
+xkb_symbols "alt" {
+ name[Group1]="Turkmen (Alt-Q)";
+
+ include "us"
+
+ key <AD06> { [ y, Y, yacute, Yacute ] };
+ key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
+ key <AD09> { [ o, O, odiaeresis, Odiaeresis ] };
+
+ key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
+ key <AC02> { [ s, S, scedilla, Scedilla ] };
+
+ key <AB01> { [ z, Z, zcaron, Zcaron ] };
+ key <AB03> { [ c, C, ccedilla, Ccedilla ] };
+ key <AB06> { [ n, N, ncaron, Ncaron ] };
+
+ include "level3(ralt_switch)"
+
+};
diff --git a/xorg-server/xkeyboard-config/symbols/tr b/xorg-server/xkeyboard-config/symbols/tr
index 6092ce1c2..025f844b2 100644
--- a/xorg-server/xkeyboard-config/symbols/tr
+++ b/xorg-server/xkeyboard-config/symbols/tr
@@ -9,7 +9,7 @@ xkb_symbols "basic" {
include "latin"
- name[Group1]="Turkey";
+ name[Group1]="Turkish";
key <AE01> { [ 1, exclam, greater, exclamdown ] };
key <AE02> { [ 2, apostrophe, sterling, twosuperior ] };
@@ -64,7 +64,7 @@ xkb_symbols "f" {
include "latin"
- name[Group1]="Turkey - (F)";
+ name[Group1]="Turkish (F)";
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
key <AE02> { [ 2, quotedbl, twosuperior, VoidSymbol ] };
@@ -129,7 +129,7 @@ xkb_symbols "alt" {
include "latin"
- name[Group1]="Turkey - Alt-Q";
+ name[Group1]="Turkish (Alt-Q)";
key <AE07> { [ 7, ampersand, lowleftcorner, upleftcorner ] };
key <AE08> { [ 8, asterisk, leftt, topt ] };
@@ -167,7 +167,7 @@ xkb_symbols "sundeadkeys" {
// For naming consistency
include "tr(Sundeadkeys)"
- name[Group1]="Turkey - Sun dead keys";
+ name[Group1]="Turkish (Sun dead keys)";
};
// Kurdish Q Layout
@@ -180,7 +180,7 @@ xkb_symbols "ku" {
include "tr(basic)"
- name[Group1]="Turkey - Kurdish, Latin Q";
+ name[Group1]="Kurdish (Turkey, Latin Q)";
key <AD08> { [ i, I, idotless, I ] };
key <AD11> { [ x, X, gbreve, Gbreve ] };
@@ -195,7 +195,7 @@ xkb_symbols "ku_f" {
include "tr(f)"
- name[Group1]="Turkey - Kurdish, (F)";
+ name[Group1]="Kurdish (Turkey, F)";
key <AD03> { [ x, X, gbreve, Gbreve] };
key <AD04> { [ i, I, paragraph, VoidSymbol ] };
@@ -214,7 +214,7 @@ xkb_symbols "ku_alt" {
include "tr(alt)"
- name[Group1]="Turkey - Kurdish, Latin Alt-Q";
+ name[Group1]="Kurdish (Turkey, Latin Alt-Q)";
key <AD03> { [ e, E, ecircumflex, Ecircumflex ] };
key <AD07> { [ u, U, ucircumflex, Ucircumflex ] };
@@ -228,7 +228,7 @@ partial
xkb_symbols "intl" {
include "latin"
- name[Group1]="Turkey - International (with dead keys)";
+ name[Group1]="Turkish (international with dead keys)";
key <AE01> { type[group1] = "FOUR_LEVEL", [ 1, exclam, onesuperior, exclamdown ] };
key <AE02> { type[group1] = "FOUR_LEVEL", [ 2, apostrophe, sterling, twosuperior ] };
@@ -274,7 +274,7 @@ xkb_symbols "intl" {
partial alphanumeric_keys
xkb_symbols "olpc" {
- name[Group1]= "Turkey";
+ name[Group1]= "Turkish";
include "tr(intl)"
key <AE01> { [ 1, exclam, VoidSymbol, VoidSymbol ] };
@@ -309,7 +309,7 @@ xkb_symbols "crh" {
include "tr(basic)"
- name[Group1]="Turkey - Crimean Tatar (Turkish Q)";
+ name[Group1]="Crimean Tatar (Turkish Q)";
key <AE11> { [ x, X, asterisk, question ] };
@@ -326,7 +326,7 @@ xkb_symbols "crh_f" {
include "tr(f)"
- name[Group1]="Turkey - Crimean Tatar (Turkish F)";
+ name[Group1]="Crimean Tatar (Turkish F)";
key <AE11> { [ x, X, slash, question ] };
@@ -345,7 +345,7 @@ xkb_symbols "crh_alt" {
include "tr(alt)"
- name[Group1]="Turkey - Crimean Tatar (Turkish Alt-Q)";
+ name[Group1]="Crimean Tatar (Turkish Alt-Q)";
key <AC04> { [ f, F, iacute, Iacute ] };
key <AC07> { [ j, J, ibreve, Ibreve ] };
diff --git a/xorg-server/xkeyboard-config/symbols/tw b/xorg-server/xkeyboard-config/symbols/tw
index 8c50023bb..561cb029a 100644
--- a/xorg-server/xkeyboard-config/symbols/tw
+++ b/xorg-server/xkeyboard-config/symbols/tw
@@ -1,73 +1,73 @@
-// $XKeyboardConfig$
-
-partial default alphanumeric_keys
-xkb_symbols "tw" {
-
- name[Group1]= "Taiwan";
-
- include "us(basic)"
-
- // Alphanumeric section
- key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
- key <AE01> { [ 1, exclam, U030D, exclamdown ] };
- key <AE02> { [ 2, at, U0358, twosuperior ] };
- key <AE03> { [ 3, numbersign, section, threesuperior ] };
- key <AE04> { [ 4, dollar, yen, sterling ] };
- key <AE05> { [ 5, percent, EuroSign, cent ] };
- key <AE06> { [ 6,asciicircum, dead_circumflex, dead_caron ] };
- key <AE07> { [ 7, ampersand, dead_acute, NoSymbol ] };
- key <AE08> { [ 8, asterisk, dead_cedilla, dead_horn ] };
- key <AE09> { [ 9, parenleft, dead_ogonek, dead_breve ] };
- key <AE10> { [ 0, parenright, dead_abovedot, dead_abovering ] };
- key <AE11> { [ minus, underscore, dead_macron, plusminus ] };
- key <AE12> { [ equal, plus, multiply, division ] };
-
- key <AD01> { [ q, Q, paragraph, degree ] };
- key <AD03> { [ e, E, eacute, Eacute ] };
- key <AD04> { [ r, R, U1E5F, U1E5E ] };
- key <AD05> { [ t, T, U1E6F, U1E6E ] };
- key <AD06> { [ y, Y, U1E73, U1E72 ] };
- key <AD07> { [ u, U, U0289, U0244 ] };
- key <AD08> { [ i, I, U0268, U0197 ] };
- key <AD09> { [ o, O, oslash, Ooblique ] };
-
- key <AC02> { [ s, S, ssharp, NoSymbol ] };
- key <AC03> { [ d, D, U1E0F, U1E0E ] };
- key <AC05> { [ g, G, eng, ENG ] };
- key <AC10> { [ semicolon, colon, U02D0, dead_diaeresis ] };
- key <AC11> { [apostrophe, quotedbl, U02BC, dead_doubleacute ] };
-
- key <AB03> { [ c, C, ccedilla, Ccedilla ] };
- key <AB06> { [ n, N, ntilde, Ntilde ] };
- key <AB07> { [ m, M, mu, mu ] };
- key <AB08> { [ comma, less, dead_belowcomma, guillemotleft ] };
- key <AB09> { [ period, greater, dead_belowdot, guillemotright ] };
- key <AB10> { [ slash, question, questiondown, dead_hook ] };
- key <BKSL> { [ backslash, bar, notsign, brokenbar ] };
-
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "indigenous" {
-
- name[Group1]= "Taiwan - Indigenous";
-
- include "tw(tw)"
-
- key <AC11> { [ U02BC, quotedbl, apostrophe, dead_doubleacute ] };
-
- include "level3(ralt_switch)"
-};
-
-partial alphanumeric_keys
-xkb_symbols "saisiyat" {
-
- name[Group1]= "Taiwan - Saisiyat";
-
- include "tw(indigenous)"
-
- key <AC10> { [ U02D0, colon, semicolon, dead_diaeresis ] };
-
- include "level3(ralt_switch)"
-};
+// $XKeyboardConfig$
+
+partial default alphanumeric_keys
+xkb_symbols "tw" {
+
+ name[Group1]= "Taiwanese";
+
+ include "us(basic)"
+
+ // Alphanumeric section
+ key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
+ key <AE01> { [ 1, exclam, U030D, exclamdown ] };
+ key <AE02> { [ 2, at, U0358, twosuperior ] };
+ key <AE03> { [ 3, numbersign, section, threesuperior ] };
+ key <AE04> { [ 4, dollar, yen, sterling ] };
+ key <AE05> { [ 5, percent, EuroSign, cent ] };
+ key <AE06> { [ 6,asciicircum, dead_circumflex, dead_caron ] };
+ key <AE07> { [ 7, ampersand, dead_acute, NoSymbol ] };
+ key <AE08> { [ 8, asterisk, dead_cedilla, dead_horn ] };
+ key <AE09> { [ 9, parenleft, dead_ogonek, dead_breve ] };
+ key <AE10> { [ 0, parenright, dead_abovedot, dead_abovering ] };
+ key <AE11> { [ minus, underscore, dead_macron, plusminus ] };
+ key <AE12> { [ equal, plus, multiply, division ] };
+
+ key <AD01> { [ q, Q, paragraph, degree ] };
+ key <AD03> { [ e, E, eacute, Eacute ] };
+ key <AD04> { [ r, R, U1E5F, U1E5E ] };
+ key <AD05> { [ t, T, U1E6F, U1E6E ] };
+ key <AD06> { [ y, Y, U1E73, U1E72 ] };
+ key <AD07> { [ u, U, U0289, U0244 ] };
+ key <AD08> { [ i, I, U0268, U0197 ] };
+ key <AD09> { [ o, O, oslash, Ooblique ] };
+
+ key <AC02> { [ s, S, ssharp, NoSymbol ] };
+ key <AC03> { [ d, D, U1E0F, U1E0E ] };
+ key <AC05> { [ g, G, eng, ENG ] };
+ key <AC10> { [ semicolon, colon, U02D0, dead_diaeresis ] };
+ key <AC11> { [apostrophe, quotedbl, U02BC, dead_doubleacute ] };
+
+ key <AB03> { [ c, C, ccedilla, Ccedilla ] };
+ key <AB06> { [ n, N, ntilde, Ntilde ] };
+ key <AB07> { [ m, M, mu, mu ] };
+ key <AB08> { [ comma, less, dead_belowcomma, guillemotleft ] };
+ key <AB09> { [ period, greater, dead_belowdot, guillemotright ] };
+ key <AB10> { [ slash, question, questiondown, dead_hook ] };
+ key <BKSL> { [ backslash, bar, notsign, brokenbar ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "indigenous" {
+
+ name[Group1]= "Taiwanese (indigenous)";
+
+ include "tw(tw)"
+
+ key <AC11> { [ U02BC, quotedbl, apostrophe, dead_doubleacute ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "saisiyat" {
+
+ name[Group1]= "Saisiyat (Taiwan)";
+
+ include "tw(indigenous)"
+
+ key <AC10> { [ U02D0, colon, semicolon, dead_diaeresis ] };
+
+ include "level3(ralt_switch)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/tz b/xorg-server/xkeyboard-config/symbols/tz
index 64804d678..e4d50539f 100644
--- a/xorg-server/xkeyboard-config/symbols/tz
+++ b/xorg-server/xkeyboard-config/symbols/tz
@@ -1,59 +1,59 @@
-// Keyboard layout for Swahili in Arabic script.
-// Based on Martin Vidner's Buckwalter transliteration variant of the Arabic keyboard
-// Please notify any corrections or omissions to
-// Kevin Donnelly (kevin@dotmon.com)
-
-partial default alphanumeric_keys
-xkb_symbols "swa" {
- name[Group1]= "Tanzania";
-
- key <TLDE> { [ 0x1000670, VoidSymbol ] };
-
- key <AE01> { [ 0x1000661, VoidSymbol ] };
- key <AE02> { [ 0x1000662, VoidSymbol ] };
- key <AE03> { [ 0x1000663, VoidSymbol ] };
- key <AE04> { [ 0x1000664, VoidSymbol ] };
- key <AE05> { [ 0x1000665, Arabic_percent ] };
- key <AE06> { [ 0x1000666, VoidSymbol ] };
- key <AE07> { [ 0x1000667, VoidSymbol ] };
- key <AE08> { [ 0x1000668, VoidSymbol ] };
- key <AE09> { [ 0x1000669, 0x100fd3e ] };
- key <AE10> { [ 0x1000660, 0x100fd3f ] };
- key <AE11> { [ minus, Arabic_tatweel ] };
- key <AE12> { [ equal, plus ] };
-
- key <AD01> { [ Arabic_qaf, Arabic_gaf ] };
- key <AD02> { [ Arabic_waw, Arabic_hamzaonwaw ] };
- key <AD03> { [ 0x1000656, Arabic_ain ] };
- key <AD04> { [ Arabic_ra, Arabic_tteh ] };
- key <AD05> { [ Arabic_teh, Arabic_tah ] };
- key <AD06> { [ Arabic_yeh, Arabic_alefmaksura ] };
- key <AD07> { [ Arabic_damma, Arabic_dammatan ] };
- key <AD08> { [ Arabic_kasra, Arabic_hamzaonyeh ] };
- key <AD09> { [ Arabic_sukun, 0x1000657 ] };
- key <AD10> { [ Arabic_peh, Arabic_tehmarbuta ] };
- key <AD12> { [ VoidSymbol, VoidSymbol ] };
-
- key <AC01> { [ Arabic_fatha, Arabic_alef ] };
- key <AC02> { [ Arabic_seen, Arabic_sad ] };
- key <AC03> { [ Arabic_dal, Arabic_dad ] };
- key <AC04> { [ Arabic_feh, Arabic_fathatan ] };
- key <AC05> { [ 0x10006A0, Arabic_ghain ] };
- key <AC06> { [ Arabic_ha, Arabic_hah ] };
- key <AC07> { [ Arabic_jeem, VoidSymbol ] };
- key <AC08> { [ Arabic_kaf, Arabic_kasratan ] };
- key <AC09> { [ Arabic_lam, Arabic_shadda ] };
- key <AC10> { [ Arabic_semicolon, VoidSymbol ] };
- key <AC11> { [ Arabic_hamza, VoidSymbol ] };
-
- key <AB01> { [ Arabic_zain, Arabic_zah ] };
- key <AB02> { [ Arabic_khah, VoidSymbol ] };
- key <AB03> { [ Arabic_tcheh, Arabic_sheen ] };
- key <AB04> { [ 0x10006A8, Arabic_theh ] };
- key <AB05> { [ Arabic_beh, Arabic_thal ] };
- key <AB06> { [ Arabic_noon, VoidSymbol ] };
- key <AB07> { [ Arabic_meem, VoidSymbol ] };
- key <AB08> { [ Arabic_comma, Arabic_hamzaunderalef ] };
- key <AB09> { [ 0x10006d4, Arabic_hamzaonalef ] };
- key <AB10> { [ VoidSymbol, Arabic_question_mark ] };
-};
+// Keyboard layout for Swahili in Arabic script.
+// Based on Martin Vidner's Buckwalter transliteration variant of the Arabic keyboard
+// Please notify any corrections or omissions to
+// Kevin Donnelly (kevin@dotmon.com)
+
+partial default alphanumeric_keys
+xkb_symbols "swa" {
+ name[Group1]= "Swahili (Tanzania)";
+
+ key <TLDE> { [ 0x1000670, VoidSymbol ] };
+
+ key <AE01> { [ 0x1000661, VoidSymbol ] };
+ key <AE02> { [ 0x1000662, VoidSymbol ] };
+ key <AE03> { [ 0x1000663, VoidSymbol ] };
+ key <AE04> { [ 0x1000664, VoidSymbol ] };
+ key <AE05> { [ 0x1000665, Arabic_percent ] };
+ key <AE06> { [ 0x1000666, VoidSymbol ] };
+ key <AE07> { [ 0x1000667, VoidSymbol ] };
+ key <AE08> { [ 0x1000668, VoidSymbol ] };
+ key <AE09> { [ 0x1000669, 0x100fd3e ] };
+ key <AE10> { [ 0x1000660, 0x100fd3f ] };
+ key <AE11> { [ minus, Arabic_tatweel ] };
+ key <AE12> { [ equal, plus ] };
+
+ key <AD01> { [ Arabic_qaf, Arabic_gaf ] };
+ key <AD02> { [ Arabic_waw, Arabic_hamzaonwaw ] };
+ key <AD03> { [ 0x1000656, Arabic_ain ] };
+ key <AD04> { [ Arabic_ra, Arabic_tteh ] };
+ key <AD05> { [ Arabic_teh, Arabic_tah ] };
+ key <AD06> { [ Arabic_yeh, Arabic_alefmaksura ] };
+ key <AD07> { [ Arabic_damma, Arabic_dammatan ] };
+ key <AD08> { [ Arabic_kasra, Arabic_hamzaonyeh ] };
+ key <AD09> { [ Arabic_sukun, 0x1000657 ] };
+ key <AD10> { [ Arabic_peh, Arabic_tehmarbuta ] };
+ key <AD12> { [ VoidSymbol, VoidSymbol ] };
+
+ key <AC01> { [ Arabic_fatha, Arabic_alef ] };
+ key <AC02> { [ Arabic_seen, Arabic_sad ] };
+ key <AC03> { [ Arabic_dal, Arabic_dad ] };
+ key <AC04> { [ Arabic_feh, Arabic_fathatan ] };
+ key <AC05> { [ 0x10006A0, Arabic_ghain ] };
+ key <AC06> { [ Arabic_ha, Arabic_hah ] };
+ key <AC07> { [ Arabic_jeem, VoidSymbol ] };
+ key <AC08> { [ Arabic_kaf, Arabic_kasratan ] };
+ key <AC09> { [ Arabic_lam, Arabic_shadda ] };
+ key <AC10> { [ Arabic_semicolon, VoidSymbol ] };
+ key <AC11> { [ Arabic_hamza, VoidSymbol ] };
+
+ key <AB01> { [ Arabic_zain, Arabic_zah ] };
+ key <AB02> { [ Arabic_khah, VoidSymbol ] };
+ key <AB03> { [ Arabic_tcheh, Arabic_sheen ] };
+ key <AB04> { [ 0x10006A8, Arabic_theh ] };
+ key <AB05> { [ Arabic_beh, Arabic_thal ] };
+ key <AB06> { [ Arabic_noon, VoidSymbol ] };
+ key <AB07> { [ Arabic_meem, VoidSymbol ] };
+ key <AB08> { [ Arabic_comma, Arabic_hamzaunderalef ] };
+ key <AB09> { [ 0x10006d4, Arabic_hamzaonalef ] };
+ key <AB10> { [ VoidSymbol, Arabic_question_mark ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/ua b/xorg-server/xkeyboard-config/symbols/ua
index ac8e4a276..262243e22 100644
--- a/xorg-server/xkeyboard-config/symbols/ua
+++ b/xorg-server/xkeyboard-config/symbols/ua
@@ -9,7 +9,7 @@ partial default alphanumeric_keys
xkb_symbols "unicode" {
include "ua(winkeys)"
- name[Group1]= "Ukraine";
+ name[Group1]= "Ukrainian";
key <TLDE> { [ U2019, apostrophe, U0301, asciitilde ] }; // Apostrophe and Stress symbol
key <AE02> { [ 1, exclam, onesuperior ] };
@@ -46,7 +46,7 @@ xkb_symbols "unicode" {
partial alphanumeric_keys
xkb_symbols "legacy" {
- name[Group1]= "Ukraine - Legacy";
+ name[Group1]= "Ukrainian (legacy)";
key <TLDE> { [ apostrophe, asciitilde ] };
key <AE01> { [ 1, exclam ] };
@@ -107,7 +107,7 @@ partial alphanumeric_keys
xkb_symbols "winkeys" {
include "ua(legacy)"
- name[Group1]= "Ukraine - Winkeys";
+ name[Group1]= "Ukrainian (WinKeys)";
key <AE03> { [ 3, numerosign ] };
key <AE04> { [ 4, semicolon ] };
@@ -122,7 +122,7 @@ partial alphanumeric_keys
xkb_symbols "typewriter" {
include "ua(legacy)"
- name[Group1]= "Ukraine - Typewriter";
+ name[Group1]= "Ukrainian (typewriter)";
key <TLDE> { [ apostrophe, quotedbl ] };
key <AE01> { [ exclam, 1 ] };
@@ -151,7 +151,7 @@ partial alphanumeric_keys
xkb_symbols "phonetic" {
include "ua(legacy)"
- name[Group1]= "Ukraine - Phonetic";
+ name[Group1]= "Ukrainian (phonetic)";
key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };
key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
@@ -197,7 +197,7 @@ partial alphanumeric_keys
xkb_symbols "rstu" {
include "ua(legacy)"
- name[Group1]= "Ukraine - Standard RSTU";
+ name[Group1]= "Ukrainian (standard RSTU)";
key <TLDE> { [ apostrophe, question ] };
key <AE01> { [ exclam, 1 ] };
@@ -227,7 +227,7 @@ xkb_symbols "rstu" {
partial alphanumeric_keys
xkb_symbols "rstu_ru" {
include "ru(common)"
- name[Group1]= "Ukraine - Standard RSTU on Russian layout";
+ name[Group1]= "Russian (Ukraine, standard RSTU)";
key <TLDE> { [ apostrophe, question ] };
key <AE01> { [ exclam, 1 ] };
@@ -253,7 +253,7 @@ key.type[group1]="ALPHABETIC";
partial alphanumeric_keys
xkb_symbols "homophonic" {
include "ua(legacy)"
- name[Group1]= "Ukraine - Homophonic";
+ name[Group1]= "Ukrainian (homophonic)";
key <TLDE> { [ grave, underscore ] };
key <AE01> { [ 1, exclam ] };
diff --git a/xorg-server/xkeyboard-config/symbols/us b/xorg-server/xkeyboard-config/symbols/us
index cb9492287..19ddae869 100644
--- a/xorg-server/xkeyboard-config/symbols/us
+++ b/xorg-server/xkeyboard-config/symbols/us
@@ -2,7 +2,7 @@ default
partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
- name[Group1]= "English (USA)";
+ name[Group1]= "English (US)";
// Alphanumeric section
key <TLDE> { [ grave, asciitilde ] };
@@ -554,7 +554,7 @@ partial alphanumeric_keys
xkb_symbols "dvp" {
include "us(dvorak)"
- name[Group1] = "USA - Programmer Dvorak";
+ name[Group1] = "English (programmer Dvorak)";
// Unmodified Shift AltGr Shift+AltGr
// symbols row, left side
@@ -1123,7 +1123,7 @@ xkb_symbols "chr" {
partial alphanumeric_keys
xkb_symbols "hbs" {
- name[Group1]= "Serbo-Croatian (USA)";
+ name[Group1]= "Serbo-Croatian (US)";
include "us"
@@ -1212,7 +1212,7 @@ xkb_symbols "htcdream" {
partial alphanumeric_keys
xkb_symbols "intl-unicode" {
- name[Group1]= "USA - International (AltGr Unicode combining)";
+ name[Group1]= "English (US, international AltGr Unicode combining)";
include "us(intl)"
include "level3(ralt_switch)"
@@ -1262,7 +1262,7 @@ xkb_symbols "intl-unicode" {
partial alphanumeric_keys
xkb_symbols "alt-intl-unicode" {
- name[Group1]= "USA - International (AltGr Unicode combining, alternative)";
+ name[Group1]= "English (US, international AltGr Unicode combining, alternative)";
include "extras/us(intl-unicode)"
include "level3(ralt_switch)"
@@ -1282,7 +1282,7 @@ xkb_symbols "ats" {
include "us"
- name[Group1]= "USA - Atsina";
+ name[Group1]= "Atsina";
//Using Dead key to get COMBINING COMMA ABOVE for ejectives on
//q, l, t, s, m, g, k, p, w, y, r
@@ -1313,7 +1313,7 @@ xkb_symbols "crd" {
include "us"
- name[Group1]= "USA - Couer D'alene Salish";
+ name[Group1]= "Couer D'alene Salish";
// Alphanumeric section
key <AD02> { [ w, W, U02B7, U02B7 ] };
diff --git a/xorg-server/xkeyboard-config/symbols/uz b/xorg-server/xkeyboard-config/symbols/uz
index 68862bbc7..d0e3c04b6 100644
--- a/xorg-server/xkeyboard-config/symbols/uz
+++ b/xorg-server/xkeyboard-config/symbols/uz
@@ -33,7 +33,7 @@
partial default alphanumeric_keys
xkb_symbols "cyrillic" {
- name[Group1]= "Uzbekistan";
+ name[Group1]= "Uzbek";
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, quotedbl ] };
@@ -93,6 +93,6 @@ key.type[group1]="ALPHABETIC";
partial alphanumeric_keys
xkb_symbols "latin" {
include "us"
- name[Group1]= "Uzbekistan - Latin";
+ name[Group1]= "Uzbek (Latin)";
key <AC11> { [0x010002BB, quotedbl] };
};
diff --git a/xorg-server/xkeyboard-config/symbols/vn b/xorg-server/xkeyboard-config/symbols/vn
index 4aed75eb8..397a28126 100644
--- a/xorg-server/xkeyboard-config/symbols/vn
+++ b/xorg-server/xkeyboard-config/symbols/vn
@@ -1,39 +1,39 @@
-// based on:
-// vn, TCVN 5712:1993
-// Le Hong Boi <le.hong.boi@bigfoot.com>
-// August 1999
-// Further modified by Ashley Clark <aclark@debian.org>
-// July 2000 for X 4.0
-// Fix accents into combining marks by Samuel Thibault <samuel.thibault@ens-lyon.org>
-// July 2009
-
-
-partial default alphanumeric_keys
-xkb_symbols "basic" {
-
- include "us"
-
- name[Group1]= "Vietnam";
-
- // Alphanumeric section
- key <TLDE> { [ quoteleft, asciitilde ] };
- key <AE01> { [ abreve, Abreve ] };
- key <AE02> { [ acircumflex, Acircumflex ] };
- key <AE03> { [ ecircumflex, Ecircumflex ] };
- key <AE04> { [ ocircumflex, Ocircumflex ] };
- key <AE05> { [ 0x1000300, percent, dead_grave, percent ] };
- key <AE06> { [ 0x1000309, asciicircum, dead_hook, asciicircum ] };
- key <AE07> { [ 0x1000303, ampersand, dead_tilde, ampersand ] };
- key <AE08> { [ 0x1000301, asterisk, dead_acute, asterisk ] };
- key <AE09> { [ 0x1000323, parenleft, dead_belowdot, parenleft ] };
- key <AE10> { [ dstroke, Dstroke ] };
- key <AE11> { [ minus, underscore ] };
- key <AE12> { [ DongSign, plus ] };
-
- key <AD11> { [ uhorn, Uhorn ] };
- key <AD12> { [ ohorn, Ohorn ] };
-
- // End alphanumeric section
-
- include "level3(ralt_switch)"
-};
+// based on:
+// vn, TCVN 5712:1993
+// Le Hong Boi <le.hong.boi@bigfoot.com>
+// August 1999
+// Further modified by Ashley Clark <aclark@debian.org>
+// July 2000 for X 4.0
+// Fix accents into combining marks by Samuel Thibault <samuel.thibault@ens-lyon.org>
+// July 2009
+
+
+partial default alphanumeric_keys
+xkb_symbols "basic" {
+
+ include "us"
+
+ name[Group1]= "Vietnamese";
+
+ // Alphanumeric section
+ key <TLDE> { [ quoteleft, asciitilde ] };
+ key <AE01> { [ abreve, Abreve ] };
+ key <AE02> { [ acircumflex, Acircumflex ] };
+ key <AE03> { [ ecircumflex, Ecircumflex ] };
+ key <AE04> { [ ocircumflex, Ocircumflex ] };
+ key <AE05> { [ 0x1000300, percent, dead_grave, percent ] };
+ key <AE06> { [ 0x1000309, asciicircum, dead_hook, asciicircum ] };
+ key <AE07> { [ 0x1000303, ampersand, dead_tilde, ampersand ] };
+ key <AE08> { [ 0x1000301, asterisk, dead_acute, asterisk ] };
+ key <AE09> { [ 0x1000323, parenleft, dead_belowdot, parenleft ] };
+ key <AE10> { [ dstroke, Dstroke ] };
+ key <AE11> { [ minus, underscore ] };
+ key <AE12> { [ DongSign, plus ] };
+
+ key <AD11> { [ uhorn, Uhorn ] };
+ key <AD12> { [ ohorn, Ohorn ] };
+
+ // End alphanumeric section
+
+ include "level3(ralt_switch)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/za b/xorg-server/xkeyboard-config/symbols/za
index 8c277c7be..c5f699463 100644
--- a/xorg-server/xkeyboard-config/symbols/za
+++ b/xorg-server/xkeyboard-config/symbols/za
@@ -1,42 +1,42 @@
-// based on the Latvian and GB keyboard maps
-
-partial default alphanumeric_keys modifier_keys
-xkb_symbols "basic" {
-
- // Describes the differences between an en_US
- // keyboard and a South African layout with
- // dead keys. By Dwayne Bailey (dwayne@translate.org.za)
-
- include "latin"
-
- name[Group1]="South Africa";
-
- key <TLDE> { [ grave, asciitilde, dead_grave ] };
- key <AE02> { [ 2, at, yen ] };
- key <AE03> { [ 3, numbersign, sterling ] };
- key <AE04> { [ 4, dollar, dollar ] };
- key <AE05> { [ 5, percent, EuroSign ] };
- key <AE06> { [ 6, asciicircum, dead_circumflex ] };
-
- key <AD03> { [ e, E, ediaeresis, Ediaeresis ] };
- key <AD04> { [ r, R, ecircumflex, Ecircumflex ] };
- key <AD05> { [ t, T, U1e71, U1e70 ] };
- key <AD06> { [ y, Y, ucircumflex, Ucircumflex ] };
- key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
- key <AD08> { [ i, I, idiaeresis, Idiaeresis ] };
- key <AD09> { [ o, O, odiaeresis, Odiaeresis ] };
- key <AD10> { [ p, P, ocircumflex, Ocircumflex ] };
-
- key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
- key <AC02> { [ s, S, scaron, Scaron ] };
- key <AC03> { [ d, D, U1e13, U1e12 ] };
- key <AC09> { [ l, L, U1e3d, U1e3c ] };
- key <AC10> { [ semicolon, colon, dead_diaeresis ] };
- key <AC11> { [apostrophe, quotedbl, dead_acute ] };
-
- key <AB06> { [ n, N, U1e4b, U1e4a ] };
- key <AB07> { [ m, M, U1e45, U1e44 ] };
- key <AB09> { [ period, greater, dead_abovedot ] };
-
- include "level3(ralt_switch)"
-};
+// based on the Latvian and GB keyboard maps
+
+partial default alphanumeric_keys modifier_keys
+xkb_symbols "basic" {
+
+ // Describes the differences between an en_US
+ // keyboard and a South African layout with
+ // dead keys. By Dwayne Bailey (dwayne@translate.org.za)
+
+ include "latin"
+
+ name[Group1]="English (South Africa)";
+
+ key <TLDE> { [ grave, asciitilde, dead_grave ] };
+ key <AE02> { [ 2, at, yen ] };
+ key <AE03> { [ 3, numbersign, sterling ] };
+ key <AE04> { [ 4, dollar, dollar ] };
+ key <AE05> { [ 5, percent, EuroSign ] };
+ key <AE06> { [ 6, asciicircum, dead_circumflex ] };
+
+ key <AD03> { [ e, E, ediaeresis, Ediaeresis ] };
+ key <AD04> { [ r, R, ecircumflex, Ecircumflex ] };
+ key <AD05> { [ t, T, U1e71, U1e70 ] };
+ key <AD06> { [ y, Y, ucircumflex, Ucircumflex ] };
+ key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
+ key <AD08> { [ i, I, idiaeresis, Idiaeresis ] };
+ key <AD09> { [ o, O, odiaeresis, Odiaeresis ] };
+ key <AD10> { [ p, P, ocircumflex, Ocircumflex ] };
+
+ key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
+ key <AC02> { [ s, S, scaron, Scaron ] };
+ key <AC03> { [ d, D, U1e13, U1e12 ] };
+ key <AC09> { [ l, L, U1e3d, U1e3c ] };
+ key <AC10> { [ semicolon, colon, dead_diaeresis ] };
+ key <AC11> { [apostrophe, quotedbl, dead_acute ] };
+
+ key <AB06> { [ n, N, U1e4b, U1e4a ] };
+ key <AB07> { [ m, M, U1e45, U1e44 ] };
+ key <AB09> { [ period, greater, dead_abovedot ] };
+
+ include "level3(ralt_switch)"
+};