From 125aba11ec484309e4dc5b2abf1b15ac98784159 Mon Sep 17 00:00:00 2001 From: marha Date: Wed, 13 Apr 2011 06:36:43 +0000 Subject: xkeyboard-config libxcb libX11 git update 13 April 2011 --- libX11/docbook.am | 2 + libX11/modules/im/ximcp/imRmAttr.c | 4 +- libX11/specs/XIM/Makefile.am | 2 - libX11/specs/i18n/framework/Makefile.am | 4 +- libX11/specs/i18n/localedb/Makefile.am | 4 +- libX11/specs/i18n/trans/Makefile.am | 4 +- libX11/specs/libX11/Makefile.am | 4 +- libxcb/src/xcb.h | 1033 +++++----- libxcb/src/xcb_in.c | 1429 +++++++------- libxcb/src/xcb_util.c | 840 ++++----- libxcb/src/xcbint.h | 418 ++-- .../xkeyboard-config/rules/base.extras.xml.in | 84 +- xorg-server/xkeyboard-config/rules/base.xml.in | 117 +- xorg-server/xkeyboard-config/symbols/brai | 118 +- xorg-server/xkeyboard-config/symbols/bw | 36 +- xorg-server/xkeyboard-config/symbols/ch | 426 ++--- xorg-server/xkeyboard-config/symbols/epo | 278 +-- xorg-server/xkeyboard-config/symbols/es | 20 +- xorg-server/xkeyboard-config/symbols/et | 2 +- xorg-server/xkeyboard-config/symbols/fi | 2 +- xorg-server/xkeyboard-config/symbols/gb | 398 ++-- xorg-server/xkeyboard-config/symbols/ie | 814 ++++---- xorg-server/xkeyboard-config/symbols/ir | 2 +- xorg-server/xkeyboard-config/symbols/jp | 496 ++--- xorg-server/xkeyboard-config/symbols/ke | 84 +- xorg-server/xkeyboard-config/symbols/kg | 266 +-- xorg-server/xkeyboard-config/symbols/kh | 226 +-- xorg-server/xkeyboard-config/symbols/kr | 52 +- xorg-server/xkeyboard-config/symbols/kz | 430 ++--- xorg-server/xkeyboard-config/symbols/la | 300 +-- xorg-server/xkeyboard-config/symbols/latam | 136 +- xorg-server/xkeyboard-config/symbols/lk | 6 +- xorg-server/xkeyboard-config/symbols/lt | 14 +- xorg-server/xkeyboard-config/symbols/lv | 648 +++++-- xorg-server/xkeyboard-config/symbols/me | 104 +- xorg-server/xkeyboard-config/symbols/mk | 130 +- xorg-server/xkeyboard-config/symbols/ml | 166 +- xorg-server/xkeyboard-config/symbols/mm | 2 +- xorg-server/xkeyboard-config/symbols/mn | 2 +- xorg-server/xkeyboard-config/symbols/mt | 152 +- xorg-server/xkeyboard-config/symbols/mv | 162 +- xorg-server/xkeyboard-config/symbols/ng | 228 +-- xorg-server/xkeyboard-config/symbols/no | 450 ++--- xorg-server/xkeyboard-config/symbols/np | 2 +- xorg-server/xkeyboard-config/symbols/ph | 1992 ++++++++++---------- xorg-server/xkeyboard-config/symbols/pk | 788 ++++---- xorg-server/xkeyboard-config/symbols/pl | 700 +++---- xorg-server/xkeyboard-config/symbols/pt | 14 +- xorg-server/xkeyboard-config/symbols/ro | 14 +- xorg-server/xkeyboard-config/symbols/rs | 20 +- xorg-server/xkeyboard-config/symbols/ru | 40 +- xorg-server/xkeyboard-config/symbols/se | 506 ++--- xorg-server/xkeyboard-config/symbols/si | 60 +- xorg-server/xkeyboard-config/symbols/sk | 206 +- xorg-server/xkeyboard-config/symbols/sn | 2 +- xorg-server/xkeyboard-config/symbols/sy | 324 ++-- xorg-server/xkeyboard-config/symbols/th | 490 ++--- xorg-server/xkeyboard-config/symbols/tj | 272 +-- xorg-server/xkeyboard-config/symbols/tm | 90 +- xorg-server/xkeyboard-config/symbols/tr | 24 +- xorg-server/xkeyboard-config/symbols/tw | 146 +- xorg-server/xkeyboard-config/symbols/tz | 118 +- xorg-server/xkeyboard-config/symbols/ua | 16 +- xorg-server/xkeyboard-config/symbols/us | 14 +- xorg-server/xkeyboard-config/symbols/uz | 4 +- xorg-server/xkeyboard-config/symbols/vn | 78 +- xorg-server/xkeyboard-config/symbols/za | 84 +- 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 - -#if defined(__solaris__) -#include -#else -#include -#endif - -#ifndef _WIN32 -#include -#else -#include "xcb_windefs.h" -#endif -#include - - -#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 + +#if defined(__solaris__) +#include +#else +#include +#endif + +#ifndef _WIN32 +#include +#else +#include "xcb_windefs.h" +#endif +#include + + +#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 -#include -#include -#include -#include -#include - -#include "xcb.h" -#include "xcbext.h" -#include "xcbint.h" -#if USE_POLL -#include -#endif -#ifndef _WIN32 -#include -#include -#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 +#include +#include +#include +#include +#include + +#include "xcb.h" +#include "xcbext.h" +#include "xcbint.h" +#if USE_POLL +#include +#endif +#ifndef _WIN32 +#include +#include +#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 -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef _WIN32 -#include "xcb_windefs.h" -#else -#include -#include -#include -#include -#include -#include -#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 -# include -#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= 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 +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef _WIN32 +#include "xcb_windefs.h" +#else +#include +#include +#include +#include +#include +#include +#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 +# include +#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= 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 @@ ave - <_description>Iran - Avestan + <_description>Avestan ave @@ -33,14 +33,74 @@ lt <_shortDescription>Ltu - <_description>Lithuania + <_description>Lithuanian lit dvorak - <_description>Lithuania - Dvorak + <_description>Lithuanian (Dvorak) + + + + + + + lv + <_shortDescription>lv + <_description>Latvian + + lav + + + + + + dvorak + <_description>Latvian (US Dvorak) + + + + + ykeydvorak + <_description>Latvian (US Dvorak, Y-letter variant) + + + + + minuskeydvorak + <_description>Latvian (US Dvorak, minus-letter variant) + + + + + dvorakprogr + <_description>Latvian (programmer US Dvorak) + + + + + ykeydvorakprogr + <_description>Latvian (programmer US Dvorak, Y-letter variant) + + + + + minuskeydvorakprogr + <_description>Latvian (programmer US Dvorak - minus-letter variant) + + + + + colemak + <_description>Latvian (US Colemak) + + + + + apostrophecolemak + <_description>Latvian (US Colemak, apostrophe variant) @@ -56,26 +116,26 @@ intl-unicode - <_description>USA - International (AltGr Unicode combining) + <_description>English (US, international (AltGr Unicode combining) alt-intl-unicode - <_description>USA - International (AltGr Unicode combining, alternative) + <_description>English (US, international AltGr Unicode combining, alternative) ats - <_description>USA - Atsina + <_description>Atsina crd - <_description>USA - Couer D'alene Salish + <_description>Couer D'alene Salish crd @@ -85,14 +145,14 @@ ro <_shortDescription>Rou - <_description>Romania + <_description>Romanian rum ergonomic - <_description>Romania - Ergonomic Touchtype + <_description>Romanian (ergonomic Touchtype) @@ -108,7 +168,7 @@ combiningkeys - <_description>Serbia - Combining accents instead of dead keys + <_description>Serbian (combining accents instead of dead keys) @@ -117,13 +177,13 @@ ru <_shortDescription>Rus - <_description>Russia + <_description>Russian chu - Russia - Church Slavonic + Church Slavonic chu 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 @@ cyrillic - <_description>Azerbaijan (Cyrillic) + <_description>Azerbaijani (Cyrillic) @@ -2589,7 +2589,7 @@ smi - <_description>Saami (Finland) + <_description>Northern Saami (Finland) sme @@ -3285,7 +3285,7 @@ kh <_shortDescription>km - <_description>Khmer (Cambodian) + <_description>Khmer (Cambodia) khm @@ -3389,7 +3389,7 @@ sundeadkeys - <_description>Spanish (Latin American, sun dead keys) + <_description>Spanish (Latin American, Sun dead keys) @@ -3449,13 +3449,13 @@ apostrophe - <_description>Latvian (Apostrophe ' variant) + <_description>Latvian (apostrophe variant) tilde - <_description>Latvian (Tilde ~ variant) + <_description>Latvian (tilde variant) @@ -3464,13 +3464,31 @@ <_description>Latvian (F variant) + + + modern + <_description>Latvian (modern) + + + + + ergonomic + <_description>Latvian (ergonomic, ŪGJRMV) + + + + + adapted + <_description>Latvian (adapted) + + mao <_shortDescription>mi - <_description>Māori + <_description>Maori mao @@ -3603,7 +3621,7 @@ smi - <_description>Saami (Norway) + <_description>Northern Saami (Norway) sme @@ -3612,7 +3630,7 @@ smi_nodeadkeys - <_description>Saami (Norway, eliminate dead keys) + <_description>Northern Saami (Norway, eliminate dead keys) sme @@ -3657,19 +3675,19 @@ dvorak_quotes - <_description>Polish (Dvorak, polish quotes on quotemark key) + <_description>Polish (Dvorak, Polish quotes on quotemark key) dvorak_altquotes - <_description>Polish (Dvorak, polish quotes on key 1) + <_description>Polish (Dvorak, Polish quotes on key 1) csb - <_description>Polish (Kashubian) + <_description>Kashubian csb @@ -3748,7 +3766,7 @@ nativo-epo - <_description>Portuguese (Nativo for Esperanto) + <_description>Esperanto (Portugal, Nativo) epo @@ -3845,7 +3863,7 @@ tt - <_description>Russian (Tatar) + <_description>Tatar tat @@ -3854,7 +3872,7 @@ os_legacy - <_description>Russian (Ossetian, legacy) + <_description>Ossetian (legacy) oss @@ -3863,7 +3881,7 @@ os_winkeys - <_description>Russian (Ossetian, WinKeys) + <_description>Ossetian (WinKeys) oss @@ -3872,7 +3890,7 @@ cv - <_description>Russian (Chuvash) + <_description>Chuvash chv @@ -3881,7 +3899,7 @@ cv_latin - <_description>Russian (Chuvash Latin) + <_description>Chuvash (Latin) chv @@ -3890,7 +3908,7 @@ udm - <_description>Russian (Udmurt) + <_description>Udmurt udm @@ -3899,7 +3917,7 @@ kom - <_description>Russian (Komi) + <_description>Komi kom @@ -3908,7 +3926,7 @@ sah - <_description>Russian (Yakut) + <_description>Yakut sah @@ -3917,7 +3935,7 @@ xal - <_description>Russian (Kalmyk) + <_description>Kalmyk xal @@ -3932,7 +3950,7 @@ srp - <_description>Russian (Serbian) + <_description>Serbian (Russia) rus srp @@ -3940,7 +3958,7 @@ bak - <_description>Russian (Bashkirian) + <_description>Bashkirian bak @@ -3949,7 +3967,7 @@ chm - <_description>Russian (Mari) + <_description>Mari chm @@ -4012,7 +4030,7 @@ rue - <_description>Serbian (Pannonian Rusyn Homophonic) + <_description>Pannonian Rusyn (homophonic) rue @@ -4024,7 +4042,7 @@ si <_shortDescription>sl - <_description>Slovene + <_description>Slovenian slv @@ -4033,13 +4051,13 @@ alternatequotes - <_description>Slovene (use guillemets for quotes) + <_description>Slovenian (use guillemets for quotes) us - <_description>Slovene (US keyboard with Slovenian letters) + <_description>Slovenian (US keyboard with Slovenian letters) @@ -4111,7 +4129,7 @@ ast - <_description>Spanish (Asturian variant with bottom-dot H and bottom-dot L) + <_description>Asturian (Spain, with bottom-dot H and bottom-dot L) ast @@ -4120,7 +4138,7 @@ cat - <_description>Spanish (Catalan variant with middle-dot L) + <_description>Catalan (Spain, with middle-dot L) cat @@ -4179,7 +4197,7 @@ smi - <_description>Saami (Sweden) + <_description>Northern Saami (Sweden) sme @@ -4203,7 +4221,7 @@ ch <_shortDescription>che - <_description>German + <_description>German (Switzerland) ger gsw @@ -4586,7 +4604,7 @@ rstu_ru - <_description>Ukrainian (standard RSTU on Russian layout) + <_description>Russian (Ukraine, standard RSTU) @@ -4610,7 +4628,7 @@ extd - <_description>English (UK, extended, WinKeys) + <_description>English (UK, extended WinKeys) @@ -4628,7 +4646,7 @@ dvorakukp - <_description>English (UK, Dvorak UK punctuation) + <_description>English (UK, Dvorak with UK punctuation) @@ -4725,7 +4743,7 @@ CloGaelach - <_description>Irish (CloGaelach) + <_description>CloGaelach gla @@ -4740,13 +4758,19 @@ ogam - <_description>Irish (Ogham) + <_description>Ogham + + sga + ogam_is434 - <_description>Irish (Ogham IS434) + <_description>Ogham (IS434) + + sga + @@ -4765,18 +4789,12 @@ urd-crulp <_description>Urdu (Pakistan, CRULP) - - urd - urd-nla <_description>Urdu (Pakistan, NLA) - - urd - @@ -4968,20 +4986,23 @@ fr-oss <_shortDescription>fr <_description>French (Mali, alternative) + + fr + us-mac <_shortDescription>en - <_description>English (Mali, USA Macintosh) + <_description>English (Mali, US Macintosh) us-intl <_shortDescription>en - <_description>English (Mali, USA international) + <_description>English (Mali, US international) @@ -5137,7 +5158,7 @@ dvorak-bay - <_description>Philippines - Dvorak (Baybayin) + <_description>Filipino (Dvorak Baybayin) bik ceb fil 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 { [ braille_dot_1 ] }; - key { [ braille_dot_2 ] }; - key { [ braille_dot_3 ] }; - key { [ braille_dot_4 ] }; - key { [ braille_dot_5 ] }; - key { [ braille_dot_6 ] }; - key { [ braille_dot_7 ] }; - key { [ braille_dot_8 ] }; - key { [ braille_dot_9 ] }; - key { [ 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 { [ braille_dot_1 ] }; - key { [ braille_dot_2 ] }; - key { [ braille_dot_3 ] }; - key { [ braille_dot_4 ] }; - key { [ braille_dot_5 ] }; - key { [ 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 { [ braille_dot_1 ] }; - key { [ braille_dot_2 ] }; - key { [ braille_dot_3 ] }; - key { [ braille_dot_4 ] }; - key { [ braille_dot_5 ] }; - key { [ braille_dot_6 ] }; -}; - -// 6-dot patterns on the keypad -partial hidden keypad_keys -xkb_symbols "keypad" { - key { [ braille_dot_1 ] }; - key { [ braille_dot_2 ] }; - key { [ braille_dot_3 ] }; - key { [ braille_dot_4 ] }; - key { [ braille_dot_5 ] }; - key { [ 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 { [ braille_dot_1 ] }; + key { [ braille_dot_2 ] }; + key { [ braille_dot_3 ] }; + key { [ braille_dot_4 ] }; + key { [ braille_dot_5 ] }; + key { [ braille_dot_6 ] }; + key { [ braille_dot_7 ] }; + key { [ braille_dot_8 ] }; + key { [ braille_dot_9 ] }; + key { [ 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 { [ braille_dot_1 ] }; + key { [ braille_dot_2 ] }; + key { [ braille_dot_3 ] }; + key { [ braille_dot_4 ] }; + key { [ braille_dot_5 ] }; + key { [ 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 { [ braille_dot_1 ] }; + key { [ braille_dot_2 ] }; + key { [ braille_dot_3 ] }; + key { [ braille_dot_4 ] }; + key { [ braille_dot_5 ] }; + key { [ braille_dot_6 ] }; +}; + +// 6-dot patterns on the keypad +partial hidden keypad_keys +xkb_symbols "keypad" { + key { [ braille_dot_1 ] }; + key { [ braille_dot_2 ] }; + key { [ braille_dot_3 ] }; + key { [ braille_dot_4 ] }; + key { [ braille_dot_5 ] }; + key { [ 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 { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW - key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS - key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE - key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT - key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW - key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE - key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON - key { [ 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 { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW + key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS + key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE + key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT + key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW + key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE + key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON + key { [ 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 { [ section, degree ] }; - key { [ 1, plus, bar, exclamdown ] }; - key { [ 2, quotedbl, at, oneeighth ] }; - key { [ 3, asterisk, numbersign ] }; - key { [ 4, ccedilla ] }; - key { [ 5, percent ] }; - key { [ 6, ampersand, notsign ] }; - key { [ 7, slash, bar ] }; - key { [ 8, parenleft, cent ] }; - key { [ 9, parenright ] }; - key { [ 0, equal ] }; - key { [ apostrophe, question, dead_acute ] }; - key { [ dead_circumflex, dead_grave, dead_tilde ] }; - - key { [ e, E, EuroSign ] }; - key { [ z, Z ] }; - key { [ udiaeresis, egrave, bracketleft ] }; - key { [ dead_diaeresis, exclam, bracketright ] }; - - key { [ odiaeresis, eacute ] }; - key { [ adiaeresis, agrave, braceleft ] }; - key { [ dollar, sterling, braceright ] }; - - key { [ less, greater, backslash, brokenbar ] }; - key { [ y, Y ] }; - key { [ comma, semicolon ] }; - key { [ period, colon ] }; - key { [ minus, underscore ] }; - - include "level3(ralt_switch)" -}; - -partial alphanumeric_keys -xkb_symbols "legacy" { - include "ch(basic)" - - name[Group1]= "Switzerland - Legacy"; - key { [ 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 { [ apostrophe, question, dead_acute ] }; - key { [ dead_circumflex, dead_grave, dead_tilde ] }; - key { [ 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 { [ apostrophe, question, acute ] }; - key { [ asciicircum, grave, asciitilde ] }; - key { [ 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 { - [ egrave, udiaeresis, bracketleft ] - }; - override key { - [ eacute, odiaeresis ] - }; - override key { - [ 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 { [ apostrophe, question, dead_acute ] }; - key { [ dead_circumflex, dead_grave, dead_tilde ] }; - key { [ 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 { [ apostrophe, question, acute ] }; - key { [ asciicircum, grave, asciitilde ] }; - key { [ diaeresis, exclam, bracketright ] }; -}; - -// Copied from macintosh_vndr/ch -// 03.01.2003 -// Andreas Tobler -// modified for Swiss German Apple Extended Keyboard II - -partial alphanumeric_keys -xkb_symbols "de_mac" { - - name[Group1]= "Switzerland - German (Macintosh)"; - - // Alphanumeric section - - key { [ 1, plus, plusminus, infinity ] }; - key { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] }; - key { [ 3, asterisk, numbersign, leftcaret ] }; - // not displayed here - key { [ 4, ccedilla, Ccedilla, slash ] }; - key { [ 5, percent, bracketleft ] }; - key { [ 6, ampersand, bracketright ] }; - key { [ 7, slash, bar, backslash ] }; - key { [ 8, parenleft, braceleft, Ograve ] }; - key { [ 9, parenright, braceright, Ocircumflex ] }; - key { [ 0, equal, notequal, Uacute ] }; - key { [ apostrophe, question, questiondown, NoSymbol ] }; - key { [ dead_circumflex,dead_grave, dead_acute, asciicircum ] }; - key { [ q, Q, oe, OE ] }; - key { [ w, W, Greek_SIGMA, Aacute ] }; - key { [ e, E, EuroSign, Ediaeresis ] }; - key { [ r, R, registered, Egrave ] }; - key { [ t, T, dagger, Icircumflex ] }; - key { [ z, Z, Greek_OMEGA, Iacute ] }; - key { [ u, U, degree, Ugrave ] }; - key { [ i, I, exclamdown, idotless ] }; - key { [ o, O, oslash, Ooblique ] }; - key { [ p, P, Greek_pi, Greek_PI ] }; - key { [ udiaeresis, egrave, section, ydiaeresis ] }; - key { [ dead_diaeresis, exclam, grave, apostrophe ] }; - key { [ a, A, aring, Aring ] }; - key { [ s, S, ssharp, NoSymbol ] }; - // ligature fl - key { [ d, D, Greek_sigma, NoSymbol ] }; - // partialderivative is not available here att - key { [ f, F, function, doubledagger ] }; - key { [ g, G, at, comma ] }; - key { [ h, H, ordfeminine, periodcentered ] }; - key { [ j, J, masculine, eth ] }; - key { [ k, K, Greek_DELTA, macron ] }; - key { [ l, L, notsign, caret ] }; - key { [ odiaeresis, eacute, cent, breve ] }; - key { [ adiaeresis, agrave, ae, AE ] }; - key { [ y, Y, yen, Ydiaeresis ] }; - key { [ x, X, similarequal, trademark ] }; - key { [ c, C, copyright, NoSymbol ] }; - key { [ v, V, radical, diamond ] }; - key { [ b, B, integral, NoSymbol ] }; - key { [ n, N, dead_tilde, enopencircbullet ] }; - // to be fixed att - key { [ m, M, mu, dead_abovering ] }; - // not sure att - key { [ comma, semicolon, guillemotleft, guillemotright ] }; - key { [ period, colon, ellipsis, division ] }; - key { [ minus, underscore, hyphen, emdash ] }; - key { [ section, degree, NoSymbol, NoSymbol ] }; - // ligature fi // per mille - key { [ space, nobreakspace, nobreakspace ] }; - key { [ less, greater, lessthanequal, greaterthanequal ] }; - key { [ 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 { - [ egrave, udiaeresis, bracketleft ] - }; - override key { - [ eacute, odiaeresis ] - }; - override key { - [ agrave, adiaeresis, braceleft ] - }; -}; +partial default alphanumeric_keys +xkb_symbols "basic" { + + include "latin" + + // Alphanumeric section + name[Group1]= "German (Switzerland)"; + key { [ section, degree ] }; + key { [ 1, plus, bar, exclamdown ] }; + key { [ 2, quotedbl, at, oneeighth ] }; + key { [ 3, asterisk, numbersign ] }; + key { [ 4, ccedilla ] }; + key { [ 5, percent ] }; + key { [ 6, ampersand, notsign ] }; + key { [ 7, slash, bar ] }; + key { [ 8, parenleft, cent ] }; + key { [ 9, parenright ] }; + key { [ 0, equal ] }; + key { [ apostrophe, question, dead_acute ] }; + key { [ dead_circumflex, dead_grave, dead_tilde ] }; + + key { [ e, E, EuroSign ] }; + key { [ z, Z ] }; + key { [ udiaeresis, egrave, bracketleft ] }; + key { [ dead_diaeresis, exclam, bracketright ] }; + + key { [ odiaeresis, eacute ] }; + key { [ adiaeresis, agrave, braceleft ] }; + key { [ dollar, sterling, braceright ] }; + + key { [ less, greater, backslash, brokenbar ] }; + key { [ y, Y ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "legacy" { + include "ch(basic)" + + name[Group1]= "German (Switzerland, legacy)"; + key { [ 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 { [ apostrophe, question, dead_acute ] }; + key { [ dead_circumflex, dead_grave, dead_tilde ] }; + key { [ 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 { [ apostrophe, question, acute ] }; + key { [ asciicircum, grave, asciitilde ] }; + key { [ 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 { + [ egrave, udiaeresis, bracketleft ] + }; + override key { + [ eacute, odiaeresis ] + }; + override key { + [ 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 { [ apostrophe, question, dead_acute ] }; + key { [ dead_circumflex, dead_grave, dead_tilde ] }; + key { [ 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 { [ apostrophe, question, acute ] }; + key { [ asciicircum, grave, asciitilde ] }; + key { [ diaeresis, exclam, bracketright ] }; +}; + +// Copied from macintosh_vndr/ch +// 03.01.2003 +// Andreas Tobler +// modified for Swiss German Apple Extended Keyboard II + +partial alphanumeric_keys +xkb_symbols "de_mac" { + + name[Group1]= "German (Switzerland, Macintosh)"; + + // Alphanumeric section + + key { [ 1, plus, plusminus, infinity ] }; + key { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] }; + key { [ 3, asterisk, numbersign, leftcaret ] }; + // not displayed here + key { [ 4, ccedilla, Ccedilla, slash ] }; + key { [ 5, percent, bracketleft ] }; + key { [ 6, ampersand, bracketright ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, braceleft, Ograve ] }; + key { [ 9, parenright, braceright, Ocircumflex ] }; + key { [ 0, equal, notequal, Uacute ] }; + key { [ apostrophe, question, questiondown, NoSymbol ] }; + key { [ dead_circumflex,dead_grave, dead_acute, asciicircum ] }; + key { [ q, Q, oe, OE ] }; + key { [ w, W, Greek_SIGMA, Aacute ] }; + key { [ e, E, EuroSign, Ediaeresis ] }; + key { [ r, R, registered, Egrave ] }; + key { [ t, T, dagger, Icircumflex ] }; + key { [ z, Z, Greek_OMEGA, Iacute ] }; + key { [ u, U, degree, Ugrave ] }; + key { [ i, I, exclamdown, idotless ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ udiaeresis, egrave, section, ydiaeresis ] }; + key { [ dead_diaeresis, exclam, grave, apostrophe ] }; + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, NoSymbol ] }; + // ligature fl + key { [ d, D, Greek_sigma, NoSymbol ] }; + // partialderivative is not available here att + key { [ f, F, function, doubledagger ] }; + key { [ g, G, at, comma ] }; + key { [ h, H, ordfeminine, periodcentered ] }; + key { [ j, J, masculine, eth ] }; + key { [ k, K, Greek_DELTA, macron ] }; + key { [ l, L, notsign, caret ] }; + key { [ odiaeresis, eacute, cent, breve ] }; + key { [ adiaeresis, agrave, ae, AE ] }; + key { [ y, Y, yen, Ydiaeresis ] }; + key { [ x, X, similarequal, trademark ] }; + key { [ c, C, copyright, NoSymbol ] }; + key { [ v, V, radical, diamond ] }; + key { [ b, B, integral, NoSymbol ] }; + key { [ n, N, dead_tilde, enopencircbullet ] }; + // to be fixed att + key { [ m, M, mu, dead_abovering ] }; + // not sure att + key { [ comma, semicolon, guillemotleft, guillemotright ] }; + key { [ period, colon, ellipsis, division ] }; + key { [ minus, underscore, hyphen, emdash ] }; + key { [ section, degree, NoSymbol, NoSymbol ] }; + // ligature fi // per mille + key { [ space, nobreakspace, nobreakspace ] }; + key { [ less, greater, lessthanequal, greaterthanequal ] }; + key { [ 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 { + [ egrave, udiaeresis, bracketleft ] + }; + override key { + [ eacute, odiaeresis ] + }; + override key { + [ 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) -// -// Ekverto B ("basic") (2006-12-02) -// Benno Schulenberg (Beno Sĥilenberĥ) -// Chusslove Illich (Ĉaslavo Iliĉo) - -default partial alphanumeric_keys -xkb_symbols "basic" { - - name[Group1]= "Esperanto"; - - include "us(basic)" - - key.type[Group1] = "FOUR_LEVEL_ALPHABETIC"; - - key { [ scircumflex, Scircumflex, q, Q ] }; - key { [ gcircumflex, Gcircumflex, w, W ] }; - key { [ ccircumflex, Ccircumflex, x, X ] }; - key { [ ubreve, Ubreve, y, Y ] }; - - key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; - - key { [ jcircumflex, Jcircumflex, bracketleft, braceleft ] }; - key { [ hcircumflex, Hcircumflex, bracketright, braceright ] }; - - key { [ o, O, braceleft, braceleft ] }; - key { [ p, P, braceright, braceright ] }; - - key { [ a, A, leftsinglequotemark, NoSymbol ] }; - key { [ s, S, rightsinglequotemark, NoSymbol ] }; - key { [ d, D, leftdoublequotemark, NoSymbol ] }; - key { [ f, F, rightdoublequotemark, NoSymbol ] }; - - key { [ n, N, endash, endash ] }; - key { [ m, M, emdash, emdash ] }; - - key.type[Group1] = "FOUR_LEVEL"; - - key { [ 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 { [ grave, asciitilde, NoSymbol, NoSymbol ] }; - key { [ 1, exclam, NoSymbol, NoSymbol ] }; - key { [ 2, quotedbl, NoSymbol, NoSymbol ] }; - key { [ 3, numbersign, NoSymbol, NoSymbol ] }; - key { [ 4, dollar, NoSymbol, NoSymbol ] }; - key { [ 5, percent, NoSymbol, NoSymbol ] }; - key { [ 6, apostrophe, NoSymbol, NoSymbol ] }; - key { [ 7, ampersand, NoSymbol, NoSymbol ] }; - key { [ 8, asterisk, NoSymbol, NoSymbol ] }; - key { [ 9, parenleft, NoSymbol, NoSymbol ] }; - key { [ 0, parenright, NoSymbol, NoSymbol ] }; - key { [ minus, underscore, NoSymbol, NoSymbol ] }; - key { [ equal, plus, NoSymbol, NoSymbol ] }; - - key { [ comma, semicolon, NoSymbol, NoSymbol ] }; - key { [ period, colon, NoSymbol, NoSymbol ] }; - key { [ slash, question, NoSymbol, NoSymbol ] }; - - key { [ bracketleft, braceleft, NoSymbol, NoSymbol ] }; - key { [ bracketright, braceright, NoSymbol, NoSymbol ] }; - - key { [ backslash, bar, NoSymbol, NoSymbol ] }; - key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; - - key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; - - key { [ scircumflex, Scircumflex, at, NoSymbol ] }; - key { [ jcircumflex, Jcircumflex, asciicircum, NoSymbol ] }; - key { [ e, E, EuroSign, NoSymbol ] }; - key { [ r, R, emdash, NoSymbol ] }; - key { [ t, T, endash, NoSymbol ] }; - key { [ gcircumflex, Gcircumflex, NoSymbol, NoSymbol ] }; - key { [ u, U, NoSymbol, NoSymbol ] }; - key { [ i, I, NoSymbol, NoSymbol ] }; - key { [ o, O, NoSymbol, NoSymbol ] }; - key { [ p, P, NoSymbol, NoSymbol ] }; - - key { [ a, A, less, NoSymbol ] }; - key { [ s, S, greater, NoSymbol ] }; - key { [ d, D, leftdoublequotemark, NoSymbol ] }; - key { [ f, F, rightdoublequotemark, NoSymbol ] }; - key { [ g, G, NoSymbol, NoSymbol ] }; - key { [ h, H, NoSymbol, NoSymbol ] }; - key { [ j, J, NoSymbol, NoSymbol ] }; - key { [ k, K, NoSymbol, NoSymbol ] }; - key { [ l, L, NoSymbol, NoSymbol ] }; - key { [ ubreve, Ubreve, NoSymbol, NoSymbol ] }; - key { [ hcircumflex, Hcircumflex, NoSymbol, NoSymbol ] }; - - key { [ z, Z, leftsinglequotemark, NoSymbol ] }; - key { [ ccircumflex, Ccircumflex, rightsinglequotemark, NoSymbol ] }; - key { [ c, C, NoSymbol, NoSymbol ] }; - key { [ v, V, NoSymbol, NoSymbol ] }; - key { [ b, B, NoSymbol, NoSymbol ] }; - key { [ n, N, NoSymbol, NoSymbol ] }; - key { [ 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 . -partial -xkb_symbols "qwerty" { - key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; - key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; - key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; - key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; - key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; - key { [ 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 { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; - key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; - key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; - key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; - key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; - key { [ NoSymbol, NoSymbol, ubreve, Ubreve ] }; -}; +// Esperanto keyboard maps -- "Ekverto" +// +// Ekverto A ("legacy") (2004-01-10) +// Chusslove Illich (Ĉaslavo Iliĉo) +// +// Ekverto B ("basic") (2006-12-02) +// Benno Schulenberg (Beno Sĥilenberĥ) +// Chusslove Illich (Ĉaslavo Iliĉo) + +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]= "Esperanto"; + + include "us(basic)" + + key.type[Group1] = "FOUR_LEVEL_ALPHABETIC"; + + key { [ scircumflex, Scircumflex, q, Q ] }; + key { [ gcircumflex, Gcircumflex, w, W ] }; + key { [ ccircumflex, Ccircumflex, x, X ] }; + key { [ ubreve, Ubreve, y, Y ] }; + + key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ jcircumflex, Jcircumflex, bracketleft, braceleft ] }; + key { [ hcircumflex, Hcircumflex, bracketright, braceright ] }; + + key { [ o, O, braceleft, braceleft ] }; + key { [ p, P, braceright, braceright ] }; + + key { [ a, A, leftsinglequotemark, NoSymbol ] }; + key { [ s, S, rightsinglequotemark, NoSymbol ] }; + key { [ d, D, leftdoublequotemark, NoSymbol ] }; + key { [ f, F, rightdoublequotemark, NoSymbol ] }; + + key { [ n, N, endash, endash ] }; + key { [ m, M, emdash, emdash ] }; + + key.type[Group1] = "FOUR_LEVEL"; + + key { [ 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 { [ grave, asciitilde, NoSymbol, NoSymbol ] }; + key { [ 1, exclam, NoSymbol, NoSymbol ] }; + key { [ 2, quotedbl, NoSymbol, NoSymbol ] }; + key { [ 3, numbersign, NoSymbol, NoSymbol ] }; + key { [ 4, dollar, NoSymbol, NoSymbol ] }; + key { [ 5, percent, NoSymbol, NoSymbol ] }; + key { [ 6, apostrophe, NoSymbol, NoSymbol ] }; + key { [ 7, ampersand, NoSymbol, NoSymbol ] }; + key { [ 8, asterisk, NoSymbol, NoSymbol ] }; + key { [ 9, parenleft, NoSymbol, NoSymbol ] }; + key { [ 0, parenright, NoSymbol, NoSymbol ] }; + key { [ minus, underscore, NoSymbol, NoSymbol ] }; + key { [ equal, plus, NoSymbol, NoSymbol ] }; + + key { [ comma, semicolon, NoSymbol, NoSymbol ] }; + key { [ period, colon, NoSymbol, NoSymbol ] }; + key { [ slash, question, NoSymbol, NoSymbol ] }; + + key { [ bracketleft, braceleft, NoSymbol, NoSymbol ] }; + key { [ bracketright, braceright, NoSymbol, NoSymbol ] }; + + key { [ backslash, bar, NoSymbol, NoSymbol ] }; + key { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; + + key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ scircumflex, Scircumflex, at, NoSymbol ] }; + key { [ jcircumflex, Jcircumflex, asciicircum, NoSymbol ] }; + key { [ e, E, EuroSign, NoSymbol ] }; + key { [ r, R, emdash, NoSymbol ] }; + key { [ t, T, endash, NoSymbol ] }; + key { [ gcircumflex, Gcircumflex, NoSymbol, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol ] }; + key { [ i, I, NoSymbol, NoSymbol ] }; + key { [ o, O, NoSymbol, NoSymbol ] }; + key { [ p, P, NoSymbol, NoSymbol ] }; + + key { [ a, A, less, NoSymbol ] }; + key { [ s, S, greater, NoSymbol ] }; + key { [ d, D, leftdoublequotemark, NoSymbol ] }; + key { [ f, F, rightdoublequotemark, NoSymbol ] }; + key { [ g, G, NoSymbol, NoSymbol ] }; + key { [ h, H, NoSymbol, NoSymbol ] }; + key { [ j, J, NoSymbol, NoSymbol ] }; + key { [ k, K, NoSymbol, NoSymbol ] }; + key { [ l, L, NoSymbol, NoSymbol ] }; + key { [ ubreve, Ubreve, NoSymbol, NoSymbol ] }; + key { [ hcircumflex, Hcircumflex, NoSymbol, NoSymbol ] }; + + key { [ z, Z, leftsinglequotemark, NoSymbol ] }; + key { [ ccircumflex, Ccircumflex, rightsinglequotemark, NoSymbol ] }; + key { [ c, C, NoSymbol, NoSymbol ] }; + key { [ v, V, NoSymbol, NoSymbol ] }; + key { [ b, B, NoSymbol, NoSymbol ] }; + key { [ n, N, NoSymbol, NoSymbol ] }; + key { [ 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 . +partial +xkb_symbols "qwerty" { + key { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; + key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; + key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; + key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; + key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; + key { [ 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 { [ NoSymbol, NoSymbol, ccircumflex, Ccircumflex ] }; + key { [ NoSymbol, NoSymbol, gcircumflex, Gcircumflex ] }; + key { [ NoSymbol, NoSymbol, hcircumflex, Hcircumflex ] }; + key { [ NoSymbol, NoSymbol, jcircumflex, Jcircumflex ] }; + key { [ NoSymbol, NoSymbol, scircumflex, Scircumflex ] }; + key { [ 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 { [ 1, exclam, bar, exclamdown ] }; key { [ 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 { [ grave, asciicircum, bracketleft, degree ] }; key { [ 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 {[ 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 { [ 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 { [ h, H, 0x1001E25, 0x1001E24 ] }; key { [ 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 { [ masculine, ordfeminine ] }; key { [ 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 { [ 4, dollar, dead_tilde, dollar ] }; }; @@ -208,7 +208,7 @@ xkb_symbols "olpc2" { // Contact: Sayamindu Dasgupta include "us(olpc)" - name[Group1]="Spain - OLPC2"; + name[Group1]="Spanish (OLPC2)"; key { [ 3, numbersign, dead_grave, dead_grave] }; // combining grave key { [ 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 { [ odiaeresis, Odiaeresis, oslash, Oslash ] }; key { [ 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 { [ 2, quotedbl, twosuperior, oneeighth ] }; - key { [ 3, sterling, threesuperior, sterling ] }; - key { [ 4, dollar, EuroSign, onequarter ] }; - - key { [apostrophe, at, dead_circumflex, dead_caron] }; - key { [ grave, notsign, bar, bar ] }; - - key { [numbersign, asciitilde, dead_grave, dead_breve ] }; - key { [ 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 { [ 2, dead_diaeresis, twosuperior, onehalf ] }; - key { [ 3, sterling, threesuperior, onethird ] }; - key { [ 4, dollar, EuroSign, onequarter ] }; - key { [ 6, dead_circumflex, NoSymbol, onesixth ] }; - - key { [ dead_acute, at, apostrophe, bar ] }; - key { [ dead_grave, notsign, bar, bar ] }; - - key { [ numbersign, dead_tilde, bar, bar ] }; - key { [ 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 - - include "latin" - - name[Group1]="United Kingdom - Extended - Winkeys"; - - // Alphanumeric section - key { [ dead_grave, notsign, brokenbar, NoSymbol ] }; - - key { [ 2, quotedbl, dead_diaeresis, onehalf ] }; - key { [ 3, sterling, threesuperior, onethird ] }; - key { [ 4, dollar, EuroSign, onequarter ] }; - key { [ 6, asciicircum, dead_circumflex, NoSymbol ] }; - - key { [ w, W, wacute, Wacute ] }; - key { [ e, E, eacute, Eacute ] }; - key { [ y, Y, yacute, Yacute ] }; - key { [ u, U, uacute, Uacute ] }; - key { [ i, I, iacute, Iacute ] }; - key { [ o, O, oacute, Oacute ] }; - - key { [ a, A, aacute, Aacute ] }; - key { [ apostrophe, at, dead_acute, NoSymbol ] }; - - key { [ c, C, ccedilla, Ccedilla ] }; - - key { [ numbersign, asciitilde, dead_tilde, NoSymbol ] }; - key { [ 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 { [ 2, quotedbl, twosuperior, oneeighth ] }; - key { [ 3, sterling, threesuperior, sterling ] }; - key { [ 4, dollar, EuroSign, onequarter ] }; - - key { [apostrophe, at, dead_circumflex, dead_caron] }; - key { [ grave, notsign, bar, bar ] }; - - key { [numbersign, asciitilde, dead_grave, dead_breve ] }; - key { [ 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 { [ apostrophe, at ] }; - key { [ 2, quotedbl, twosuperior, NoSymbol ] }; - key { [ 3, sterling, threesuperior, NoSymbol ] }; - key { [ numbersign, asciitilde ] }; - key { [ backslash, bar ] }; - key { [ 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 { [ minus, underscore ] }; - key { [ equal, plus ] }; - key { [ bracketleft, braceleft ] }; - key { [ bracketright, braceright ] }; - key { [ slash, question ] }; - key { [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 { [ 2, at, EuroSign ] }; - key { [ 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 { [ 2, at, EuroSign, onehalf ] }; - key { [ 3, sterling, twosuperior, onethird ] }; - key { [ 4, dollar, threesuperior, onequarter ] }; - key { [ 6, dead_circumflex, NoSymbol, onesixth ] }; - key { [ o, O, oe, OE ] }; - - key { [ dead_acute, dead_diaeresis, dead_diaeresis, bar ] }; //dead_doubleacute - key { [ section, plusminus, notsign, notsign ] }; //dead_grave - - key { [ backslash, bar, numbersign, bar ] }; - key { [ 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 { [ 2, quotedbl, twosuperior, oneeighth ] }; + key { [ 3, sterling, threesuperior, sterling ] }; + key { [ 4, dollar, EuroSign, onequarter ] }; + + key { [apostrophe, at, dead_circumflex, dead_caron] }; + key { [ grave, notsign, bar, bar ] }; + + key { [numbersign, asciitilde, dead_grave, dead_breve ] }; + key { [ 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 { [ 2, dead_diaeresis, twosuperior, onehalf ] }; + key { [ 3, sterling, threesuperior, onethird ] }; + key { [ 4, dollar, EuroSign, onequarter ] }; + key { [ 6, dead_circumflex, NoSymbol, onesixth ] }; + + key { [ dead_acute, at, apostrophe, bar ] }; + key { [ dead_grave, notsign, bar, bar ] }; + + key { [ numbersign, dead_tilde, bar, bar ] }; + key { [ 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 + + include "latin" + + name[Group1]="English (UK, extended WinKeys)"; + + // Alphanumeric section + key { [ dead_grave, notsign, brokenbar, NoSymbol ] }; + + key { [ 2, quotedbl, dead_diaeresis, onehalf ] }; + key { [ 3, sterling, threesuperior, onethird ] }; + key { [ 4, dollar, EuroSign, onequarter ] }; + key { [ 6, asciicircum, dead_circumflex, NoSymbol ] }; + + key { [ w, W, wacute, Wacute ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ y, Y, yacute, Yacute ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ apostrophe, at, dead_acute, NoSymbol ] }; + + key { [ c, C, ccedilla, Ccedilla ] }; + + key { [ numbersign, asciitilde, dead_tilde, NoSymbol ] }; + key { [ 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 { [ 2, quotedbl, twosuperior, oneeighth ] }; + key { [ 3, sterling, threesuperior, sterling ] }; + key { [ 4, dollar, EuroSign, onequarter ] }; + + key { [apostrophe, at, dead_circumflex, dead_caron] }; + key { [ grave, notsign, bar, bar ] }; + + key { [numbersign, asciitilde, dead_grave, dead_breve ] }; + key { [ 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 { [ apostrophe, at ] }; + key { [ 2, quotedbl, twosuperior, NoSymbol ] }; + key { [ 3, sterling, threesuperior, NoSymbol ] }; + key { [ numbersign, asciitilde ] }; + key { [ backslash, bar ] }; + key { [ 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 { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ slash, question ] }; + key { [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 { [ 2, at, EuroSign ] }; + key { [ 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 { [ 2, at, EuroSign, onehalf ] }; + key { [ 3, sterling, twosuperior, onethird ] }; + key { [ 4, dollar, threesuperior, onequarter ] }; + key { [ 6, dead_circumflex, NoSymbol, onesixth ] }; + key { [ o, O, oe, OE ] }; + + key { [ dead_acute, dead_diaeresis, dead_diaeresis, bar ] }; //dead_doubleacute + key { [ section, plusminus, notsign, notsign ] }; //dead_grave + + key { [ backslash, bar, numbersign, bar ] }; + key { [ 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 (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 { [ grave, notsign, brokenbar, NoSymbol ] }; - key { [ 1, exclam, exclamdown, onesuperior ] }; - key { [ 2, quotedbl, trademark, twosuperior ] }; - key { [ 3, sterling, copyright, threesuperior ] }; - key { [ 4, dollar, EuroSign, cent ] }; - key { [ 5, percent, section, dagger ] }; - key { [ 6, asciicircum, dead_circumflex, 0x1002030 ] }; - // per thousand - key { [ 7, ampersand, paragraph, 0x100204A ] }; - // Tironian Et - key { [ 8, asterisk, dead_diaeresis, enfilledcircbullet ] }; - key { [ 9, parenleft, ordfeminine, periodcentered ] }; - key { [ 0, parenright, masculine, degree ] }; - key { [ minus, underscore, endash, emdash ] }; - key { [ equal, plus, notequal, plusminus ] }; - - // - // QWERTYUIOP[] - // - key { [ q, Q, oe, OE ] }; - key { [ w, W, dead_abovedot, dead_abovedot ] }; - key { [ e, E, eacute, Eacute ] }; - key { [ r, R, registered, 0x1002030 ] }; - // per thousand - key { [ t, T, thorn, THORN ] }; - key { [ y, Y, yen, mu ] }; - key { [ u, U, uacute, Uacute ] }; - key { [ i, I, iacute, Iacute ] }; - key { [ o, O, oacute, Oacute ] }; - key { [ p, P, singlelowquotemark, NoSymbol ] }; - key { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] }; - key { [ bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] }; - - // - // ASDFGHJKL;'# - // - key { [ a, A, aacute, Aacute ] }; - key { [ s, S, ssharp, NoSymbol ] }; - key { [ d, D, eth, ETH ] }; - key { [ f, F, 0x1000192, NoSymbol ] }; - // f with hook - key { [ g, G, copyright, NoSymbol ] }; - key { [ h, H, dead_abovedot, dead_abovedot ] }; - key { [ j, J, idotless, onequarter ] }; - key { [ k, K, dead_abovering, onehalf ] }; - key { [ l, L, acute, threequarters ] }; - key { [ semicolon, colon, ellipsis, doubledagger ] }; - key { [ apostrophe, at, ae, AE ] }; - key { [ numbersign, asciitilde, guillemotleft, guillemotright ] }; - - - // - // \ZXCVBNM,./ - // - key { [ backslash, bar, dead_grave, dead_acute ] }; - key { [ z, Z, leftanglebracket, rightanglebracket ] }; - key { [ x, X, multiply, approximate ] }; - key { [ c, C, dead_cedilla, cedilla ] }; - key { [ v, V, dead_caron, NoSymbol ] }; - key { [ b, B, diaeresis, NoSymbol ] }; - key { [ n, N, dead_tilde, NoSymbol ] }; - key { [ m, M, macron, NoSymbol ] }; - key { [ comma, less, lessthanequal, doublelowquotemark ] }; - key { [ period, greater, greaterthanequal, singlelowquotemark ] }; - key { [ slash, question, division, questiondown ] }; - - - key { [ space, space, nobreakspace, nobreakspace ] }; - - include "level3(ralt_switch)" - - // NB: putting Shift+ 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 { [ grave, notsign, brokenbar, ssharp ] }; - key { [ r, R, 0x100027C, registered ] }; - // long r - key { [ t, T, tabovedot, Tabovedot ] }; - key { [ p, P, pabovedot, Pabovedot ] }; - - key { [ s, S, sabovedot, Sabovedot ] }; - key { [ d, D, dabovedot, Dabovedot ] }; - key { [ f, F, fabovedot, Fabovedot ] }; - key { [ g, G, gabovedot, Gabovedot ] }; - - key { [ z, Z, 0x100017F, 0x1001E9B ] }; - // long s, long s dot - key { [ c, C, cabovedot, Cabovedot ] }; - key { [ b, B, babovedot, Babovedot ] }; - key { [ m, M, mabovedot, Mabovedot ] }; - - key { [ 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 { [ grave, notsign, 0x10000A6, 0x10000A6 ] }; - // broken bar - key { [ 1, exclam, NoSymbol, NoSymbol ] }; - key { [ 2, quotedbl, dead_doubleacute, dead_doubleacute ] }; - key { [ 3, sterling, NoSymbol, NoSymbol ] }; - key { [ 4, dollar, EuroSign, EuroSign ] }; - key { [ 5, percent, NoSymbol, NoSymbol ] }; - key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; - key { [ 7, ampersand, 0x100204A, 0x100204A ] }; - // Tironian Et - key { [ 8, asterisk, dead_abovering, dead_abovering ] }; - key { [ 9, parenleft, dead_breve, dead_breve ] }; - key { [ 0, parenright, dead_ogonek, dead_ogonek ] }; - key { [ minus, underscore, dead_macron, dead_macron ] }; - key { [ equal, plus, NoSymbol, NoSymbol ] }; - - // - // QWERTYUIOP[] - // - key { [ q, Q, NoSymbol, NoSymbol ] }; - key { [ w, W, NoSymbol, NoSymbol ] }; - key { [ e, E, eacute, Eacute ] }; - key { [ r, R, 0x100027C, 0x100027C ] }; - // long r - key { [ t, T, NoSymbol, NoSymbol ] }; - key { [ y, Y, NoSymbol, NoSymbol ] }; - key { [ u, U, uacute, Uacute ] }; - key { [ i, I, iacute, Iacute ] }; - key { [ o, O, oacute, Oacute ] }; - key { [ p, P, NoSymbol, NoSymbol ] }; - key { [ bracketleft, braceleft, dead_hook, dead_hook ] }; - key { [ bracketright, braceright, dead_horn, dead_horn ] }; - - // - // ASDFGHJKL;'# - // - key { [ a, A, aacute, Aacute ] }; - key { [ s, S, NoSymbol, NoSymbol ] }; - key { [ d, D, NoSymbol, NoSymbol ] }; - key { [ f, F, NoSymbol, NoSymbol ] }; - key { [ g, G, NoSymbol, NoSymbol ] }; - key { [ h, H, dead_abovedot, dead_abovedot ] }; - key { [ j, J, NoSymbol, NoSymbol ] }; - key { [ k, K, NoSymbol, NoSymbol ] }; - key { [ l, L, NoSymbol, NoSymbol ] }; - key { [ semicolon, colon, dead_diaeresis, dead_diaeresis ] }; - key { [ apostrophe, at, dead_acute, dead_acute ] }; - key { [ numbersign, asciitilde, dead_tilde, dead_tilde ] }; - - // - // \ZXCVBNM,./ - // - key { [ backslash, bar, dead_grave, dead_grave ] }; - key { [ z, Z, 0x100017F, 0x1001E9B ] }; - // long s, long s dot - key { [ x, X, NoSymbol, NoSymbol ] }; - key { [ c, C, NoSymbol, NoSymbol ] }; - key { [ v, V, dead_caron, dead_caron ] }; - key { [ b, B, NoSymbol, NoSymbol ] }; - key { [ n, N, NoSymbol, NoSymbol ] }; - key { [ m, M, NoSymbol, NoSymbol ] }; - key { [ comma, less, dead_cedilla, dead_cedilla ] }; - key { [ period, greater, dead_abovedot, dead_abovedot ] }; - key { [ slash, question, dead_belowdot, dead_belowdot ] }; - - key { [ space, space, space, nobreakspace ] }; - - include "level3(ralt_switch)" - - include "compose(rwin)" -}; - -// -// Ogham keyboard map for XFree86 -// -// Seamus O Ciardhuain (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 { type[Group1]="TWO_LEVEL", - [ 0x100169B, 0x100169C ] }; - // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK - - key { [ 0x1001680 ] }; // OGHAM SPACE MARK - - key { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK - - key { [ space ] }; - - // - // Top Row QWERTYUIOP - // - key { [ 0x100168A ] }; // OGHAM LETTER CEIRT - key { [ 0x1001695 ] }; // OGHAM LETTER EABHADH - key { [ 0x1001693 ] }; // OGHAM LETTER EADHADH - key { [ 0x100168F ] }; // OGHAM LETTER RUIS - key { [ 0x1001688 ] }; // OGHAM LETTER TINNE - key { [ 0x1001698 ] }; // OGHAM LETTER IFIN - key { [ 0x1001692 ] }; // OGHAM LETTER UR - key { [ 0x1001694 ] }; // OGHAM LETTER IODHADH - key { [ 0x1001691 ] }; // OGHAM LETTER ONN - key { [ 0x100169A ] }; // OGHAM LETTER PEITH - - // - // Middle Row ASDFGHJKL - // - key { [ 0x1001690 ] }; // OGHAM LETTER AILM - key { [ 0x1001684 ] }; // OGHAM LETTER SAIL - key { [ 0x1001687 ] }; // OGHAM LETTER DAIR - key { [ 0x1001683 ] }; // OGHAM LETTER FEARN - key { [ 0x100168C ] }; // OGHAM LETTER GORT - key { [ 0x1001686 ] }; // OGHAM LETTER UATH - key { [ 0x1001697 ] }; // OGHAM LETTER UILLEANN - key { [ 0x1001696 ] }; // OGHAM LETTER OR - key { [ 0x1001682 ] }; // OGHAM LETTER LUIS - - // - // Bottom Row ZXCVBNM - // - key { [ 0x100168E ] }; // OGHAM LETTER STRAIF - key { [ 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL - key { [ 0x1001689 ] }; // OGHAM LETTER COLL - key { [ 0x100168D ] }; // OGHAM LETTER NGEADAL - key { [ 0x1001681 ] }; // OGHAM LETTER BEITH - key { [ 0x1001685 ] }; // OGHAM LETTER NION - key { [ 0x100168B ] }; // OGHAM LETTER MUIN - - // As an extension because and may not be - // available or sensible. These are also a bit more - // intuitive on a standard Irish keyboard. - key { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK - key { [ 0x100169B ] }; // OGHAM FEATHER MARK - key { [ 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 { type[Group1] = "FOUR_LEVEL_ALPHABETIC", - [ backslash, bar, 0x100169B, 0x100169C ] }; - // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK - - key { [ numbersign, asciitilde, 0x1001680 ] }; // OGHAM SPACE MARK - key { [ grave, notsign, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK - key { [ space, space, space ] }; - - // - // Numeric row - // - key { type[Group1]="TWO_LEVEL", [ 1, exclam ] }; - key { type[Group1]="TWO_LEVEL", [ 2, quotedbl ] }; - key { type[Group1]="TWO_LEVEL", [ 3, sterling ] }; - key { [ 4, dollar, EuroSign ] }; - key { type[Group1]="TWO_LEVEL", [ 5, percent ] }; - key { type[Group1]="TWO_LEVEL", [ 6, asciicircum ] }; - key { [ 7, ampersand, 0x100204A ] }; // Tironian Et - key { type[Group1]="TWO_LEVEL", [ 8, asterisk ] }; - key { type[Group1]="TWO_LEVEL", [ 9, parenleft ] }; - key { type[Group1]="TWO_LEVEL", [ 0, parenright ] }; - key { type[Group1]="TWO_LEVEL", [ minus, underscore ] }; - key { type[Group1]="TWO_LEVEL", [ equal, plus ] }; - - // - // Top Row QWERTYUIOP - // - key { [ q, Q, 0x100168A ] }; // OGHAM LETTER CEIRT - key { [ w, W, 0x1001695 ] }; // OGHAM LETTER EABHADH - key { [ e, E, 0x1001693 ] }; // OGHAM LETTER EADHADH - key { [ r, R, 0x100168F ] }; // OGHAM LETTER RUIS - key { [ t, T, 0x1001688 ] }; // OGHAM LETTER TINNE - key { [ y, Y, 0x1001698 ] }; // OGHAM LETTER IFIN - key { [ u, U, 0x1001692 ] }; // OGHAM LETTER UR - key { [ i, I, 0x1001694 ] }; // OGHAM LETTER IODHADH - key { [ o, O, 0x1001691 ] }; // OGHAM LETTER ONN - key { [ p, P, 0x100169A ] }; // OGHAM LETTER PEITH - - // - // Middle Row ASDFGHJKL - // - key { [ a, A, 0x1001690 ] }; // OGHAM LETTER AILM - key { [ s, S, 0x1001684 ] }; // OGHAM LETTER SAIL - key { [ d, D, 0x1001687 ] }; // OGHAM LETTER DAIR - key { [ f, F, 0x1001683 ] }; // OGHAM LETTER FEARN - key { [ g, G, 0x100168C ] }; // OGHAM LETTER GORT - key { [ h, H, 0x1001686 ] }; // OGHAM LETTER UATH - key { [ j, J, 0x1001697 ] }; // OGHAM LETTER UILLEANN - key { [ k, K, 0x1001696 ] }; // OGHAM LETTER OR - key { [ l, L, 0x1001682 ] }; // OGHAM LETTER LUIS - - // - // Bottom Row ZXCVBNM - // - key { [ z, Z, 0x100168E ] }; // OGHAM LETTER STRAIF - key { [ x, X, 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL - key { [ c, C, 0x1001689 ] }; // OGHAM LETTER COLL - key { [ v, V, 0x100168D ] }; // OGHAM LETTER NGEADAL - key { [ b, B, 0x1001681 ] }; // OGHAM LETTER BEITH - key { [ n, N, 0x1001685 ] }; // OGHAM LETTER NION - key { [ m, M, 0x100168B ] }; // OGHAM LETTER MUIN - - // As an extension because and may not be - // available or sensible. These are also a bit more - // intuitive on a standard Irish keyboard. - key { [ comma, less, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK - key { [ period, greater, 0x100169B ] }; // OGHAM FEATHER MARK - key { [ 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 { 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 {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 (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 { [ grave, notsign, brokenbar, NoSymbol ] }; + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, quotedbl, trademark, twosuperior ] }; + key { [ 3, sterling, copyright, threesuperior ] }; + key { [ 4, dollar, EuroSign, cent ] }; + key { [ 5, percent, section, dagger ] }; + key { [ 6, asciicircum, dead_circumflex, 0x1002030 ] }; + // per thousand + key { [ 7, ampersand, paragraph, 0x100204A ] }; + // Tironian Et + key { [ 8, asterisk, dead_diaeresis, enfilledcircbullet ] }; + key { [ 9, parenleft, ordfeminine, periodcentered ] }; + key { [ 0, parenright, masculine, degree ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ equal, plus, notequal, plusminus ] }; + + // + // QWERTYUIOP[] + // + key { [ q, Q, oe, OE ] }; + key { [ w, W, dead_abovedot, dead_abovedot ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, registered, 0x1002030 ] }; + // per thousand + key { [ t, T, thorn, THORN ] }; + key { [ y, Y, yen, mu ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ p, P, singlelowquotemark, NoSymbol ] }; + key { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] }; + key { [ bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] }; + + // + // ASDFGHJKL;'# + // + key { [ a, A, aacute, Aacute ] }; + key { [ s, S, ssharp, NoSymbol ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, 0x1000192, NoSymbol ] }; + // f with hook + key { [ g, G, copyright, NoSymbol ] }; + key { [ h, H, dead_abovedot, dead_abovedot ] }; + key { [ j, J, idotless, onequarter ] }; + key { [ k, K, dead_abovering, onehalf ] }; + key { [ l, L, acute, threequarters ] }; + key { [ semicolon, colon, ellipsis, doubledagger ] }; + key { [ apostrophe, at, ae, AE ] }; + key { [ numbersign, asciitilde, guillemotleft, guillemotright ] }; + + + // + // \ZXCVBNM,./ + // + key { [ backslash, bar, dead_grave, dead_acute ] }; + key { [ z, Z, leftanglebracket, rightanglebracket ] }; + key { [ x, X, multiply, approximate ] }; + key { [ c, C, dead_cedilla, cedilla ] }; + key { [ v, V, dead_caron, NoSymbol ] }; + key { [ b, B, diaeresis, NoSymbol ] }; + key { [ n, N, dead_tilde, NoSymbol ] }; + key { [ m, M, macron, NoSymbol ] }; + key { [ comma, less, lessthanequal, doublelowquotemark ] }; + key { [ period, greater, greaterthanequal, singlelowquotemark ] }; + key { [ slash, question, division, questiondown ] }; + + + key { [ space, space, nobreakspace, nobreakspace ] }; + + include "level3(ralt_switch)" + + // NB: putting Shift+ 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 { [ grave, notsign, brokenbar, ssharp ] }; + key { [ r, R, 0x100027C, registered ] }; + // long r + key { [ t, T, tabovedot, Tabovedot ] }; + key { [ p, P, pabovedot, Pabovedot ] }; + + key { [ s, S, sabovedot, Sabovedot ] }; + key { [ d, D, dabovedot, Dabovedot ] }; + key { [ f, F, fabovedot, Fabovedot ] }; + key { [ g, G, gabovedot, Gabovedot ] }; + + key { [ z, Z, 0x100017F, 0x1001E9B ] }; + // long s, long s dot + key { [ c, C, cabovedot, Cabovedot ] }; + key { [ b, B, babovedot, Babovedot ] }; + key { [ m, M, mabovedot, Mabovedot ] }; + + key { [ 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 { [ grave, notsign, 0x10000A6, 0x10000A6 ] }; + // broken bar + key { [ 1, exclam, NoSymbol, NoSymbol ] }; + key { [ 2, quotedbl, dead_doubleacute, dead_doubleacute ] }; + key { [ 3, sterling, NoSymbol, NoSymbol ] }; + key { [ 4, dollar, EuroSign, EuroSign ] }; + key { [ 5, percent, NoSymbol, NoSymbol ] }; + key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; + key { [ 7, ampersand, 0x100204A, 0x100204A ] }; + // Tironian Et + key { [ 8, asterisk, dead_abovering, dead_abovering ] }; + key { [ 9, parenleft, dead_breve, dead_breve ] }; + key { [ 0, parenright, dead_ogonek, dead_ogonek ] }; + key { [ minus, underscore, dead_macron, dead_macron ] }; + key { [ equal, plus, NoSymbol, NoSymbol ] }; + + // + // QWERTYUIOP[] + // + key { [ q, Q, NoSymbol, NoSymbol ] }; + key { [ w, W, NoSymbol, NoSymbol ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, 0x100027C, 0x100027C ] }; + // long r + key { [ t, T, NoSymbol, NoSymbol ] }; + key { [ y, Y, NoSymbol, NoSymbol ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ p, P, NoSymbol, NoSymbol ] }; + key { [ bracketleft, braceleft, dead_hook, dead_hook ] }; + key { [ bracketright, braceright, dead_horn, dead_horn ] }; + + // + // ASDFGHJKL;'# + // + key { [ a, A, aacute, Aacute ] }; + key { [ s, S, NoSymbol, NoSymbol ] }; + key { [ d, D, NoSymbol, NoSymbol ] }; + key { [ f, F, NoSymbol, NoSymbol ] }; + key { [ g, G, NoSymbol, NoSymbol ] }; + key { [ h, H, dead_abovedot, dead_abovedot ] }; + key { [ j, J, NoSymbol, NoSymbol ] }; + key { [ k, K, NoSymbol, NoSymbol ] }; + key { [ l, L, NoSymbol, NoSymbol ] }; + key { [ semicolon, colon, dead_diaeresis, dead_diaeresis ] }; + key { [ apostrophe, at, dead_acute, dead_acute ] }; + key { [ numbersign, asciitilde, dead_tilde, dead_tilde ] }; + + // + // \ZXCVBNM,./ + // + key { [ backslash, bar, dead_grave, dead_grave ] }; + key { [ z, Z, 0x100017F, 0x1001E9B ] }; + // long s, long s dot + key { [ x, X, NoSymbol, NoSymbol ] }; + key { [ c, C, NoSymbol, NoSymbol ] }; + key { [ v, V, dead_caron, dead_caron ] }; + key { [ b, B, NoSymbol, NoSymbol ] }; + key { [ n, N, NoSymbol, NoSymbol ] }; + key { [ m, M, NoSymbol, NoSymbol ] }; + key { [ comma, less, dead_cedilla, dead_cedilla ] }; + key { [ period, greater, dead_abovedot, dead_abovedot ] }; + key { [ slash, question, dead_belowdot, dead_belowdot ] }; + + key { [ space, space, space, nobreakspace ] }; + + include "level3(ralt_switch)" + + include "compose(rwin)" +}; + +// +// Ogham keyboard map for XFree86 +// +// Seamus O Ciardhuain (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 { type[Group1]="TWO_LEVEL", + [ 0x100169B, 0x100169C ] }; + // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK + + key { [ 0x1001680 ] }; // OGHAM SPACE MARK + + key { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK + + key { [ space ] }; + + // + // Top Row QWERTYUIOP + // + key { [ 0x100168A ] }; // OGHAM LETTER CEIRT + key { [ 0x1001695 ] }; // OGHAM LETTER EABHADH + key { [ 0x1001693 ] }; // OGHAM LETTER EADHADH + key { [ 0x100168F ] }; // OGHAM LETTER RUIS + key { [ 0x1001688 ] }; // OGHAM LETTER TINNE + key { [ 0x1001698 ] }; // OGHAM LETTER IFIN + key { [ 0x1001692 ] }; // OGHAM LETTER UR + key { [ 0x1001694 ] }; // OGHAM LETTER IODHADH + key { [ 0x1001691 ] }; // OGHAM LETTER ONN + key { [ 0x100169A ] }; // OGHAM LETTER PEITH + + // + // Middle Row ASDFGHJKL + // + key { [ 0x1001690 ] }; // OGHAM LETTER AILM + key { [ 0x1001684 ] }; // OGHAM LETTER SAIL + key { [ 0x1001687 ] }; // OGHAM LETTER DAIR + key { [ 0x1001683 ] }; // OGHAM LETTER FEARN + key { [ 0x100168C ] }; // OGHAM LETTER GORT + key { [ 0x1001686 ] }; // OGHAM LETTER UATH + key { [ 0x1001697 ] }; // OGHAM LETTER UILLEANN + key { [ 0x1001696 ] }; // OGHAM LETTER OR + key { [ 0x1001682 ] }; // OGHAM LETTER LUIS + + // + // Bottom Row ZXCVBNM + // + key { [ 0x100168E ] }; // OGHAM LETTER STRAIF + key { [ 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL + key { [ 0x1001689 ] }; // OGHAM LETTER COLL + key { [ 0x100168D ] }; // OGHAM LETTER NGEADAL + key { [ 0x1001681 ] }; // OGHAM LETTER BEITH + key { [ 0x1001685 ] }; // OGHAM LETTER NION + key { [ 0x100168B ] }; // OGHAM LETTER MUIN + + // As an extension because and may not be + // available or sensible. These are also a bit more + // intuitive on a standard Irish keyboard. + key { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK + key { [ 0x100169B ] }; // OGHAM FEATHER MARK + key { [ 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 { type[Group1] = "FOUR_LEVEL_ALPHABETIC", + [ backslash, bar, 0x100169B, 0x100169C ] }; + // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK + + key { [ numbersign, asciitilde, 0x1001680 ] }; // OGHAM SPACE MARK + key { [ grave, notsign, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK + key { [ space, space, space ] }; + + // + // Numeric row + // + key { type[Group1]="TWO_LEVEL", [ 1, exclam ] }; + key { type[Group1]="TWO_LEVEL", [ 2, quotedbl ] }; + key { type[Group1]="TWO_LEVEL", [ 3, sterling ] }; + key { [ 4, dollar, EuroSign ] }; + key { type[Group1]="TWO_LEVEL", [ 5, percent ] }; + key { type[Group1]="TWO_LEVEL", [ 6, asciicircum ] }; + key { [ 7, ampersand, 0x100204A ] }; // Tironian Et + key { type[Group1]="TWO_LEVEL", [ 8, asterisk ] }; + key { type[Group1]="TWO_LEVEL", [ 9, parenleft ] }; + key { type[Group1]="TWO_LEVEL", [ 0, parenright ] }; + key { type[Group1]="TWO_LEVEL", [ minus, underscore ] }; + key { type[Group1]="TWO_LEVEL", [ equal, plus ] }; + + // + // Top Row QWERTYUIOP + // + key { [ q, Q, 0x100168A ] }; // OGHAM LETTER CEIRT + key { [ w, W, 0x1001695 ] }; // OGHAM LETTER EABHADH + key { [ e, E, 0x1001693 ] }; // OGHAM LETTER EADHADH + key { [ r, R, 0x100168F ] }; // OGHAM LETTER RUIS + key { [ t, T, 0x1001688 ] }; // OGHAM LETTER TINNE + key { [ y, Y, 0x1001698 ] }; // OGHAM LETTER IFIN + key { [ u, U, 0x1001692 ] }; // OGHAM LETTER UR + key { [ i, I, 0x1001694 ] }; // OGHAM LETTER IODHADH + key { [ o, O, 0x1001691 ] }; // OGHAM LETTER ONN + key { [ p, P, 0x100169A ] }; // OGHAM LETTER PEITH + + // + // Middle Row ASDFGHJKL + // + key { [ a, A, 0x1001690 ] }; // OGHAM LETTER AILM + key { [ s, S, 0x1001684 ] }; // OGHAM LETTER SAIL + key { [ d, D, 0x1001687 ] }; // OGHAM LETTER DAIR + key { [ f, F, 0x1001683 ] }; // OGHAM LETTER FEARN + key { [ g, G, 0x100168C ] }; // OGHAM LETTER GORT + key { [ h, H, 0x1001686 ] }; // OGHAM LETTER UATH + key { [ j, J, 0x1001697 ] }; // OGHAM LETTER UILLEANN + key { [ k, K, 0x1001696 ] }; // OGHAM LETTER OR + key { [ l, L, 0x1001682 ] }; // OGHAM LETTER LUIS + + // + // Bottom Row ZXCVBNM + // + key { [ z, Z, 0x100168E ] }; // OGHAM LETTER STRAIF + key { [ x, X, 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL + key { [ c, C, 0x1001689 ] }; // OGHAM LETTER COLL + key { [ v, V, 0x100168D ] }; // OGHAM LETTER NGEADAL + key { [ b, B, 0x1001681 ] }; // OGHAM LETTER BEITH + key { [ n, N, 0x1001685 ] }; // OGHAM LETTER NION + key { [ m, M, 0x100168B ] }; // OGHAM LETTER MUIN + + // As an extension because and may not be + // available or sensible. These are also a bit more + // intuitive on a standard Irish keyboard. + key { [ comma, less, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK + key { [ period, greater, 0x100169B ] }; // OGHAM FEATHER MARK + key { [ 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 { 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 {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 { [ 0, asciitilde ] }; - key { [ 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 { - type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Zenkaku_Hankaku, Kanji ] - }; - - key { [ 1, exclam ] }; - key { [ 2, quotedbl ] }; - key { [ 3, numbersign ] }; - key { [ 4, dollar ] }; - key { [ 5, percent ] }; - key { [ 6, ampersand ] }; - key { [ 7, apostrophe ] }; - key { [ 8, parenleft ] }; - key { [ 9, parenright ] }; - key { [ minus, equal ] }; - key { [ asciicircum, asciitilde] }; - - key { [ q, Q ] }; - key { [ w, W ] }; - key { [ e, E ] }; - key { [ r, R ] }; - key { [ t, T ] }; - key { [ y, Y ] }; - key { [ u, U ] }; - key { [ i, I ] }; - key { [ o, O ] }; - key { [ p, P ] }; - key { [ at, grave ] }; - key { [ bracketleft, braceleft ] }; - - key { [ Eisu_toggle, Caps_Lock ] }; - - key { [ a, A ] }; - key { [ s, S ] }; - key { [ d, D ] }; - key { [ f, F ] }; - key { [ g, G ] }; - key { [ h, H ] }; - key { [ j, J ] }; - key { [ k, K ] }; - key { [ l, L ] }; - key { [ semicolon, plus ] }; - key { [ colon, asterisk ] }; - key { [ bracketright, braceright ] }; - - key { [ z, Z ] }; - key { [ x, X ] }; - key { [ c, C ] }; - key { [ v, V ] }; - key { [ b, B ] }; - key { [ n, N ] }; - key { [ m, M ] }; - key { [ comma, less ] }; - key { [ period, greater ] }; - key { [ slash, question ] }; - key { [ backslash, underscore] }; - key { [ Control_L ] }; - - key { [ Muhenkan ] }; - - key { - type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Henkan, Mode_switch ] - }; - key { - type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Hiragana_Katakana, Romaji ] - }; - - key { - type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Eisu_toggle ] - }; - - key { - type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Hiragana_Katakana ] - }; - - - key { - 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 { [ 0 ] }; - key { [ 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 { [ Escape ] }; - key { [ Num_Lock, Pointer_EnableKeys ] }; - key { [ BackSpace ] }; - key { [ Tab, ISO_Left_Tab ] }; - key { [ Return ] }; - key { [ Shift_L ] }; - key { [ Shift_R ] }; - key { [ Super_L ] }; - key { [ Alt_L ] }; - key { [ space ] }; - key { [ Alt_R ] }; -// for compatability with other keyboards connected at the same time - key { [ Super_R ] }; - key { [ Control_R ] }; -}; - -partial alphanumeric_keys -xkb_symbols "kana" { - - name[Group1]= "Japan - Kana"; - - // Alphanumeric section - key { - type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Zenkaku_Hankaku, Kanji ] - }; - key { [ kana_NU ] }; - key { [ kana_FU ] }; - key { [ kana_A, kana_a ] }; - key { [ kana_U, kana_u ] }; - key { [ kana_E, kana_e ] }; - key { [ kana_O, kana_o ] }; - key { [ kana_YA, kana_ya ] }; - key { [ kana_YU, kana_yu ] }; - key { [ kana_YO, kana_yo ] }; - key { [ kana_WA, kana_WO ] }; - key { [ kana_HO ] }; - key { [ kana_HE ] }; - key { [ prolongedsound ] }; - - key { [ kana_TA ] }; - key { [ kana_TE ] }; - key { [ kana_I, kana_i ] }; - key { [ kana_SU ] }; - key { [ kana_KA ] }; - key { [ kana_N ] }; - key { [ kana_NA ] }; - key { [ kana_NI ] }; - key { [ kana_RA ] }; - key { [ kana_SE ] }; - key { [ voicedsound ] }; - key { [ semivoicedsound, kana_openingbracket ] }; - - key { [ Eisu_toggle, Caps_Lock ] }; - key { [ kana_CHI ] }; - key { [ kana_TO ] }; - key { [ kana_SHI ] }; - key { [ kana_HA ] }; - key { [ kana_KI ] }; - key { [ kana_KU ] }; - key { [ kana_MA ] }; - key { [ kana_NO ] }; - key { [ kana_RI ] }; - key { [ kana_RE ] }; - key { [ kana_KE ] }; - key { [ kana_MU, kana_closingbracket ] }; - - key { [ kana_TSU, kana_tsu ] }; - key { [ kana_SA ] }; - key { [ kana_SO ] }; - key { [ kana_HI ] }; - key { [ kana_KO ] }; - key { [ kana_MI ] }; - key { [ kana_MO ] }; - key { [ kana_NE, kana_comma ] }; - key { [ kana_RU, kana_fullstop ] }; - key { [ kana_ME, kana_middledot ] }; - key { [ kana_RO ] }; - key { [ Control_L ] }; - - key { [ Muhenkan ] }; - - key { - type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Henkan, Mode_switch ] - }; - key { - type[Group1]="PC_ALT_LEVEL2", - symbols[Group1]= [ Hiragana_Katakana, Romaji ] - }; - - // End alphanumeric section - - key { - type[Group1]= "PC_ALT_LEVEL2", - symbols[Group1]= [ Print, Execute ] - }; -}; - -partial alphanumeric_keys -xkb_symbols "nicola_f_bs" { - key { - type="", - symbols[Group1]= [ bracketright, braceright ] - }; - key { [ 0,underscore ] }; - key { [ colon, asterisk ] }; - key { [ BackSpace, BackSpace ] }; - key { [ Escape ] }; - key { [ at, grave ] }; -}; - -// Copied from macintosh_vndr/jp -partial alphanumeric_keys -xkb_symbols "mac" { - name[Group1] = "Japan - Macintosh"; - include "jp(kana)" - - replace key { [ 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 { [ 0, asciitilde ] }; + key { [ 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 { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Zenkaku_Hankaku, Kanji ] + }; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, ampersand ] }; + key { [ 7, apostrophe ] }; + key { [ 8, parenleft ] }; + key { [ 9, parenright ] }; + key { [ minus, equal ] }; + key { [ asciicircum, asciitilde] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ at, grave ] }; + key { [ bracketleft, braceleft ] }; + + key { [ Eisu_toggle, Caps_Lock ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, plus ] }; + key { [ colon, asterisk ] }; + key { [ bracketright, braceright ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + key { [ backslash, underscore] }; + key { [ Control_L ] }; + + key { [ Muhenkan ] }; + + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Henkan, Mode_switch ] + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Hiragana_Katakana, Romaji ] + }; + + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Eisu_toggle ] + }; + + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Hiragana_Katakana ] + }; + + + key { + 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 { [ 0 ] }; + key { [ 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 { [ Escape ] }; + key { [ Num_Lock, Pointer_EnableKeys ] }; + key { [ BackSpace ] }; + key { [ Tab, ISO_Left_Tab ] }; + key { [ Return ] }; + key { [ Shift_L ] }; + key { [ Shift_R ] }; + key { [ Super_L ] }; + key { [ Alt_L ] }; + key { [ space ] }; + key { [ Alt_R ] }; +// for compatability with other keyboards connected at the same time + key { [ Super_R ] }; + key { [ Control_R ] }; +}; + +partial alphanumeric_keys +xkb_symbols "kana" { + + name[Group1]= "Japanese (Kana)"; + + // Alphanumeric section + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Zenkaku_Hankaku, Kanji ] + }; + key { [ kana_NU ] }; + key { [ kana_FU ] }; + key { [ kana_A, kana_a ] }; + key { [ kana_U, kana_u ] }; + key { [ kana_E, kana_e ] }; + key { [ kana_O, kana_o ] }; + key { [ kana_YA, kana_ya ] }; + key { [ kana_YU, kana_yu ] }; + key { [ kana_YO, kana_yo ] }; + key { [ kana_WA, kana_WO ] }; + key { [ kana_HO ] }; + key { [ kana_HE ] }; + key { [ prolongedsound ] }; + + key { [ kana_TA ] }; + key { [ kana_TE ] }; + key { [ kana_I, kana_i ] }; + key { [ kana_SU ] }; + key { [ kana_KA ] }; + key { [ kana_N ] }; + key { [ kana_NA ] }; + key { [ kana_NI ] }; + key { [ kana_RA ] }; + key { [ kana_SE ] }; + key { [ voicedsound ] }; + key { [ semivoicedsound, kana_openingbracket ] }; + + key { [ Eisu_toggle, Caps_Lock ] }; + key { [ kana_CHI ] }; + key { [ kana_TO ] }; + key { [ kana_SHI ] }; + key { [ kana_HA ] }; + key { [ kana_KI ] }; + key { [ kana_KU ] }; + key { [ kana_MA ] }; + key { [ kana_NO ] }; + key { [ kana_RI ] }; + key { [ kana_RE ] }; + key { [ kana_KE ] }; + key { [ kana_MU, kana_closingbracket ] }; + + key { [ kana_TSU, kana_tsu ] }; + key { [ kana_SA ] }; + key { [ kana_SO ] }; + key { [ kana_HI ] }; + key { [ kana_KO ] }; + key { [ kana_MI ] }; + key { [ kana_MO ] }; + key { [ kana_NE, kana_comma ] }; + key { [ kana_RU, kana_fullstop ] }; + key { [ kana_ME, kana_middledot ] }; + key { [ kana_RO ] }; + key { [ Control_L ] }; + + key { [ Muhenkan ] }; + + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Henkan, Mode_switch ] + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1]= [ Hiragana_Katakana, Romaji ] + }; + + // End alphanumeric section + + key { + type[Group1]= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Execute ] + }; +}; + +partial alphanumeric_keys +xkb_symbols "nicola_f_bs" { + key { + type="", + symbols[Group1]= [ bracketright, braceright ] + }; + key { [ 0,underscore ] }; + key { [ colon, asterisk ] }; + key { [ BackSpace, BackSpace ] }; + key { [ Escape ] }; + key { [ at, grave ] }; +}; + +// Copied from macintosh_vndr/jp +partial alphanumeric_keys +xkb_symbols "mac" { + name[Group1] = "Japanese (Macintosh)"; + include "jp(kana)" + + replace key { [ 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 { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW - key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS - key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE - key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT - key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW - key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE - key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON - key { [ 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 { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW - key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS - key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE - key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT - key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW - key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE - key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON - key { [ 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 { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW + key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS + key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE + key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT + key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW + key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE + key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON + key { [ 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 { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW + key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS + key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE + key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT + key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW + key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE + key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON + key { [ 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 -// Ilyas Bakirov -// Yury Fedorov -// Emil Asanov -// Ulan Melisbek - - -// Kyrgyz standard keyboard -partial default alphanumeric_keys -xkb_symbols "basic" { - - name[Group1]= "Kyrgyzstan"; - - key { [ 1, exclam ] }; - key { [ 2, quotedbl ] }; - key { [ 3, numerosign ] }; - key { [ 4, semicolon ] }; - key { [ 5, percent ] }; - key { [ 6, colon ] }; - key { [ 7, question ] }; - key { [ 8, asterisk ] }; - key { [ 9, parenleft ] }; - key { [ 0, parenright ] }; - key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; - key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; - key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; - key { [ period, comma ] }; - key { [ slash, bar ] }; - - key { [ Cyrillic_io, Cyrillic_IO ] }; - key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; - key { [ Cyrillic_tse, Cyrillic_TSE ] }; - key { [ Cyrillic_u, Cyrillic_U ] }; - key { [ Cyrillic_ka, Cyrillic_KA ] }; - key { [ Cyrillic_ie, Cyrillic_IE ] }; - key { [ Cyrillic_en, Cyrillic_EN ] }; - key { [ Cyrillic_ghe, Cyrillic_GHE ] }; - key { [ Cyrillic_sha, Cyrillic_SHA ] }; - key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; - key { [ Cyrillic_ze, Cyrillic_ZE ] }; - key { [ Cyrillic_ha, Cyrillic_HA ] }; - key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; - key { [ Cyrillic_ef, Cyrillic_EF ] }; - key { [ Cyrillic_yeru, Cyrillic_YERU ] }; - key { [ Cyrillic_ve, Cyrillic_VE ] }; - key { [ Cyrillic_a, Cyrillic_A ] }; - key { [ Cyrillic_pe, Cyrillic_PE ] }; - key { [ Cyrillic_er, Cyrillic_ER ] }; - key { [ Cyrillic_o, Cyrillic_O ] }; - key { [ Cyrillic_el, Cyrillic_EL ] }; - key { [ Cyrillic_de, Cyrillic_DE ] }; - key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; - key { [ Cyrillic_e, Cyrillic_E ] }; - key { [ Cyrillic_ya, Cyrillic_YA ] }; - key { [ Cyrillic_che, Cyrillic_CHE ] }; - key { [ Cyrillic_es, Cyrillic_ES ] }; - key { [ Cyrillic_em, Cyrillic_EM ] }; - key { [ Cyrillic_i, Cyrillic_I ] }; - key { [ Cyrillic_te, Cyrillic_TE ] }; - key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; - key { [ Cyrillic_be, Cyrillic_BE ] }; - key { [ Cyrillic_yu, Cyrillic_YU ] }; -}; - -// Kyrgyz phonetic layout -partial alphanumeric_keys -xkb_symbols "phonetic" { - - name[Group1]="Kyrgyzstan - Phonetic"; - - key { [ 1, exclam ] }; - key { [ 2, quotedbl ] }; - key { [ 3, numerosign ] }; - key { [ 4, semicolon ] }; - key { [ 5, percent ] }; - key { [ 6, colon ] }; - key { [ 7, question ] }; - key { [ 8, minus ] }; - key { [ 9, parenleft ] }; - key { [ 0, parenright ] }; - key { [ Cyrillic_ya, Cyrillic_YA ] }; - key { [ Cyrillic_yu, Cyrillic_YU ] }; - - key { [ Cyrillic_che, Cyrillic_CHE ] }; - key { [ Cyrillic_sha, Cyrillic_SHA ] }; - key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; - key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; - key { [ period, comma ] }; - key { [ Cyrillic_tse, Cyrillic_TSE ] }; - key { [ Cyrillic_e, Cyrillic_E ] }; - key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; - key { [ Cyrillic_io, Cyrillic_IO ] }; - - key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; - key { [ Cyrillic_ze, Cyrillic_ZE ] }; - key { [ Cyrillic_es, Cyrillic_ES ] }; - key { [ Cyrillic_a, Cyrillic_A ] }; - key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; - key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; - key { [ Cyrillic_ha, Cyrillic_HA ] }; - key { [ Cyrillic_de, Cyrillic_DE ] }; - key { [ Cyrillic_ie, Cyrillic_IE ] }; - key { [ Cyrillic_ve, Cyrillic_VE ] }; - key { [ Cyrillic_ef, Cyrillic_EF ] }; - key { [ Cyrillic_te, Cyrillic_TE ] }; - key { [ Cyrillic_er, Cyrillic_ER ] }; - key { [ Cyrillic_en, Cyrillic_EN ] }; - key { [ Cyrillic_be, Cyrillic_BE ] }; - key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; - key { [ Cyrillic_ghe, Cyrillic_GHE ] }; - key { [ Cyrillic_yeru, Cyrillic_YERU ] }; - key { [ Cyrillic_em, Cyrillic_EM ] }; - key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; - key { [ Cyrillic_u, Cyrillic_U ] }; - key { [ Cyrillic_ka, Cyrillic_KA ] }; - key { [ Cyrillic_i, Cyrillic_I ] }; - key { [ Cyrillic_o, Cyrillic_O ] }; - key { [ Cyrillic_el, Cyrillic_EL ] }; - key { [ Cyrillic_pe, Cyrillic_PE ] }; - -}; +// Kirghiz (aka Kyrgyz) Standard Keyboard +// +// Standard - Phonetic +// ______________- ________________ +// ё1234567890өң ё1234567890яю +// Ё!"№;%:?*()ӨҢ Ё!"№;%:?-()ЯЮ +// +// йцукенгшщзхъү өүертыуиопчшъ +// фывапролджэ асдфгңйклэь +// ячсмитьбю.(,) зхжвбнмцщ.(,) + +// Authors: +// Timur Jamakeev +// Ilyas Bakirov +// Yury Fedorov +// Emil Asanov +// Ulan Melisbek + + +// Kyrgyz standard keyboard +partial default alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]= "Kyrgyz"; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numerosign ] }; + key { [ 4, semicolon ] }; + key { [ 5, percent ] }; + key { [ 6, colon ] }; + key { [ 7, question ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; + key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; + key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; + key { [ period, comma ] }; + key { [ slash, bar ] }; + + key { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; +}; + +// Kyrgyz phonetic layout +partial alphanumeric_keys +xkb_symbols "phonetic" { + + name[Group1]="Kyrgyz (phonetic)"; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numerosign ] }; + key { [ 4, semicolon ] }; + key { [ 5, percent ] }; + key { [ 6, colon ] }; + key { [ 7, question ] }; + key { [ 8, minus ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; + + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ period, comma ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_io, Cyrillic_IO ] }; + + key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ 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 { [ guillemotleft, guillemotright, 0x100200d, voidsymbol ] }; - key { [ 0x10017e1, exclam, 0x100200c, 0x10017f1 ] }; - key { [ 0x10017e2, 0x10017d7, at, 0x10017f2 ] }; - key { [ 0x10017e3, quotedbl, 0x10017d1, 0x10017f3 ] }; - key { [ 0x10017e4, 0x10017db, dollar, 0x10017f4 ] }; - key { [ 0x10017e5, percent, EuroSign, 0x10017f5 ] }; - key { [ 0x10017e6, 0x10017cd, 0x10017d9, 0x10017f6 ] }; - key { [ 0x10017e7, 0x10017d0, 0x10017da, 0x10017f7 ] }; - key { [ 0x10017e8, 0x10017cf, asterisk, 0x10017f8 ] }; - key { [ 0x10017e9, parenleft, braceleft, 0x10017f9 ] }; - key { [ 0x10017e0, parenright, braceright, 0x10017f0 ] }; - key { [ 0x10017a5, 0x10017cc, x, voidsymbol ] }; - key { [ 0x10017b2, equal, 0x10017ce, voidsymbol ] }; - key { [ 0x10017ae, 0x10017ad, backslash, voidsymbol ] }; - -// keys: qwertyuiop[] - key { [ 0x1001786, 0x1001788, 0x10017dc, 0x10019e0 ] }; - key { [ 0x10017b9, 0x10017ba, 0x10017dd, 0x10019e1 ] }; - key { [ 0x10017c1, 0x10017c2, 0x10017af, 0x10019e2 ] }; - key { [ 0x100179a, 0x10017ac, 0x10017ab, 0x10019e3 ] }; - key { [ 0x100178f, 0x1001791, 0x10017a8, 0x10019e4 ] }; - key { [ 0x1001799, 0x10017bd, voidsymbol, 0x10019e5 ] }; - key { [ 0x10017bb, 0x10017bc, voidsymbol, 0x10019e6 ] }; - key { [ 0x10017b7, 0x10017b8, 0x10017a6, 0x10019e7 ] }; - key { [ 0x10017c4, 0x10017c5, 0x10017b1, 0x10019e8 ] }; - key { [ 0x1001795, 0x1001797, 0x10017b0, 0x10019e9 ] }; - key { [ 0x10017c0, 0x10017bf, 0x10017a9, 0x10019ea ] }; - key { [ 0x10017aa, 0x10017a7, 0x10017b3, 0x10019eb ] }; - -// keys: asdfghjkl;' - key { [ 0x10017b6, 0x10017ff, voidsymbol, 0x10019ec ] }; - key { [ 0x100179f, 0x10017c3, voidsymbol, 0x10019ed ] }; - key { [ 0x100178a, 0x100178c, voidsymbol, 0x10019ee ] }; - key { [ 0x1001790, 0x1001792, voidsymbol, 0x10019ef ] }; - key { [ 0x1001784, 0x10017a2, voidsymbol, 0x10019f0 ] }; - key { [ 0x10017a0, 0x10017c7, voidsymbol, 0x10019f1 ] }; - key { [ 0x10017d2, 0x1001789, voidsymbol, 0x10019f2 ] }; - key { [ 0x1001780, 0x1001782, 0x100179d, 0x10019f3 ] }; - key { [ 0x100179b, 0x10017a1, voidsymbol, 0x10019f4 ] }; - key { [ 0x10017be, 0x10017fe, 0x10017d6, 0x10019f5 ] }; - key { [ 0x10017cb, 0x10017c9, 0x10017c8, 0x10019f6 ] }; - -// keys: zxcvbnm,./ - key { [ 0x100178b, 0x100178d, voidsymbol, 0x10019f7 ] }; - key { [ 0x1001781, 0x1001783, voidsymbol, 0x10019f8 ] }; - key { [ 0x1001785, 0x1001787, voidsymbol, 0x10019f9 ] }; - key { [ 0x100179c, 0x10017fd, voidsymbol, 0x10019fa ] }; - key { [ 0x1001794, 0x1001796, 0x100179e, 0x10019fb ] }; - key { [ 0x1001793, 0x100178e, voidsymbol, 0x10019fc ] }; - key { [ 0x1001798, 0x10017c6, voidsymbol, 0x10019fd ] }; - key { [ 0x10017fc, 0x10017fb, comma, 0x10019fe ] }; - key { [ 0x10017d4, 0x10017d5, period, 0x10019ff ] }; - key { [ 0x10017ca, question, slash, voidsymbol ] }; - - key { [ 0x100200b, space, 0x10000a0, voidsymbol ] }; - key { [ 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 { [ 0x10017be, 0x10017c8, 0x10017d6, 0x10019f5 ] }; - key { [ 0x10017e1, 0x100200c, exclam, 0x10017f1 ] }; - key { [ 0x10017e3, 0x10017d1, quotedbl, 0x10017f3 ] }; - key { [ 0x10017e5, EuroSign, percent, 0x10017f5 ] }; - key { [ 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 { [ guillemotleft, guillemotright, 0x100200d, voidsymbol ] }; + key { [ 0x10017e1, exclam, 0x100200c, 0x10017f1 ] }; + key { [ 0x10017e2, 0x10017d7, at, 0x10017f2 ] }; + key { [ 0x10017e3, quotedbl, 0x10017d1, 0x10017f3 ] }; + key { [ 0x10017e4, 0x10017db, dollar, 0x10017f4 ] }; + key { [ 0x10017e5, percent, EuroSign, 0x10017f5 ] }; + key { [ 0x10017e6, 0x10017cd, 0x10017d9, 0x10017f6 ] }; + key { [ 0x10017e7, 0x10017d0, 0x10017da, 0x10017f7 ] }; + key { [ 0x10017e8, 0x10017cf, asterisk, 0x10017f8 ] }; + key { [ 0x10017e9, parenleft, braceleft, 0x10017f9 ] }; + key { [ 0x10017e0, parenright, braceright, 0x10017f0 ] }; + key { [ 0x10017a5, 0x10017cc, x, voidsymbol ] }; + key { [ 0x10017b2, equal, 0x10017ce, voidsymbol ] }; + key { [ 0x10017ae, 0x10017ad, backslash, voidsymbol ] }; + +// keys: qwertyuiop[] + key { [ 0x1001786, 0x1001788, 0x10017dc, 0x10019e0 ] }; + key { [ 0x10017b9, 0x10017ba, 0x10017dd, 0x10019e1 ] }; + key { [ 0x10017c1, 0x10017c2, 0x10017af, 0x10019e2 ] }; + key { [ 0x100179a, 0x10017ac, 0x10017ab, 0x10019e3 ] }; + key { [ 0x100178f, 0x1001791, 0x10017a8, 0x10019e4 ] }; + key { [ 0x1001799, 0x10017bd, voidsymbol, 0x10019e5 ] }; + key { [ 0x10017bb, 0x10017bc, voidsymbol, 0x10019e6 ] }; + key { [ 0x10017b7, 0x10017b8, 0x10017a6, 0x10019e7 ] }; + key { [ 0x10017c4, 0x10017c5, 0x10017b1, 0x10019e8 ] }; + key { [ 0x1001795, 0x1001797, 0x10017b0, 0x10019e9 ] }; + key { [ 0x10017c0, 0x10017bf, 0x10017a9, 0x10019ea ] }; + key { [ 0x10017aa, 0x10017a7, 0x10017b3, 0x10019eb ] }; + +// keys: asdfghjkl;' + key { [ 0x10017b6, 0x10017ff, voidsymbol, 0x10019ec ] }; + key { [ 0x100179f, 0x10017c3, voidsymbol, 0x10019ed ] }; + key { [ 0x100178a, 0x100178c, voidsymbol, 0x10019ee ] }; + key { [ 0x1001790, 0x1001792, voidsymbol, 0x10019ef ] }; + key { [ 0x1001784, 0x10017a2, voidsymbol, 0x10019f0 ] }; + key { [ 0x10017a0, 0x10017c7, voidsymbol, 0x10019f1 ] }; + key { [ 0x10017d2, 0x1001789, voidsymbol, 0x10019f2 ] }; + key { [ 0x1001780, 0x1001782, 0x100179d, 0x10019f3 ] }; + key { [ 0x100179b, 0x10017a1, voidsymbol, 0x10019f4 ] }; + key { [ 0x10017be, 0x10017fe, 0x10017d6, 0x10019f5 ] }; + key { [ 0x10017cb, 0x10017c9, 0x10017c8, 0x10019f6 ] }; + +// keys: zxcvbnm,./ + key { [ 0x100178b, 0x100178d, voidsymbol, 0x10019f7 ] }; + key { [ 0x1001781, 0x1001783, voidsymbol, 0x10019f8 ] }; + key { [ 0x1001785, 0x1001787, voidsymbol, 0x10019f9 ] }; + key { [ 0x100179c, 0x10017fd, voidsymbol, 0x10019fa ] }; + key { [ 0x1001794, 0x1001796, 0x100179e, 0x10019fb ] }; + key { [ 0x1001793, 0x100178e, voidsymbol, 0x10019fc ] }; + key { [ 0x1001798, 0x10017c6, voidsymbol, 0x10019fd ] }; + key { [ 0x10017fc, 0x10017fb, comma, 0x10019fe ] }; + key { [ 0x10017d4, 0x10017d5, period, 0x10019ff ] }; + key { [ 0x10017ca, question, slash, voidsymbol ] }; + + key { [ 0x100200b, space, 0x10000a0, voidsymbol ] }; + key { [ 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 { [ 0x10017be, 0x10017c8, 0x10017d6, 0x10019f5 ] }; + key { [ 0x10017e1, 0x100200c, exclam, 0x10017f1 ] }; + key { [ 0x10017e3, 0x10017d1, quotedbl, 0x10017f3 ] }; + key { [ 0x10017e5, EuroSign, percent, 0x10017f5 ] }; + key { [ 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 { [ Hangul ] }; - key { [ Hangul_Hanja ] }; -}; - -partial hidden function_keys -xkb_symbols "koreankeys_raltctl" { - key { [ Hangul ] }; - key { [ 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 { [ Hangul ] }; + key { [ Hangul_Hanja ] }; +}; + +partial hidden function_keys +xkb_symbols "koreankeys_raltctl" { + key { [ Hangul ] }; + key { [ 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 -// - -// TODO: -// 1. AltGr with TLDE and LSGT. -// 2. Dead key for ruskaz and kazrus. -// 3. Ctrl + . -// 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 { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] }; - key { [ doublelowquotemark, exclam ] }; - key { [ comma, semicolon ] }; - key { [ period, colon ] }; - key { [ backslash, slash ] }; - key { [ numerosign, question ] }; - key { [ less, greater, bar, brokenbar ] }; - -key.type[group1] = "ALPHABETIC"; - - key { [ Cyrillic_schwa, Cyrillic_SCHWA ] }; - key { [ Ukrainian_i, Ukrainian_I ] }; - key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; - key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; - key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; - key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] }; - key { [ Cyrillic_ka_descender, Cyrillic_KA_descender ] }; - key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; - key { [ Cyrillic_shha, Cyrillic_SHHA ] }; - - key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; - key { [ Cyrillic_tse, Cyrillic_TSE ] }; - key { [ Cyrillic_u, Cyrillic_U ] }; - key { [ Cyrillic_ka, Cyrillic_KA ] }; - key { [ Cyrillic_ie, Cyrillic_IE ] }; - key { [ Cyrillic_en, Cyrillic_EN ] }; - key { [ Cyrillic_ghe, Cyrillic_GHE ] }; - key { [ Cyrillic_sha, Cyrillic_SHA ] }; - key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; - key { [ Cyrillic_ze, Cyrillic_ZE ] }; - key { [ Cyrillic_ha, Cyrillic_HA ] }; - key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; - key { [ Cyrillic_ef, Cyrillic_EF ] }; - key { [ Cyrillic_yeru, Cyrillic_YERU ] }; - key { [ Cyrillic_ve, Cyrillic_VE ] }; - key { [ Cyrillic_a, Cyrillic_A ] }; - key { [ Cyrillic_pe, Cyrillic_PE ] }; - key { [ Cyrillic_er, Cyrillic_ER ] }; - key { [ Cyrillic_o, Cyrillic_O ] }; - key { [ Cyrillic_el, Cyrillic_EL ] }; - key { [ Cyrillic_de, Cyrillic_DE ] }; - key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; - key { [ Cyrillic_e, Cyrillic_E ] }; - key { [ Cyrillic_ya, Cyrillic_YA ] }; - key { [ Cyrillic_che, Cyrillic_CHE ] }; - key { [ Cyrillic_es, Cyrillic_ES ] }; - key { [ Cyrillic_em, Cyrillic_EM ] }; - key { [ Cyrillic_te, Cyrillic_TE ] }; - key { [ Cyrillic_i, Cyrillic_I ] }; - key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; - key { [ Cyrillic_be, Cyrillic_BE ] }; - key { [ 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 { [ 1, exclam ] }; - key { [ 2, quotedbl, at ] }; - key { [ 3, numerosign, numbersign ] }; - key { [ 4, semicolon, dollar ] }; - key { [ 5, percent ] }; - key { [ 6, colon, asciicircum ] }; - key { [ 7, question, ampersand ] }; - key { [ 8, asterisk ] }; - key { [ 9, parenleft ] }; - key { [ 0, parenright ] }; - key { [ minus, underscore ] }; - key { [ equal, plus ] }; - key { [ backslash, slash, bar ] }; - key { [ period, comma, slash, question ] }; - key { [ less, greater, bar, brokenbar ] }; - -key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; - - key { [ Cyrillic_io, Cyrillic_IO ] }; - key { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] }; - key { [ Cyrillic_tse, Cyrillic_TSE ] }; - key { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] }; - key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; - key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; - key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_en_descender, Cyrillic_EN_descender ] }; - key { [ Cyrillic_ghe, Cyrillic_GHE, Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; - key { [ Cyrillic_sha, Cyrillic_SHA ] }; - key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; - key { [ Cyrillic_ze, Cyrillic_ZE ] }; - key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; - key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; - key { [ Cyrillic_ef, Cyrillic_EF ] }; - key { [ Cyrillic_yeru, Cyrillic_YERU ] }; - key { [ Cyrillic_ve, Cyrillic_VE ] }; - key { [ Cyrillic_a, Cyrillic_A, Cyrillic_schwa, Cyrillic_SCHWA ] }; - key { [ Cyrillic_pe, Cyrillic_PE ] }; - key { [ Cyrillic_er, Cyrillic_ER ] }; - key { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] }; - key { [ Cyrillic_el, Cyrillic_EL ] }; - key { [ Cyrillic_de, Cyrillic_DE ] }; - key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; - key { [ Cyrillic_e, Cyrillic_E ] }; - key { [ Cyrillic_ya, Cyrillic_YA ] }; - key { [ Cyrillic_che, Cyrillic_CHE ] }; - key { [ Cyrillic_es, Cyrillic_ES ] }; - key { [ Cyrillic_em, Cyrillic_EM ] }; - key { [ Cyrillic_te, Cyrillic_TE ] }; - key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; - key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; - key { [ Cyrillic_be, Cyrillic_BE ] }; - key { [ Cyrillic_yu, Cyrillic_YU ] }; -}; - -// Kikkarin KZ2 -partial alphanumeric_keys -xkb_symbols "kazrus" { - - name[Group1] = "Kazakhstan - Kazakh with Russian"; - -key.type[group1] = "FOUR_LEVEL"; - - key { [ 1, exclam ] }; - key { [ 2, quotedbl, at ] }; - key { [ 3, numerosign, numbersign ] }; - key { [ 4, semicolon, dollar ] }; - key { [ 5, percent ] }; - key { [ 6, colon, asciicircum ] }; - key { [ 7, question, ampersand ] }; - key { [ 8, asterisk ] }; - key { [ 9, parenleft ] }; - key { [ 0, parenright ] }; - key { [ minus, underscore ] }; - key { [ equal, plus ] }; - key { [ backslash, slash, bar ] }; - key { [ period, comma, slash, question ] }; - key { [ less, greater, bar, brokenbar ] }; - -key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; - - key { [ Cyrillic_io, Cyrillic_IO ] }; - key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; - key { [ Cyrillic_en_descender, Cyrillic_EN_descender, Cyrillic_tse, Cyrillic_TSE ] }; - key { [ Cyrillic_u, Cyrillic_U ] }; - key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; - key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; - key { [ Cyrillic_en, Cyrillic_EN ] }; - key { [ Cyrillic_ghe, Cyrillic_GHE ] }; - key { [ Cyrillic_sha, Cyrillic_SHA ] }; - key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, Cyrillic_shcha, Cyrillic_SHCHA ] }; - key { [ Cyrillic_ze, Cyrillic_ZE ] }; - key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; - key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; - key { [ Cyrillic_o_bar, Cyrillic_O_bar, Cyrillic_ef, Cyrillic_EF ] }; - key { [ Cyrillic_yeru, Cyrillic_YERU ] }; - key { [ Cyrillic_ka_descender, Cyrillic_KA_descender, Cyrillic_ve, Cyrillic_VE ] }; - key { [ Cyrillic_a, Cyrillic_A ] }; - key { [ Cyrillic_pe, Cyrillic_PE ] }; - key { [ Cyrillic_er, Cyrillic_ER ] }; - key { [ Cyrillic_o, Cyrillic_O ] }; - key { [ Cyrillic_el, Cyrillic_EL ] }; - key { [ Cyrillic_de, Cyrillic_DE ] }; - key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; - key { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_e, Cyrillic_E ] }; - key { [ Cyrillic_ya, Cyrillic_YA ] }; - key { [ Ukrainian_i, Ukrainian_I, Cyrillic_che, Cyrillic_CHE ] }; - key { [ Cyrillic_es, Cyrillic_ES ] }; - key { [ Cyrillic_em, Cyrillic_EM ] }; - key { [ Cyrillic_te, Cyrillic_TE ] }; - key { [ Cyrillic_i, Cyrillic_I ] }; - key { [ Cyrillic_u_straight, Cyrillic_U_straight, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; - key { [ Cyrillic_be, Cyrillic_BE ] }; - key { [ Cyrillic_yu, Cyrillic_YU ] }; -}; - -partial alphanumeric_keys -xkb_symbols "olpc" { - -// Contact: Walter Bender - -// 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 { [ parenleft, parenright ] }; - key { [ Cyrillic_io, Cyrillic_IO ] }; - - include "group(olpc)" -}; +// Based on http://www.sci.kz/~sairan/keyboard/kzkbd.html +// Baurzhan Ismagulov +// + +// TODO: +// 1. AltGr with TLDE and LSGT. +// 2. Dead key for ruskaz and kazrus. +// 3. Ctrl + . +// 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 { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] }; + key { [ doublelowquotemark, exclam ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ backslash, slash ] }; + key { [ numerosign, question ] }; + key { [ less, greater, bar, brokenbar ] }; + +key.type[group1] = "ALPHABETIC"; + + key { [ Cyrillic_schwa, Cyrillic_SCHWA ] }; + key { [ Ukrainian_i, Ukrainian_I ] }; + key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; + key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; + key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; + key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] }; + key { [ Cyrillic_ka_descender, Cyrillic_KA_descender ] }; + key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; + key { [ Cyrillic_shha, Cyrillic_SHHA ] }; + + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ 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 { [ 1, exclam ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numerosign, numbersign ] }; + key { [ 4, semicolon, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, colon, asciicircum ] }; + key { [ 7, question, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ backslash, slash, bar ] }; + key { [ period, comma, slash, question ] }; + key { [ less, greater, bar, brokenbar ] }; + +key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; + + key { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] }; + key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; + key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_en_descender, Cyrillic_EN_descender ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_a, Cyrillic_A, Cyrillic_schwa, Cyrillic_SCHWA ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; +}; + +// Kikkarin KZ2 +partial alphanumeric_keys +xkb_symbols "kazrus" { + + name[Group1] = "Kazakh (with Russian)"; + +key.type[group1] = "FOUR_LEVEL"; + + key { [ 1, exclam ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, numerosign, numbersign ] }; + key { [ 4, semicolon, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, colon, asciicircum ] }; + key { [ 7, question, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ backslash, slash, bar ] }; + key { [ period, comma, slash, question ] }; + key { [ less, greater, bar, brokenbar ] }; + +key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; + + key { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_en_descender, Cyrillic_EN_descender, Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; + key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; + key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_o_bar, Cyrillic_O_bar, Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ka_descender, Cyrillic_KA_descender, Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Ukrainian_i, Ukrainian_I, Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_u_straight, Cyrillic_U_straight, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + +// Contact: Walter Bender + +// 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 { [ parenleft, parenright ] }; + key { [ 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 - -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 { [ 0x100200D ]}; - key { [ 0x1000ea2, 0x1000ed1 ]}; - key { [ 0x1000ea2, 0x1000ed1 ]}; - key { [ 0x1000e9f, 0x1000ed2 ]}; - key { [ 0x1000ec2, 0x1000ed3 ]}; - key { [ 0x1000e96, 0x1000ed4 ]}; - key { [ 0x1000eb8, 0x1000ecc ]}; - key { [ 0x1000eb9, 0x1000ebc ]}; - key { [ 0x1000e84, 0x1000ed5 ]}; - key { [ 0x1000e95, 0x1000ed6 ]}; - key { [ 0x1000e88, 0x1000ed7 ]}; - key { [ 0x1000e82, 0x1000ed8 ]}; - key { [ 0x1000e8a, 0x1000ed9 ]}; - key { [ 0x1000ecd ]}; - - key { [ 0x1000ebb ]}; - key { [ 0x1000ec4, 0x1000ed0 ]}; - key { [ 0x1000eb3 ]}; - key { [ 0x1000e9e, underscore ]}; - key { [ 0x1000eb0, plus ]}; - key { [ 0x1000eb4 ]}; - key { [ 0x1000eb5 ]}; - key { [ 0x1000ea3, 0x1000eae ]}; - key { [ 0x1000e99 ]}; - key { [ 0x1000e8d, 0x1000ebd ]}; - key { [ 0x1000e9a, minus ]}; - key { [ 0x1000ea5, braceright ]}; - key { [ 0x1000edc, 0x1000edd ]}; - - key { [ 0x1000eb1 ]}; - key { [ 0x1000eab, semicolon ]}; - key { [ 0x1000e81, period ]}; - key { [ 0x1000e94, comma ]}; - key { [ 0x1000ec0, colon ]}; - key { [ 0x1000ec9, 0x1000eca ]}; - key { [ 0x1000ec8, 0x1000ecb ]}; - key { [ 0x1000eb2, exclam ]}; - key { [ 0x1000eaa, question ]}; - key { [ 0x1000ea7, percent ]}; - key { [ 0x1000e87, equal ]}; - - key { [ 0x1000e9c, 0x10020ad ]}; - key { [ 0x1000e9b, parenleft ]}; - key { [ 0x1000ec1, 0x1000eaf ]}; - key { [ 0x1000ead ]}; - key { [ 0x1000eb6 ]}; - key { [ 0x1000eb7 ]}; - key { [ 0x1000e97, 0x1000ec6 ]}; - key { [ 0x1000ea1, quoteleft ]}; - key { [ 0x1000ec3, dollar ]}; - key { [ 0x1000e9d, parenright ]}; - -override key { - type[Group1]="PC_ALT_LEVEL2", - [ Shift_L, ISO_First_Group ] - }; -override key { - 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 { [ quotedbl, apostrophe ]}; - key { [ 0x1000ea2, 1, 0x1000ed1 ]}; - key { [ 0x1000e9f, 2, 0x1000ed2 ]}; - key { [ 0x1000ec2, 3, 0x1000ed3 ]}; - key { [ 0x1000e96, 4, 0x1000ed4 ]}; - key { [ 0x1000eb8, 0x1000ecc, 0x1000ed5 ]}; - key { [ 0x1000eb9, 0x1000ebc, 0x1000ed6 ]}; - key { [ 0x1000e84, 5, 0x1000ed7 ]}; - key { [ 0x1000e95, 6, 0x1000ed8 ]}; - key { [ 0x1000e88, 7, 0x1000ed9 ]}; - key { [ 0x1000e82, 8, 0x1000ed0 ]}; - key { [ 0x1000e8a, 9 ]}; - key { [ 0x1000ecd ]}; - - key { [ 0x1000ebb ]}; - key { [ 0x1000ec4, 0 ]}; - key { [ 0x1000eb3, asterisk ]}; - key { [ 0x1000e9e, underscore ]}; - key { [ 0x1000eb0, plus ]}; - key { [ 0x1000eb4 ]}; - key { [ 0x1000eb5 ]}; - key { [ 0x1000eae, 0x1000ea3 ]}; - key { [ 0x1000e99, 0x1000edc ]}; - key { [ 0x1000e8d, 0x1000ebd ]}; - key { [ 0x1000e9a, minus ]}; - key { [ 0x1000ea5 ]}; - key { [ slash, backslash ]}; - - key { [ 0x1000eb1 ]}; - key { [ 0x1000eab, semicolon ]}; - key { [ 0x1000e81, period ]}; - key { [ 0x1000e94, comma ]}; - key { [ 0x1000ec0, colon ]}; - key { [ 0x1000ec9, 0x1000eca ]}; - key { [ 0x1000ec8, 0x1000ecb ]}; - key { [ 0x1000eb2, exclam ]}; - key { [ 0x1000eaa, question ]}; - key { [ 0x1000ea7, percent ]}; - key { [ 0x1000e87, equal ]}; - - key { [ 0x1000e9c, 0x10020ad ]}; - key { [ 0x1000e9b, parenleft ]}; - key { [ 0x1000ec1, 0x1000eaf ]}; - key { [ 0x1000ead, x ]}; - key { [ 0x1000eb6 ]}; - key { [ 0x1000eb7 ]}; - key { [ 0x1000e97, 0x1000ec6 ]}; - key { [ 0x1000ea1, 0x1000edd ]}; - key { [ 0x1000ec3, dollar ]}; - key { [ 0x1000e9d, parenright ]}; - - key { [ space, nobreakspace, nobreakspace ]}; - - key { [ comma, period ]}; - - include "level3(ralt_switch)" - -}; +// Lao keymap, by Anousak Souphavanh + +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 { [ 0x100200D ]}; + key { [ 0x1000ea2, 0x1000ed1 ]}; + key { [ 0x1000ea2, 0x1000ed1 ]}; + key { [ 0x1000e9f, 0x1000ed2 ]}; + key { [ 0x1000ec2, 0x1000ed3 ]}; + key { [ 0x1000e96, 0x1000ed4 ]}; + key { [ 0x1000eb8, 0x1000ecc ]}; + key { [ 0x1000eb9, 0x1000ebc ]}; + key { [ 0x1000e84, 0x1000ed5 ]}; + key { [ 0x1000e95, 0x1000ed6 ]}; + key { [ 0x1000e88, 0x1000ed7 ]}; + key { [ 0x1000e82, 0x1000ed8 ]}; + key { [ 0x1000e8a, 0x1000ed9 ]}; + key { [ 0x1000ecd ]}; + + key { [ 0x1000ebb ]}; + key { [ 0x1000ec4, 0x1000ed0 ]}; + key { [ 0x1000eb3 ]}; + key { [ 0x1000e9e, underscore ]}; + key { [ 0x1000eb0, plus ]}; + key { [ 0x1000eb4 ]}; + key { [ 0x1000eb5 ]}; + key { [ 0x1000ea3, 0x1000eae ]}; + key { [ 0x1000e99 ]}; + key { [ 0x1000e8d, 0x1000ebd ]}; + key { [ 0x1000e9a, minus ]}; + key { [ 0x1000ea5, braceright ]}; + key { [ 0x1000edc, 0x1000edd ]}; + + key { [ 0x1000eb1 ]}; + key { [ 0x1000eab, semicolon ]}; + key { [ 0x1000e81, period ]}; + key { [ 0x1000e94, comma ]}; + key { [ 0x1000ec0, colon ]}; + key { [ 0x1000ec9, 0x1000eca ]}; + key { [ 0x1000ec8, 0x1000ecb ]}; + key { [ 0x1000eb2, exclam ]}; + key { [ 0x1000eaa, question ]}; + key { [ 0x1000ea7, percent ]}; + key { [ 0x1000e87, equal ]}; + + key { [ 0x1000e9c, 0x10020ad ]}; + key { [ 0x1000e9b, parenleft ]}; + key { [ 0x1000ec1, 0x1000eaf ]}; + key { [ 0x1000ead ]}; + key { [ 0x1000eb6 ]}; + key { [ 0x1000eb7 ]}; + key { [ 0x1000e97, 0x1000ec6 ]}; + key { [ 0x1000ea1, quoteleft ]}; + key { [ 0x1000ec3, dollar ]}; + key { [ 0x1000e9d, parenright ]}; + +override key { + type[Group1]="PC_ALT_LEVEL2", + [ Shift_L, ISO_First_Group ] + }; +override key { + 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 { [ quotedbl, apostrophe ]}; + key { [ 0x1000ea2, 1, 0x1000ed1 ]}; + key { [ 0x1000e9f, 2, 0x1000ed2 ]}; + key { [ 0x1000ec2, 3, 0x1000ed3 ]}; + key { [ 0x1000e96, 4, 0x1000ed4 ]}; + key { [ 0x1000eb8, 0x1000ecc, 0x1000ed5 ]}; + key { [ 0x1000eb9, 0x1000ebc, 0x1000ed6 ]}; + key { [ 0x1000e84, 5, 0x1000ed7 ]}; + key { [ 0x1000e95, 6, 0x1000ed8 ]}; + key { [ 0x1000e88, 7, 0x1000ed9 ]}; + key { [ 0x1000e82, 8, 0x1000ed0 ]}; + key { [ 0x1000e8a, 9 ]}; + key { [ 0x1000ecd ]}; + + key { [ 0x1000ebb ]}; + key { [ 0x1000ec4, 0 ]}; + key { [ 0x1000eb3, asterisk ]}; + key { [ 0x1000e9e, underscore ]}; + key { [ 0x1000eb0, plus ]}; + key { [ 0x1000eb4 ]}; + key { [ 0x1000eb5 ]}; + key { [ 0x1000eae, 0x1000ea3 ]}; + key { [ 0x1000e99, 0x1000edc ]}; + key { [ 0x1000e8d, 0x1000ebd ]}; + key { [ 0x1000e9a, minus ]}; + key { [ 0x1000ea5 ]}; + key { [ slash, backslash ]}; + + key { [ 0x1000eb1 ]}; + key { [ 0x1000eab, semicolon ]}; + key { [ 0x1000e81, period ]}; + key { [ 0x1000e94, comma ]}; + key { [ 0x1000ec0, colon ]}; + key { [ 0x1000ec9, 0x1000eca ]}; + key { [ 0x1000ec8, 0x1000ecb ]}; + key { [ 0x1000eb2, exclam ]}; + key { [ 0x1000eaa, question ]}; + key { [ 0x1000ea7, percent ]}; + key { [ 0x1000e87, equal ]}; + + key { [ 0x1000e9c, 0x10020ad ]}; + key { [ 0x1000e9b, parenleft ]}; + key { [ 0x1000ec1, 0x1000eaf ]}; + key { [ 0x1000ead, x ]}; + key { [ 0x1000eb6 ]}; + key { [ 0x1000eb7 ]}; + key { [ 0x1000e97, 0x1000ec6 ]}; + key { [ 0x1000ea1, 0x1000edd ]}; + key { [ 0x1000ec3, dollar ]}; + key { [ 0x1000e9d, parenright ]}; + + key { [ space, nobreakspace, nobreakspace ]}; + + key { [ 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 { [ 1, exclam, bar, exclamdown ] }; - key { [ 3, numbersign, periodcentered, sterling ] }; - key { [ 4, dollar, asciitilde, dollar ] }; - key { [ 6, ampersand, notsign, fiveeighths ] }; - key { [apostrophe, question, backslash, questiondown ] }; - key { [questiondown, exclamdown, dead_cedilla, dead_ogonek] }; - - key { [dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ] }; - key { [ plus, asterisk, asciitilde, dead_macron ] }; - - key { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] }; - key { [ braceleft, bracketleft, dead_circumflex, braceleft] }; - key { [ bar, degree, notsign, notsign ] }; - - key { [braceright, bracketright, dead_grave, braceright ] }; - - include "level3(ralt_switch)" -}; - -partial alphanumeric_keys -xkb_symbols "Sundeadkeys" { - include "latam(basic)" - - key { [dead_acute, dead_diaeresis, braceleft, braceleft ] }; - key { [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 { [questiondown, exclamdown, cedilla, ogonek ] }; - key { [ grave, asciicircum, bracketleft, degree ] }; - key { [ plus, asterisk, bracketright, macron ] }; - key { [ ntilde, Ntilde, asciitilde, doubleacute ] }; - key { [ acute, diaeresis, braceleft, braceleft ] }; - key { [ ccedilla, Ccedilla, braceright, breve ] }; - key { [ minus, underscore, dead_belowdot, abovedot ] }; -}; - -partial alphanumeric_keys -xkb_symbols "deadtilde" { - - include "latam(basic)" - - name[Group1]="Latin American - Include dead tilde"; - - key { [ 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 { [ 1, exclam, bar, exclamdown ] }; + key { [ 3, numbersign, periodcentered, sterling ] }; + key { [ 4, dollar, asciitilde, dollar ] }; + key { [ 6, ampersand, notsign, fiveeighths ] }; + key { [apostrophe, question, backslash, questiondown ] }; + key { [questiondown, exclamdown, dead_cedilla, dead_ogonek] }; + + key { [dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ] }; + key { [ plus, asterisk, asciitilde, dead_macron ] }; + + key { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] }; + key { [ braceleft, bracketleft, dead_circumflex, braceleft] }; + key { [ bar, degree, notsign, notsign ] }; + + key { [braceright, bracketright, dead_grave, braceright ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + include "latam(basic)" + + key { [dead_acute, dead_diaeresis, braceleft, braceleft ] }; + key { [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 { [questiondown, exclamdown, cedilla, ogonek ] }; + key { [ grave, asciicircum, bracketleft, degree ] }; + key { [ plus, asterisk, bracketright, macron ] }; + key { [ ntilde, Ntilde, asciitilde, doubleacute ] }; + key { [ acute, diaeresis, braceleft, braceleft ] }; + key { [ ccedilla, Ccedilla, braceright, breve ] }; + key { [ minus, underscore, dead_belowdot, abovedot ] }; +}; + +partial alphanumeric_keys +xkb_symbols "deadtilde" { + + include "latam(basic)" + + name[Group1]="Spanish (Latin American, include dead tilde)"; + + key { [ 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 {[ grave, asciitilde, acute ]}; key {[ 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 {[ grave, asciitilde, acute ]}; key {[ 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 {[ grave, asciitilde, acute ]}; key {[ 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 {[ grave, asciitilde, acute ]}; key {[ 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 {[ grave, asciitilde, acute ]}; key {[ 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 {[ grave, asciitilde, acute ]}; key {[ slash, quotedbl, bar ]}; @@ -300,7 +300,7 @@ xkb_symbols "dvorak" { include "us(dvorak)" - name[Group1]="Lithuania - Dvorak"; + name[Group1]="Lithuanian (Dvorak)"; key { [ aogonek, Aogonek, 1, exclam ] }; key { [ 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 , 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 {[grave, asciitilde, acute, asciitilde]}; - key {[1, exclam, onesuperior, exclamdown]}; - key {[2, at, twosuperior, oneeighth]}; - key {[3, numbersign, threesuperior, sterling]}; - key {[4, dollar, EuroSign, cent]}; - key {[5, percent, onehalf, threeeighths]}; - key {[6, asciicircum, threequarters, fiveeighths]}; - key {[7, ampersand, braceleft, seveneighths]}; - key {[8, asterisk, bracketleft, trademark]}; - key {[9, parenleft, bracketright, plusminus]}; - key {[0, parenright, braceright, degree]}; - key {[minus, underscore, backslash, questiondown]}; - key {[equal, plus, endash, emdash]}; - - key {[q, Q, q, Q]}; - key {[w, W, w, W]}; - key {[e, E, emacron, Emacron]}; - key {[r, R, rcedilla, Rcedilla]}; - key {[t, T, t, T]}; - key {[y, Y, y, Y]}; - key {[u, U, umacron, Umacron]}; - key {[i, I, imacron, Imacron]}; - key {[o, O, omacron, Omacron]}; - key {[p, P, p, P]}; - key {[bracketleft, braceleft, guillemotleft, leftdoublequotemark]}; - key {[bracketright, braceright, guillemotright, rightdoublequotemark]}; - - key {[a, A, amacron, Amacron]}; - key {[s, S, scaron, Scaron]}; - key {[d, D, d, D]}; - key {[f, F, f, F]}; - key {[g, G, gcedilla, Gcedilla]}; - key {[h, H, h, H]}; - key {[j, J, j, J]}; - key {[k, K, kcedilla, Kcedilla]}; - key {[l, L, lcedilla, Lcedilla]}; - key {[semicolon, colon, semicolon, colon]}; - key {[apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark]}; - - key {[z, Z, zcaron, Zcaron]}; - key {[x, X, x, X]}; - key {[c, C, ccaron, Ccaron]}; - key {[v, V, v, V]}; - key {[b, B, b, B]}; - key {[n, N, ncedilla, Ncedilla]}; - key {[m, M, m, M]}; - key {[comma, less, horizconnector, multiply]}; - key {[period, greater, periodcentered, division]}; - key {[slash, question, slash, abovedot]}; - key {[backslash, bar, grave, breve]}; - - key {[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 {[ISO_Level3_Latch, quotedbl, apostrophe, quotedbl]}; - key {[space, space, apostrophe]}; - modifier_map Mod5 { }; - -}; - -partial alphanumeric_keys modifier_keys -xkb_symbols "tilde" { - - include "lv(basic)" - - name[Group1]= "Latvia - Tilde (~) variant"; - - key {[ISO_Level3_Latch, asciitilde, grave, acute]}; - key {[space, space, asciitilde]}; - modifier_map Mod5 { }; - -}; - -partial alphanumeric_keys modifier_keys -xkb_symbols "fkey" { - - include "lv(basic)" - - name[Group1]= "Latvia - F-letter (F) variant"; - - key {[ISO_Level3_Latch, ISO_Level3_Latch, f, F]}; - key {[space, space, f, F]}; - modifier_map Mod5 { }; - -}; +// Latvian keymap version 1.1 +// Copyright (C) Dmitry Golubev , 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 , 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 {[ grave, asciitilde, acute, asciitilde ]}; + key {[ 1, exclam, onesuperior, exclamdown ]}; + key {[ 2, at, twosuperior, oneeighth ]}; + key {[ 3, numbersign, threesuperior, sterling ]}; + key {[ 4, dollar, EuroSign, cent ]}; + key {[ 5, percent, onehalf, threeeighths ]}; + key {[ 6, asciicircum, threequarters, fiveeighths ]}; + key {[ 7, ampersand, braceleft, seveneighths ]}; + key {[ 8, asterisk, bracketleft, trademark ]}; + key {[ 9, parenleft, bracketright, plusminus ]}; + key {[ 0, parenright, braceright, degree ]}; + key {[ minus, underscore, backslash, questiondown ]}; + key {[ equal, plus, endash, emdash ]}; + + key {[ q, Q, q, Q ]}; + key {[ w, W, w, W ]}; + key {[ e, E, emacron, Emacron ]}; + key {[ r, R, rcedilla, Rcedilla ]}; + key {[ t, T, t, T ]}; + key {[ y, Y, y, Y ]}; + key {[ u, U, umacron, Umacron ]}; + key {[ i, I, imacron, Imacron ]}; + key {[ o, O, omacron, Omacron ]}; + key {[ p, P, p, P ]}; + key {[ bracketleft, braceleft, guillemotleft, leftdoublequotemark ]}; + key {[ bracketright, braceright, guillemotright, rightdoublequotemark ]}; + + key {[ a, A, amacron, Amacron ]}; + key {[ s, S, scaron, Scaron ]}; + key {[ d, D, d, D ]}; + key {[ f, F, f, F ]}; + key {[ g, G, gcedilla, Gcedilla ]}; + key {[ h, H, h, H ]}; + key {[ j, J, j, J ]}; + key {[ k, K, kcedilla, Kcedilla ]}; + key {[ l, L, lcedilla, Lcedilla ]}; + key {[ semicolon, colon, semicolon, colon ]}; + key {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]}; + + key {[ z, Z, zcaron, Zcaron ]}; + key {[ x, X, x, X ]}; + key {[ c, C, ccaron, Ccaron ]}; + key {[ v, V, v, V ]}; + key {[ b, B, b, B ]}; + key {[ n, N, ncedilla, Ncedilla ]}; + key {[ m, M, m, M ]}; + key {[ comma, less, horizconnector, multiply ]}; + key {[ period, greater, periodcentered, division ]}; + key {[ slash, question, slash, abovedot ]}; + key {[ backslash, bar, grave, breve ]}; + + key {[ 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 {[ISO_Level3_Latch, quotedbl, apostrophe, quotedbl]}; + key {[space, space, apostrophe]}; + modifier_map Mod5 { }; + +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "tilde" { + + include "lv(basic)" + + name[Group1]= "Latvian (tilde variant)"; + + key {[ISO_Level3_Latch, asciitilde, grave, acute]}; + key {[space, space, asciitilde]}; + modifier_map Mod5 { }; + +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "fkey" { + + include "lv(basic)" + + name[Group1]= "Latvian (F variant)"; + + key {[ISO_Level3_Latch, ISO_Level3_Latch, f, F]}; + key {[space, space, f, F]}; + modifier_map Mod5 { }; + +}; + +//============================================================================ +// 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 {[ 2, Ccaron, at, twosuperior ]}; + key {[ 3, ccaron, numbersign, threesuperior ]}; + key {[ 4, Zcaron, dollar, EuroSign ]}; + key {[ 5, zcaron, percent, onehalf ]}; + + key {[ scaron, Scaron, q, Q ]}; + key {[ emacron, Emacron, w, W ]}; + key {[ e, E, e, E ]}; + + key {[ amacron, Amacron, y, Y ]}; + key {[ u, U, u, U ]}; + key {[ i, I, i, I ]}; + key {[ umacron, Umacron, bracketleft, braceleft ]}; + key {[ ncedilla, Ncedilla, bracketright, braceright ]}; + + key {[ a, A, a, A ]}; + key {[ s, S, s, S ]}; + key {[ g, G, g, G ]}; + + key {[ k, K, k, K ]}; + key {[ l, L, l, L ]}; + key {[ imacron, Imacron, semicolon, colon ]}; + + key {[ z, Z, z, Z ]}; + key {[ kcedilla, Kcedilla, x, X ]}; + key {[ c, C, c, C ]}; + + key {[ n, N, n, N ]}; + + key {[ comma, gcedilla, less, multiply ]}; + key {[ period, Gcedilla, greater, division ]}; + key {[ 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 {[ 2, at, gcedilla, Gcedilla ]}; + + key {[ minus, underscore, endash, emdash ]}; + key {[ f, F, equal, plus ]}; + + key {[ umacron, Umacron, q, Q ]}; + key {[ g, G, g, G ]}; + key {[ j, J, j, J ]}; + key {[ r, R, rcedilla, Rcedilla ]}; + key {[ m, M, m, M ]}; + key {[ v, V, w, W ]}; + key {[ n, N, y, Y ]}; + key {[ z, Z, z, Z ]}; + key {[ emacron, Emacron, emacron, Emacron ]}; + key {[ ccaron, Ccaron, ccaron, Ccaron ]}; + key {[ zcaron, Zcaron, bracketleft, braceleft ]}; + key {[ h, H, bracketright, braceright ]}; + + key {[ scaron, Scaron, scaron, Scaron ]}; + key {[ u, U, u, U ]}; + key {[ s, S, s, S ]}; + key {[ i, I, i, I ]}; + key {[ l, L, l, L ]}; + key {[ d, D, d, D ]}; + key {[ a, A, a, A ]}; + key {[ t, T, t, T ]}; + key {[ e, E, e, E ]}; + key {[ c, C, c, C ]}; + key {[ ISO_Level3_Latch, quotedbl, apostrophe, quotedbl ]}; + key {[ kcedilla, Kcedilla, slash, backslash ]}; + + key {[ gcedilla, Gcedilla, gcedilla, Gcedilla ]}; + key {[ ncedilla, Ncedilla, ncedilla, Ncedilla ]}; + key {[ b, B, x, X ]}; + key {[ imacron, Imacron, imacron, Imacron ]}; + key {[ k, K, k, K ]}; + key {[ p, P, p, P ]}; + key {[ o, O, omacron, Omacron ]}; + key {[ amacron, Amacron, amacron, Amacron ]}; + key {[ comma, semicolon, less, multiply ]}; + key {[ period, colon, greater, division ]}; + key {[ 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 {[ grave, asciitilde, acute, asciitilde ]}; + key {[ 1, exclam, onesuperior, exclamdown ]}; + key {[ 2, at, twosuperior, oneeighth ]}; + key {[ 3, numbersign, threesuperior, sterling ]}; + key {[ 4, dollar, EuroSign, cent ]}; + key {[ 5, percent, onehalf, threeeighths ]}; + key {[ 6, asciicircum, threequarters, fiveeighths ]}; + key {[ 7, ampersand, braceleft, seveneighths ]}; + key {[ 8, asterisk, bracketleft, trademark ]}; + key {[ 9, parenleft, bracketright, plusminus ]}; + key {[ 0, parenright, braceright, degree ]}; + key {[ minus, underscore, backslash, endash ]}; + key {[ equal, plus, bar, emdash ]}; + + key {[ emacron, Emacron, emacron, Emacron ]}; + key {[ o, O, omacron, Omacron ]}; + key {[ amacron, Amacron, amacron, Amacron ]}; + key {[ p, P, p, P ]}; + key {[ b, B, b, B ]}; + key {[ j, J, j, J ]}; + key {[ d, D, d, D ]}; + key {[ imacron, Imacron, imacron, Imacron ]}; + key {[ l, L, lcedilla, Lcedilla ]}; + key {[ g, G, gcedilla, Gcedilla ]}; + key {[ bracketleft, braceleft, guillemotleft, leftdoublequotemark ]}; + key {[ bracketright, braceright, guillemotright, rightdoublequotemark ]}; + + key {[ e, E, e, E ]}; + key {[ u, U, umacron, Umacron ]}; + key {[ a, A, a, A ]}; + key {[ n, N, ncedilla, Ncedilla ]}; + key {[ k, K, kcedilla, Kcedilla ]}; + key {[ ISO_Level3_Latch, quotedbl, apostrophe, quotedbl ]}; + key {[ s, S, scaron, Scaron ]}; + key {[ i, I, i, I ]}; + key {[ t, T, t, T ]}; + key {[ r, R, rcedilla, Rcedilla ]}; + key {[ m, M, m, M ]}; + key {[ slash, question, backslash, bar ]}; + + key {[ q, Q, q, Q ]}; + key {[ x, X, q, Q ]}; + key {[ z, Z, zcaron, Zcaron ]}; + key {[ c, C, ccaron, Ccaron ]}; + key {[ v, V, v, V ]}; + key {[ w, W, w, W ]}; + key {[ f, F, f, F ]}; + key {[ y, Y, y, Y ]}; + key {[ h, H, h, H ]}; + key {[ comma, semicolon, less, multiply ]}; + key {[ period, colon, greater, division ]}; + key {[ space, space, apostrophe ]}; + + modifier_map Mod5 { }; + + 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 {[ asciitilde, grave, acute, asciitilde ]}; + key {[ 1, exclam, onesuperior, exclamdown ]}; + key {[ 2, at, twosuperior, oneeighth ]}; + key {[ 3, numbersign, threesuperior, sterling ]}; + key {[ 4, dollar, EuroSign, cent ]}; + key {[ 5, percent, onehalf, threeeighths ]}; + key {[ 6, asciicircum, threequarters, fiveeighths ]}; + key {[ 7, ampersand, braceleft, seveneighths ]}; + key {[ 8, asterisk, bracketleft, trademark ]}; + key {[ 9, parenleft, bracketright, plusminus ]}; + key {[ 0, parenright, braceright, degree ]}; + key {[ bracketleft, braceleft, leftdoublequotemark, guillemotleft ]}; + key {[ bracketright, braceright, rightdoublequotemark, guillemotright ]}; + + key {[ apostrophe, quotedbl, leftdoublequotemark, doublelowquotemark ]}; + key {[ comma, less, guillemotleft, multiply ]}; + key {[ period, greater, guillemotright, division ]}; + key {[ p, P, p, P ]}; + key {[ y, Y, y, Y ]}; + key {[ f, F, f, F ]}; + key {[ g, G, gcedilla, Gcedilla ]}; + key {[ c, C, ccaron, Ccaron ]}; + key {[ r, R, rcedilla, Rcedilla ]}; + key {[ l, L, lcedilla, Lcedilla ]}; + key {[ slash, question, slash, abovedot ]}; + key {[ equal, plus, endash, emdash ]}; + + key {[ a, A, amacron, Amacron ]}; + key {[ o, O, omacron, Omacron ]}; + key {[ e, E, emacron, Emacron ]}; + key {[ u, U, umacron, Umacron ]}; + key {[ i, I, imacron, Imacron ]}; + key {[ d, D, d, D ]}; + key {[ h, H, h, H ]}; + key {[ t, T, t, T ]}; + key {[ n, N, ncedilla, Ncedilla ]}; + key {[ s, S, scaron, Scaron ]}; + key {[ minus, underscore, backslash, questiondown ]}; + + key {[ semicolon, colon, semicolon, colon ]}; + key {[ q, Q, q, Q ]}; + key {[ j, J, j, J ]}; + key {[ k, K, kcedilla, Kcedilla ]}; + key {[ x, X, x, X ]}; + key {[ b, B, b, B ]}; + key {[ m, M, m, M ]}; + key {[ w, W, w, W ]}; + key {[ v, V, v, V ]}; + key {[ z, Z, zcaron, Zcaron ]}; + + key {[ backslash, bar, grave, breve ]}; + + key {[ 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 {[ISO_Level3_Latch, ISO_Level3_Latch, y, Y]}; + key {[space, space, y, Y]}; + modifier_map Mod5 { }; + +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "minuskeydvorak" { + + include "lv(dvorak)" + + name[Group1]= "Latvian (US Dvorak, minus variant)"; + + key {[ISO_Level3_Latch, ISO_Level3_Latch, mimus, underscore]}; + key {[space, space, minus, underscore]}; + modifier_map Mod5 { }; + +}; + +//============================================================================ +// 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 {[ dollar, asciitilde, EuroSign, cent ]}; + key {[ ampersand, percent, acute, asciitilde ]}; + key {[ bracketleft, 7, onesuperior, twosuperior ]}; + key {[ braceleft, 5, guillemotleft, leftdoublequotemark ]}; + key {[ braceright, 3, guillemotright, rightdoublequotemark ]}; + key {[ parenleft, 1, onehalf, threeeighths ]}; + key {[ equal, 9, threequarters, fiveeighths ]}; + key {[ asterisk, 0, degree, copyright ]}; + key {[ parenright, 2, endash, emdash ]}; + key {[ plus, 4, plusminus, section ]}; + key {[ bracketright, 6, registered, trademark ]}; + key {[ exclam, 8, exclam, exclamdown ]}; + key {[ numbersign, grave, Greek_alpha, Greek_beta ]}; + + key {[ semicolon, colon, semicolon, colon ]}; + key {[ at, asciicircum, at, asciicircum ]}; + + key {[ 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 {[ISO_Level3_Latch, ISO_Level3_Latch, y, Y]}; + key {[space, space, y, Y]}; + modifier_map Mod5 { }; + +}; + +partial alphanumeric_keys modifier_keys +xkb_symbols "minuskeydvorakprogr" { + + include "lv(dvorakprogr)" + + name[Group1]= "Latvian (programmer US Dvorak, minus variant)"; + + key {[ISO_Level3_Latch, ISO_Level3_Latch, mimus, underscore]}; + key {[space, space, minus, underscore]}; + modifier_map Mod5 { }; + +}; + +//============================================================================ +// Colemak compatible Latvian layout +// http://colemak.com/ +// +partial alphanumeric_keys modifier_keys +xkb_symbols "colemak" { + + include "lv(basic)" + + name[Group1]= "Latvian (US Colemak)"; + + key {[ f, F, f, F ]}; + key {[ p, P, p, P ]}; + key {[ g, G, gcedilla, Gcedilla ]}; + key {[ j, J, j, J ]}; + key {[ l, L, lcedilla, Lcedilla ]}; + key {[ u, U, umacron, Umacron ]}; + key {[ y, Y, y, Y ]}; + key {[ semicolon, colon, semicolon, colon ]}; + + key {[ r, R, rcedilla, Rcedilla ]}; + key {[ s, S, scaron, Scaron ]}; + key {[ t, T, t, T ]}; + key {[ d, D, d, D ]}; + key {[ n, N, ncedilla, Ncedilla ]}; + key {[ e, E, emacron, Emacron ]}; + key {[ i, I, imacron, Imacron ]}; + key {[ o, O, omacron, Omacron ]}; + + key {[ 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 {[ISO_Level3_Latch, quotedbl, apostrophe, quotedbl]}; + key {[space, space, apostrophe]}; + modifier_map Mod5 { }; + +}; 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 -// Revision: 1.5 - -partial default alphanumeric_keys -xkb_symbols "basic" { - name[Group1]= "Macedonia"; - - key { [ Cyrillic_ze, Cyrillic_ZE ] }; - key { [ Cyrillic_es, Cyrillic_ES ] }; - key { [ Cyrillic_a, Cyrillic_A ] }; - key { [ Cyrillic_lje, Cyrillic_LJE ] }; - key { [ Cyrillic_nje, Cyrillic_NJE ] }; - key { [ Cyrillic_tse, Cyrillic_TSE ] }; - key { [ Cyrillic_dzhe, Cyrillic_DZHE ] }; - key { [ Cyrillic_de, Cyrillic_DE ] }; - key { [ Cyrillic_ie, Cyrillic_IE ] }; - key { [ Cyrillic_ve, Cyrillic_VE ] }; - key { [ Cyrillic_ef, Cyrillic_EF ] }; - key { [ Cyrillic_te, Cyrillic_TE ] }; - key { [ Cyrillic_er, Cyrillic_ER ] }; - key { [ Cyrillic_en, Cyrillic_EN ] }; - key { [ Cyrillic_be, Cyrillic_BE ] }; - key { [ Cyrillic_ha, Cyrillic_HA ] }; - key { [ Cyrillic_ghe, Cyrillic_GHE ] }; - key { [ Macedonia_dse, Macedonia_DSE ] }; - key { [ Cyrillic_em, Cyrillic_EM ] }; - key { [ Cyrillic_je, Cyrillic_JE ] }; - key { [ Cyrillic_u, Cyrillic_U ] }; - key { [ Cyrillic_ka, Cyrillic_KA ] }; - key { [ Cyrillic_i, Cyrillic_I ] }; - key { [ Cyrillic_o, Cyrillic_O ] }; - key { [ Cyrillic_el, Cyrillic_EL ] }; - key { [ Cyrillic_che, Cyrillic_CHE ] }; - key { [ Cyrillic_pe, Cyrillic_PE ] }; - key { [ Macedonia_kje, Macedonia_KJE ] }; - key { [ Cyrillic_sha, Cyrillic_SHA ] }; - key { [ Macedonia_gje, Macedonia_GJE ] }; - key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; - key { [ equal, plus ] }; - key { [ minus, underscore ] }; - key { [ dead_grave, asciitilde ] }; - key { [ 1, exclam ] }; - key { [ 2, doublelowquotemark ] }; - key { [ 3, leftdoublequotemark ] }; - key { [ 4, dollar ] }; - key { [ 5, percent ] }; - key { [ 6, asciicircum ] }; - key { [ 7, ampersand ] }; - key { [ 8, asterisk ] }; - key { [ 9, parenleft ] }; - key { [ 0, parenright ] }; - key { [ comma, semicolon ] }; - key { [ period, colon ] }; - key { [ slash, question ] }; - - include "kpdl(comma)" -}; - -partial alphanumeric_keys -xkb_symbols "nodeadkeys" { - include "mk(basic)" - name[Group1]= "Macedonia - Eliminate dead keys"; - key { [ grave, asciitilde ] }; -}; +// based on keyboard map: +// Author: Damjan Georgievski +// Revision: 1.5 + +partial default alphanumeric_keys +xkb_symbols "basic" { + name[Group1]= "Macedonian"; + + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_lje, Cyrillic_LJE ] }; + key { [ Cyrillic_nje, Cyrillic_NJE ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_dzhe, Cyrillic_DZHE ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Macedonia_dse, Macedonia_DSE ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_je, Cyrillic_JE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Macedonia_kje, Macedonia_KJE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Macedonia_gje, Macedonia_GJE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ equal, plus ] }; + key { [ minus, underscore ] }; + key { [ dead_grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, doublelowquotemark ] }; + key { [ 3, leftdoublequotemark ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ slash, question ] }; + + include "kpdl(comma)" +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + include "mk(basic)" + name[Group1]= "Macedonian (eliminate dead keys)"; + key { [ 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 { [ n, N, U0272, U019D ] }; // n N ɲ Ɲ - key { [ s, S, U0161, U0160 ] }; // s S š Š - key { [ g, G, U0254, U0186 ] }; // g G ɔ Ɔ - key { [ m, M, U014B, U014A ] }; // m M ŋ Ŋ - key { [ z, Z, U017E, U017d ] }; // z Z ž Ž - key { [ 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 { [ d, D, U0161, U0160 ] }; // d D š Š - key { [ j, J, U0272, U019D ] }; // j J ɲ Ɲ - key { [ m, M, U014B, U014A ] }; // m M ŋ Ŋ - key { [ z, Z, U017E, U017d ] }; // z Z ž Ž - key { [ r, R, U025B, U0190 ] }; // r R ɛ Ɛ - key { [ 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 { [ z, Z, U017E, U017d ] }; // z Z ž Ž - key { [ a, A, U025B, U0190 ] }; // a A ɛ Ɛ - key { [ s, S, U0161, U0160 ] }; // s S š Š - key { [ j, J, U0272, U019D ] }; // j J ɲ Ɲ - key { [ k, K, U014B, U014A ] }; // k K ŋ Ŋ - key { [ 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 { [ x, X, U017E, U017d ] }; // x X ž Ž - key { [ s, S, U0161, U0160 ] }; // s S š Š - key { [ h, H, U0272, U019D ] }; // h H ɲ Ɲ - key { [ j, J, U014B, U014A ] }; // j J ŋ Ŋ - key { [ w, W, U025B, U0190 ] }; // w W ɛ Ɛ - key { [ o, O, U0254, U0186 ] }; // o O ɔ Ɔ - -}; +partial default alphanumeric_keys +xkb_symbols "basic" { + + include "fr(basic)" + + name[Group1]="Bambara"; + + key { [ n, N, U0272, U019D ] }; // n N ɲ Ɲ + key { [ s, S, U0161, U0160 ] }; // s S š Š + key { [ g, G, U0254, U0186 ] }; // g G ɔ Ɔ + key { [ m, M, U014B, U014A ] }; // m M ŋ Ŋ + key { [ z, Z, U017E, U017d ] }; // z Z ž Ž + key { [ 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 { [ d, D, U0161, U0160 ] }; // d D š Š + key { [ j, J, U0272, U019D ] }; // j J ɲ Ɲ + key { [ m, M, U014B, U014A ] }; // m M ŋ Ŋ + key { [ z, Z, U017E, U017d ] }; // z Z ž Ž + key { [ r, R, U025B, U0190 ] }; // r R ɛ Ɛ + key { [ 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 { [ z, Z, U017E, U017d ] }; // z Z ž Ž + key { [ a, A, U025B, U0190 ] }; // a A ɛ Ɛ + key { [ s, S, U0161, U0160 ] }; // s S š Š + key { [ j, J, U0272, U019D ] }; // j J ɲ Ɲ + key { [ k, K, U014B, U014A ] }; // k K ŋ Ŋ + key { [ 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 { [ x, X, U017E, U017d ] }; // x X ž Ž + key { [ s, S, U0161, U0160 ] }; // s S š Š + key { [ h, H, U0272, U019D ] }; // h H ɲ Ɲ + key { [ j, J, U014B, U014A ] }; // j J ŋ Ŋ + key { [ w, W, U025B, U0190 ] }; // w W ɛ Ɛ + key { [ 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 { [ 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 { [ equal, plus, degree ] }; key { [ 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 { [ 2, quotedbl, twosuperior, oneeighth ] }; - key { [ 4, dollar, EuroSign, onequarter ] }; - key { [apostrophe, at, dead_circumflex, dead_caron] }; - key { [numbersign, asciitilde, dead_grave, dead_breve ] }; - - // The following four sets are the four additional letters, with the UK - // equivalents - key { [ cabovedot, Cabovedot, grave, notsign ] }; - key { [ gabovedot, Gabovedot, bracketleft, braceleft ] }; - key { [ hstroke, Hstroke, bracketright, braceright ] }; - key { [ zabovedot, Zabovedot, backslash, bar ] }; - - // Euro symbol - key { [ 3, EuroSign, sterling ] }; - - // Long accent - key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; - - // Normal accented vowels - key { [ e, E, egrave, Egrave ] }; - key { [ u, U, ugrave, Ugrave ] }; - key { [ i, I, igrave, Igrave ] }; - key { [ o, O, ograve, Ograve ] }; - key { [ 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 { [ cabovedot, Cabovedot, grave, asciitilde ] }; - key { [ gabovedot, Gabovedot, bracketleft, braceleft ] }; - key { [ hstroke, Hstroke, bracketright, braceright ] }; - key { [ zabovedot, Zabovedot, backslash, bar ] }; - key { [ zabovedot, Zabovedot, backslash, bar ] }; - - // Euro symbol - key { [ 3, EuroSign, numbersign ] }; - - // Long accent - key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; - - // Normal accented vowels - key { [ e, E, egrave, Egrave ] }; - key { [ u, U, ugrave, Ugrave ] }; - key { [ i, I, igrave, Igrave ] }; - key { [ o, O, ograve, Ograve ] }; - key { [ 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 { [ 2, quotedbl, twosuperior, oneeighth ] }; + key { [ 4, dollar, EuroSign, onequarter ] }; + key { [apostrophe, at, dead_circumflex, dead_caron] }; + key { [numbersign, asciitilde, dead_grave, dead_breve ] }; + + // The following four sets are the four additional letters, with the UK + // equivalents + key { [ cabovedot, Cabovedot, grave, notsign ] }; + key { [ gabovedot, Gabovedot, bracketleft, braceleft ] }; + key { [ hstroke, Hstroke, bracketright, braceright ] }; + key { [ zabovedot, Zabovedot, backslash, bar ] }; + + // Euro symbol + key { [ 3, EuroSign, sterling ] }; + + // Long accent + key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; + + // Normal accented vowels + key { [ e, E, egrave, Egrave ] }; + key { [ u, U, ugrave, Ugrave ] }; + key { [ i, I, igrave, Igrave ] }; + key { [ o, O, ograve, Ograve ] }; + key { [ 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 { [ cabovedot, Cabovedot, grave, asciitilde ] }; + key { [ gabovedot, Gabovedot, bracketleft, braceleft ] }; + key { [ hstroke, Hstroke, bracketright, braceright ] }; + key { [ zabovedot, Zabovedot, backslash, bar ] }; + key { [ zabovedot, Zabovedot, backslash, bar ] }; + + // Euro symbol + key { [ 3, EuroSign, numbersign ] }; + + // Long accent + key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; + + // Normal accented vowels + key { [ e, E, egrave, Egrave ] }; + key { [ u, U, ugrave, Ugrave ] }; + key { [ i, I, igrave, Igrave ] }; + key { [ o, O, ograve, Ograve ] }; + key { [ 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 should have the same values as US_en keyboard - - key { [ quoteleft, asciitilde ] }; - key { [ 1, exclam ] }; - key { [ 2, at ] }; - key { [ 3, numbersign ] }; - key { [ 4, dollar ] }; - key { [ 5, percent ] }; - key { [ 6, asciicircum ] }; - key { [ 7, ampersand ] }; - key { [ 8, asterisk ] }; - key { [ 9, parenleft ] }; - key { [ 0, parenright ] }; - key { [ minus, underscore ] }; - key { [ equal, plus ] }; - - key { [ 0x10007B0, 0x10007A4 ] }; - key { [ 0x1000787, 0x10007A2 ] }; - key { [ 0x10007AC, 0x10007AD ] }; - key { [ 0x1000783, 0x100079C ] }; - key { [ 0x100078C, 0x1000793 ] }; - key { [ 0x1000794, 0x10007A0 ] }; - key { [ 0x10007AA, 0x10007AB ] }; - key { [ 0x10007A8, 0x10007A9 ] }; - key { [ 0x10007AE, 0x10007AF ] }; - key { [ 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 { [ bracketleft, braceleft ] }; - key { [ bracketright, braceright ] }; - - - key { [ 0x10007A6, 0x10007A7 ] }; - key { [ 0x1000790, 0x1000781 ] }; - key { [ 0x100078B, 0x1000791 ] }; - key { [ 0x100078A, 0x100fdf2 ] }; - key { [ 0x100078E, 0x10007A3 ] }; - key { [ 0x1000780, 0x1000799 ] }; - key { [ 0x1000796, 0x100079B ] }; - key { [ 0x1000786, 0x100079A ] }; - key { [ 0x100078D, 0x1000785 ] }; - key { [ 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 { [ quoteright, quotedbl ] }; - key { [ backslash, bar ] }; - - key { [ bar, brokenbar ] }; - key { [ 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 { [ multiply, 0x1000798 ] }; - key { [ 0x1000797, 0x100079D ] }; - key { [ 0x1000788, 0x10007A5 ] }; - key { [ 0x1000784, 0x100079E ] }; - key { [ 0x1000782, 0x100078F ] }; - key { [ 0x1000789, 0x100079F ] }; - key { [ Arabic_comma, less ] }; - key { [ period, greater ] }; - key { [ 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 should have the same values as US_en keyboard + + key { [ quoteleft, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ 0x10007B0, 0x10007A4 ] }; + key { [ 0x1000787, 0x10007A2 ] }; + key { [ 0x10007AC, 0x10007AD ] }; + key { [ 0x1000783, 0x100079C ] }; + key { [ 0x100078C, 0x1000793 ] }; + key { [ 0x1000794, 0x10007A0 ] }; + key { [ 0x10007AA, 0x10007AB ] }; + key { [ 0x10007A8, 0x10007A9 ] }; + key { [ 0x10007AE, 0x10007AF ] }; + key { [ 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 { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + + key { [ 0x10007A6, 0x10007A7 ] }; + key { [ 0x1000790, 0x1000781 ] }; + key { [ 0x100078B, 0x1000791 ] }; + key { [ 0x100078A, 0x100fdf2 ] }; + key { [ 0x100078E, 0x10007A3 ] }; + key { [ 0x1000780, 0x1000799 ] }; + key { [ 0x1000796, 0x100079B ] }; + key { [ 0x1000786, 0x100079A ] }; + key { [ 0x100078D, 0x1000785 ] }; + key { [ 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 { [ quoteright, quotedbl ] }; + key { [ backslash, bar ] }; + + key { [ bar, brokenbar ] }; + key { [ 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 { [ multiply, 0x1000798 ] }; + key { [ 0x1000797, 0x100079D ] }; + key { [ 0x1000788, 0x10007A5 ] }; + key { [ 0x1000784, 0x100079E ] }; + key { [ 0x1000782, 0x100078F ] }; + key { [ 0x1000789, 0x100079F ] }; + key { [ Arabic_comma, less ] }; + key { [ period, greater ] }; + key { [ 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 { [ 4, 0x010020A6, dollar, cent ] }; - include "level3(ralt_switch)" -}; - -partial alphanumeric_keys -xkb_symbols "yoruba" { - include "ng(basic)" - - name[Group1]= "Nigeria - Yoruba"; - - key { [ 0x01001EB9, 0x01001EB8, q, Q ] }; - key { [ 0x01001ECD, 0x01001ECC, x, X ] }; - key { [ 0x01001E63, 0x01001E62, v, V ] }; -}; - -partial alphanumeric_keys -xkb_symbols "igbo" { - include "ng(basic)" - - name[Group1]= "Nigeria - Igbo"; - - key { [ 0x01001ECB, 0x01001ECA, q, Q ] }; - key { [ 0x01001E45, 0x01001E44, x, X ] }; - key { [ 0x01001EE5, 0x01001EE4, semicolon, colon ] }; - key { [ 0x01001ECD, 0x01001ECC, bracketleft, braceleft ] }; -}; - -partial alphanumeric_keys -xkb_symbols "hausa" { - include "ng(basic)" - - name[Group1]= "Nigeria - Hausa"; - - key { [ 0x01000071, 0x01000051, q, Q ] }; - key { [ udiaeresis, Udiaeresis, w, W ] }; - key { [ e, E, EuroSign, cent ] }; - key { [ 0x010001B4, 0x010001B3,bracketleft, braceleft ] }; - key { [ gcaron, Gcaron,bracketright, braceright] }; - key { [ 0x01000257, 0x0100018A, d, D ] }; - key { [ 0x01000131, 0x01000130, semicolon, colon ] }; - key { [ 0x010001DD, 0x0100018E,apostrophe, quotedbl ] }; - key { [ 0x01000272, 0x0100019D, z, Z ] }; - key { [ ntilde, Ntilde, m, M ] }; - key { [ ccedilla, Ccedilla, period, greater ] }; - key { [ 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 { [ grave, asciitilde, exclamdown, exclamdown ] }; - key { [ 1, exclam, sterling, sterling ] }; - key { [ 2, at, EuroSign, EuroSign ] }; - key { [ 3, numbersign, dollar, dollar ] }; - key { [ 4, 0x10020A6, 0x1000301, 0x1000301 ] }; // Naira, combining acute - key { [ 5, percent, 0x1000300, 0x1000300 ] }; // combining grave - key { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above - key { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above - key { [ 8, asterisk, 0x1000324, 0x1000324 ] }; // combining caron above - key { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above - key { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above - key { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above - key { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above - - key { [ w, W, 0x1001EB9, 0x1001EB8 ] }; // E with dot below - key { [ e, E, 0x10001DD, 0x100018E ] }; // reversed E - key { [ r, R, 0x10001B4, 0x10001B3 ] }; // Y with hook - key { [ t, T, 0x1000327, 0x1000327 ] }; // combining cedilla - key { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below - key { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below - key { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below - key { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below - key { [ p, P, 0x1000304, 0x1000304 ] }; // combining diaeresis below - key { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below - key { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below - - key { [ a, A, Greek_iota, Greek_IOTA ] }; - key { [ s, S, 0x1001E63, 0x1001E62 ] }; // S with dot below - key { [ d, D, 0x1000257, 0x100018A ] }; // D with hook - key { [ f, F, 0x1001E0D, 0x1001E0C ] }; // D with dot below - key { [ g, G, 0x1000272, 0x100019D ] }; // N with left hook - key { [ h, H, 0x1001EE5, 0x1001EE4 ] }; // U with dot below - key { [ j, J, 0x1001ECB, 0x1001ECA ] }; // I with dot below - key { [ k, K, 0x1000199, 0x1000198 ] }; // K with hook - key { [ l, L, 0x1001E37, 0x1001E36 ] }; // L with dot below - key { [ semicolon, colon, masculine, ordfeminine ] }; - key { [ apostrophe, quotedbl, currency, currency ] }; - key { [ backslash, bar, section, section ] }; - - key { [ c, C, 0x1000254, 0x1000186 ] }; // open O - key { [ v, V, 0x100028B, 0x10001B2 ] }; // V with hook - key { [ b, B, 0x1000253, 0x1000181 ] }; // B with hook - key { [ n, N, eng, ENG ] }; - key { [ m, M, 0x1001E45, 0x1001E44 ] }; // N with dot above - key { [ comma, less, guillemotleft, guillemotleft ] }; - key { [ period, greater, guillemotright, guillemotright ] }; - key { [ slash, question, questiondown, questiondown ] }; - - key { [ 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 { [ 4, 0x010020A6, dollar, cent ] }; + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "yoruba" { + include "ng(basic)" + + name[Group1]= "Yoruba"; + + key { [ 0x01001EB9, 0x01001EB8, q, Q ] }; + key { [ 0x01001ECD, 0x01001ECC, x, X ] }; + key { [ 0x01001E63, 0x01001E62, v, V ] }; +}; + +partial alphanumeric_keys +xkb_symbols "igbo" { + include "ng(basic)" + + name[Group1]= "Igbo"; + + key { [ 0x01001ECB, 0x01001ECA, q, Q ] }; + key { [ 0x01001E45, 0x01001E44, x, X ] }; + key { [ 0x01001EE5, 0x01001EE4, semicolon, colon ] }; + key { [ 0x01001ECD, 0x01001ECC, bracketleft, braceleft ] }; +}; + +partial alphanumeric_keys +xkb_symbols "hausa" { + include "ng(basic)" + + name[Group1]= "Hausa"; + + key { [ 0x01000071, 0x01000051, q, Q ] }; + key { [ udiaeresis, Udiaeresis, w, W ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ 0x010001B4, 0x010001B3,bracketleft, braceleft ] }; + key { [ gcaron, Gcaron,bracketright, braceright] }; + key { [ 0x01000257, 0x0100018A, d, D ] }; + key { [ 0x01000131, 0x01000130, semicolon, colon ] }; + key { [ 0x010001DD, 0x0100018E,apostrophe, quotedbl ] }; + key { [ 0x01000272, 0x0100019D, z, Z ] }; + key { [ ntilde, Ntilde, m, M ] }; + key { [ ccedilla, Ccedilla, period, greater ] }; + key { [ 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 { [ grave, asciitilde, exclamdown, exclamdown ] }; + key { [ 1, exclam, sterling, sterling ] }; + key { [ 2, at, EuroSign, EuroSign ] }; + key { [ 3, numbersign, dollar, dollar ] }; + key { [ 4, 0x10020A6, 0x1000301, 0x1000301 ] }; // Naira, combining acute + key { [ 5, percent, 0x1000300, 0x1000300 ] }; // combining grave + key { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above + key { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above + key { [ 8, asterisk, 0x1000324, 0x1000324 ] }; // combining caron above + key { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above + key { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above + key { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above + key { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above + + key { [ w, W, 0x1001EB9, 0x1001EB8 ] }; // E with dot below + key { [ e, E, 0x10001DD, 0x100018E ] }; // reversed E + key { [ r, R, 0x10001B4, 0x10001B3 ] }; // Y with hook + key { [ t, T, 0x1000327, 0x1000327 ] }; // combining cedilla + key { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below + key { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below + key { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below + key { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below + key { [ p, P, 0x1000304, 0x1000304 ] }; // combining diaeresis below + key { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below + key { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below + + key { [ a, A, Greek_iota, Greek_IOTA ] }; + key { [ s, S, 0x1001E63, 0x1001E62 ] }; // S with dot below + key { [ d, D, 0x1000257, 0x100018A ] }; // D with hook + key { [ f, F, 0x1001E0D, 0x1001E0C ] }; // D with dot below + key { [ g, G, 0x1000272, 0x100019D ] }; // N with left hook + key { [ h, H, 0x1001EE5, 0x1001EE4 ] }; // U with dot below + key { [ j, J, 0x1001ECB, 0x1001ECA ] }; // I with dot below + key { [ k, K, 0x1000199, 0x1000198 ] }; // K with hook + key { [ l, L, 0x1001E37, 0x1001E36 ] }; // L with dot below + key { [ semicolon, colon, masculine, ordfeminine ] }; + key { [ apostrophe, quotedbl, currency, currency ] }; + key { [ backslash, bar, section, section ] }; + + key { [ c, C, 0x1000254, 0x1000186 ] }; // open O + key { [ v, V, 0x100028B, 0x10001B2 ] }; // V with hook + key { [ b, B, 0x1000253, 0x1000181 ] }; // B with hook + key { [ n, N, eng, ENG ] }; + key { [ m, M, 0x1001E45, 0x1001E44 ] }; // N with dot above + key { [ comma, less, guillemotleft, guillemotleft ] }; + key { [ period, greater, guillemotright, guillemotright ] }; + key { [ slash, question, questiondown, questiondown ] }; + + key { [ 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 { [ period, colon, ellipsis, periodcentered ] }; - key { [ minus, underscore, endash, emdash ] }; - key { [ r, R, registered, trademark ] }; - key { [ p, P, Greek_pi, Greek_PI ] }; - key { [ 5, percent, onehalf, 0x1002030 ] }; - - key { [ plus, question, plusminus, questiondown ] }; - key { [ backslash, dead_grave, dead_acute, notsign ] }; - - - key { [ oslash, Ooblique, dead_acute, dead_doubleacute ] }; - key { [ ae, AE, dead_circumflex, dead_caron] }; - key { [ bar, section, brokenbar, paragraph ] }; - - key { [apostrophe, asterisk, dead_doubleacute, multiply ] }; - key { [ 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 { [ backslash, grave, acute, ogonek ] }; - key { [ diaeresis, asciicircum, asciitilde, macron ] }; - key { [ oslash, Ooblique, acute, doubleacute ] }; - key { [ ae, AE, asciicircum, caron ] }; - key { [ comma, semicolon, cedilla, ogonek ] }; - key { [ period, colon, periodcentered, abovedot ] }; -}; - -// Norwegian Dvorak -partial alphanumeric_keys -xkb_symbols "dvorak" { - include "us(dvorak)" - - name[Group1]="Norway - Dvorak"; - - key { [ bar, section, brokenbar, paragraph ] }; - - key { [ 1, exclam, exclamdown, onesuperior ] }; - key { [ 2, quotedbl, at, twosuperior ] }; - key { [ 3, numbersign, sterling, threesuperior ] }; - key { [ 4, dollar, currency,onequarter ] }; - key { [ 5, percent, onehalf, onehalf ] }; - key { [ 6, ampersand, threequarters, threequarters ] }; - key { [ 7, slash, braceleft, division ] }; - key { [ 8, parenleft, bracketleft ] }; - key { [ 9, parenright, bracketright ] }; - key { [ 0, equal, braceright ] }; - key { [ plus, question, plusminus, questiondown ] }; - key { [ backslash, grave, dead_acute, dead_grave ] }; - - key { [ aring, Aring, braceright, bracketright ] }; - key { [ comma, semicolon, dead_cedilla, cedilla ] }; - key { [ period, colon, periodcentered ] }; - key { [ p, P, thorn, THORN ] }; - key { [ y, Y, yen ] }; - key { [ f, F, ordfeminine ] }; - key { [ c, C, ccedilla, copyright ] }; - key { [ r, R, registered ] }; - key { [ apostrophe, asterisk, dead_circumflex, acute ] }; - key { [ asciitilde, asciicircum, dead_diaeresis, dead_tilde ] }; - - key { [ e, E, EuroSign, cent ] }; - key { [ i, I, idotless, Iabovedot] }; - key { [ d, D, eth, ETH ] }; - key { [ s, S, ssharp ] }; - key { [ minus, underscore, hyphen, diaeresis] }; - - key { [ ae, AE, braceleft, bracketleft] }; - key { [ x, X, multiply ] }; - key { [ m, M, mu ] }; - key { [ less, greater, guillemotleft, guillemotright ] }; - - key { [ space, space, nobreakspace, nobreakspace] }; - - key { [ 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 -// - -partial alphanumeric_keys -xkb_symbols "smi" { - include "latin" - - name[Group1]= "Norway - Northern Saami"; - - key { [ 1, exclam, copyright, exclamdown ] }; - key { [ 2, quotedbl, at, registered ] }; - key { [ 3, numbersign, sterling, less ] }; - key { [ 4, dollar, dollar, greater ] }; - key { [ 5, percent, U2022, U2030 ] }; - key { [ 6, ampersand, section, paragraph ] }; - key { [ 7, slash, braceleft, bar ] }; - key { [ 8, parenleft, bracketleft, braceleft ] }; - key { [ 9, parenright, bracketright, braceright ] }; - key { [ 0, equal, braceright, notequal ] }; - key { [ plus, question, division, questiondown ] }; - key { [ backslash, grave, acute, asciitilde ] }; - - key { [ aacute, Aacute, q, Q ] }; - key { [ scaron, Scaron, w, W ] }; - key { [ e, E, eacute, Eacute ] }; - key { [ r, R, registered, trademark ] }; - key { [ y, Y, yacute, Yacute ] }; - key { [ u, U, udiaeresis, Udiaeresis ] }; - key { [ i, I, idiaeresis, Idiaeresis ] }; - key { [ o, O, oe, OE ] }; - key { [ aring, Aring, acircumflex, Acircumflex ] }; - key { [ eng, ENG, quotedbl, asciicircum ] }; - - key { [ a, A, agrave, Agrave ] }; - key { [ s, S, ssharp, apostrophe ] }; - key { [ f, F, ordfeminine, ordfeminine ] }; - key { [ g, G, gcaron, Gcaron ] }; - key { [ h, H, U01E5, U01E4 ] }; - key { [ j, J, notsign, multiply ] }; - key { [ k, K, U01E9, U01E8 ] }; - key { [ l, L, degree, hyphen ] }; - key { [ oslash, Ooblique, odiaeresis, Odiaeresis ] }; - key { [ ae, AE, adiaeresis, Adiaeresis ] }; - key { [ bar, section, brokenbar, paragraph ] }; - - key { [ dstroke, Dstroke, apostrophe, asterisk ] }; - key { [ z, Z, U0292, U01B7 ] }; - key { [ ccaron, Ccaron, x, X ] }; - key { [ c, C, ccedilla, Ccedilla ] }; - key { [ v, V, lessthanequal, guillemotleft ] }; - key { [ b, B, greaterthanequal, guillemotright ] }; - key { [ n, N, leftsinglequotemark, leftdoublequotemark ] }; - key { [ m, M, rightsinglequotemark, rightdoublequotemark ] }; - key { [ comma, semicolon, singlelowquotemark, doublelowquotemark ] }; - key { [ period, colon, ellipsis, periodcentered ] }; - key { [ minus, underscore, endash, emdash ] }; - - key { 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 { [ 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 { [ bar, section ] }; - key { [ 3, numbersign, sterling, sterling ] }; - key { [ 4, currency, dollar, dollar ] }; - key { [ 6, ampersand, threequarters, fiveeighths ] }; - key { [ 7, slash, bar, backslash ] }; - key { [ 8, parenleft, bracketleft, braceleft ] }; - key { [ 9, parenright, bracketright, braceright ] }; - key { [ oslash, Ooblique, odiaeresis, Odiaeresis ] }; - key { [ plus, question ] }; - key { [ ae, AE ] }; - key { [ aring, Aring ] }; - key { [ dead_grave, dead_acute, acute, dead_ogonek ] }; - key { [ diaeresis, asciicircum, asciitilde, dead_macron ] }; - key { [ 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 { [ grave, acute, acute, ogonek ] }; - key { [ 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 { [ period, colon, ellipsis, periodcentered ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ r, R, registered, trademark ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ 5, percent, onehalf, 0x1002030 ] }; + + key { [ plus, question, plusminus, questiondown ] }; + key { [ backslash, dead_grave, dead_acute, notsign ] }; + + + key { [ oslash, Ooblique, dead_acute, dead_doubleacute ] }; + key { [ ae, AE, dead_circumflex, dead_caron] }; + key { [ bar, section, brokenbar, paragraph ] }; + + key { [apostrophe, asterisk, dead_doubleacute, multiply ] }; + key { [ 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 { [ backslash, grave, acute, ogonek ] }; + key { [ diaeresis, asciicircum, asciitilde, macron ] }; + key { [ oslash, Ooblique, acute, doubleacute ] }; + key { [ ae, AE, asciicircum, caron ] }; + key { [ comma, semicolon, cedilla, ogonek ] }; + key { [ period, colon, periodcentered, abovedot ] }; +}; + +// Norwegian Dvorak +partial alphanumeric_keys +xkb_symbols "dvorak" { + include "us(dvorak)" + + name[Group1]="Norwegian (Dvorak)"; + + key { [ bar, section, brokenbar, paragraph ] }; + + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, quotedbl, at, twosuperior ] }; + key { [ 3, numbersign, sterling, threesuperior ] }; + key { [ 4, dollar, currency,onequarter ] }; + key { [ 5, percent, onehalf, onehalf ] }; + key { [ 6, ampersand, threequarters, threequarters ] }; + key { [ 7, slash, braceleft, division ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ plus, question, plusminus, questiondown ] }; + key { [ backslash, grave, dead_acute, dead_grave ] }; + + key { [ aring, Aring, braceright, bracketright ] }; + key { [ comma, semicolon, dead_cedilla, cedilla ] }; + key { [ period, colon, periodcentered ] }; + key { [ p, P, thorn, THORN ] }; + key { [ y, Y, yen ] }; + key { [ f, F, ordfeminine ] }; + key { [ c, C, ccedilla, copyright ] }; + key { [ r, R, registered ] }; + key { [ apostrophe, asterisk, dead_circumflex, acute ] }; + key { [ asciitilde, asciicircum, dead_diaeresis, dead_tilde ] }; + + key { [ e, E, EuroSign, cent ] }; + key { [ i, I, idotless, Iabovedot] }; + key { [ d, D, eth, ETH ] }; + key { [ s, S, ssharp ] }; + key { [ minus, underscore, hyphen, diaeresis] }; + + key { [ ae, AE, braceleft, bracketleft] }; + key { [ x, X, multiply ] }; + key { [ m, M, mu ] }; + key { [ less, greater, guillemotleft, guillemotright ] }; + + key { [ space, space, nobreakspace, nobreakspace] }; + + key { [ 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 +// + +partial alphanumeric_keys +xkb_symbols "smi" { + include "latin" + + name[Group1]= "Northern Saami (Norway)"; + + key { [ 1, exclam, copyright, exclamdown ] }; + key { [ 2, quotedbl, at, registered ] }; + key { [ 3, numbersign, sterling, less ] }; + key { [ 4, dollar, dollar, greater ] }; + key { [ 5, percent, U2022, U2030 ] }; + key { [ 6, ampersand, section, paragraph ] }; + key { [ 7, slash, braceleft, bar ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ 0, equal, braceright, notequal ] }; + key { [ plus, question, division, questiondown ] }; + key { [ backslash, grave, acute, asciitilde ] }; + + key { [ aacute, Aacute, q, Q ] }; + key { [ scaron, Scaron, w, W ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, registered, trademark ] }; + key { [ y, Y, yacute, Yacute ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ i, I, idiaeresis, Idiaeresis ] }; + key { [ o, O, oe, OE ] }; + key { [ aring, Aring, acircumflex, Acircumflex ] }; + key { [ eng, ENG, quotedbl, asciicircum ] }; + + key { [ a, A, agrave, Agrave ] }; + key { [ s, S, ssharp, apostrophe ] }; + key { [ f, F, ordfeminine, ordfeminine ] }; + key { [ g, G, gcaron, Gcaron ] }; + key { [ h, H, U01E5, U01E4 ] }; + key { [ j, J, notsign, multiply ] }; + key { [ k, K, U01E9, U01E8 ] }; + key { [ l, L, degree, hyphen ] }; + key { [ oslash, Ooblique, odiaeresis, Odiaeresis ] }; + key { [ ae, AE, adiaeresis, Adiaeresis ] }; + key { [ bar, section, brokenbar, paragraph ] }; + + key { [ dstroke, Dstroke, apostrophe, asterisk ] }; + key { [ z, Z, U0292, U01B7 ] }; + key { [ ccaron, Ccaron, x, X ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, lessthanequal, guillemotleft ] }; + key { [ b, B, greaterthanequal, guillemotright ] }; + key { [ n, N, leftsinglequotemark, leftdoublequotemark ] }; + key { [ m, M, rightsinglequotemark, rightdoublequotemark ] }; + key { [ comma, semicolon, singlelowquotemark, doublelowquotemark ] }; + key { [ period, colon, ellipsis, periodcentered ] }; + key { [ minus, underscore, endash, emdash ] }; + + key { 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 { [ 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 { [ bar, section ] }; + key { [ 3, numbersign, sterling, sterling ] }; + key { [ 4, currency, dollar, dollar ] }; + key { [ 6, ampersand, threequarters, fiveeighths ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ oslash, Ooblique, odiaeresis, Odiaeresis ] }; + key { [ plus, question ] }; + key { [ ae, AE ] }; + key { [ aring, Aring ] }; + key { [ dead_grave, dead_acute, acute, dead_ogonek ] }; + key { [ diaeresis, asciicircum, asciitilde, dead_macron ] }; + key { [ 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 { [ grave, acute, acute, ogonek ] }; + key { [ 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 { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) - key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ - key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ - key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ - key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € - key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° - // E row; Numerals row, right side - key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) - key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← - key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → - key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ - key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ - key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ - key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ - - // D row; QWERTY row, left side - key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q - key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W - key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ - key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ - key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ - // D row; QWERTY row, right side - key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ - key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U - key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ - key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø - key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ - key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { - key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } - key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə - - // C row; Home row, left side - key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ - key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § - key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D - key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª - key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G - // C row; Home row, right side - key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H - key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J - key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K - key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L - key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : - key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) - - // B row; Lower row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ - key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » - key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · - key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ - key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ - key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ - // B row; Lower row, right side - key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ - key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º - key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) - key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ - key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ - - // A row - key { [ 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 { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - // E row; Numerals row, right side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) - - // D row; QWERTY row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) - key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) - key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) - key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) - // D row; QWERTY row, right side - key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) - key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) - key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) - key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) - key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // C row; Home row, left side - key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) - key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) - key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) - // C row; Home row, right side - key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) - key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // B row; Lower row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) - // B row; Lower row, right side - key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) - key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) - key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) - key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // A row - key { [ 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 { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) - key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ - key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ - key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ - key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € - key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° - // E row; Numerals row, right side - key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) - key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← - key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → - key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ - key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ - key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { - key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } - - // D row; Upper row, left side - key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) - key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) - key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ - key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ - key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ - // D row; Upper row, right side - key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q - key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª - key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G - key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ - key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K - key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ - key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ - key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə - - // C row; Home row, left side - key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø - key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ - key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ - key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ - key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U - // C row; Home row, right side - key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D - key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H - key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ - key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ - key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § - key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ - - // B row; Lower row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ - key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » - key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · - key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ - key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ - key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J - // B row; Lower row, right side - key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L - key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º - key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W - key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ - key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : - - // A row - key { [ 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 { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - // E row; Numerals row, right side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // D row; QWERTY row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) - key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) - key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) - key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) - // D row; QWERTY row, right side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) - key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) - key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // C row; Home row, left side - key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) - key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) - key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) - key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) - key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) - // C row; Home row, right side - key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) - key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) - key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) - key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) - key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // B row; Lower row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - // B row; Lower row, right side - key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) - key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) - key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) - key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // A row - key { [ 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 { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) - key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ - key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ - key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ - key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € - key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° - // E row; Numerals row, right side - key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) - key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← - key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → - key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ - key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ - key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ - key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ - - // D row; Upper row, left side - key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q - key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W - key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ - key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ - key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª - // D row; Upper row, right side - key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J - key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ - key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K - key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L - key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : - key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { - key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } - key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə - - // C row; Home row, left side - key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ - key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § - key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D - key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ - key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G - // C row; Home row, right side - key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H - key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U - key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ - key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø - key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ - key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) - - // B row; Lower row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ - key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » - key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · - key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ - key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ - key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ - // B row; Lower row, right side - key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ - key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º - key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) - key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ - key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ - - // A row - key { [ 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 { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - // E row; Numerals row, right side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) - - // D row; QWERTY row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) - key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) - key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - // D row; QWERTY row, right side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) - key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) - key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // C row; Home row, left side - key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) - key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) - key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) - key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) - key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) - // C row; Home row, right side - key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) - key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) - key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) - key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) - key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // B row; Lower row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) - // B row; Lower row, right side - key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) - key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) - key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) - key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // A row - key { [ 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 { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) - key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ - key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ - key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ - key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € - key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° - // E row; Numerals row, right side - key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) - key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← - key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → - key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ - key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ - key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ - key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ - - // D row; Upper row, left side - key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q - key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W - key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª - key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ - key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G - // D row; Upper row, right side - key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J - key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L - key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U - key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ - key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : - key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { - key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } - key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə - - // C row; Home row, left side - key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ - key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ - key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § - key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ - key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D - // C row; Home row, right side - key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H - key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ - key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ - key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ - key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø - key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) - - // B row; Lower row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ - key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » - key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · - key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ - key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ - key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ - // B row; Lower row, right side - key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K - key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º - key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) - key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ - key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ - - // A row - key { [ 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 { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - // E row; Numerals row, right side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) - - // D row; QWERTY row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) - key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) - // D row; QWERTY row, right side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) - key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) - key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // C row; Home row, left side - key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) - key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) - key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) - key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) - key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) - // C row; Home row, right side - key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) - key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) - key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) - key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) - key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // B row; Lower row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) - // B row; Lower row, right side - key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) - key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) - key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) - key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // A row - key { [ 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 { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) - key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ - key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ - key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ - key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € - key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° - // E row; Numerals row, right side - key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) - key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← - key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → - key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ - key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ - key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { - key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } - - // D row; Upper row, left side - key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) - key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) - key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ - key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ - key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ - // D row; Upper row, right side - key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª - key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G - key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ - key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ - key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L - key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ - key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ - key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə - - // C row; Home row, left side - key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ - key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø - key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ - key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U - key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ - // C row; Home row, right side - key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D - key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H - key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ - key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ - key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § - key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ - - // B row; Lower row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ - key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : - key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q - key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J - key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K - key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · - // B row; Lower row, right side - key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ - key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º - key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W - key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ - key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » - - // A row - key { [ 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 { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - // E row; Numerals row, right side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // D row; QWERTY row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) - key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) - key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) - key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) - // D row; QWERTY row, right side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) - key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // C row; Home row, left side - key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) - key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) - key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) - key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) - key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) - // C row; Home row, right side - key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) - key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) - key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) - key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) - key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // B row; Lower row, left side - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - // B row; Lower row, right side - key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) - key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) - key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // - - // A row - key { [ 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 { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) + key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ + key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ + key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ + key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € + key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° + // E row; Numerals row, right side + key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) + key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← + key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → + key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ + key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ + key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ + key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ + + // D row; QWERTY row, left side + key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q + key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W + key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ + key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ + key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ + // D row; QWERTY row, right side + key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ + key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U + key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ + key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø + key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ + key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { + key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } + key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə + + // C row; Home row, left side + key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ + key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § + key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D + key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª + key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G + // C row; Home row, right side + key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H + key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J + key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K + key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L + key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : + key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ + key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » + key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · + key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ + key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ + key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ + // B row; Lower row, right side + key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ + key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º + key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) + key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ + key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ + + // A row + key { [ 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 { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // E row; Numerals row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) + + // D row; QWERTY row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) + key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) + // D row; QWERTY row, right side + key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // C row; Home row, left side + key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) + key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) + key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) + // C row; Home row, right side + key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) + key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) + // B row; Lower row, right side + key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) + key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) + key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) + key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // A row + key { [ 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 { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) + key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ + key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ + key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ + key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € + key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° + // E row; Numerals row, right side + key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) + key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← + key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → + key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ + key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ + key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { + key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } + + // D row; Upper row, left side + key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) + key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) + key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ + key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ + key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ + // D row; Upper row, right side + key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q + key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª + key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G + key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ + key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K + key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ + key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ + key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə + + // C row; Home row, left side + key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø + key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ + key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ + key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ + key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U + // C row; Home row, right side + key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D + key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H + key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ + key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ + key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § + key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ + key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » + key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · + key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ + key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ + key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J + // B row; Lower row, right side + key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L + key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º + key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W + key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ + key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : + + // A row + key { [ 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 { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // E row; Numerals row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // D row; QWERTY row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) + key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) + key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) + key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) + // D row; QWERTY row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) + key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) + key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // C row; Home row, left side + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + // C row; Home row, right side + key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) + key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) + key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) + key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) + key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // B row; Lower row, right side + key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) + key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) + key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) + key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // A row + key { [ 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 { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) + key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ + key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ + key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ + key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € + key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° + // E row; Numerals row, right side + key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) + key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← + key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → + key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ + key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ + key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ + key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ + + // D row; Upper row, left side + key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q + key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W + key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ + key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ + key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª + // D row; Upper row, right side + key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J + key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ + key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K + key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L + key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : + key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { + key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } + key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə + + // C row; Home row, left side + key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ + key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § + key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D + key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ + key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G + // C row; Home row, right side + key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H + key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U + key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ + key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø + key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ + key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ + key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » + key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · + key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ + key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ + key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ + // B row; Lower row, right side + key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ + key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º + key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) + key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ + key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ + + // A row + key { [ 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 { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // E row; Numerals row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) + + // D row; QWERTY row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // D row; QWERTY row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) + key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) + key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // C row; Home row, left side + key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) + key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) + key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) + key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) + key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) + // C row; Home row, right side + key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) + // B row; Lower row, right side + key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) + key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) + key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) + key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // A row + key { [ 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 { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) + key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ + key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ + key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ + key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € + key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° + // E row; Numerals row, right side + key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) + key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← + key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → + key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ + key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ + key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ + key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ + + // D row; Upper row, left side + key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q + key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W + key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª + key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ + key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G + // D row; Upper row, right side + key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J + key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L + key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U + key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ + key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : + key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { + key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } + key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə + + // C row; Home row, left side + key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ + key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ + key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § + key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ + key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D + // C row; Home row, right side + key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H + key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ + key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ + key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ + key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø + key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ + key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » + key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · + key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ + key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ + key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ + // B row; Lower row, right side + key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K + key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º + key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) + key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ + key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ + + // A row + key { [ 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 { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // E row; Numerals row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) + + // D row; QWERTY row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) + key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) + // D row; QWERTY row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // C row; Home row, left side + key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) + key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) + key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) + key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) + key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) + // C row; Home row, right side + key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) + key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) + // B row; Lower row, right side + key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) + key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) + key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) + key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // A row + key { [ 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 { [ U0060, U007E, U0300, U0303 ] }; // ` ~ ̀◌ ̃◌ (combining grave accent) (combining tilde) + key { [ U0031, U0021, U00B9, U00A1 ] }; // 1 ! ¹ ¡ + key { [ U0032, U0040, U00B2, U00A4 ] }; // 2 @ ² ¤ + key { [ U0033, U0023, U00B3, U00A3 ] }; // 3 # ³ £ + key { [ U0034, U0024, U00BC, U20AC ] }; // 4 $ ¼ € + key { [ U0035, U0025, U00BD, U00B0 ] }; // 5 % ½ ° + // E row; Numerals row, right side + key { [ U0036, U005E, U00BE, U0302 ] }; // 6 ^ ¾ ̂◌ (combining circumflex accent) + key { [ U0037, U0026, U215B, U2190 ] }; // 7 & ⅛ ← + key { [ U0038, U002A, U215C, U2192 ] }; // 8 * ⅜ → + key { [ U0039, U0028, U215D, U2191 ] }; // 9 ( ⅝ ↑ + key { [ U0030, U0029, U215E, U2193 ] }; // 0 ) ⅞ ↓ + key { [ U005B, U007B, VoidSymbol, VoidSymbol ] }; // [ { + key { [ U005D, U007D, VoidSymbol, VoidSymbol ] }; // ] } + + // D row; Upper row, left side + key { [ U0027, U0022, U0301, U030B ] }; // ' " ́◌ ̋◌ (combining acute accent) (combining double-acute accent) + key { [ U002C, U003C, U0327, U0328 ] }; // , < ̧◌ ̨◌ (combining cedilla) (combining ogonek) + key { [ U002E, U003E, U2026, U2423 ] }; // . > … ␣ + key { [ U0070, U0050, U20B1, VoidSymbol ] }; // p P ₱ + key { [ U0079, U0059, U00A5, VoidSymbol ] }; // y Y ¥ + // D row; Upper row, right side + key { [ U0066, U0046, VoidSymbol, U00AA ] }; // f F ª + key { [ U0067, U0047, VoidSymbol, VoidSymbol ] }; // g G + key { [ U0063, U0043, U00A9, U00A2 ] }; // c C © ¢ + key { [ U0072, U0052, U00AE, U00B6 ] }; // r R ® ¶ + key { [ U006C, U004C, VoidSymbol, VoidSymbol ] }; // l L + key { [ U002F, U003F, U00F7, U00BF ] }; // / ? ÷ ¿ + key { [ U003D, U002B, U00B1, U2213 ] }; // = + ± ∓ + key { [ U005C, U007C, U0259, U018F ] }; // \ | ə Ə + + // C row; Home row, left side + key { [ U0061, U0041, U00E6, U00C6 ] }; // a A æ Æ + key { [ U006F, U004F, U00F8, U00D8 ] }; // o O ø Ø + key { [ U0065, U0045, U0153, U0152 ] }; // e E œ Œ + key { [ U0075, U0055, VoidSymbol, VoidSymbol ] }; // u U + key { [ U0069, U0049, U0131, U0130 ] }; // i I ı İ + // C row; Home row, right side + key { [ U0064, U0044, VoidSymbol, VoidSymbol ] }; // d D + key { [ U0068, U0048, VoidSymbol, VoidSymbol ] }; // h H + key { [ U0074, U0054, U2122, VoidSymbol ] }; // t T ™ + key { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ + key { [ U0073, U0053, U00A7, VoidSymbol ] }; // s S § + key { [ U002D, U005F, U00AC, U0360 ] }; // - _ ¬ ◌͠ + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, U00A6 ] }; // ¦ + key { [ U003B, U003A, VoidSymbol, VoidSymbol ] }; // ; : + key { [ U0071, U0051, VoidSymbol, VoidSymbol ] }; // q Q + key { [ U006A, U004A, VoidSymbol, VoidSymbol ] }; // j J + key { [ U006B, U004B, VoidSymbol, VoidSymbol ] }; // k K + key { [ U0078, U0058, U00D7, U00B7 ] }; // x X × · + // B row; Lower row, right side + key { [ U0062, U0042, U201D, U2019 ] }; // b B ” ’ + key { [ U006D, U004D, U00B5, U00BA ] }; // m M µ º + key { [ U0077, U0057, VoidSymbol, VoidSymbol ] }; // w W + key { [ U0076, U0056, U201C, U2018 ] }; // v V “ ‘ + key { [ U007A, U005A, U00AB, U00BB ] }; // z Z « » + + // A row + key { [ 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 { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // E row; Numerals row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // D row; QWERTY row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1735, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜵ (comma) + key { [ U1736, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜶ (period) + key { [ U1709, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜉ (Pa) + key { [ U170C, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜌ (Ya) + // D row; QWERTY row, right side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1704, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜄ (Ga) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U170D, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜍ (Ra) + key { [ U170E, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜎ (La) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1714, U1714, VoidSymbol, VoidSymbol ] }; // ◌᜔ (virama) ◌᜔ (virama) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // C row; Home row, left side + key { [ U1700, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜀ (A) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + key { [ U1713, U1702, VoidSymbol, VoidSymbol ] }; // ◌ᜓ (o/u) ᜂ (O/U) + key { [ U1712, U1701, VoidSymbol, VoidSymbol ] }; // ◌ᜒ (e/i) ᜁ (E/I) + // C row; Home row, right side + key { [ U1707, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜇ (Da) + key { [ U1711, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜑ (Ha) + key { [ U1706, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜆ (Ta) + key { [ U1708, U1705, VoidSymbol, VoidSymbol ] }; // ᜈ (Na) ᜅ (Nga) + key { [ U1710, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜐ (Sa) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // B row; Lower row, left side + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ U1703, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜃ (Ka) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + // B row; Lower row, right side + key { [ U170A, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜊ (Ba) + key { [ U170B, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜋ (Ma) + key { [ U170F, VoidSymbol, VoidSymbol, VoidSymbol ] }; // ᜏ (Wa) + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + key { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] }; // + + // A row + key { [ 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 -// 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 { [ 0x100064b , 0x100007E, 0x100200C ] }; - key { [ 0x1000031 , 0x1000021 ] }; - key { [ 0x1000032 , 0x1000040 ] }; - key { [ 0x1000033 , 0x1000023 ] }; - key { [ 0x1000034 , 0x1000024 ] }; - key { [ 0x1000035 , 0x1000025 ] }; - key { [ 0x1000036 , 0x100005E ] }; - key { [ 0x1000037 , 0x1000026 ] }; - key { [ 0x1000038 , 0x100002A ] }; - key { [ 0x1000039 , 0x1000029 ] }; - key { [ 0x1000030 , 0x1000028 ] }; - key { [ 0x100002D , 0x100005F ] }; - key { [ 0x100003D , 0x100002B ] }; - key { [ 0x1000642 , 0x1000652, 0x100200D ] }; - key { [ 0x1000648 , 0x1000624, 0x100200C ] }; - key { [ 0x1000639 , 0x1000670 ] }; - key { [ 0x1000631 , 0x1000691 ] }; - key { [ 0x100062a , 0x1000679 ] }; - key { [ 0x10006d2 , 0x100064E ] }; - key { [ 0x1000621 , 0x1000626 ] }; - key { [ 0x10006cc , 0x1000650 ] }; - key { [ 0x10006c1 , 0x10006c3 ] }; - key { [ 0x100067e , 0x100064f ] }; - key { [ 0x100005d , 0x100007D ] }; - key { [ 0x100005b , 0x100007B ] }; - - key { [ 0x1000627 , 0x1000622 ] }; - key { [ 0x1000633 , 0x1000635 ] }; - key { [ 0x100062f , 0x1000688 ] }; - key { [ 0x1000641 , 0x1000651 ] }; - key { [ 0x10006af , 0x100063a ] }; - key { [ 0x100062D, 0x10006BE ] }; - key { [ 0x100062c , 0x1000636 ] }; - key { [ 0x10006a9 , 0x100062e ] }; - key { [ 0x1000644 , 0x1000654 ] }; - key { [ 0x100061b , 0x100003a ] }; - key { [ 0x1000027 , 0x1000022 ] }; - key { [ 0x100005C, 0x100007C ] }; - - key { [ bar , brokenbar ] }; - key { [ 0x1000632 , 0x1000630, 0x100200E ] }; - key { [ 0x1000634 , 0x1000698, 0x100202A ] }; - key { [ 0x1000686 , 0x100062b, 0x100202D ] }; - key { [ 0x1000637 , 0x1000638, 0x100202C ] }; - key { [ 0x1000628 , 0x100002e, 0x100202E ] }; - key { [ 0x1000646 , 0x10006ba, 0x100202B ] }; - key { [ 0x1000645 , 0x1000658, 0x100200F ] }; - key { [ 0x100060c , 0x100003c ] }; - key { [ 0x10006d4 , 0x100003E ] }; - key { [ 0x100002f , 0x100061f ] }; - -// key { [ 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 { [ 0x100007E , 0x100064B ] }; - key { [ 0x10006F1 , 0x1000031, 0x1000021 ] }; - key { [ 0x10006F2 , 0x1000032, 0x1000040 ] }; - key { [ 0x10006F3 , 0x1000033, 0x1000023 ] }; - key { [ 0x10006F4 , 0x1000034 ] }; - key { [ 0x10006F5 , 0x1000035, 0x100066A ] }; - key { [ 0x10006F6 , 0x1000036 ] }; - key { [ 0x10006F7 , 0x1000037, 0x1000026 ] }; - key { [ 0x10006F8 , 0x1000038, 0x100002A ] }; - key { [ 0x10006F9 , 0x1000039, 0x1000029 ] }; - key { [ 0x10006F0 , 0x1000030, 0x1000028 ] }; - key { [ 0x100002D , 0x100005F ] }; - key { [ 0x100003D , 0x100002B ] }; - key { [ 0x1000642 , 0x1000652 ] }; - key { [ 0x1000648 , 0x1000651, 0x1000602 ] }; - key { [ 0x1000639 , 0x1000670, 0x1000656 ] }; - key { [ 0x1000631 , 0x1000691, 0x1000613 ] }; - key { [ 0x100062a , 0x1000679, 0x1000614 ] }; - key { [ 0x10006d2 , 0x100064E, 0x1000601 ] }; - key { [ 0x1000621 , 0x1000626, 0x1000654 ] }; - key { [ 0x10006cc , 0x1000650, 0x1000611 ] }; - key { [ 0x10006c1 , 0x10006c3 ] }; - key { [ 0x100067e , 0x100064f, 0x1000657 ] }; - key { [ 0x100005d , 0x100007D ] }; - key { [ 0x100005b , 0x100007B ] }; - - key { [ 0x1000627 , 0x1000622, 0x100FDF2 ] }; - key { [ 0x1000633 , 0x1000635, 0x1000610 ] }; - key { [ 0x100062f , 0x1000688, 0x100FDFA ] }; - key { [ 0x1000641 , 0x1000651 ] }; - key { [ 0x10006af , 0x100063a ] }; - key { [ 0x100062D, 0x10006BE, 0x1000612 ] }; - key { [ 0x100062c , 0x1000636, 0x100FDFB ] }; - key { [ 0x10006a9 , 0x100062e ] }; - key { [ 0x1000644 , 0x1000654 ] }; - key { [ 0x100061b , 0x100003a ] }; - key { [ 0x1000027 , 0x1000022 ] }; - key { [ 0x100005C, 0x100007C ] }; - - key { [ bar , brokenbar ] }; - key { [ 0x1000632 , 0x1000630, 0x100060F ] }; - key { [ 0x1000634 , 0x1000698, 0x100060E ] }; - key { [ 0x1000686 , 0x100062b, 0x1000603 ] }; - key { [ 0x1000637 , 0x1000638 ] }; - key { [ 0x1000628 , 0x100002e, 0x100FDFD ] }; - key { [ 0x1000646 , 0x10006ba, 0x1000600 ] }; - key { [ 0x1000645 , 0x1000658 ] }; - key { [ 0x100060c , 0x100003c, 0x100003C ] }; - key { [ 0x10006d4 , 0x100066B, 0x100003E ] }; - key { [ 0x100002f , 0x100061F ] }; - -// key { [ 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 { [ 0x1000060 , 0x100007E, 0x100200C ] }; - key { [ 0x1000031 , 0x1000021 ] }; - key { [ 0x1000032 , 0x1000040 ] }; - key { [ 0x1000033 , 0x1000023 ] }; - key { [ 0x1000034 , 0x1000024 ] }; - key { [ 0x1000035 , 0x100066A ] }; - key { [ 0x1000036 , 0x100005E ] }; - key { [ 0x1000037 , 0x10006D6 ] }; - key { [ 0x1000038 , 0x100066D ] }; - key { [ 0x1000039 , 0x1000029 ] }; - key { [ 0x1000030 , 0x1000028 ] }; - key { [ 0x100002D , 0x100005F ] }; - key { [ 0x100003D , 0x100002B ] }; - key { [ 0x1000637 , 0x1000638, 0x100200D ] }; - key { [ 0x1000635 , 0x1000636, 0x100200C ] }; - key { [ 0x10006BE , 0x1000630 ] }; - key { [ 0x100062F , 0x1000688 ] }; - key { [ 0x1000679 , 0x100062B ] }; - key { [ 0x100067E , 0x1000651 ] }; - key { [ 0x100062A , 0x10006C3 ] }; - key { [ 0x1000628 , 0x1000640 ] }; - key { [ 0x100062C , 0x1000686 ] }; - key { [ 0x100062D , 0x100062E ] }; - key { [ 0x100005d , 0x100007D ] }; - key { [ 0x100005b , 0x100007B ] }; - - key { [ 0x1000645 , 0x1000698 ] }; - key { [ 0x1000648 , 0x1000632 ] }; - key { [ 0x1000631 , 0x1000691 ] }; - key { [ 0x1000646 , 0x10006BA ] }; - key { [ 0x1000644 , 0x10006C2 ] }; - key { [ 0x10006C1 , 0x1000621 ] }; - key { [ 0x1000627 , 0x1000622 ] }; - key { [ 0x10006a9 , 0x10006AF ] }; - key { [ 0x10006CC , 0x100064A ] }; - key { [ 0x100061b , 0x100003a ] }; - key { [ 0x1000027 , 0x1000022 ] }; - key { [ 0x100005C , 0x100007C ] }; - - key { [ bar , brokenbar ] }; - key { [ 0x1000642 , 0x100200D, 0x100200E ] }; - key { [ 0x1000641 , 0x100200C, 0x100202A ] }; - key { [ 0x10006D2 , 0x10006D3, 0x100202D ] }; - key { [ 0x1000633 , 0x100200E, 0x100202C ] }; - key { [ 0x1000634 , 0x1000624, 0x100202E ] }; - key { [ 0x100063A , 0x1000626, 0x100202B ] }; - key { [ 0x1000639 , 0x100200F, 0x100200F ] }; - key { [ 0x100060c , 0x100003E ] }; - key { [ 0x10006d4 , 0x100003C ] }; - key { [ 0x100002F , 0x100061f ] }; - - - include "level3(ralt_switch)" - - // End alphanumeric section -}; - -partial alphanumeric_keys -xkb_symbols "snd" { - name[Group1]= "Pakistan - Sindhi"; -// www.bhurgri.com - - key { [ 0x1002019, 0x1002018 ] }; - key { [ 1, exclam, 0x1000610 ] }; - key { [ 2, 0x1000670, 0x1000611 ] }; - key { [ 3, 0x1000621, 0x1000613 ] }; - key { [ 4, 0x1000621, 0x1000612 ] }; - key { [ 5, 0x1000621, 0x1002026 ] }; - key { [ 6, 0x1000621, 0x1002022 ] }; - key { [ 7, 0x10006FD ] }; - key { [ 8, asterisk ] }; - key { [ 9, parenright ] }; - key { [ 0, parenleft ] }; - key { [ 0x100068F, 0x100005F, 0x100002D ] }; - key { [ 0x100068C, plus, 0x100003D ] }; - key { [ 0x100068D, 0x100067A, 0x100007C ] }; - - key { [ 0x1000642, 0x100064E, 0x100064B ] }; - key { [ 0x1000635, 0x1000636, 0x100FDFA ] }; - key { [ 0x100064A, 0x1000650, 0x1000656 ] }; - key { [ 0x1000631, 0x1000699, 0x100FDE6 ] }; - key { [ 0x100062A, 0x100067D, 0x1000629 ] }; - key { [ 0x100067F, 0x100062B, 0x100FDE5 ] }; - key { [ 0x1000639, 0x100063A, 0x100FDE3 ] }; - key { [ 0x10006B3, 0x10006BE, 0x100FDE4 ] }; - key { [ 0x1000648, 0x100064F, 0x1000657 ] }; - key { [ 0x100067E, 0x10006A6 ] }; - key { [ 0x1000687, 0x1000683 ] }; - key { [ 0x1000686, 0x1000684 ] }; - - key { [ 0x1000627, 0x1000622, 0x1000649 ] }; - key { [ 0x1000633, 0x1000634 ] }; - key { [ 0x100062F, 0x100068A ] }; - key { [ 0x1000641, 0x10006A6 ] }; - key { [ 0x10006AF, 0x10006AF ] }; - key { [ 0x1000647, 0x100062D, 0x10006C1 ] }; - key { [ 0x100062C, 0x100062C, 0x100FDFB ] }; - key { [ 0x10006AA, 0x10006E1 ] }; - key { [ 0x1000644, 0x100003A ] }; - key { [ 0x10006A9, 0x100061B ] }; - key { [ 0x10006B1, 0x1000640 ] }; - - key { [ 0x1000632, 0x1000630, 0x1000652 ] }; - key { [ 0x100062E, 0x1000651, 0x100200C ] }; - key { [ 0x1000637, 0x1000638, 0x100200D ] }; - key { [ 0x1000680, 0x1000621, 0x1000624 ] }; - key { [ 0x1000628, 0x100067B, 0x100FDE1 ] }; - key { [ 0x1000646, 0x10006BB, 0x100200E ] }; - key { [ 0x1000645, 0x10006FE, 0x100FDF4 ] }; - key { [ 0x100060C, 0x100201C, 0x100200F ] }; - key { [ period, 0x100201D, 0x10006D4 ] }; - key { [ 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 { [ 0x100064d , 0x100064b ] }; - key { [ 0x10006F1 , 0x1000021 ] }; - key { [ 0x10006F2 , 0x1000003 ] }; - key { [ 0x10006F3 , 0x100002f ] }; - key { [ 0x10006F4 , 0x1000626 ] }; - key { [ 0x10006F5 , 0x1000003 ] }; - key { [ 0x10006F6 , 0x10006d6 ] }; - key { [ 0x10006F7 , 0x1000654 ] }; - key { [ 0x10006F8 , 0x100064c ] }; - key { [ 0x10006F9 , 0x1000029 ] }; - key { [ 0x10006F0 , 0x1000028 ] }; - key { [ 0x1000623 , 0x1000651 ] }; - key { [ 0x1000624 , 0x1000622 ] }; - key { [ 0x1000642 , 0x1000652 ] }; - key { [ 0x1000648 , 0x10000a3 ] }; - key { [ 0x1000639 , 0x10000a5 ] }; - key { [ 0x1000631 , 0x1000691 ] }; - key { [ 0x100062a , 0x1000679 ] }; - key { [ 0x10006d2 , 0x1000601 ] }; - key { [ 0x1000621 , 0x100060c ] }; - key { [ 0x10006cc , 0x1000670 ] }; - key { [ 0x10006c1 , 0x10006c3 ] }; - key { [ 0x100067e , 0x100064f ] }; - key { [ 0x100005d , 0x1000670 ] }; - key { [ 0x100005b , 0x1000670 ] }; - - key { [ 0x1000627 , 0x1000653 ] }; - key { [ 0x1000633 , 0x1000635 ] }; - key { [ 0x100062f , 0x1000688 ] }; - key { [ 0x1000641 , 0x1000003 ] }; - key { [ 0x10006af , 0x100063a ] }; - key { [ 0x10006be , 0x100062d ] }; - key { [ 0x100062c , 0x1000636 ] }; - key { [ 0x10006a9 , 0x100062e ] }; - key { [ 0x1000644 , 0x1000613 ] }; - key { [ 0x100061b , 0x100003a ] }; - key { [ 0x1000670 , 0x1000022 ] }; - key { [ 0x100060e , 0x1000614 ] }; - - key { [ bar , brokenbar ] }; - key { [ 0x1000632 , 0x1000630 ] }; - key { [ 0x1000634 , 0x1000698 ] }; - key { [ 0x1000686 , 0x100062b ] }; - key { [ 0x1000637 , 0x1000638 ] }; - key { [ 0x1000628 , 0x1000612 ] }; - key { [ 0x1000646 , 0x10006ba ] }; - key { [ 0x1000645 , 0x1000003 ] }; - key { [ 0x100060c , 0x1000650 ] }; - key { [ 0x10006d4 , 0x100064e ] }; - key { [ 0x1000003 , 0x100061f ] }; - - // End alphanumeric section -}; - -partial alphanumeric_keys -xkb_symbols "olpc" { - -// Contact: Walter Bender - - include "pk(ara)" - - name[Group1]= "Pakistan"; - - // Keys '~' - '=' - key { [ 0x1000654, 0x100064B ] }; - key { [ 0x10006F1, 0x1000603 ] }; - key { [ 0x10006F2, 0x1000602 ] }; - key { [ 0x10006F3, 0x1000601 ] }; - key { [ 0x10006F4, 0x1000600 ] }; - key { [ 0x10006F5, 0x100060F ] }; - key { [ 0x10006F6, 0x100060E ] }; - key { [ 0x10006F7, 0x1000614 ] }; - key { [ 0x10006F8, 0x1000612 ] }; - key { [ 0x10006F9, 0x1000611 ] }; - key { [ 0x10006F0, 0x1000613 ] }; - key { [ minus, 0x1000610 ] }; - key { [ equal, plus ] }; - - //Keys 'Q' - ']' - key { [ 0x1000642, 0x1000652 ] }; - key { [ 0x1000648, 0x1000651 ] }; - key { [ 0x1000639, 0x1000670 ] }; - key { [ 0x1000631, 0x1000691 ] }; - key { [ 0x100062A, 0x1000679 ] }; - key { [ 0x10006D2, 0x100064E ] }; - key { [ 0x1000621, 0x1000626 ] }; - key { [ 0x10006CC, 0x1000650 ] }; - key { [ 0x10006C1, 0x10006C3 ] }; - key { [ 0x100067E, 0x100064F ] }; - key { [ 0x100FDFD, 0x100FDFA ] }; - key { [ 0x100FDF2, 0x100FDFB ] }; - - // Keys 'A' - ''' - key { [ 0x1000627, 0x1000622 ] }; - key { [ 0x1000633, 0x1000635 ] }; - key { [ 0x100062F, 0x1000688 ] }; - key { [ 0x1000641 ] }; //shift key not available - key { [ 0x10006AF, 0x100063A ] }; - key { [ 0x100062D, 0x10006BE ] }; - key { [ 0x100062C, 0x1000636 ] }; - key { [ 0x10006A9, 0x100062E ] }; - key { [ 0x1000644, 0x1000656 ] }; - key { [ 0x100061B, colon ] }; - key { [ quote, doublequote ] }; - - key { [ backslash, bar ] }; - key { [ space ] }; - - // Keys: 'Z' - '/' - key { [ 0x1000632, 0x1000622 ] }; - key { [ 0x1000634, 0x1000635 ] }; - key { [ 0x1000686, 0x1000688 ] }; - key { [ 0x1000637 ] }; //shift key unavailable - key { [ 0x1000628, 0x100063A ] }; - key { [ 0x1000646, 0x10006BE ] }; - key { [ 0x1000645, 0x1000636 ] }; - key { [ 0x100060C, 0x100062E ] }; - key { [ 0x10006D4, 0x1000656 ] }; - key { [ slash, 0x100061F ] }; - - include "group(olpc)" -}; +// Urdu keymap +// Developed by: +// Zaeem Arshad +// 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 { [ 0x100064b , 0x100007E, 0x100200C ] }; + key { [ 0x1000031 , 0x1000021 ] }; + key { [ 0x1000032 , 0x1000040 ] }; + key { [ 0x1000033 , 0x1000023 ] }; + key { [ 0x1000034 , 0x1000024 ] }; + key { [ 0x1000035 , 0x1000025 ] }; + key { [ 0x1000036 , 0x100005E ] }; + key { [ 0x1000037 , 0x1000026 ] }; + key { [ 0x1000038 , 0x100002A ] }; + key { [ 0x1000039 , 0x1000029 ] }; + key { [ 0x1000030 , 0x1000028 ] }; + key { [ 0x100002D , 0x100005F ] }; + key { [ 0x100003D , 0x100002B ] }; + key { [ 0x1000642 , 0x1000652, 0x100200D ] }; + key { [ 0x1000648 , 0x1000624, 0x100200C ] }; + key { [ 0x1000639 , 0x1000670 ] }; + key { [ 0x1000631 , 0x1000691 ] }; + key { [ 0x100062a , 0x1000679 ] }; + key { [ 0x10006d2 , 0x100064E ] }; + key { [ 0x1000621 , 0x1000626 ] }; + key { [ 0x10006cc , 0x1000650 ] }; + key { [ 0x10006c1 , 0x10006c3 ] }; + key { [ 0x100067e , 0x100064f ] }; + key { [ 0x100005d , 0x100007D ] }; + key { [ 0x100005b , 0x100007B ] }; + + key { [ 0x1000627 , 0x1000622 ] }; + key { [ 0x1000633 , 0x1000635 ] }; + key { [ 0x100062f , 0x1000688 ] }; + key { [ 0x1000641 , 0x1000651 ] }; + key { [ 0x10006af , 0x100063a ] }; + key { [ 0x100062D, 0x10006BE ] }; + key { [ 0x100062c , 0x1000636 ] }; + key { [ 0x10006a9 , 0x100062e ] }; + key { [ 0x1000644 , 0x1000654 ] }; + key { [ 0x100061b , 0x100003a ] }; + key { [ 0x1000027 , 0x1000022 ] }; + key { [ 0x100005C, 0x100007C ] }; + + key { [ bar , brokenbar ] }; + key { [ 0x1000632 , 0x1000630, 0x100200E ] }; + key { [ 0x1000634 , 0x1000698, 0x100202A ] }; + key { [ 0x1000686 , 0x100062b, 0x100202D ] }; + key { [ 0x1000637 , 0x1000638, 0x100202C ] }; + key { [ 0x1000628 , 0x100002e, 0x100202E ] }; + key { [ 0x1000646 , 0x10006ba, 0x100202B ] }; + key { [ 0x1000645 , 0x1000658, 0x100200F ] }; + key { [ 0x100060c , 0x100003c ] }; + key { [ 0x10006d4 , 0x100003E ] }; + key { [ 0x100002f , 0x100061f ] }; + +// key { [ 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 { [ 0x100007E , 0x100064B ] }; + key { [ 0x10006F1 , 0x1000031, 0x1000021 ] }; + key { [ 0x10006F2 , 0x1000032, 0x1000040 ] }; + key { [ 0x10006F3 , 0x1000033, 0x1000023 ] }; + key { [ 0x10006F4 , 0x1000034 ] }; + key { [ 0x10006F5 , 0x1000035, 0x100066A ] }; + key { [ 0x10006F6 , 0x1000036 ] }; + key { [ 0x10006F7 , 0x1000037, 0x1000026 ] }; + key { [ 0x10006F8 , 0x1000038, 0x100002A ] }; + key { [ 0x10006F9 , 0x1000039, 0x1000029 ] }; + key { [ 0x10006F0 , 0x1000030, 0x1000028 ] }; + key { [ 0x100002D , 0x100005F ] }; + key { [ 0x100003D , 0x100002B ] }; + key { [ 0x1000642 , 0x1000652 ] }; + key { [ 0x1000648 , 0x1000651, 0x1000602 ] }; + key { [ 0x1000639 , 0x1000670, 0x1000656 ] }; + key { [ 0x1000631 , 0x1000691, 0x1000613 ] }; + key { [ 0x100062a , 0x1000679, 0x1000614 ] }; + key { [ 0x10006d2 , 0x100064E, 0x1000601 ] }; + key { [ 0x1000621 , 0x1000626, 0x1000654 ] }; + key { [ 0x10006cc , 0x1000650, 0x1000611 ] }; + key { [ 0x10006c1 , 0x10006c3 ] }; + key { [ 0x100067e , 0x100064f, 0x1000657 ] }; + key { [ 0x100005d , 0x100007D ] }; + key { [ 0x100005b , 0x100007B ] }; + + key { [ 0x1000627 , 0x1000622, 0x100FDF2 ] }; + key { [ 0x1000633 , 0x1000635, 0x1000610 ] }; + key { [ 0x100062f , 0x1000688, 0x100FDFA ] }; + key { [ 0x1000641 , 0x1000651 ] }; + key { [ 0x10006af , 0x100063a ] }; + key { [ 0x100062D, 0x10006BE, 0x1000612 ] }; + key { [ 0x100062c , 0x1000636, 0x100FDFB ] }; + key { [ 0x10006a9 , 0x100062e ] }; + key { [ 0x1000644 , 0x1000654 ] }; + key { [ 0x100061b , 0x100003a ] }; + key { [ 0x1000027 , 0x1000022 ] }; + key { [ 0x100005C, 0x100007C ] }; + + key { [ bar , brokenbar ] }; + key { [ 0x1000632 , 0x1000630, 0x100060F ] }; + key { [ 0x1000634 , 0x1000698, 0x100060E ] }; + key { [ 0x1000686 , 0x100062b, 0x1000603 ] }; + key { [ 0x1000637 , 0x1000638 ] }; + key { [ 0x1000628 , 0x100002e, 0x100FDFD ] }; + key { [ 0x1000646 , 0x10006ba, 0x1000600 ] }; + key { [ 0x1000645 , 0x1000658 ] }; + key { [ 0x100060c , 0x100003c, 0x100003C ] }; + key { [ 0x10006d4 , 0x100066B, 0x100003E ] }; + key { [ 0x100002f , 0x100061F ] }; + +// key { [ 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 { [ 0x1000060 , 0x100007E, 0x100200C ] }; + key { [ 0x1000031 , 0x1000021 ] }; + key { [ 0x1000032 , 0x1000040 ] }; + key { [ 0x1000033 , 0x1000023 ] }; + key { [ 0x1000034 , 0x1000024 ] }; + key { [ 0x1000035 , 0x100066A ] }; + key { [ 0x1000036 , 0x100005E ] }; + key { [ 0x1000037 , 0x10006D6 ] }; + key { [ 0x1000038 , 0x100066D ] }; + key { [ 0x1000039 , 0x1000029 ] }; + key { [ 0x1000030 , 0x1000028 ] }; + key { [ 0x100002D , 0x100005F ] }; + key { [ 0x100003D , 0x100002B ] }; + key { [ 0x1000637 , 0x1000638, 0x100200D ] }; + key { [ 0x1000635 , 0x1000636, 0x100200C ] }; + key { [ 0x10006BE , 0x1000630 ] }; + key { [ 0x100062F , 0x1000688 ] }; + key { [ 0x1000679 , 0x100062B ] }; + key { [ 0x100067E , 0x1000651 ] }; + key { [ 0x100062A , 0x10006C3 ] }; + key { [ 0x1000628 , 0x1000640 ] }; + key { [ 0x100062C , 0x1000686 ] }; + key { [ 0x100062D , 0x100062E ] }; + key { [ 0x100005d , 0x100007D ] }; + key { [ 0x100005b , 0x100007B ] }; + + key { [ 0x1000645 , 0x1000698 ] }; + key { [ 0x1000648 , 0x1000632 ] }; + key { [ 0x1000631 , 0x1000691 ] }; + key { [ 0x1000646 , 0x10006BA ] }; + key { [ 0x1000644 , 0x10006C2 ] }; + key { [ 0x10006C1 , 0x1000621 ] }; + key { [ 0x1000627 , 0x1000622 ] }; + key { [ 0x10006a9 , 0x10006AF ] }; + key { [ 0x10006CC , 0x100064A ] }; + key { [ 0x100061b , 0x100003a ] }; + key { [ 0x1000027 , 0x1000022 ] }; + key { [ 0x100005C , 0x100007C ] }; + + key { [ bar , brokenbar ] }; + key { [ 0x1000642 , 0x100200D, 0x100200E ] }; + key { [ 0x1000641 , 0x100200C, 0x100202A ] }; + key { [ 0x10006D2 , 0x10006D3, 0x100202D ] }; + key { [ 0x1000633 , 0x100200E, 0x100202C ] }; + key { [ 0x1000634 , 0x1000624, 0x100202E ] }; + key { [ 0x100063A , 0x1000626, 0x100202B ] }; + key { [ 0x1000639 , 0x100200F, 0x100200F ] }; + key { [ 0x100060c , 0x100003E ] }; + key { [ 0x10006d4 , 0x100003C ] }; + key { [ 0x100002F , 0x100061f ] }; + + + include "level3(ralt_switch)" + + // End alphanumeric section +}; + +partial alphanumeric_keys +xkb_symbols "snd" { + name[Group1]= "Sindhi"; +// www.bhurgri.com + + key { [ 0x1002019, 0x1002018 ] }; + key { [ 1, exclam, 0x1000610 ] }; + key { [ 2, 0x1000670, 0x1000611 ] }; + key { [ 3, 0x1000621, 0x1000613 ] }; + key { [ 4, 0x1000621, 0x1000612 ] }; + key { [ 5, 0x1000621, 0x1002026 ] }; + key { [ 6, 0x1000621, 0x1002022 ] }; + key { [ 7, 0x10006FD ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenright ] }; + key { [ 0, parenleft ] }; + key { [ 0x100068F, 0x100005F, 0x100002D ] }; + key { [ 0x100068C, plus, 0x100003D ] }; + key { [ 0x100068D, 0x100067A, 0x100007C ] }; + + key { [ 0x1000642, 0x100064E, 0x100064B ] }; + key { [ 0x1000635, 0x1000636, 0x100FDFA ] }; + key { [ 0x100064A, 0x1000650, 0x1000656 ] }; + key { [ 0x1000631, 0x1000699, 0x100FDE6 ] }; + key { [ 0x100062A, 0x100067D, 0x1000629 ] }; + key { [ 0x100067F, 0x100062B, 0x100FDE5 ] }; + key { [ 0x1000639, 0x100063A, 0x100FDE3 ] }; + key { [ 0x10006B3, 0x10006BE, 0x100FDE4 ] }; + key { [ 0x1000648, 0x100064F, 0x1000657 ] }; + key { [ 0x100067E, 0x10006A6 ] }; + key { [ 0x1000687, 0x1000683 ] }; + key { [ 0x1000686, 0x1000684 ] }; + + key { [ 0x1000627, 0x1000622, 0x1000649 ] }; + key { [ 0x1000633, 0x1000634 ] }; + key { [ 0x100062F, 0x100068A ] }; + key { [ 0x1000641, 0x10006A6 ] }; + key { [ 0x10006AF, 0x10006AF ] }; + key { [ 0x1000647, 0x100062D, 0x10006C1 ] }; + key { [ 0x100062C, 0x100062C, 0x100FDFB ] }; + key { [ 0x10006AA, 0x10006E1 ] }; + key { [ 0x1000644, 0x100003A ] }; + key { [ 0x10006A9, 0x100061B ] }; + key { [ 0x10006B1, 0x1000640 ] }; + + key { [ 0x1000632, 0x1000630, 0x1000652 ] }; + key { [ 0x100062E, 0x1000651, 0x100200C ] }; + key { [ 0x1000637, 0x1000638, 0x100200D ] }; + key { [ 0x1000680, 0x1000621, 0x1000624 ] }; + key { [ 0x1000628, 0x100067B, 0x100FDE1 ] }; + key { [ 0x1000646, 0x10006BB, 0x100200E ] }; + key { [ 0x1000645, 0x10006FE, 0x100FDF4 ] }; + key { [ 0x100060C, 0x100201C, 0x100200F ] }; + key { [ period, 0x100201D, 0x10006D4 ] }; + key { [ 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 { [ 0x100064d , 0x100064b ] }; + key { [ 0x10006F1 , 0x1000021 ] }; + key { [ 0x10006F2 , 0x1000003 ] }; + key { [ 0x10006F3 , 0x100002f ] }; + key { [ 0x10006F4 , 0x1000626 ] }; + key { [ 0x10006F5 , 0x1000003 ] }; + key { [ 0x10006F6 , 0x10006d6 ] }; + key { [ 0x10006F7 , 0x1000654 ] }; + key { [ 0x10006F8 , 0x100064c ] }; + key { [ 0x10006F9 , 0x1000029 ] }; + key { [ 0x10006F0 , 0x1000028 ] }; + key { [ 0x1000623 , 0x1000651 ] }; + key { [ 0x1000624 , 0x1000622 ] }; + key { [ 0x1000642 , 0x1000652 ] }; + key { [ 0x1000648 , 0x10000a3 ] }; + key { [ 0x1000639 , 0x10000a5 ] }; + key { [ 0x1000631 , 0x1000691 ] }; + key { [ 0x100062a , 0x1000679 ] }; + key { [ 0x10006d2 , 0x1000601 ] }; + key { [ 0x1000621 , 0x100060c ] }; + key { [ 0x10006cc , 0x1000670 ] }; + key { [ 0x10006c1 , 0x10006c3 ] }; + key { [ 0x100067e , 0x100064f ] }; + key { [ 0x100005d , 0x1000670 ] }; + key { [ 0x100005b , 0x1000670 ] }; + + key { [ 0x1000627 , 0x1000653 ] }; + key { [ 0x1000633 , 0x1000635 ] }; + key { [ 0x100062f , 0x1000688 ] }; + key { [ 0x1000641 , 0x1000003 ] }; + key { [ 0x10006af , 0x100063a ] }; + key { [ 0x10006be , 0x100062d ] }; + key { [ 0x100062c , 0x1000636 ] }; + key { [ 0x10006a9 , 0x100062e ] }; + key { [ 0x1000644 , 0x1000613 ] }; + key { [ 0x100061b , 0x100003a ] }; + key { [ 0x1000670 , 0x1000022 ] }; + key { [ 0x100060e , 0x1000614 ] }; + + key { [ bar , brokenbar ] }; + key { [ 0x1000632 , 0x1000630 ] }; + key { [ 0x1000634 , 0x1000698 ] }; + key { [ 0x1000686 , 0x100062b ] }; + key { [ 0x1000637 , 0x1000638 ] }; + key { [ 0x1000628 , 0x1000612 ] }; + key { [ 0x1000646 , 0x10006ba ] }; + key { [ 0x1000645 , 0x1000003 ] }; + key { [ 0x100060c , 0x1000650 ] }; + key { [ 0x10006d4 , 0x100064e ] }; + key { [ 0x1000003 , 0x100061f ] }; + + // End alphanumeric section +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + +// Contact: Walter Bender + + include "pk(ara)" + + name[Group1]= "Urdu (Pakistan)"; + + // Keys '~' - '=' + key { [ 0x1000654, 0x100064B ] }; + key { [ 0x10006F1, 0x1000603 ] }; + key { [ 0x10006F2, 0x1000602 ] }; + key { [ 0x10006F3, 0x1000601 ] }; + key { [ 0x10006F4, 0x1000600 ] }; + key { [ 0x10006F5, 0x100060F ] }; + key { [ 0x10006F6, 0x100060E ] }; + key { [ 0x10006F7, 0x1000614 ] }; + key { [ 0x10006F8, 0x1000612 ] }; + key { [ 0x10006F9, 0x1000611 ] }; + key { [ 0x10006F0, 0x1000613 ] }; + key { [ minus, 0x1000610 ] }; + key { [ equal, plus ] }; + + //Keys 'Q' - ']' + key { [ 0x1000642, 0x1000652 ] }; + key { [ 0x1000648, 0x1000651 ] }; + key { [ 0x1000639, 0x1000670 ] }; + key { [ 0x1000631, 0x1000691 ] }; + key { [ 0x100062A, 0x1000679 ] }; + key { [ 0x10006D2, 0x100064E ] }; + key { [ 0x1000621, 0x1000626 ] }; + key { [ 0x10006CC, 0x1000650 ] }; + key { [ 0x10006C1, 0x10006C3 ] }; + key { [ 0x100067E, 0x100064F ] }; + key { [ 0x100FDFD, 0x100FDFA ] }; + key { [ 0x100FDF2, 0x100FDFB ] }; + + // Keys 'A' - ''' + key { [ 0x1000627, 0x1000622 ] }; + key { [ 0x1000633, 0x1000635 ] }; + key { [ 0x100062F, 0x1000688 ] }; + key { [ 0x1000641 ] }; //shift key not available + key { [ 0x10006AF, 0x100063A ] }; + key { [ 0x100062D, 0x10006BE ] }; + key { [ 0x100062C, 0x1000636 ] }; + key { [ 0x10006A9, 0x100062E ] }; + key { [ 0x1000644, 0x1000656 ] }; + key { [ 0x100061B, colon ] }; + key { [ quote, doublequote ] }; + + key { [ backslash, bar ] }; + key { [ space ] }; + + // Keys: 'Z' - '/' + key { [ 0x1000632, 0x1000622 ] }; + key { [ 0x1000634, 0x1000635 ] }; + key { [ 0x1000686, 0x1000688 ] }; + key { [ 0x1000637 ] }; //shift key unavailable + key { [ 0x1000628, 0x100063A ] }; + key { [ 0x1000646, 0x10006BE ] }; + key { [ 0x1000645, 0x1000636 ] }; + key { [ 0x100060C, 0x100062E ] }; + key { [ 0x10006D4, 0x1000656 ] }; + key { [ 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 { [ q, Q ] }; - key { [ w, W ] }; - key { [ e, E, eogonek, Eogonek ] }; - key { [ o, O, oacute, Oacute ] }; - - key { [ a, A, aogonek, Aogonek ] }; - key { [ s, S, sacute, Sacute ] }; - key { [ f, F ] }; - - key { [ z, Z, zabovedot, Zabovedot ] }; - key { [ x, X, zacute, Zacute ] }; - key { [ c, C, cacute, Cacute ] }; - key { [ 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 { [ 1, exclam, asciitilde, exclamdown ] }; - key { [ 2, quotedbl, dead_caron, oneeighth ] }; - key { [ 3, numbersign, dead_circumflex, sterling ] }; - key { [ 4, dollar, dead_breve, dollar ] }; - key { [ 5, percent, degree, threeeighths ] }; - key { [ 6, ampersand, dead_ogonek, fiveeighths ] }; - key { [ 7, slash, dead_grave, seveneighths ] }; - key { [ 8, parenleft, dead_abovedot, trademark ] }; - key { [ 9, parenright, dead_acute, plusminus ] }; - key { [ 0, equal, dead_doubleacute, degree ] }; - key { [ plus, question, dead_diaeresis, questiondown ] }; - key { [apostrophe, asterisk, dead_cedilla, dead_ogonek ] }; - - key { [ q, Q ] }; - key { [ w, W ] }; - key { [ e, E, EuroSign, cent ] }; - key { [ zabovedot, nacute, division, dead_abovering ] }; - key { [ sacute, cacute, multiply, dead_macron ] }; - - key { [ s, S, dstroke, section ] }; - key { [ d, D, Dstroke, ETH ] }; - key { [ f, F ] }; - key { [ k, K, kra, ampersand ] }; - key { [ l, L, lstroke, Lstroke ] }; - key { [ lstroke, Lstroke, dollar, dead_doubleacute ] }; - key { [ aogonek, eogonek, ssharp, dead_caron ] }; - key { [ abovedot, dead_ogonek, notsign, notsign ] }; - - key { [ oacute, zacute, dead_grave, dead_breve ] }; - key { [ c, C, cent, copyright ] }; - key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; - - include "kpdl(comma)" - - include "level3(ralt_switch)" -}; - -// Polish Dvorak keymaps -// by Rafal Rzepecki - -// 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 { [ c, C, cacute, Cacute ] }; - key { [ l, L, lstroke, Lstroke ] }; - key { [ a, A, aogonek, Aogonek ] }; - key { [ o, O, oacute, Oacute ] }; - key { [ e, E, eogonek, Eogonek ] }; - key { [ n, N, nacute, Nacute ] }; - key { [ s, S, sacute, Sacute ] }; - key { [ v, V, zacute, Zacute ] }; - key { [ 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 { [ apostrophe, quotedbl, doublelowquotemark, rightdoublequotemark ] }; - - // Dead symbols moved to this key - key { [ 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 { [ 1, exclam, doublelowquotemark, rightdoublequotemark ] }; -}; - -// Polish Programmer Dvorak keymap by Michal Nazarewicz -// based on Programmer Dvorak by Roland Kaufmann -// and Polish Dvorak keymaps by Rafal Rzepecki { [ ampersand, percent, doublelowquotemark, rightdoublequotemark ] }; - - // symbols row, right side - - // upper row, left side - - // // upper row, right side - key { [ c, C, cacute, Cacute ] }; - key { [ l, L, lstroke, Lstroke ] }; - - // home row, left side - key { [ a, A, aogonek, Aogonek ], type[Group1] = "EIGHT_LEVEL_ALPHABETIC" }; - key { [ o, O, oacute, Oacute ] }; - key { [ e, E, eogonek, Eogonek ] }; - - // home row, right side - key { [ n, N, nacute, Nacute ] }; - key { [ s, S, sacute, Sacute ] }; - key { [ minus, underscore, hyphen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; - key { [ backslash, bar ] }; - - // lower row, left side - key { [ j, J, doublelowquotemark, rightdoublequotemark ] }; - key { [ k, K, leftdoublequotemark, leftsinglequotemark ] }; - key { [ x, X, zacute, Zacute ] }; - - // lower row, right side - key { [ b, B, rightdoublequotemark, rightsinglequotemark ] }; - key { [ v, V, zacute, Zacute ] }; - key { [ 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 { [ q, Q ] }; - key { [ w, W ] }; - key { [ e, E, eacute, Eacute ] }; - key { [ r, R, ediaeresis, Ediaeresis ] }; - key { [ y, Y, EuroSign, cent ] }; - key { [ u, U, ugrave, Ugrave ] }; - key { [ i, I, ograve, Ograve ] }; - key { [ o, O, oacute, Oacute ] }; - key { [ p, P, ocircumflex, Ocircumflex ] }; - - key { [ a, A, aogonek, Aogonek ] }; - key { [ s, S, atilde, Atilde ] }; - key { [ f, F ] }; - key { [ l, L, lstroke, Lstroke ] }; - - key { [ z, Z, zabovedot, Zabovedot ] }; - key { [ n, N, nacute, Nacute ] }; - - include "kpdl(comma)" - - include "level3(ralt_switch)" -}; - -// Russian Polish-phonetic Dvorak -// by Adrian Dziubek -// -// 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 { [ Cyrillic_ya, Cyrillic_YA ] }; - key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; - key { [ Cyrillic_ka, Cyrillic_KA ] }; - key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; - key { [ Cyrillic_be, Cyrillic_BE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; - key { [ Cyrillic_em, Cyrillic_EM ] }; - key { [ Cyrillic_ve, Cyrillic_VE, Cyrillic_shcha, Cyrillic_SHCHA ] }; - key { [ Cyrillic_ve, Cyrillic_VE, Cyrillic_shcha, Cyrillic_SHCHA ] }; - key { [ Cyrillic_ze, Cyrillic_ZE, Cyrillic_zhe, Cyrillic_ZHE ] }; - // home row - key { [ Cyrillic_a, Cyrillic_A, Cyrillic_ya, Cyrillic_YA ] }; - key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; - key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ] }; - key { [ Cyrillic_u, Cyrillic_U, Cyrillic_yu, Cyrillic_YU ] }; - key { [ Cyrillic_i, Cyrillic_I ] }; - key { [ Cyrillic_de, Cyrillic_DE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; - key { [ Cyrillic_ha, Cyrillic_HA ] }; - key { [ Cyrillic_te, Cyrillic_TE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; - key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; - key { [ Cyrillic_es, Cyrillic_ES, Cyrillic_sha, Cyrillic_SHA ] }; - // upper row - key { [ Cyrillic_pe, Cyrillic_PE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; - key { [ Cyrillic_yeru, Cyrillic_YERU ] }; - key { [ Cyrillic_ef, Cyrillic_EF ] }; - key { [ Cyrillic_ghe, Cyrillic_GHE ] }; - key { [ Cyrillic_tse, Cyrillic_TSE, Cyrillic_che, Cyrillic_CHE ] }; - key { [ Cyrillic_er, Cyrillic_ER, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; - key { [ 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 { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, eogonek, Eogonek ] }; + key { [ o, O, oacute, Oacute ] }; + + key { [ a, A, aogonek, Aogonek ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ f, F ] }; + + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ x, X, zacute, Zacute ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ 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 { [ 1, exclam, asciitilde, exclamdown ] }; + key { [ 2, quotedbl, dead_caron, oneeighth ] }; + key { [ 3, numbersign, dead_circumflex, sterling ] }; + key { [ 4, dollar, dead_breve, dollar ] }; + key { [ 5, percent, degree, threeeighths ] }; + key { [ 6, ampersand, dead_ogonek, fiveeighths ] }; + key { [ 7, slash, dead_grave, seveneighths ] }; + key { [ 8, parenleft, dead_abovedot, trademark ] }; + key { [ 9, parenright, dead_acute, plusminus ] }; + key { [ 0, equal, dead_doubleacute, degree ] }; + key { [ plus, question, dead_diaeresis, questiondown ] }; + key { [apostrophe, asterisk, dead_cedilla, dead_ogonek ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ zabovedot, nacute, division, dead_abovering ] }; + key { [ sacute, cacute, multiply, dead_macron ] }; + + key { [ s, S, dstroke, section ] }; + key { [ d, D, Dstroke, ETH ] }; + key { [ f, F ] }; + key { [ k, K, kra, ampersand ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ lstroke, Lstroke, dollar, dead_doubleacute ] }; + key { [ aogonek, eogonek, ssharp, dead_caron ] }; + key { [ abovedot, dead_ogonek, notsign, notsign ] }; + + key { [ oacute, zacute, dead_grave, dead_breve ] }; + key { [ c, C, cent, copyright ] }; + key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +// Polish Dvorak keymaps +// by Rafal Rzepecki + +// 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 { [ c, C, cacute, Cacute ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ a, A, aogonek, Aogonek ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ e, E, eogonek, Eogonek ] }; + key { [ n, N, nacute, Nacute ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ v, V, zacute, Zacute ] }; + key { [ 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 { [ apostrophe, quotedbl, doublelowquotemark, rightdoublequotemark ] }; + + // Dead symbols moved to this key + key { [ 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 { [ 1, exclam, doublelowquotemark, rightdoublequotemark ] }; +}; + +// Polish Programmer Dvorak keymap by Michal Nazarewicz +// based on Programmer Dvorak by Roland Kaufmann +// and Polish Dvorak keymaps by Rafal Rzepecki { [ ampersand, percent, doublelowquotemark, rightdoublequotemark ] }; + + // symbols row, right side + + // upper row, left side + + // // upper row, right side + key { [ c, C, cacute, Cacute ] }; + key { [ l, L, lstroke, Lstroke ] }; + + // home row, left side + key { [ a, A, aogonek, Aogonek ], type[Group1] = "EIGHT_LEVEL_ALPHABETIC" }; + key { [ o, O, oacute, Oacute ] }; + key { [ e, E, eogonek, Eogonek ] }; + + // home row, right side + key { [ n, N, nacute, Nacute ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ minus, underscore, hyphen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ backslash, bar ] }; + + // lower row, left side + key { [ j, J, doublelowquotemark, rightdoublequotemark ] }; + key { [ k, K, leftdoublequotemark, leftsinglequotemark ] }; + key { [ x, X, zacute, Zacute ] }; + + // lower row, right side + key { [ b, B, rightdoublequotemark, rightsinglequotemark ] }; + key { [ v, V, zacute, Zacute ] }; + key { [ 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 { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, ediaeresis, Ediaeresis ] }; + key { [ y, Y, EuroSign, cent ] }; + key { [ u, U, ugrave, Ugrave ] }; + key { [ i, I, ograve, Ograve ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ p, P, ocircumflex, Ocircumflex ] }; + + key { [ a, A, aogonek, Aogonek ] }; + key { [ s, S, atilde, Atilde ] }; + key { [ f, F ] }; + key { [ l, L, lstroke, Lstroke ] }; + + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ n, N, nacute, Nacute ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +// Russian Polish-phonetic Dvorak +// by Adrian Dziubek +// +// 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 { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_be, Cyrillic_BE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_ve, Cyrillic_VE, Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ve, Cyrillic_VE, Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE, Cyrillic_zhe, Cyrillic_ZHE ] }; + // home row + key { [ Cyrillic_a, Cyrillic_A, Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_u, Cyrillic_U, Cyrillic_yu, Cyrillic_YU ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_de, Cyrillic_DE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_te, Cyrillic_TE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_es, Cyrillic_ES, Cyrillic_sha, Cyrillic_SHA ] }; + // upper row + key { [ Cyrillic_pe, Cyrillic_PE, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_tse, Cyrillic_TSE, Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_er, Cyrillic_ER, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ 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 { [guillemotleft, guillemotright, cedilla, ogonek ] }; key { [ 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 { [ 6, ampersand, threequarters, fiveeighths ] }; key { [ 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 { [ plus, asterisk, dead_diaeresis, dead_diaeresis ] }; key { [ 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 { [ plus, asterisk, quotedbl, quotedbl ] }; key { [ 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 { [ 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 { [ 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 { [ 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 { [ 1, exclam, dead_tilde ] }; key { [ 2, at, dead_caron ] }; @@ -67,7 +67,7 @@ xkb_symbols "cedilla" { include "ro(basic)" - name[Group1]="Romania - Cedilla"; + name[Group1]="Romanian (cedilla)"; key { [ t, T, tcedilla, Tcedilla ] }; key { [ s, S, scedilla, Scedilla ] }; @@ -82,7 +82,7 @@ xkb_symbols "std" { include "us" - name[Group1]="Romania - Standard"; + name[Group1]="Romanian (standard)"; key { [ doublelowquotemark, rightdoublequotemark, grave, asciitilde ] }; key { [ 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 { [ scedilla, Scedilla ] }; key { [ tcedilla, Tcedilla ] }; @@ -141,7 +141,7 @@ xkb_symbols "winkeys" { include "latin" - name[Group1]="Romania - Winkeys"; + name[Group1]="Romanian (WinKeys)"; // Alphanumeric section key { [ 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 { [ w, W, abreve, Abreve ] }; key { [ 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 { [ abreve, Abreve, q, Q ] }; key { [ 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 (Любомир Я. Папуґа) - 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 { [ 3, numerosign ] }; key { [ 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 { [ bar, plus ] }; key { [ numerosign, 1 ] }; key { [ 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 { [ apostrophe, quotedbl ] }; key { [ exclam, 1 ] }; key { [ 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 { [ 1, exclam ] }; key { [ 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 { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ 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 { [ Cyrillic_e, Cyrillic_E ] }; key { [ 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 { [ Cyrillic_e, Cyrillic_E ] }; key { [ 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 { [ parenright, parenleft ] }; key { [ 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 { [ 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 { [ 3, numerosign ] }; key { [ 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 { [ 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 { [ U0457, U0407, U0482, U20DD ] }; // ї Ї ҂ e.g: а⃝ where the last is a combining ten thousands sign key { [ U0461, U0460, U047D, U047C] }; // ѡ Ѡ ѽ Ѽ key { [ 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 { [ 5, percent, EuroSign, cent ] }; - key { [ plus, question, backslash, questiondown ] }; - key { [dead_acute, dead_grave, plusminus, notsign ] }; - - - key { [odiaeresis, Odiaeresis, oslash, Ooblique ] }; - key { [adiaeresis, Adiaeresis, ae, AE ] }; - key { [ section, onehalf, paragraph, threequarters] }; - - key { [apostrophe, asterisk, acute, multiply ] }; - - key { [ space, space, space, nobreakspace ] }; - - key { [ 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 { [ acute, grave, plusminus, notsign ] }; - -}; - -// Swedish Dvorak -partial alphanumeric_keys -xkb_symbols "dvorak" { - - name[Group1]="Sweden - Dvorak"; - - include "se(basic)" - - key { [ aring, Aring, backslash ] }; - key { [ adiaeresis, Adiaeresis, braceleft, bracketleft ] }; - key { [ odiaeresis, Odiaeresis, braceright, bracketright ] }; - key { [ p, P, thorn, THORN ] }; - key { [ y, Y, leftarrow, yen ] }; - key { [ f, F, dstroke, ordfeminine ] }; - key { [ g, G, eng, ENG ] }; - key { [ c, C, copyright, copyright ] }; - key { [ r, R, registered, registered ] }; - key { [ l, L, lstroke, Lstroke ] }; - key { [ comma, semicolon, dead_cedilla, dead_ogonek ] }; - key { [ dead_diaeresis, dead_circumflex, dead_tilde, asciicircum ] }; - - key { [ a, A, ae, AE ] }; - key { [ o, O, oe, OE ] }; - key { [ e, E, EuroSign, cent ] }; - key { [ u, U, downarrow, uparrow ] }; - key { [ i, I, rightarrow, idotless ] }; - key { [ d, D, eth, ETH ] }; - key { [ h, H, hstroke, Hstroke ] }; - key { [ t, T, tslash, Tslash ] }; - key { [ n, N ] }; - key { [ s, S, ssharp, section ] }; - key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; - - key { [ period, colon, periodcentered, dead_abovedot ] }; - key { [ q, Q, at, Greek_OMEGA ] }; - key { [ j, J ] }; - key { [ k, K, kra, ampersand ] }; - key { [ x, X, guillemotright, greater ] }; - key { [ b, B, rightdoublequotemark, apostrophe ] }; - key { [ m, M, mu, masculine ] }; - key { [ w, W, lstroke, Lstroke ] }; - key { [ v, V, leftdoublequotemark, grave ] }; - key { [ 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 { [ Cyrillic_io, Cyrillic_IO ] }; - key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; - - key { [ Cyrillic_ya, Cyrillic_YA ] }; - key { [ Cyrillic_ve, Cyrillic_VE ] }; - key { [ Cyrillic_ie, Cyrillic_IE ] }; - key { [ Cyrillic_er, Cyrillic_ER ] }; - key { [ Cyrillic_te, Cyrillic_TE ] }; - key { [ Cyrillic_yeru, Cyrillic_YERU ] }; - key { [ Cyrillic_u, Cyrillic_U ] }; - key { [ Cyrillic_i, Cyrillic_I ] }; - key { [ Cyrillic_o, Cyrillic_O ] }; - key { [ Cyrillic_pe, Cyrillic_PE ] }; - key { [ Cyrillic_e, Cyrillic_E ] }; - - key { [ Cyrillic_a, Cyrillic_A ] }; - key { [ Cyrillic_es, Cyrillic_ES ] }; - key { [ Cyrillic_de, Cyrillic_DE ] }; - key { [ Cyrillic_ef, Cyrillic_EF ] }; - key { [ Cyrillic_ghe, Cyrillic_GHE ] }; - key { [ Cyrillic_ha, Cyrillic_HA ] }; - key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; - key { [ Cyrillic_ka, Cyrillic_KA ] }; - key { [ Cyrillic_el, Cyrillic_EL ] }; - key { [ Cyrillic_sha, Cyrillic_SHA ] }; - key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; - key { [ Cyrillic_yu, Cyrillic_YU ] }; - - key { [ Cyrillic_che, Cyrillic_CHE ] }; - key { [ Cyrillic_ze, Cyrillic_ZE ] }; - key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; - key { [ Cyrillic_tse, Cyrillic_TSE ] }; - key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; - key { [ Cyrillic_be, Cyrillic_BE ] }; - key { [ Cyrillic_en, Cyrillic_EN ] }; - key { [ 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 { [ 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 { [ section, degree ] }; - key { [ 1, exclam, copyright, exclamdown ] }; - key { [ 2, quotedbl, at, oneeighth ] }; - key { [ 3, numbersign, sterling, yen ] }; - key { [ 4, currency, dollar, cent ] }; - key { [ 6, ampersand ] }; - key { [ 7, slash, bar, backslash ] }; - key { [ 8, parenleft, bracketleft, braceleft ] }; - key { [ 9, parenright, bracketright, braceright ] }; - key { [ comma, semicolon ] }; - key { [ 0, equal ] }; - key { [ period, colon ] }; - key { [ minus, underscore ] }; - key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; - key { [ plus, question ] }; - key { [ adiaeresis, Adiaeresis, ae, AE ] }; - key { [ aring, Aring ] }; - key { [ acute, grave ] }; - key { [ diaeresis, asciicircum, asciitilde ] }; - key { [ 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 { [ aring, Aring, braceleft ] }; - key { [ comma, semicolon, bracketleft ] }; - key { [ period, colon, bracketright ] }; - key { [ p, P, braceright ] }; - key { [ y, Y ] }; - key { [ f, F ] }; - key { [ g, G ] }; - key { [ c, C ] }; - key { [ r, R ] }; - key { [ l, L ] }; - key { [ apostrophe, asterisk ] }; - - key { [ a, A ] }; - key { [ o, O, parenleft ] }; - key { [ e, E, parenright ] }; - key { [ u, U ] }; - key { [ i, I ] }; - key { [ d, D ] }; - key { [ h, H ] }; - key { [ t, T ] }; - key { [ n, N ] }; - key { [ s, S, ssharp ] }; - key { [ minus, underscore ] }; - key { [ less, greater, bar ] }; - - key { [ odiaeresis, Odiaeresis ] }; - key { [ adiaeresis, Adiaeresis ] }; - key { [ q, Q ] }; - key { [ j, J ] }; - key { [ k, K ] }; - key { [ x, X ] }; - key { [ b, B ] }; - key { [ m, M ] }; - key { [ w, W ] }; - key { [ v, V ] }; - key { [ 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 { [ 5, percent, EuroSign, cent ] }; + key { [ plus, question, backslash, questiondown ] }; + key { [dead_acute, dead_grave, plusminus, notsign ] }; + + + key { [odiaeresis, Odiaeresis, oslash, Ooblique ] }; + key { [adiaeresis, Adiaeresis, ae, AE ] }; + key { [ section, onehalf, paragraph, threequarters] }; + + key { [apostrophe, asterisk, acute, multiply ] }; + + key { [ space, space, space, nobreakspace ] }; + + key { [ 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 { [ acute, grave, plusminus, notsign ] }; + +}; + +// Swedish Dvorak +partial alphanumeric_keys +xkb_symbols "dvorak" { + + name[Group1]="Swedish (Dvorak)"; + + include "se(basic)" + + key { [ aring, Aring, backslash ] }; + key { [ adiaeresis, Adiaeresis, braceleft, bracketleft ] }; + key { [ odiaeresis, Odiaeresis, braceright, bracketright ] }; + key { [ p, P, thorn, THORN ] }; + key { [ y, Y, leftarrow, yen ] }; + key { [ f, F, dstroke, ordfeminine ] }; + key { [ g, G, eng, ENG ] }; + key { [ c, C, copyright, copyright ] }; + key { [ r, R, registered, registered ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ comma, semicolon, dead_cedilla, dead_ogonek ] }; + key { [ dead_diaeresis, dead_circumflex, dead_tilde, asciicircum ] }; + + key { [ a, A, ae, AE ] }; + key { [ o, O, oe, OE ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ u, U, downarrow, uparrow ] }; + key { [ i, I, rightarrow, idotless ] }; + key { [ d, D, eth, ETH ] }; + key { [ h, H, hstroke, Hstroke ] }; + key { [ t, T, tslash, Tslash ] }; + key { [ n, N ] }; + key { [ s, S, ssharp, section ] }; + key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; + + key { [ period, colon, periodcentered, dead_abovedot ] }; + key { [ q, Q, at, Greek_OMEGA ] }; + key { [ j, J ] }; + key { [ k, K, kra, ampersand ] }; + key { [ x, X, guillemotright, greater ] }; + key { [ b, B, rightdoublequotemark, apostrophe ] }; + key { [ m, M, mu, masculine ] }; + key { [ w, W, lstroke, Lstroke ] }; + key { [ v, V, leftdoublequotemark, grave ] }; + key { [ 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 { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; + + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ 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 { [ 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 { [ section, degree ] }; + key { [ 1, exclam, copyright, exclamdown ] }; + key { [ 2, quotedbl, at, oneeighth ] }; + key { [ 3, numbersign, sterling, yen ] }; + key { [ 4, currency, dollar, cent ] }; + key { [ 6, ampersand ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, bracketleft, braceleft ] }; + key { [ 9, parenright, bracketright, braceright ] }; + key { [ comma, semicolon ] }; + key { [ 0, equal ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + key { [ odiaeresis, Odiaeresis, oslash, Ooblique ] }; + key { [ plus, question ] }; + key { [ adiaeresis, Adiaeresis, ae, AE ] }; + key { [ aring, Aring ] }; + key { [ acute, grave ] }; + key { [ diaeresis, asciicircum, asciitilde ] }; + key { [ 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 { [ aring, Aring, braceleft ] }; + key { [ comma, semicolon, bracketleft ] }; + key { [ period, colon, bracketright ] }; + key { [ p, P, braceright ] }; + key { [ y, Y ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ c, C ] }; + key { [ r, R ] }; + key { [ l, L ] }; + key { [ apostrophe, asterisk ] }; + + key { [ a, A ] }; + key { [ o, O, parenleft ] }; + key { [ e, E, parenright ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ d, D ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ n, N ] }; + key { [ s, S, ssharp ] }; + key { [ minus, underscore ] }; + key { [ less, greater, bar ] }; + + key { [ odiaeresis, Odiaeresis ] }; + key { [ adiaeresis, Adiaeresis ] }; + key { [ q, Q ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ x, X ] }; + key { [ b, B ] }; + key { [ m, M ] }; + key { [ w, W ] }; + key { [ v, V ] }; + key { [ 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 { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] }; -}; - -partial alphanumeric_keys -xkb_symbols "us" { - - name[Group1]= "Slovenia - US keyboard with Slovenian letters"; - - include "rs(latinyz)" - - key { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] }; -}; - - -partial alphanumeric_keys -xkb_symbols "alternatequotes" { - - name[Group1]= "Slovenia - Use guillemets for quotes"; - - include "rs(latinalternatequotes)" - - key { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] }; -}; +default partial alphanumeric_keys +xkb_symbols "basic" { + + name[Group1]="Slovenian"; + + include "rs(latin)" + + key { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] }; +}; + +partial alphanumeric_keys +xkb_symbols "us" { + + name[Group1]= "Slovenian (US keyboard with Slovenian letters)"; + + include "rs(latinyz)" + + key { type[Group1]="TWO_LEVEL", [ cedilla, diaeresis ] }; +}; + + +partial alphanumeric_keys +xkb_symbols "alternatequotes" { + + name[Group1]= "Slovenian (use guillemets for quotes)"; + + include "rs(latinalternatequotes)" + + key { 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 - - include "latin" - - name[Group1] = "Slovakia"; - - key { [ semicolon, dead_abovering, grave, asciitilde ] }; - key { [ plus, 1, exclam, dead_tilde ] }; - key { [ lcaron, 2, at, dead_caron ] }; - key { [ scaron, 3, numbersign, dead_circumflex ] }; - key { [ ccaron, 4, dollar, dead_breve ] }; - key { [ tcaron, 5, percent, dead_abovering ] }; - key { [ zcaron, 6, asciicircum, dead_ogonek ] }; - key { [ yacute, 7, ampersand, dead_grave ] }; - key { [ aacute, 8, asterisk, dead_abovedot ] }; - key { [ iacute, 9, braceleft, dead_acute ] }; - key { [ eacute, 0, braceright, dead_doubleacute ] }; - key { [ equal, percent, NoSymbol, dead_diaeresis ] }; - key { [dead_acute, dead_caron, dead_macron, dead_cedilla ] }; - - key { [ q, Q, backslash, NoSymbol ] }; - key { [ w, W, bar, Nosymbol ] }; - key { [ e, E, EuroSign, NoSymbol ] }; - key { [ r, R, NoSymbol, NoSymbol ] }; - key { [ t, T, NoSymbol, NoSymbol ] }; - key { [ z, Z, NoSymbol, NoSymbol ] }; - key { [ u, U, NoSymbol, NoSymbol ] }; - key { [ i, I, NoSymbol, NoSymbol ] }; - key { [ o, O, NoSymbol, NoSymbol ] }; - key { [ p, P, NoSymbol, NoSymbol ] }; - - key { [ uacute, slash, bracketleft, division ] }; - key { [adiaeresis, parenleft, bracketright, multiply ] }; - - key { [ a, A, asciitilde, NoSymbol ] }; - key { [ s, S, dstroke, NoSymbol ] }; - key { [ d, D, Dstroke, NoSymbol ] }; - key { [ f, F, bracketleft, NoSymbol ] }; - key { [ g, G, bracketright, NoSymbol ] }; - key { [ h, H, grave, NoSymbol ] }; - key { [ j, J, apostrophe, NoSymbol ] }; - key { [ k, K, lstroke, NoSymbol ] }; - key { [ l, L, Lstroke, NoSymbol ] }; - - key { [ocircumflex, quotedbl, dollar, NoSymbol ] }; - key { [ section, exclam, apostrophe, ssharp ] }; - key { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] }; - key { [ ncaron, parenright, backslash, bar ] }; - - key { [ backslash, bar, slash, NoSymbol ] }; - key { [ y, Y, degree, NoSymbol ] }; - key { [ x, X, numbersign, Nosymbol ] }; - key { [ c, C, ampersand, NoSymbol ] }; - key { [ v, V, at, NoSymbol ] }; - key { [ b, B, braceleft, NoSymbol ] }; - key { [ n, N, braceright, NoSymbol ] }; - key { [ m, M, asciicircum, NoSymbol ] }; - key { [ comma, question, less, NoSymbol ] }; - key { [ period, colon, greater, NoSymbol ] }; - key { [ minus, underscore, asterisk, NoSymbol ] }; - - key { [ space, space, nobreakspace, nobreakspace ] }; - - include "level3(ralt_switch)" -}; - -// Use instead of (useful for keyboard without key) -xkb_symbols "bksl" { - include "sk(basic)" - - name[Group1] = "Slovakia - Extended Backslash"; - - key { [ 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 - - include "sk(basic)" - - name[Group1] = "Slovakia - qwerty"; - - key { [ z, Z, degree, NoSymbol ] }; - key { [ y, Y, NoSymbol, NoSymbol ] }; -}; - -// Use instead of (useful for keyboard without key) -xkb_symbols "qwerty_bksl" { - include "sk(qwerty)" - - name[Group1] = "Slovakia - qwerty, extended Backslash"; - - key { [ 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 + + include "latin" + + name[Group1] = "Slovak"; + + key { [ semicolon, dead_abovering, grave, asciitilde ] }; + key { [ plus, 1, exclam, dead_tilde ] }; + key { [ lcaron, 2, at, dead_caron ] }; + key { [ scaron, 3, numbersign, dead_circumflex ] }; + key { [ ccaron, 4, dollar, dead_breve ] }; + key { [ tcaron, 5, percent, dead_abovering ] }; + key { [ zcaron, 6, asciicircum, dead_ogonek ] }; + key { [ yacute, 7, ampersand, dead_grave ] }; + key { [ aacute, 8, asterisk, dead_abovedot ] }; + key { [ iacute, 9, braceleft, dead_acute ] }; + key { [ eacute, 0, braceright, dead_doubleacute ] }; + key { [ equal, percent, NoSymbol, dead_diaeresis ] }; + key { [dead_acute, dead_caron, dead_macron, dead_cedilla ] }; + + key { [ q, Q, backslash, NoSymbol ] }; + key { [ w, W, bar, Nosymbol ] }; + key { [ e, E, EuroSign, NoSymbol ] }; + key { [ r, R, NoSymbol, NoSymbol ] }; + key { [ t, T, NoSymbol, NoSymbol ] }; + key { [ z, Z, NoSymbol, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol ] }; + key { [ i, I, NoSymbol, NoSymbol ] }; + key { [ o, O, NoSymbol, NoSymbol ] }; + key { [ p, P, NoSymbol, NoSymbol ] }; + + key { [ uacute, slash, bracketleft, division ] }; + key { [adiaeresis, parenleft, bracketright, multiply ] }; + + key { [ a, A, asciitilde, NoSymbol ] }; + key { [ s, S, dstroke, NoSymbol ] }; + key { [ d, D, Dstroke, NoSymbol ] }; + key { [ f, F, bracketleft, NoSymbol ] }; + key { [ g, G, bracketright, NoSymbol ] }; + key { [ h, H, grave, NoSymbol ] }; + key { [ j, J, apostrophe, NoSymbol ] }; + key { [ k, K, lstroke, NoSymbol ] }; + key { [ l, L, Lstroke, NoSymbol ] }; + + key { [ocircumflex, quotedbl, dollar, NoSymbol ] }; + key { [ section, exclam, apostrophe, ssharp ] }; + key { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] }; + key { [ ncaron, parenright, backslash, bar ] }; + + key { [ backslash, bar, slash, NoSymbol ] }; + key { [ y, Y, degree, NoSymbol ] }; + key { [ x, X, numbersign, Nosymbol ] }; + key { [ c, C, ampersand, NoSymbol ] }; + key { [ v, V, at, NoSymbol ] }; + key { [ b, B, braceleft, NoSymbol ] }; + key { [ n, N, braceright, NoSymbol ] }; + key { [ m, M, asciicircum, NoSymbol ] }; + key { [ comma, question, less, NoSymbol ] }; + key { [ period, colon, greater, NoSymbol ] }; + key { [ minus, underscore, asterisk, NoSymbol ] }; + + key { [ space, space, nobreakspace, nobreakspace ] }; + + include "level3(ralt_switch)" +}; + +// Use instead of (useful for keyboard without key) +xkb_symbols "bksl" { + include "sk(basic)" + + name[Group1] = "Slovak (extended Backslash)"; + + key { [ 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 + + include "sk(basic)" + + name[Group1] = "Slovak (qwerty)"; + + key { [ z, Z, degree, NoSymbol ] }; + key { [ y, Y, NoSymbol, NoSymbol ] }; +}; + +// Use instead of (useful for keyboard without key) +xkb_symbols "qwerty_bksl" { + include "sk(qwerty)" + + name[Group1] = "Slovak (qwerty, extended Backslash)"; + + key { [ 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 { [ ampersand, 1, bar, NoSymbol ] }; key { [ 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 { [ 0x100070F, 0x100032E, Arabic_shadda ] }; - key { [ 1, exclam, 0x1000701 ] }; - key { [ 2, 0x100030A, 0x1000702 ] }; - key { [ 3, 0x1000325, 0x1000703 ] }; - key { [ 4, 0x1000749, 0x1000704 ] }; - key { [ 5, 0x1002670, 0x1000705 ] }; - key { [ 6, 0x1002671, 0x1000708 ] }; - key { [ 7, 0x100070A, 0x1000709 ] }; - key { [ 8, 0x10000BB, 0x100070B ] }; - key { [ 9, parenright, 0x100070C ] }; - key { [ 0, parenleft, 0x100070D ] }; - key { [ minus, 0x10000AB, 0x100250C ] }; - key { [ equal, plus, 0x1002510 ] }; - - key { [ 0x1000714, 0x1000730, Arabic_fatha ] }; - key { [ 0x1000728, 0x1000733, Arabic_fathatan ] }; - key { [ 0x1000716, 0x1000736, Arabic_damma ] }; - key { [ 0x1000729, 0x100073A, Arabic_dammatan ] }; - key { [ 0x1000726, 0x100073D, Arabic_madda_above ] }; - key { [ 0x100071C, 0x1000740, Arabic_hamza_above ] }; - key { [ 0x1000725, 0x1000741, 0x1000747 ] }; - key { [ 0x1000717, 0x1000308, 0x1000743 ] }; - key { [ 0x100071E, 0x1000304, 0x1000745 ] }; - key { [ 0x100071A, 0x1000307, 0x100032D ] }; - key { [ 0x1000713, 0x1000303 ] }; - key { [ 0x1000715, 0x100074A ] }; - key { [ 0x1000706, colon ] }; - - key { [ 0x100072B, 0x1000731, Arabic_kasra ] }; - key { [ 0x1000723, 0x1000734, Arabic_kasratan ] }; - key { [ 0x100071D, 0x1000737 ] }; - key { [ 0x1000712, 0x100073B, Arabic_hamza ] }; - key { [ 0x1000720, 0x100073E, Arabic_hamza_below ] }; - key { [ 0x1000710, 0x1000711, Arabic_superscript_alef ] }; - key { [ 0x100072C, Arabic_tatweel, 0x1000748 ] }; - key { [ 0x1000722, 0x1000324, 0x1000744 ] }; - key { [ 0x1000721, 0x1000331, 0x1000746 ] }; - key { [ 0x100071F, 0x1000323 ] }; - key { [ 0x100071B, 0x1000330 ] }; - - key { [ bracketright, 0x1000732, Arabic_sukun ] }; - key { [ bracketleft, 0x1000735 ] }; - key { [ 0x1000724, 0x1000738, 0x100200D ] }; - key { [ 0x100072A, 0x100073C, 0x100200C ] }; - key { [ 0x1000727, 0x100073F, 0x100200E ] }; - key { [ 0x1000700, 0x1000739, 0x100200F ] }; - key { [ 0x100002E, 0x1000742 ] }; - key { [ 0x1000718, Arabic_comma ] }; - key { [ 0x1000719, Arabic_semicolon ] }; - key { [ 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 { [ 0x100070F, 0x100032E, Arabic_shadda ] }; - key { [ 1, exclam, 0x1000701 ] }; - key { [ 2, 0x100030A, 0x1000702 ] }; - key { [ 3, 0x1000325, 0x1000703 ] }; - key { [ 4, 0x1000749, 0x1000704 ] }; - key { [ 5, 0x1002670, 0x1000705 ] }; - key { [ 6, 0x1002671, 0x1000708 ] }; - key { [ 7, 0x100070A, 0x1000709 ] }; - key { [ 8, 0x10000BB, 0x100070B ] }; - key { [ 9, parenright, 0x100070C ] }; - key { [ 0, parenleft, 0x100070D ] }; - key { [ minus, 0x10000AB, 0x100250C ] }; - key { [ equal, plus, 0x1002510 ] }; - - key { [ 0x1000729, 0x1000730, Arabic_fatha ] }; - key { [ 0x1000718, 0x1000733, Arabic_fathatan ] }; - key { [ 0x1000716, 0x1000736, Arabic_damma ] }; - key { [ 0x100072A, 0x100073A, Arabic_dammatan ] }; - key { [ 0x100072C, 0x100073D, Arabic_madda_above ] }; - key { [ 0x100071D, 0x1000740, Arabic_hamza_above ] }; - key { [ 0x100071C, 0x1000741, 0x1000747 ] }; - key { [ 0x1000725, 0x1000308, 0x1000743 ] }; - key { [ 0x1000727, 0x1000304, 0x1000745 ] }; - key { [ 0x1000726, 0x1000307, 0x100032D ] }; - key { [ bracketright, 0x1000303 ] }; - key { [ bracketleft, 0x100074A ] }; - key { [ 0x1000706, colon ] }; - - key { [ 0x1000710, 0x1000731, Arabic_kasra ] }; - key { [ 0x1000723, 0x1000734, Arabic_kasratan ] }; - key { [ 0x1000715, 0x1000737 ] }; - key { [ 0x1000714, 0x100073B, Arabic_hamza ] }; - key { [ 0x1000713, 0x100073E, Arabic_hamza_below ] }; - key { [ 0x1000717, 0x1000711, Arabic_superscript_alef ] }; - key { [ 0x100071B, Arabic_tatweel, 0x1000748 ] }; - key { [ 0x100071F, 0x1000324, 0x1000744 ] }; - key { [ 0x1000720, 0x1000331, 0x1000746 ] }; - key { [ 0x100071A, 0x1000323 ] }; - key { [ 0x100071E, 0x1000330 ] }; - - key { [ space, 0x100200c ] }; - key { [ 0x1000719, 0x1000732, Arabic_sukun ] }; - key { [ 0x1000728, 0x1000735 ] }; - key { [ 0x1000724, 0x1000738, 0x100200D ] }; - key { [ 0x100072B, 0x100073C, 0x100200C ] }; - key { [ 0x1000712, 0x100073F, 0x100200E ] }; - key { [ 0x1000722, 0x1000739, 0x100200F ] }; - key { [ 0x1000721, 0x1000742 ] }; - key { [ 0x1000700, Arabic_comma ] }; - key { [ 0x100002E, Arabic_semicolon ] }; - key { [ 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 { [ 0x100070F, 0x100032E, Arabic_shadda ] }; + key { [ 1, exclam, 0x1000701 ] }; + key { [ 2, 0x100030A, 0x1000702 ] }; + key { [ 3, 0x1000325, 0x1000703 ] }; + key { [ 4, 0x1000749, 0x1000704 ] }; + key { [ 5, 0x1002670, 0x1000705 ] }; + key { [ 6, 0x1002671, 0x1000708 ] }; + key { [ 7, 0x100070A, 0x1000709 ] }; + key { [ 8, 0x10000BB, 0x100070B ] }; + key { [ 9, parenright, 0x100070C ] }; + key { [ 0, parenleft, 0x100070D ] }; + key { [ minus, 0x10000AB, 0x100250C ] }; + key { [ equal, plus, 0x1002510 ] }; + + key { [ 0x1000714, 0x1000730, Arabic_fatha ] }; + key { [ 0x1000728, 0x1000733, Arabic_fathatan ] }; + key { [ 0x1000716, 0x1000736, Arabic_damma ] }; + key { [ 0x1000729, 0x100073A, Arabic_dammatan ] }; + key { [ 0x1000726, 0x100073D, Arabic_madda_above ] }; + key { [ 0x100071C, 0x1000740, Arabic_hamza_above ] }; + key { [ 0x1000725, 0x1000741, 0x1000747 ] }; + key { [ 0x1000717, 0x1000308, 0x1000743 ] }; + key { [ 0x100071E, 0x1000304, 0x1000745 ] }; + key { [ 0x100071A, 0x1000307, 0x100032D ] }; + key { [ 0x1000713, 0x1000303 ] }; + key { [ 0x1000715, 0x100074A ] }; + key { [ 0x1000706, colon ] }; + + key { [ 0x100072B, 0x1000731, Arabic_kasra ] }; + key { [ 0x1000723, 0x1000734, Arabic_kasratan ] }; + key { [ 0x100071D, 0x1000737 ] }; + key { [ 0x1000712, 0x100073B, Arabic_hamza ] }; + key { [ 0x1000720, 0x100073E, Arabic_hamza_below ] }; + key { [ 0x1000710, 0x1000711, Arabic_superscript_alef ] }; + key { [ 0x100072C, Arabic_tatweel, 0x1000748 ] }; + key { [ 0x1000722, 0x1000324, 0x1000744 ] }; + key { [ 0x1000721, 0x1000331, 0x1000746 ] }; + key { [ 0x100071F, 0x1000323 ] }; + key { [ 0x100071B, 0x1000330 ] }; + + key { [ bracketright, 0x1000732, Arabic_sukun ] }; + key { [ bracketleft, 0x1000735 ] }; + key { [ 0x1000724, 0x1000738, 0x100200D ] }; + key { [ 0x100072A, 0x100073C, 0x100200C ] }; + key { [ 0x1000727, 0x100073F, 0x100200E ] }; + key { [ 0x1000700, 0x1000739, 0x100200F ] }; + key { [ 0x100002E, 0x1000742 ] }; + key { [ 0x1000718, Arabic_comma ] }; + key { [ 0x1000719, Arabic_semicolon ] }; + key { [ 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 { [ 0x100070F, 0x100032E, Arabic_shadda ] }; + key { [ 1, exclam, 0x1000701 ] }; + key { [ 2, 0x100030A, 0x1000702 ] }; + key { [ 3, 0x1000325, 0x1000703 ] }; + key { [ 4, 0x1000749, 0x1000704 ] }; + key { [ 5, 0x1002670, 0x1000705 ] }; + key { [ 6, 0x1002671, 0x1000708 ] }; + key { [ 7, 0x100070A, 0x1000709 ] }; + key { [ 8, 0x10000BB, 0x100070B ] }; + key { [ 9, parenright, 0x100070C ] }; + key { [ 0, parenleft, 0x100070D ] }; + key { [ minus, 0x10000AB, 0x100250C ] }; + key { [ equal, plus, 0x1002510 ] }; + + key { [ 0x1000729, 0x1000730, Arabic_fatha ] }; + key { [ 0x1000718, 0x1000733, Arabic_fathatan ] }; + key { [ 0x1000716, 0x1000736, Arabic_damma ] }; + key { [ 0x100072A, 0x100073A, Arabic_dammatan ] }; + key { [ 0x100072C, 0x100073D, Arabic_madda_above ] }; + key { [ 0x100071D, 0x1000740, Arabic_hamza_above ] }; + key { [ 0x100071C, 0x1000741, 0x1000747 ] }; + key { [ 0x1000725, 0x1000308, 0x1000743 ] }; + key { [ 0x1000727, 0x1000304, 0x1000745 ] }; + key { [ 0x1000726, 0x1000307, 0x100032D ] }; + key { [ bracketright, 0x1000303 ] }; + key { [ bracketleft, 0x100074A ] }; + key { [ 0x1000706, colon ] }; + + key { [ 0x1000710, 0x1000731, Arabic_kasra ] }; + key { [ 0x1000723, 0x1000734, Arabic_kasratan ] }; + key { [ 0x1000715, 0x1000737 ] }; + key { [ 0x1000714, 0x100073B, Arabic_hamza ] }; + key { [ 0x1000713, 0x100073E, Arabic_hamza_below ] }; + key { [ 0x1000717, 0x1000711, Arabic_superscript_alef ] }; + key { [ 0x100071B, Arabic_tatweel, 0x1000748 ] }; + key { [ 0x100071F, 0x1000324, 0x1000744 ] }; + key { [ 0x1000720, 0x1000331, 0x1000746 ] }; + key { [ 0x100071A, 0x1000323 ] }; + key { [ 0x100071E, 0x1000330 ] }; + + key { [ space, 0x100200c ] }; + key { [ 0x1000719, 0x1000732, Arabic_sukun ] }; + key { [ 0x1000728, 0x1000735 ] }; + key { [ 0x1000724, 0x1000738, 0x100200D ] }; + key { [ 0x100072B, 0x100073C, 0x100200C ] }; + key { [ 0x1000712, 0x100073F, 0x100200E ] }; + key { [ 0x1000722, 0x1000739, 0x100200F ] }; + key { [ 0x1000721, 0x1000742 ] }; + key { [ 0x1000700, Arabic_comma ] }; + key { [ 0x100002E, Arabic_semicolon ] }; + key { [ 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 - - key { [ underscore, percent ] }; - key { [ Thai_lakkhangyao, plus ] }; - key { [ slash, Thai_leknung ] }; - key { [ minus, Thai_leksong ] }; - key { [ Thai_phosamphao, Thai_leksam ] }; - key { [ Thai_thothung, Thai_leksi ] }; - key { [ Thai_sarau, Thai_sarauu ] }; - key { [ Thai_saraue, Thai_baht ] }; - key { [ Thai_khokhwai, Thai_lekha ] }; - key { [ Thai_totao, Thai_lekhok ] }; - key { [ Thai_chochan, Thai_lekchet ] }; - key { [ Thai_khokhai, Thai_lekpaet ] }; - key { [ Thai_chochang, Thai_lekkao ] }; - - key { [ Thai_maiyamok, Thai_leksun ] }; - key { [ Thai_saraaimaimalai, quotedbl ] }; - key { [ Thai_saraam, Thai_dochada ] }; - key { [ Thai_phophan, Thai_thonangmontho ] }; - key { [ Thai_saraa, Thai_thothong ] }; - key { [ Thai_maihanakat, Thai_nikhahit ] }; - key { [ Thai_saraii, Thai_maitri ] }; - key { [ Thai_rorua, Thai_nonen ] }; - key { [ Thai_nonu, Thai_paiyannoi ] }; - key { [ Thai_yoyak, Thai_yoying ] }; - key { [ Thai_bobaimai, Thai_thothan ] }; - key { [ Thai_loling, comma ] }; - - key { [ Thai_fofan, Thai_ru ] }; - key { [ Thai_hohip, Thai_khorakhang ] }; - key { [ Thai_kokai, Thai_topatak ] }; - key { [ Thai_dodek, Thai_sarao ] }; - key { [ Thai_sarae, Thai_chochoe ] }; - key { [ Thai_maitho, Thai_maitaikhu ] }; - key { [ Thai_maiek, Thai_maichattawa ] }; - key { [ Thai_saraaa, Thai_sorusi ] }; - key { [ Thai_sosua, Thai_sosala ] }; - key { [ Thai_wowaen, Thai_soso ] }; - key { [ Thai_ngongu, period ] }; - - key { [ Thai_phophung, parenleft ] }; - key { [ Thai_popla, parenright ] }; - key { [ Thai_saraae, Thai_choching ] }; - key { [ Thai_oang, Thai_honokhuk ] }; - key { [ Thai_sarai, Thai_phinthu ] }; - key { [ Thai_sarauee, Thai_thanthakhat ] }; - key { [ Thai_thothahan, question ] }; - key { [ Thai_moma, Thai_thophuthao ] }; - key { [ Thai_saraaimaimuan, Thai_lochula ] }; - key { [ Thai_fofa, Thai_lu ] }; - - key { [ 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 { [ underscore, Thai_baht ] }; - key { [ equal, plus ] }; - key { [ Thai_leksong, quotedbl ] }; - key { [ Thai_leksam, slash ] }; - key { [ Thai_leksi, comma ] }; - key { [ Thai_lekha, question ] }; - key { [ Thai_sarauu, Thai_sarau ] }; - key { [ Thai_lekchet, underscore ] }; - key { [ Thai_lekpaet, period ] }; - key { [ Thai_lekkao, parenleft ] }; - key { [ Thai_leksun, parenright ] }; - key { [ Thai_leknung, minus ] }; - key { [ Thai_lekhok, percent ] }; - - key { [ Thai_maitaikhu, Thai_maitri ] }; - key { [ Thai_totao, Thai_ru ] }; - key { [ Thai_yoyak, Thai_maiyamok ] }; - key { [ Thai_oang, Thai_yoying ] }; - key { [ Thai_rorua, Thai_sorusi ] }; - key { [ Thai_maiek, Thai_saraue ] }; - key { [ Thai_dodek, Thai_fofa ] }; - key { [ Thai_moma, Thai_soso ] }; - key { [ Thai_wowaen, Thai_thothung ] }; - key { [ Thai_saraae, Thai_thophuthao ] }; - key { [ Thai_saraaimaimuan, Thai_paiyannoi ] }; - key { [ Thai_chochoe, Thai_lu ] }; - - key { [ Thai_maitho, Thai_maichattawa] }; - key { [ Thai_thothahan, Thai_thothong ] }; - key { [ Thai_ngongu, Thai_saraam ] }; - key { [ Thai_kokai, Thai_nonen ] }; - key { [ Thai_maihanakat, Thai_thanthakhat] }; - key { [ Thai_saraii, Thai_sarauee ] }; - key { [ Thai_saraaa, Thai_phophung ] }; - key { [ Thai_nonu, Thai_chochang ] }; - key { [ Thai_sarae, Thai_sarao ] }; - key { [ Thai_saraaimaimalai, Thai_khorakhang ] }; - key { [ Thai_khokhai, Thai_thonangmontho ] }; - - key { [ Thai_bobaimai, Thai_dochada ] }; - key { [ Thai_popla, Thai_topatak ] }; - key { [ Thai_loling, Thai_thothan ] }; - key { [ Thai_hohip, Thai_phosamphao ] }; - key { [ Thai_sarai, Thai_phinthu ] }; - key { [ Thai_khokhwai, Thai_sosala ] }; - key { [ Thai_sosua, Thai_honokhuk ] }; - key { [ Thai_saraa, Thai_fofan ] }; - key { [ Thai_chochan, Thai_choching ] }; - key { [ Thai_phophan, Thai_lochula ] }; - - key { [ 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 - // modified to TIS-820.2538 - Theppitak Karoonboonyanan - key { [ 0x1000e4f, 0x1000e5b ] }; - key { [ Thai_baht, Thai_lakkhangyao] }; - key { [ slash, Thai_leknung ] }; - key { [ minus, Thai_leksong ] }; - key { [ Thai_phosamphao, Thai_leksam ] }; - key { [ Thai_thothung, Thai_leksi ] }; - key { [ Thai_sarau, Thai_sarauu ] }; - key { [ Thai_saraue, 0x1000e4e ] }; - key { [ Thai_khokhwai, Thai_lekha ] }; - key { [ Thai_totao, Thai_lekhok ] }; - key { [ Thai_chochan, Thai_lekchet ] }; - key { [ Thai_khokhai, Thai_lekpaet ] }; - key { [ Thai_chochang, Thai_lekkao ] }; - - key { [ Thai_maiyamok, Thai_leksun ] }; - key { [ Thai_saraaimaimalai, quotedbl ] }; - key { [ Thai_saraam, Thai_dochada ] }; - key { [ Thai_phophan, Thai_thonangmontho ] }; - key { [ Thai_saraa, Thai_thothong ] }; - key { [ Thai_maihanakat, Thai_nikhahit ] }; - key { [ Thai_saraii, Thai_maitri ] }; - key { [ Thai_rorua, Thai_nonen ] }; - key {type[Group1]="THREE_LEVEL", - [ Thai_nonu, Thai_paiyannoi, 0x1000e5a] }; - key { [ Thai_yoyak, Thai_yoying ] }; - key { [ Thai_bobaimai, Thai_thothan ] }; - key { [ Thai_loling, comma ] }; - - key { [ Thai_fofan, Thai_ru ] }; - key { [ Thai_hohip, Thai_khorakhang ] }; - key { [ Thai_kokai, Thai_topatak ] }; - key { [ Thai_dodek, Thai_sarao ] }; - key { [ Thai_sarae, Thai_chochoe ] }; - key { [ Thai_maitho, Thai_maitaikhu ] }; - key { [ Thai_maiek, Thai_maichattawa ] }; - key { [ Thai_saraaa, Thai_sorusi ] }; - key { [ Thai_sosua, Thai_sosala ] }; - key { [ Thai_wowaen, Thai_soso ] }; - key { [ Thai_ngongu, period ] }; - - key { [ Thai_phophung, parenleft ] }; - key { [ Thai_popla, parenright ] }; - key { [ Thai_saraae, Thai_choching ] }; - key { [ Thai_oang, Thai_honokhuk ] }; - key { [ Thai_sarai, Thai_phinthu ] }; - key { [ Thai_sarauee, Thai_thanthakhat ] }; - key { [ Thai_thothahan, question ] }; - key { [ Thai_moma, Thai_thophuthao ] }; - key { [ Thai_saraaimaimuan, Thai_lochula ] }; - key { [ Thai_fofa, Thai_lu ] }; - - key { [ Thai_khokhon, Thai_khokhuat ] }; -}; - -partial alphanumeric_keys -xkb_symbols "olpc" { - - name[Group1]= "Thailand"; - // The OLPC thai layout - // walter@laptop.org - - key { [ 0x1000E4F, 0x1000E5B ] }; - key { [ 0x1000E3F, 0x1000E45 ] }; - key { [ slash, 0x1000E51 ] }; - key { [ minus, 0x1000E52 ] }; - key { [ 0x1000E20, 0x1000E53 ] }; - key { [ 0x1000E16, 0x1000E54 ] }; - key { [ 0x1000E38, 0x1000E39 ] }; - key { [ 0x1000E36, 0x1000E4E ] }; - key { [ 0x1000E04, 0x1000E55 ] }; - key { [ 0x1000E15, 0x1000E56 ] }; - key { [ 0x1000E08, 0x1000E57 ] }; - key { [ 0x1000E02, 0x1000E58 ] }; - key { [ 0x1000E0A, 0x1000E59 ] }; - - key { [ 0x1000E46, 0x1000E50 ] }; - key { [ 0x1000E44, quotedbl ] }; - key { [ 0x1000E33, 0x1000E0E ] }; - key { [ 0x1000E1E, 0x1000E11 ] }; - key { [ 0x1000E30, 0x1000E18 ] }; - key { [ 0x1000E31, 0x1000E4D ] }; - key { [ 0x1000E35, 0x1000E4A ] }; - key { [ 0x1000E23, 0x1000E13 ] }; - key { [ 0x1000E19, 0x1000E2F ] }; - key { [ 0x1000E22, 0x1000E0D ] }; - key { [ 0x1000E1A, 0x1000E10 ] }; - key { [ 0x1000E25, comma ] }; - - key { [ 0x1000E1F, 0x1000E24 ] }; - key { [ 0x1000E2B, 0x1000E06 ] }; - key { [ 0x1000E01, 0x1000E0F ] }; - key { [ 0x1000E14, 0x1000E42 ] }; - key { [ 0x1000E40, 0x1000E0C ] }; - key { [ 0x1000E49, 0x1000E47 ] }; - key { [ 0x1000E48, 0x1000E4B ] }; - key { [ 0x1000E32, 0x1000E29 ] }; - key { [ 0x1000E2A, 0x1000E28 ] }; - key { [ 0x1000E27, 0x1000E0B ] }; - key { [ 0x1000E07, period ] }; - key { [ 0x1000E05, 0x1000E03 ] }; - - key { [ 0x1000E1C, parenleft ] }; - key { [ 0x1000E1B, parenright ] }; - key { [ 0x1000E41, 0x1000E09 ] }; - key { [ 0x1000E2D, 0x1000E2E ] }; - key { [ 0x1000E34, 0x1000E3A ] }; - key { [ 0x1000E37, 0x1000E4C ] }; - key { [ 0x1000E17, question ] }; - key { [ 0x1000E21, 0x1000E12 ] }; - key { [ 0x1000E43, 0x1000E2C ] }; - key { [ 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 + + key { [ underscore, percent ] }; + key { [ Thai_lakkhangyao, plus ] }; + key { [ slash, Thai_leknung ] }; + key { [ minus, Thai_leksong ] }; + key { [ Thai_phosamphao, Thai_leksam ] }; + key { [ Thai_thothung, Thai_leksi ] }; + key { [ Thai_sarau, Thai_sarauu ] }; + key { [ Thai_saraue, Thai_baht ] }; + key { [ Thai_khokhwai, Thai_lekha ] }; + key { [ Thai_totao, Thai_lekhok ] }; + key { [ Thai_chochan, Thai_lekchet ] }; + key { [ Thai_khokhai, Thai_lekpaet ] }; + key { [ Thai_chochang, Thai_lekkao ] }; + + key { [ Thai_maiyamok, Thai_leksun ] }; + key { [ Thai_saraaimaimalai, quotedbl ] }; + key { [ Thai_saraam, Thai_dochada ] }; + key { [ Thai_phophan, Thai_thonangmontho ] }; + key { [ Thai_saraa, Thai_thothong ] }; + key { [ Thai_maihanakat, Thai_nikhahit ] }; + key { [ Thai_saraii, Thai_maitri ] }; + key { [ Thai_rorua, Thai_nonen ] }; + key { [ Thai_nonu, Thai_paiyannoi ] }; + key { [ Thai_yoyak, Thai_yoying ] }; + key { [ Thai_bobaimai, Thai_thothan ] }; + key { [ Thai_loling, comma ] }; + + key { [ Thai_fofan, Thai_ru ] }; + key { [ Thai_hohip, Thai_khorakhang ] }; + key { [ Thai_kokai, Thai_topatak ] }; + key { [ Thai_dodek, Thai_sarao ] }; + key { [ Thai_sarae, Thai_chochoe ] }; + key { [ Thai_maitho, Thai_maitaikhu ] }; + key { [ Thai_maiek, Thai_maichattawa ] }; + key { [ Thai_saraaa, Thai_sorusi ] }; + key { [ Thai_sosua, Thai_sosala ] }; + key { [ Thai_wowaen, Thai_soso ] }; + key { [ Thai_ngongu, period ] }; + + key { [ Thai_phophung, parenleft ] }; + key { [ Thai_popla, parenright ] }; + key { [ Thai_saraae, Thai_choching ] }; + key { [ Thai_oang, Thai_honokhuk ] }; + key { [ Thai_sarai, Thai_phinthu ] }; + key { [ Thai_sarauee, Thai_thanthakhat ] }; + key { [ Thai_thothahan, question ] }; + key { [ Thai_moma, Thai_thophuthao ] }; + key { [ Thai_saraaimaimuan, Thai_lochula ] }; + key { [ Thai_fofa, Thai_lu ] }; + + key { [ 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 { [ underscore, Thai_baht ] }; + key { [ equal, plus ] }; + key { [ Thai_leksong, quotedbl ] }; + key { [ Thai_leksam, slash ] }; + key { [ Thai_leksi, comma ] }; + key { [ Thai_lekha, question ] }; + key { [ Thai_sarauu, Thai_sarau ] }; + key { [ Thai_lekchet, underscore ] }; + key { [ Thai_lekpaet, period ] }; + key { [ Thai_lekkao, parenleft ] }; + key { [ Thai_leksun, parenright ] }; + key { [ Thai_leknung, minus ] }; + key { [ Thai_lekhok, percent ] }; + + key { [ Thai_maitaikhu, Thai_maitri ] }; + key { [ Thai_totao, Thai_ru ] }; + key { [ Thai_yoyak, Thai_maiyamok ] }; + key { [ Thai_oang, Thai_yoying ] }; + key { [ Thai_rorua, Thai_sorusi ] }; + key { [ Thai_maiek, Thai_saraue ] }; + key { [ Thai_dodek, Thai_fofa ] }; + key { [ Thai_moma, Thai_soso ] }; + key { [ Thai_wowaen, Thai_thothung ] }; + key { [ Thai_saraae, Thai_thophuthao ] }; + key { [ Thai_saraaimaimuan, Thai_paiyannoi ] }; + key { [ Thai_chochoe, Thai_lu ] }; + + key { [ Thai_maitho, Thai_maichattawa] }; + key { [ Thai_thothahan, Thai_thothong ] }; + key { [ Thai_ngongu, Thai_saraam ] }; + key { [ Thai_kokai, Thai_nonen ] }; + key { [ Thai_maihanakat, Thai_thanthakhat] }; + key { [ Thai_saraii, Thai_sarauee ] }; + key { [ Thai_saraaa, Thai_phophung ] }; + key { [ Thai_nonu, Thai_chochang ] }; + key { [ Thai_sarae, Thai_sarao ] }; + key { [ Thai_saraaimaimalai, Thai_khorakhang ] }; + key { [ Thai_khokhai, Thai_thonangmontho ] }; + + key { [ Thai_bobaimai, Thai_dochada ] }; + key { [ Thai_popla, Thai_topatak ] }; + key { [ Thai_loling, Thai_thothan ] }; + key { [ Thai_hohip, Thai_phosamphao ] }; + key { [ Thai_sarai, Thai_phinthu ] }; + key { [ Thai_khokhwai, Thai_sosala ] }; + key { [ Thai_sosua, Thai_honokhuk ] }; + key { [ Thai_saraa, Thai_fofan ] }; + key { [ Thai_chochan, Thai_choching ] }; + key { [ Thai_phophan, Thai_lochula ] }; + + key { [ 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 + // modified to TIS-820.2538 - Theppitak Karoonboonyanan + key { [ 0x1000e4f, 0x1000e5b ] }; + key { [ Thai_baht, Thai_lakkhangyao] }; + key { [ slash, Thai_leknung ] }; + key { [ minus, Thai_leksong ] }; + key { [ Thai_phosamphao, Thai_leksam ] }; + key { [ Thai_thothung, Thai_leksi ] }; + key { [ Thai_sarau, Thai_sarauu ] }; + key { [ Thai_saraue, 0x1000e4e ] }; + key { [ Thai_khokhwai, Thai_lekha ] }; + key { [ Thai_totao, Thai_lekhok ] }; + key { [ Thai_chochan, Thai_lekchet ] }; + key { [ Thai_khokhai, Thai_lekpaet ] }; + key { [ Thai_chochang, Thai_lekkao ] }; + + key { [ Thai_maiyamok, Thai_leksun ] }; + key { [ Thai_saraaimaimalai, quotedbl ] }; + key { [ Thai_saraam, Thai_dochada ] }; + key { [ Thai_phophan, Thai_thonangmontho ] }; + key { [ Thai_saraa, Thai_thothong ] }; + key { [ Thai_maihanakat, Thai_nikhahit ] }; + key { [ Thai_saraii, Thai_maitri ] }; + key { [ Thai_rorua, Thai_nonen ] }; + key {type[Group1]="THREE_LEVEL", + [ Thai_nonu, Thai_paiyannoi, 0x1000e5a] }; + key { [ Thai_yoyak, Thai_yoying ] }; + key { [ Thai_bobaimai, Thai_thothan ] }; + key { [ Thai_loling, comma ] }; + + key { [ Thai_fofan, Thai_ru ] }; + key { [ Thai_hohip, Thai_khorakhang ] }; + key { [ Thai_kokai, Thai_topatak ] }; + key { [ Thai_dodek, Thai_sarao ] }; + key { [ Thai_sarae, Thai_chochoe ] }; + key { [ Thai_maitho, Thai_maitaikhu ] }; + key { [ Thai_maiek, Thai_maichattawa ] }; + key { [ Thai_saraaa, Thai_sorusi ] }; + key { [ Thai_sosua, Thai_sosala ] }; + key { [ Thai_wowaen, Thai_soso ] }; + key { [ Thai_ngongu, period ] }; + + key { [ Thai_phophung, parenleft ] }; + key { [ Thai_popla, parenright ] }; + key { [ Thai_saraae, Thai_choching ] }; + key { [ Thai_oang, Thai_honokhuk ] }; + key { [ Thai_sarai, Thai_phinthu ] }; + key { [ Thai_sarauee, Thai_thanthakhat ] }; + key { [ Thai_thothahan, question ] }; + key { [ Thai_moma, Thai_thophuthao ] }; + key { [ Thai_saraaimaimuan, Thai_lochula ] }; + key { [ Thai_fofa, Thai_lu ] }; + + key { [ Thai_khokhon, Thai_khokhuat ] }; +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + + name[Group1]= "Thai"; + // The OLPC thai layout + // walter@laptop.org + + key { [ 0x1000E4F, 0x1000E5B ] }; + key { [ 0x1000E3F, 0x1000E45 ] }; + key { [ slash, 0x1000E51 ] }; + key { [ minus, 0x1000E52 ] }; + key { [ 0x1000E20, 0x1000E53 ] }; + key { [ 0x1000E16, 0x1000E54 ] }; + key { [ 0x1000E38, 0x1000E39 ] }; + key { [ 0x1000E36, 0x1000E4E ] }; + key { [ 0x1000E04, 0x1000E55 ] }; + key { [ 0x1000E15, 0x1000E56 ] }; + key { [ 0x1000E08, 0x1000E57 ] }; + key { [ 0x1000E02, 0x1000E58 ] }; + key { [ 0x1000E0A, 0x1000E59 ] }; + + key { [ 0x1000E46, 0x1000E50 ] }; + key { [ 0x1000E44, quotedbl ] }; + key { [ 0x1000E33, 0x1000E0E ] }; + key { [ 0x1000E1E, 0x1000E11 ] }; + key { [ 0x1000E30, 0x1000E18 ] }; + key { [ 0x1000E31, 0x1000E4D ] }; + key { [ 0x1000E35, 0x1000E4A ] }; + key { [ 0x1000E23, 0x1000E13 ] }; + key { [ 0x1000E19, 0x1000E2F ] }; + key { [ 0x1000E22, 0x1000E0D ] }; + key { [ 0x1000E1A, 0x1000E10 ] }; + key { [ 0x1000E25, comma ] }; + + key { [ 0x1000E1F, 0x1000E24 ] }; + key { [ 0x1000E2B, 0x1000E06 ] }; + key { [ 0x1000E01, 0x1000E0F ] }; + key { [ 0x1000E14, 0x1000E42 ] }; + key { [ 0x1000E40, 0x1000E0C ] }; + key { [ 0x1000E49, 0x1000E47 ] }; + key { [ 0x1000E48, 0x1000E4B ] }; + key { [ 0x1000E32, 0x1000E29 ] }; + key { [ 0x1000E2A, 0x1000E28 ] }; + key { [ 0x1000E27, 0x1000E0B ] }; + key { [ 0x1000E07, period ] }; + key { [ 0x1000E05, 0x1000E03 ] }; + + key { [ 0x1000E1C, parenleft ] }; + key { [ 0x1000E1B, parenright ] }; + key { [ 0x1000E41, 0x1000E09 ] }; + key { [ 0x1000E2D, 0x1000E2E ] }; + key { [ 0x1000E34, 0x1000E3A ] }; + key { [ 0x1000E37, 0x1000E4C ] }; + key { [ 0x1000E17, question ] }; + key { [ 0x1000E21, 0x1000E12 ] }; + key { [ 0x1000E43, 0x1000E2C ] }; + key { [ 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 -// 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 { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я - key { [ Cyrillic_che, Cyrillic_CHE ] }; // ч Ч - key { [ Cyrillic_es, Cyrillic_ES ] }; // с С - key { [ Cyrillic_em, Cyrillic_EM ] }; // м М - key { [ Cyrillic_i, Cyrillic_I ] }; // и И - key { [ Cyrillic_te, Cyrillic_TE ] }; // т Т - key { [ 0x10004e3, 0x10004e2 ] }; // ӣ Ӣ - key { [ Cyrillic_be, Cyrillic_BE ] }; // б Б - key { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю - key { [ period, comma ] }; // . , - key { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф - key { [ 0x10004b7, 0x10004b6 ] }; // ҷ Ҷ - key { [ Cyrillic_ve, Cyrillic_VE ] }; // в В - key { [ Cyrillic_a, Cyrillic_A ] }; // а А - key { [ Cyrillic_pe, Cyrillic_PE ] }; // п П - key { [ Cyrillic_er, Cyrillic_ER ] }; // р Р - key { [ Cyrillic_o, Cyrillic_O ] }; // о О - key { [ Cyrillic_el, Cyrillic_EL ] }; // л Л - key { [ Cyrillic_de, Cyrillic_DE ] }; // д Д - key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж - key { [ Cyrillic_e, Cyrillic_E ] }; // э Э - key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й - key { [ 0x100049b, 0x100049a ] }; // қ Қ - key { [ Cyrillic_u, Cyrillic_U ] }; // у У - key { [ Cyrillic_ka, Cyrillic_KA ] }; // к К - key { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е - key { [ Cyrillic_en, Cyrillic_EN ] }; // н Н - key { [ Cyrillic_ghe, Cyrillic_GHE ] }; // г Г - key { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш - key { [ 0x10004b3, 0x10004b2 ] }; // ҳ Ҳ - key { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З - key { [ Cyrillic_ha, Cyrillic_HA ] }; // х Х - key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ - key { [ 1, exclam, 0x10000a7 ] }; // 1 ! § - key { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « » - key { [ 3, numerosign ] }; // 3 № - key { [ 4, semicolon ] }; // 4 ; - key { [ 5, percent ] }; // 5 % - key { [ 6, colon, 0x1002013 ] }; // 6 : – - key { [ 7, question, ampersand ] }; // 7 ? & - key { [ 8, asterisk ] }; // 8 * - key { [ 9, parenleft ] }; // 9 ( - key { [ 0, parenright, 0x10000b0 ] }; // 0 ) ° - key { [ 0x1000493, 0x1000492, minus, underscore ] }; // ғ Ғ - _ - key { [ 0x10004ef, 0x10004ee, equal, plus ] }; // ӯ Ӯ = + - key { [ backslash, slash ] }; // \ / - key { [ slash, bar ] }; // / | - key { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё -}; - -// -------------------------------------------------------------------- -// -------------- Tojiki Rusi Keyboard Layout-------------------------- -// -------------------------------------------------------------------- -// AEN -// 2001/12/23 by Leon Kanter -// 2005/12/09 Valery Inozemtsev -// Pablo Saratxaga (for the dead keys changes) -// -------------------------------------------------------------------- - -xkb_symbols "legacy" -{ - name[Group1] = "Tajikistan - Legacy"; - - include "kpdl(comma)" - include "level3(ralt_switch)" - - key { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я - key { [ Cyrillic_che, Cyrillic_CHE, 0x10004b7, 0x10004b6 ] }; // ч Ч ҷ Ҷ - key { [ Cyrillic_es, Cyrillic_ES ] }; // с С - key { [ Cyrillic_em, Cyrillic_EM ] }; // м М - key { [ Cyrillic_i, Cyrillic_I, 0x10004e3, 0x10004e2 ] }; // и И ӣ Ӣ - key { [ Cyrillic_te, Cyrillic_TE ] }; // т Т - key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; // ь Ь - key { [ Cyrillic_be, Cyrillic_BE ] }; // б Б - key { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю - key { [ period, comma ] }; // . , - key { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф - key { [ Cyrillic_yeru, Cyrillic_YERU ] }; // ы Ы - key { [ Cyrillic_ve, Cyrillic_VE ] }; // в В - key { [ Cyrillic_a, Cyrillic_A ] }; // а А - key { [ Cyrillic_pe, Cyrillic_PE ] }; // п П - key { [ Cyrillic_er, Cyrillic_ER ] }; // р Р - key { [ Cyrillic_o, Cyrillic_O ] }; // о О - key { [ Cyrillic_el, Cyrillic_EL ] }; // л Л - key { [ Cyrillic_de, Cyrillic_DE ] }; // д Д - key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж - key { [ Cyrillic_e, Cyrillic_E ] }; // э Э - key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й - key { [ Cyrillic_tse, Cyrillic_TSE ] }; // ц Ц - key { [ Cyrillic_u, Cyrillic_U, 0x10004ef, 0x10004ee ] }; // у У ӯ Ӯ - key { [ Cyrillic_ka, Cyrillic_KA, 0x100049b, 0x100049a ] }; // к К қ Қ - key { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е - key { [ Cyrillic_en, Cyrillic_EN ] }; // н Н - key { [ Cyrillic_ghe, Cyrillic_GHE, 0x1000493, 0x1000492 ] }; // г Г ғ Ғ - key { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш - key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; // щ Щ - key { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З - key { [ Cyrillic_ha, Cyrillic_HA, 0x10004b3, 0x10004b2 ] }; // х Х ҳ Ҳ - key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ - key { [ 1, exclam, 0x10000a7 ] }; // 1 ! § - key { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « » - key { [ 3, numerosign ] }; // 3 № - key { [ 4, semicolon ] }; // 4 ; - key { [ 5, percent ] }; // 5 % - key { [ 6, colon, 0x1002013 ] }; // 6 : – - key { [ 7, question, ampersand ] }; // 7 ? & - key { [ 8, asterisk ] }; // 8 * - key { [ 9, parenleft ] }; // 9 ( - key { [ 0, parenright ] }; // 0 ) - key { [ minus, underscore ] }; // - _ - key { [ equal, plus ] }; // = + - key { [ backslash, slash ] }; // \ / - key { [ slash, bar ] }; // / | - key { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё -}; +// 17/07/2008 +// ------------------------------------------------------------- +// Standard Tojiki Keyboard Layout, Official Standard +// ------------------------------------------------------------- +// Created by Victor Ibragimov +// 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 { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я + key { [ Cyrillic_che, Cyrillic_CHE ] }; // ч Ч + key { [ Cyrillic_es, Cyrillic_ES ] }; // с С + key { [ Cyrillic_em, Cyrillic_EM ] }; // м М + key { [ Cyrillic_i, Cyrillic_I ] }; // и И + key { [ Cyrillic_te, Cyrillic_TE ] }; // т Т + key { [ 0x10004e3, 0x10004e2 ] }; // ӣ Ӣ + key { [ Cyrillic_be, Cyrillic_BE ] }; // б Б + key { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю + key { [ period, comma ] }; // . , + key { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф + key { [ 0x10004b7, 0x10004b6 ] }; // ҷ Ҷ + key { [ Cyrillic_ve, Cyrillic_VE ] }; // в В + key { [ Cyrillic_a, Cyrillic_A ] }; // а А + key { [ Cyrillic_pe, Cyrillic_PE ] }; // п П + key { [ Cyrillic_er, Cyrillic_ER ] }; // р Р + key { [ Cyrillic_o, Cyrillic_O ] }; // о О + key { [ Cyrillic_el, Cyrillic_EL ] }; // л Л + key { [ Cyrillic_de, Cyrillic_DE ] }; // д Д + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж + key { [ Cyrillic_e, Cyrillic_E ] }; // э Э + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й + key { [ 0x100049b, 0x100049a ] }; // қ Қ + key { [ Cyrillic_u, Cyrillic_U ] }; // у У + key { [ Cyrillic_ka, Cyrillic_KA ] }; // к К + key { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е + key { [ Cyrillic_en, Cyrillic_EN ] }; // н Н + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; // г Г + key { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш + key { [ 0x10004b3, 0x10004b2 ] }; // ҳ Ҳ + key { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З + key { [ Cyrillic_ha, Cyrillic_HA ] }; // х Х + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ + key { [ 1, exclam, 0x10000a7 ] }; // 1 ! § + key { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « » + key { [ 3, numerosign ] }; // 3 № + key { [ 4, semicolon ] }; // 4 ; + key { [ 5, percent ] }; // 5 % + key { [ 6, colon, 0x1002013 ] }; // 6 : – + key { [ 7, question, ampersand ] }; // 7 ? & + key { [ 8, asterisk ] }; // 8 * + key { [ 9, parenleft ] }; // 9 ( + key { [ 0, parenright, 0x10000b0 ] }; // 0 ) ° + key { [ 0x1000493, 0x1000492, minus, underscore ] }; // ғ Ғ - _ + key { [ 0x10004ef, 0x10004ee, equal, plus ] }; // ӯ Ӯ = + + key { [ backslash, slash ] }; // \ / + key { [ slash, bar ] }; // / | + key { [ Cyrillic_io, Cyrillic_IO ] }; // ё Ё +}; + +// -------------------------------------------------------------------- +// -------------- Tojiki Rusi Keyboard Layout-------------------------- +// -------------------------------------------------------------------- +// AEN +// 2001/12/23 by Leon Kanter +// 2005/12/09 Valery Inozemtsev +// Pablo Saratxaga (for the dead keys changes) +// -------------------------------------------------------------------- + +xkb_symbols "legacy" +{ + name[Group1] = "Tajik (legacy)"; + + include "kpdl(comma)" + include "level3(ralt_switch)" + + key { [ Cyrillic_ya, Cyrillic_YA ] }; // я Я + key { [ Cyrillic_che, Cyrillic_CHE, 0x10004b7, 0x10004b6 ] }; // ч Ч ҷ Ҷ + key { [ Cyrillic_es, Cyrillic_ES ] }; // с С + key { [ Cyrillic_em, Cyrillic_EM ] }; // м М + key { [ Cyrillic_i, Cyrillic_I, 0x10004e3, 0x10004e2 ] }; // и И ӣ Ӣ + key { [ Cyrillic_te, Cyrillic_TE ] }; // т Т + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; // ь Ь + key { [ Cyrillic_be, Cyrillic_BE ] }; // б Б + key { [ Cyrillic_yu, Cyrillic_YU ] }; // ю Ю + key { [ period, comma ] }; // . , + key { [ Cyrillic_ef, Cyrillic_EF ] }; // ф Ф + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; // ы Ы + key { [ Cyrillic_ve, Cyrillic_VE ] }; // в В + key { [ Cyrillic_a, Cyrillic_A ] }; // а А + key { [ Cyrillic_pe, Cyrillic_PE ] }; // п П + key { [ Cyrillic_er, Cyrillic_ER ] }; // р Р + key { [ Cyrillic_o, Cyrillic_O ] }; // о О + key { [ Cyrillic_el, Cyrillic_EL ] }; // л Л + key { [ Cyrillic_de, Cyrillic_DE ] }; // д Д + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; // ж Ж + key { [ Cyrillic_e, Cyrillic_E ] }; // э Э + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; // й Й + key { [ Cyrillic_tse, Cyrillic_TSE ] }; // ц Ц + key { [ Cyrillic_u, Cyrillic_U, 0x10004ef, 0x10004ee ] }; // у У ӯ Ӯ + key { [ Cyrillic_ka, Cyrillic_KA, 0x100049b, 0x100049a ] }; // к К қ Қ + key { [ Cyrillic_ie, Cyrillic_IE ] }; // е Е + key { [ Cyrillic_en, Cyrillic_EN ] }; // н Н + key { [ Cyrillic_ghe, Cyrillic_GHE, 0x1000493, 0x1000492 ] }; // г Г ғ Ғ + key { [ Cyrillic_sha, Cyrillic_SHA ] }; // ш Ш + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; // щ Щ + key { [ Cyrillic_ze, Cyrillic_ZE ] }; // з З + key { [ Cyrillic_ha, Cyrillic_HA, 0x10004b3, 0x10004b2 ] }; // х Х ҳ Ҳ + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; // ъ Ъ + key { [ 1, exclam, 0x10000a7 ] }; // 1 ! § + key { [ 2, quotedbl, 0x10000ab, 0x10000bb ] }; // 2 " « » + key { [ 3, numerosign ] }; // 3 № + key { [ 4, semicolon ] }; // 4 ; + key { [ 5, percent ] }; // 5 % + key { [ 6, colon, 0x1002013 ] }; // 6 : – + key { [ 7, question, ampersand ] }; // 7 ? & + key { [ 8, asterisk ] }; // 8 * + key { [ 9, parenleft ] }; // 9 ( + key { [ 0, parenright ] }; // 0 ) + key { [ minus, underscore ] }; // - _ + key { [ equal, plus ] }; // = + + key { [ backslash, slash ] }; // \ / + key { [ slash, bar ] }; // / | + key { [ 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 , 2009 - -// Default layout (based on Vista Turkmen layout) -default partial -xkb_symbols "basic" { - name[Group1]="Turkmenistan"; - - include "us" - key { [ zcaron, Zcaron, grave, asciitilde ] }; - - key { [ adiaeresis, Adiaeresis, q, Q ] }; - key { [ ncaron, Ncaron, bracketleft, braceleft ] }; - key { [odiaeresis, Odiaeresis, bracketright, braceright ] }; - - key { [udiaeresis, Udiaeresis, x, X ] }; - key { [ ccedilla, Ccedilla, c, C ] }; - key { [ yacute, Yacute, v, V ] }; - - key { [ 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 { [ y, Y, yacute, Yacute ] }; - key { [ u, U, udiaeresis, Udiaeresis ] }; - key { [ o, O, odiaeresis, Odiaeresis ] }; - - key { [ a, A, adiaeresis, Adiaeresis ] }; - key { [ s, S, scedilla, Scedilla ] }; - - key { [ z, Z, zcaron, Zcaron ] }; - key { [ c, C, ccedilla, Ccedilla ] }; - key { [ n, N, ncaron, Ncaron ] }; - - include "level3(ralt_switch)" - -}; +// Nazar Annagurban , 2009 + +// Default layout (based on Vista Turkmen layout) +default partial +xkb_symbols "basic" { + name[Group1]="Turkmen"; + + include "us" + key { [ zcaron, Zcaron, grave, asciitilde ] }; + + key { [ adiaeresis, Adiaeresis, q, Q ] }; + key { [ ncaron, Ncaron, bracketleft, braceleft ] }; + key { [odiaeresis, Odiaeresis, bracketright, braceright ] }; + + key { [udiaeresis, Udiaeresis, x, X ] }; + key { [ ccedilla, Ccedilla, c, C ] }; + key { [ yacute, Yacute, v, V ] }; + + key { [ 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 { [ y, Y, yacute, Yacute ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + + key { [ a, A, adiaeresis, Adiaeresis ] }; + key { [ s, S, scedilla, Scedilla ] }; + + key { [ z, Z, zcaron, Zcaron ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ 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 { [ 1, exclam, greater, exclamdown ] }; key { [ 2, apostrophe, sterling, twosuperior ] }; @@ -64,7 +64,7 @@ xkb_symbols "f" { include "latin" - name[Group1]="Turkey - (F)"; + name[Group1]="Turkish (F)"; key { [ 1, exclam, onesuperior, exclamdown ] }; key { [ 2, quotedbl, twosuperior, VoidSymbol ] }; @@ -129,7 +129,7 @@ xkb_symbols "alt" { include "latin" - name[Group1]="Turkey - Alt-Q"; + name[Group1]="Turkish (Alt-Q)"; key { [ 7, ampersand, lowleftcorner, upleftcorner ] }; key { [ 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 { [ i, I, idotless, I ] }; key { [ 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 { [ x, X, gbreve, Gbreve] }; key { [ 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 { [ e, E, ecircumflex, Ecircumflex ] }; key { [ 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 { type[group1] = "FOUR_LEVEL", [ 1, exclam, onesuperior, exclamdown ] }; key { 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 { [ 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 { [ 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 { [ 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 { [ f, F, iacute, Iacute ] }; key { [ 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 { [ grave, asciitilde, dead_grave, dead_tilde ] }; - key { [ 1, exclam, U030D, exclamdown ] }; - key { [ 2, at, U0358, twosuperior ] }; - key { [ 3, numbersign, section, threesuperior ] }; - key { [ 4, dollar, yen, sterling ] }; - key { [ 5, percent, EuroSign, cent ] }; - key { [ 6,asciicircum, dead_circumflex, dead_caron ] }; - key { [ 7, ampersand, dead_acute, NoSymbol ] }; - key { [ 8, asterisk, dead_cedilla, dead_horn ] }; - key { [ 9, parenleft, dead_ogonek, dead_breve ] }; - key { [ 0, parenright, dead_abovedot, dead_abovering ] }; - key { [ minus, underscore, dead_macron, plusminus ] }; - key { [ equal, plus, multiply, division ] }; - - key { [ q, Q, paragraph, degree ] }; - key { [ e, E, eacute, Eacute ] }; - key { [ r, R, U1E5F, U1E5E ] }; - key { [ t, T, U1E6F, U1E6E ] }; - key { [ y, Y, U1E73, U1E72 ] }; - key { [ u, U, U0289, U0244 ] }; - key { [ i, I, U0268, U0197 ] }; - key { [ o, O, oslash, Ooblique ] }; - - key { [ s, S, ssharp, NoSymbol ] }; - key { [ d, D, U1E0F, U1E0E ] }; - key { [ g, G, eng, ENG ] }; - key { [ semicolon, colon, U02D0, dead_diaeresis ] }; - key { [apostrophe, quotedbl, U02BC, dead_doubleacute ] }; - - key { [ c, C, ccedilla, Ccedilla ] }; - key { [ n, N, ntilde, Ntilde ] }; - key { [ m, M, mu, mu ] }; - key { [ comma, less, dead_belowcomma, guillemotleft ] }; - key { [ period, greater, dead_belowdot, guillemotright ] }; - key { [ slash, question, questiondown, dead_hook ] }; - key { [ backslash, bar, notsign, brokenbar ] }; - - include "level3(ralt_switch)" -}; - -partial alphanumeric_keys -xkb_symbols "indigenous" { - - name[Group1]= "Taiwan - Indigenous"; - - include "tw(tw)" - - key { [ U02BC, quotedbl, apostrophe, dead_doubleacute ] }; - - include "level3(ralt_switch)" -}; - -partial alphanumeric_keys -xkb_symbols "saisiyat" { - - name[Group1]= "Taiwan - Saisiyat"; - - include "tw(indigenous)" - - key { [ 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 { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [ 1, exclam, U030D, exclamdown ] }; + key { [ 2, at, U0358, twosuperior ] }; + key { [ 3, numbersign, section, threesuperior ] }; + key { [ 4, dollar, yen, sterling ] }; + key { [ 5, percent, EuroSign, cent ] }; + key { [ 6,asciicircum, dead_circumflex, dead_caron ] }; + key { [ 7, ampersand, dead_acute, NoSymbol ] }; + key { [ 8, asterisk, dead_cedilla, dead_horn ] }; + key { [ 9, parenleft, dead_ogonek, dead_breve ] }; + key { [ 0, parenright, dead_abovedot, dead_abovering ] }; + key { [ minus, underscore, dead_macron, plusminus ] }; + key { [ equal, plus, multiply, division ] }; + + key { [ q, Q, paragraph, degree ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, U1E5F, U1E5E ] }; + key { [ t, T, U1E6F, U1E6E ] }; + key { [ y, Y, U1E73, U1E72 ] }; + key { [ u, U, U0289, U0244 ] }; + key { [ i, I, U0268, U0197 ] }; + key { [ o, O, oslash, Ooblique ] }; + + key { [ s, S, ssharp, NoSymbol ] }; + key { [ d, D, U1E0F, U1E0E ] }; + key { [ g, G, eng, ENG ] }; + key { [ semicolon, colon, U02D0, dead_diaeresis ] }; + key { [apostrophe, quotedbl, U02BC, dead_doubleacute ] }; + + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, mu, mu ] }; + key { [ comma, less, dead_belowcomma, guillemotleft ] }; + key { [ period, greater, dead_belowdot, guillemotright ] }; + key { [ slash, question, questiondown, dead_hook ] }; + key { [ backslash, bar, notsign, brokenbar ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "indigenous" { + + name[Group1]= "Taiwanese (indigenous)"; + + include "tw(tw)" + + key { [ U02BC, quotedbl, apostrophe, dead_doubleacute ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "saisiyat" { + + name[Group1]= "Saisiyat (Taiwan)"; + + include "tw(indigenous)" + + key { [ 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 { [ 0x1000670, VoidSymbol ] }; - - key { [ 0x1000661, VoidSymbol ] }; - key { [ 0x1000662, VoidSymbol ] }; - key { [ 0x1000663, VoidSymbol ] }; - key { [ 0x1000664, VoidSymbol ] }; - key { [ 0x1000665, Arabic_percent ] }; - key { [ 0x1000666, VoidSymbol ] }; - key { [ 0x1000667, VoidSymbol ] }; - key { [ 0x1000668, VoidSymbol ] }; - key { [ 0x1000669, 0x100fd3e ] }; - key { [ 0x1000660, 0x100fd3f ] }; - key { [ minus, Arabic_tatweel ] }; - key { [ equal, plus ] }; - - key { [ Arabic_qaf, Arabic_gaf ] }; - key { [ Arabic_waw, Arabic_hamzaonwaw ] }; - key { [ 0x1000656, Arabic_ain ] }; - key { [ Arabic_ra, Arabic_tteh ] }; - key { [ Arabic_teh, Arabic_tah ] }; - key { [ Arabic_yeh, Arabic_alefmaksura ] }; - key { [ Arabic_damma, Arabic_dammatan ] }; - key { [ Arabic_kasra, Arabic_hamzaonyeh ] }; - key { [ Arabic_sukun, 0x1000657 ] }; - key { [ Arabic_peh, Arabic_tehmarbuta ] }; - key { [ VoidSymbol, VoidSymbol ] }; - - key { [ Arabic_fatha, Arabic_alef ] }; - key { [ Arabic_seen, Arabic_sad ] }; - key { [ Arabic_dal, Arabic_dad ] }; - key { [ Arabic_feh, Arabic_fathatan ] }; - key { [ 0x10006A0, Arabic_ghain ] }; - key { [ Arabic_ha, Arabic_hah ] }; - key { [ Arabic_jeem, VoidSymbol ] }; - key { [ Arabic_kaf, Arabic_kasratan ] }; - key { [ Arabic_lam, Arabic_shadda ] }; - key { [ Arabic_semicolon, VoidSymbol ] }; - key { [ Arabic_hamza, VoidSymbol ] }; - - key { [ Arabic_zain, Arabic_zah ] }; - key { [ Arabic_khah, VoidSymbol ] }; - key { [ Arabic_tcheh, Arabic_sheen ] }; - key { [ 0x10006A8, Arabic_theh ] }; - key { [ Arabic_beh, Arabic_thal ] }; - key { [ Arabic_noon, VoidSymbol ] }; - key { [ Arabic_meem, VoidSymbol ] }; - key { [ Arabic_comma, Arabic_hamzaunderalef ] }; - key { [ 0x10006d4, Arabic_hamzaonalef ] }; - key { [ 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 { [ 0x1000670, VoidSymbol ] }; + + key { [ 0x1000661, VoidSymbol ] }; + key { [ 0x1000662, VoidSymbol ] }; + key { [ 0x1000663, VoidSymbol ] }; + key { [ 0x1000664, VoidSymbol ] }; + key { [ 0x1000665, Arabic_percent ] }; + key { [ 0x1000666, VoidSymbol ] }; + key { [ 0x1000667, VoidSymbol ] }; + key { [ 0x1000668, VoidSymbol ] }; + key { [ 0x1000669, 0x100fd3e ] }; + key { [ 0x1000660, 0x100fd3f ] }; + key { [ minus, Arabic_tatweel ] }; + key { [ equal, plus ] }; + + key { [ Arabic_qaf, Arabic_gaf ] }; + key { [ Arabic_waw, Arabic_hamzaonwaw ] }; + key { [ 0x1000656, Arabic_ain ] }; + key { [ Arabic_ra, Arabic_tteh ] }; + key { [ Arabic_teh, Arabic_tah ] }; + key { [ Arabic_yeh, Arabic_alefmaksura ] }; + key { [ Arabic_damma, Arabic_dammatan ] }; + key { [ Arabic_kasra, Arabic_hamzaonyeh ] }; + key { [ Arabic_sukun, 0x1000657 ] }; + key { [ Arabic_peh, Arabic_tehmarbuta ] }; + key { [ VoidSymbol, VoidSymbol ] }; + + key { [ Arabic_fatha, Arabic_alef ] }; + key { [ Arabic_seen, Arabic_sad ] }; + key { [ Arabic_dal, Arabic_dad ] }; + key { [ Arabic_feh, Arabic_fathatan ] }; + key { [ 0x10006A0, Arabic_ghain ] }; + key { [ Arabic_ha, Arabic_hah ] }; + key { [ Arabic_jeem, VoidSymbol ] }; + key { [ Arabic_kaf, Arabic_kasratan ] }; + key { [ Arabic_lam, Arabic_shadda ] }; + key { [ Arabic_semicolon, VoidSymbol ] }; + key { [ Arabic_hamza, VoidSymbol ] }; + + key { [ Arabic_zain, Arabic_zah ] }; + key { [ Arabic_khah, VoidSymbol ] }; + key { [ Arabic_tcheh, Arabic_sheen ] }; + key { [ 0x10006A8, Arabic_theh ] }; + key { [ Arabic_beh, Arabic_thal ] }; + key { [ Arabic_noon, VoidSymbol ] }; + key { [ Arabic_meem, VoidSymbol ] }; + key { [ Arabic_comma, Arabic_hamzaunderalef ] }; + key { [ 0x10006d4, Arabic_hamzaonalef ] }; + key { [ 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 { [ U2019, apostrophe, U0301, asciitilde ] }; // Apostrophe and Stress symbol key { [ 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 { [ apostrophe, asciitilde ] }; key { [ 1, exclam ] }; @@ -107,7 +107,7 @@ partial alphanumeric_keys xkb_symbols "winkeys" { include "ua(legacy)" - name[Group1]= "Ukraine - Winkeys"; + name[Group1]= "Ukrainian (WinKeys)"; key { [ 3, numerosign ] }; key { [ 4, semicolon ] }; @@ -122,7 +122,7 @@ partial alphanumeric_keys xkb_symbols "typewriter" { include "ua(legacy)" - name[Group1]= "Ukraine - Typewriter"; + name[Group1]= "Ukrainian (typewriter)"; key { [ apostrophe, quotedbl ] }; key { [ exclam, 1 ] }; @@ -151,7 +151,7 @@ partial alphanumeric_keys xkb_symbols "phonetic" { include "ua(legacy)" - name[Group1]= "Ukraine - Phonetic"; + name[Group1]= "Ukrainian (phonetic)"; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ 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 { [ apostrophe, question ] }; key { [ 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 { [ apostrophe, question ] }; key { [ 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 { [ grave, underscore ] }; key { [ 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 { [ 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 { [ 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 { [ 1, exclam ] }; key { [ 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 { [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 -// August 1999 -// Further modified by Ashley Clark -// July 2000 for X 4.0 -// Fix accents into combining marks by Samuel Thibault -// July 2009 - - -partial default alphanumeric_keys -xkb_symbols "basic" { - - include "us" - - name[Group1]= "Vietnam"; - - // Alphanumeric section - key { [ quoteleft, asciitilde ] }; - key { [ abreve, Abreve ] }; - key { [ acircumflex, Acircumflex ] }; - key { [ ecircumflex, Ecircumflex ] }; - key { [ ocircumflex, Ocircumflex ] }; - key { [ 0x1000300, percent, dead_grave, percent ] }; - key { [ 0x1000309, asciicircum, dead_hook, asciicircum ] }; - key { [ 0x1000303, ampersand, dead_tilde, ampersand ] }; - key { [ 0x1000301, asterisk, dead_acute, asterisk ] }; - key { [ 0x1000323, parenleft, dead_belowdot, parenleft ] }; - key { [ dstroke, Dstroke ] }; - key { [ minus, underscore ] }; - key { [ DongSign, plus ] }; - - key { [ uhorn, Uhorn ] }; - key { [ ohorn, Ohorn ] }; - - // End alphanumeric section - - include "level3(ralt_switch)" -}; +// based on: +// vn, TCVN 5712:1993 +// Le Hong Boi +// August 1999 +// Further modified by Ashley Clark +// July 2000 for X 4.0 +// Fix accents into combining marks by Samuel Thibault +// July 2009 + + +partial default alphanumeric_keys +xkb_symbols "basic" { + + include "us" + + name[Group1]= "Vietnamese"; + + // Alphanumeric section + key { [ quoteleft, asciitilde ] }; + key { [ abreve, Abreve ] }; + key { [ acircumflex, Acircumflex ] }; + key { [ ecircumflex, Ecircumflex ] }; + key { [ ocircumflex, Ocircumflex ] }; + key { [ 0x1000300, percent, dead_grave, percent ] }; + key { [ 0x1000309, asciicircum, dead_hook, asciicircum ] }; + key { [ 0x1000303, ampersand, dead_tilde, ampersand ] }; + key { [ 0x1000301, asterisk, dead_acute, asterisk ] }; + key { [ 0x1000323, parenleft, dead_belowdot, parenleft ] }; + key { [ dstroke, Dstroke ] }; + key { [ minus, underscore ] }; + key { [ DongSign, plus ] }; + + key { [ uhorn, Uhorn ] }; + key { [ 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 { [ grave, asciitilde, dead_grave ] }; - key { [ 2, at, yen ] }; - key { [ 3, numbersign, sterling ] }; - key { [ 4, dollar, dollar ] }; - key { [ 5, percent, EuroSign ] }; - key { [ 6, asciicircum, dead_circumflex ] }; - - key { [ e, E, ediaeresis, Ediaeresis ] }; - key { [ r, R, ecircumflex, Ecircumflex ] }; - key { [ t, T, U1e71, U1e70 ] }; - key { [ y, Y, ucircumflex, Ucircumflex ] }; - key { [ u, U, udiaeresis, Udiaeresis ] }; - key { [ i, I, idiaeresis, Idiaeresis ] }; - key { [ o, O, odiaeresis, Odiaeresis ] }; - key { [ p, P, ocircumflex, Ocircumflex ] }; - - key { [ a, A, adiaeresis, Adiaeresis ] }; - key { [ s, S, scaron, Scaron ] }; - key { [ d, D, U1e13, U1e12 ] }; - key { [ l, L, U1e3d, U1e3c ] }; - key { [ semicolon, colon, dead_diaeresis ] }; - key { [apostrophe, quotedbl, dead_acute ] }; - - key { [ n, N, U1e4b, U1e4a ] }; - key { [ m, M, U1e45, U1e44 ] }; - key { [ 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 { [ grave, asciitilde, dead_grave ] }; + key { [ 2, at, yen ] }; + key { [ 3, numbersign, sterling ] }; + key { [ 4, dollar, dollar ] }; + key { [ 5, percent, EuroSign ] }; + key { [ 6, asciicircum, dead_circumflex ] }; + + key { [ e, E, ediaeresis, Ediaeresis ] }; + key { [ r, R, ecircumflex, Ecircumflex ] }; + key { [ t, T, U1e71, U1e70 ] }; + key { [ y, Y, ucircumflex, Ucircumflex ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ i, I, idiaeresis, Idiaeresis ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + key { [ p, P, ocircumflex, Ocircumflex ] }; + + key { [ a, A, adiaeresis, Adiaeresis ] }; + key { [ s, S, scaron, Scaron ] }; + key { [ d, D, U1e13, U1e12 ] }; + key { [ l, L, U1e3d, U1e3c ] }; + key { [ semicolon, colon, dead_diaeresis ] }; + key { [apostrophe, quotedbl, dead_acute ] }; + + key { [ n, N, U1e4b, U1e4a ] }; + key { [ m, M, U1e45, U1e44 ] }; + key { [ period, greater, dead_abovedot ] }; + + include "level3(ralt_switch)" +}; -- cgit v1.2.3