x
Change-Id: I285919fd1d2a0c2dec0541ce3a8bcc664d5d8c4f
This commit is contained in:
@@ -1,29 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
sed -i \
|
|
||||||
-e 's/miRegionCreate\b/RegionCreate/g' \
|
|
||||||
-e 's/miRegionInit\b/RegionInit/g' \
|
|
||||||
-e 's/miRegionDestroy\b/RegionDestroy/g' \
|
|
||||||
-e 's/miRegionUninit\b/RegionUninit/g' \
|
|
||||||
-e 's/miRegionCopy\b/RegionCopy/g' \
|
|
||||||
-e 's/miIntersect\b/RegionIntersect/g' \
|
|
||||||
-e 's/miUnion\b/RegionUnion/g' \
|
|
||||||
-e 's/miRegionAppend\b/RegionAppend/g' \
|
|
||||||
-e 's/miRegionValidate\b/RegionValidate/g' \
|
|
||||||
-e 's/miRectsToRegion\b/RegionFromRects/g' \
|
|
||||||
-e 's/miSubtract\b/RegionSubtract/g' \
|
|
||||||
-e 's/miInverse\b/RegionInverse/g' \
|
|
||||||
-e 's/miRectIn\b/RegionContainsRect/g' \
|
|
||||||
-e 's/miTranslateRegion\b/RegionTranslate/g' \
|
|
||||||
-e 's/miRegionReset\b/RegionReset/g' \
|
|
||||||
-e 's/miRegionBreak\b/RegionBreak/g' \
|
|
||||||
-e 's/miPointInRegion\b/RegionContainsPoint/g' \
|
|
||||||
-e 's/miRegionEqual\b/RegionEqual/g' \
|
|
||||||
-e 's/miRegionNotEmpty\b/RegionNotEmpty/g' \
|
|
||||||
-e 's/miRegionEmpty\b/RegionEmpty/g' \
|
|
||||||
-e 's/miRegionExtents\b/RegionExtents/g' \
|
|
||||||
-e 's/miPrintRegion\b/RegionPrint/g' \
|
|
||||||
-e 's/miRectAlloc\b/RegionRectAlloc/g' \
|
|
||||||
-e 's/miValidRegion\b/RegionIsValid/g' \
|
|
||||||
-e 's/miRegionBroken\b/RegionBroken/g' \
|
|
||||||
-e 's/miClipSpans\b/RegionClipSpans/g' \
|
|
||||||
"$@"
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
sed -i \
|
|
||||||
-e 's/miEmptyBox\b/RegionEmptyBox/g' \
|
|
||||||
-e 's/miEmptyData\b/RegionEmptyData/g' \
|
|
||||||
-e 's/miBrokenData\b/RegionBrokenData/g' \
|
|
||||||
-e 's/miBrokenRegion\b/RegionBrokenRegion/g' \
|
|
||||||
-e 's/miCoalesce\b/RegionCoalesce/g' \
|
|
||||||
-e 's/miAppendNonO\b/RegionAppendNonO/g' \
|
|
||||||
-e 's/miRegionOp\b/RegionOp/g' \
|
|
||||||
-e 's/miSetExtents\b/RegionSetExtents/g' \
|
|
||||||
-e 's/miIntersectO\b/RegionIntersectO/g' \
|
|
||||||
-e 's/miUnionO\b/RegionUnionO/g' \
|
|
||||||
-e 's/miSubtractO\b/RegionSubtractO/g' \
|
|
||||||
"$@"
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
git diff --check |
|
|
||||||
sed -n 's!^\([^:]*\):\([^:]*\):.*!sed -i "\2 s/[ \t]*$//; \2 s/ *\t/\t/g" \1!p' |
|
|
||||||
sh
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
sed -i \
|
|
||||||
-e 's/REGION_NIL\b/RegionNil/g' \
|
|
||||||
-e 's/REGION_NAR\b/RegionNar/g' \
|
|
||||||
-e 's/REGION_NUM_RECTS\b/RegionNumRects/g' \
|
|
||||||
-e 's/REGION_SIZE\b/RegionSize/g' \
|
|
||||||
-e 's/REGION_RECTS\b/RegionRects/g' \
|
|
||||||
-e 's/REGION_BOXPTR\b/RegionBoxptr/g' \
|
|
||||||
-e 's/REGION_BOX\b/RegionBox/g' \
|
|
||||||
-e 's/REGION_TOP\b/RegionTop/g' \
|
|
||||||
-e 's/REGION_END\b/RegionEnd/g' \
|
|
||||||
-e 's/REGION_SZOF\b/RegionSizeof/g' \
|
|
||||||
-e 's/REGION_CREATE *([^,]*, */RegionCreate(/g' \
|
|
||||||
-e 's/REGION_COPY *([^,]*, */RegionCopy(/g' \
|
|
||||||
-e 's/REGION_DESTROY *([^,]*, */RegionDestroy(/g' \
|
|
||||||
-e 's/REGION_INTERSECT *([^,]*, */RegionIntersect(/g' \
|
|
||||||
-e 's/REGION_UNION *([^,]*, */RegionUnion(/g' \
|
|
||||||
-e 's/REGION_SUBTRACT *([^,]*, */RegionSubtract(/g' \
|
|
||||||
-e 's/REGION_INVERSE *([^,]*, */RegionInverse(/g' \
|
|
||||||
-e 's/REGION_TRANSLATE *([^,]*, */RegionTranslate(/g' \
|
|
||||||
-e 's/RECT_IN_REGION *([^,]*, */RegionContainsRect(/g' \
|
|
||||||
-e 's/POINT_IN_REGION *([^,]*, */RegionContainsPoint(/g' \
|
|
||||||
-e 's/REGION_EQUAL *([^,]*, */RegionEqual(/g' \
|
|
||||||
-e 's/REGION_APPEND *([^,]*, */RegionAppend(/g' \
|
|
||||||
-e 's/REGION_VALIDATE *([^,]*, */RegionValidate(/g' \
|
|
||||||
-e 's/BITMAP_TO_REGION\b/BitmapToRegion/g' \
|
|
||||||
-e 's/RECTS_TO_REGION *([^,]*, */RegionFromRects(/g' \
|
|
||||||
-e 's/REGION_BREAK *([^,]*, */RegionBreak(/g' \
|
|
||||||
-e 's/REGION_INIT *([^,]*, */RegionInit(/g' \
|
|
||||||
-e 's/REGION_UNINIT *([^,]*, */RegionUninit(/g' \
|
|
||||||
-e 's/REGION_RESET *([^,]*, */RegionReset(/g' \
|
|
||||||
-e 's/REGION_NOTEMPTY *([^,]*, */RegionNotEmpty(/g' \
|
|
||||||
-e 's/REGION_BROKEN *([^,]*, */RegionBroken(/g' \
|
|
||||||
-e 's/REGION_EMPTY *([^,]*, */RegionEmpty(/g' \
|
|
||||||
-e 's/REGION_EXTENTS *([^,]*, */RegionExtents(/g' \
|
|
||||||
-e 's/REGION_NULL *([^,]*, */RegionNull(/g' \
|
|
||||||
-e 's/REGION_NULL$/RegionNull/g' \
|
|
||||||
"$@"
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
.\" $RCSId: xc/programs/Xserver/hw/kdrive/Xkdrive.man,v 1.3 2001/01/24 00:06:10 dawes Exp $
|
|
||||||
.\"
|
|
||||||
.TH Xkdrive 1 __vendorversion__
|
|
||||||
.SH NAME
|
|
||||||
Xkdrive \- tiny X server
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.B Xvesa
|
|
||||||
.RI [ :display ]
|
|
||||||
.RI [ option ...]
|
|
||||||
|
|
||||||
.B Xfbdev
|
|
||||||
.RI [ :display ]
|
|
||||||
.RI [ option ...]
|
|
||||||
.SH DESCRIPTION
|
|
||||||
.B Xkdrive
|
|
||||||
is a family of X servers designed to be particularly small. This
|
|
||||||
manual page describes the common functionality of the
|
|
||||||
.B Xkdrive
|
|
||||||
servers; for information on a specific X server, please refer to the
|
|
||||||
relevant manual page.
|
|
||||||
.SH OPTIONS
|
|
||||||
In addition to the standard options accepted by all X servers (see
|
|
||||||
Xserver(1)), all the
|
|
||||||
.B Xkdrive
|
|
||||||
servers accept the following options:
|
|
||||||
.TP 8
|
|
||||||
.B -card \fIpcmcia\fP
|
|
||||||
use pcmcia card as additional screen.
|
|
||||||
.TP 8
|
|
||||||
.B -dumb
|
|
||||||
disable hardware acceleration.
|
|
||||||
.TP 8
|
|
||||||
.B -origin \fIX\fP,\fIY\fP
|
|
||||||
Locates the next screen in the Xinerama virtual screen.
|
|
||||||
.TP 8
|
|
||||||
.B -screen \fIwidth\fBx\fIheight\fR[\fBx\fIdepth\fR[\fBx\fIfreq\fR]]\fR[\fB@\fIrotation\fR]\fB
|
|
||||||
use a screen of the specified \fIwidth\fP, \fIheight\fP, screen \fIdepth\fP, \fIfrequency\fP, and \fIrotation\fP (0, 90, 180 and 270 are legal values).
|
|
||||||
.TP 8
|
|
||||||
.B -softCursor
|
|
||||||
disable the hardware cursor.
|
|
||||||
.TP 8
|
|
||||||
.B -videoTest
|
|
||||||
start the server, pause momentarily, and exit.
|
|
||||||
.TP 8
|
|
||||||
.B -zaphod
|
|
||||||
disable switching screens by moving the pointer across a screen boundary.
|
|
||||||
.TP 8
|
|
||||||
.B -2button
|
|
||||||
enable emulation of a middle mouse button by chording.
|
|
||||||
.TP 8
|
|
||||||
.B -3button
|
|
||||||
disable emulation of a middle mouse button by chording.
|
|
||||||
.SH SEE ALSO
|
|
||||||
X(__miscmansuffix__), Xserver(1), xdm(1), xinit(1), Xvesa(1), Xfbdev(1).
|
|
||||||
.SH AUTHORS
|
|
||||||
The Xkdrive common core was written by Keith Packard,
|
|
||||||
and is based on the Sample Implementation of X.
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2007 Red Hat, Inc.
|
|
||||||
*
|
|
||||||
* 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 (including the next
|
|
||||||
* paragraph) 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 OR COPYRIGHT HOLDERS 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_DIX_CONFIG_H
|
|
||||||
#include <dix-config.h>
|
|
||||||
#endif
|
|
||||||
#include "scrnintstr.h"
|
|
||||||
#include "mibstore.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
* There is no longer an mi implementation of backing store. This function
|
|
||||||
* is only for source compatibility with old drivers.
|
|
||||||
*
|
|
||||||
* Note though that you do get backing store for free if your server has
|
|
||||||
* Composite enabled, since the automatic redirection mechanism provides
|
|
||||||
* essentially the same functionality. See compChangeWindowAttributes()
|
|
||||||
* for the implementation.
|
|
||||||
*/
|
|
||||||
|
|
||||||
//void
|
|
||||||
//miInitializeBackingStore (ScreenPtr pScreen)
|
|
||||||
//{
|
|
||||||
//}
|
|
||||||
@@ -1,684 +0,0 @@
|
|||||||
XKM File Format Description
|
|
||||||
Version 15
|
|
||||||
|
|
||||||
1. Introduction
|
|
||||||
|
|
||||||
The XKM file format is the exchange format for XKB keyboard descriptions
|
|
||||||
between the server and xkbcomp. Usually, the server forks off xkbcomp,
|
|
||||||
xkbcomp compiles the XKM format from the given parameters.
|
|
||||||
The resulting XKM file is put into a directory readable by the server and
|
|
||||||
then parsed.
|
|
||||||
|
|
||||||
The XKM format is little more than a binary dump of various XKB-specific
|
|
||||||
structures and hence tied to the ABI of the server.
|
|
||||||
|
|
||||||
❧❧❧❧❧❧❧❧❧❧❧
|
|
||||||
|
|
||||||
1.1 About this file format description
|
|
||||||
|
|
||||||
This description was produced by analyzing the XKM parsing code. Parts of
|
|
||||||
the file description present in the original format specification may be
|
|
||||||
missing. This description thus cannot be a reference document for XKM
|
|
||||||
implementations.
|
|
||||||
|
|
||||||
No description of the meaning of the various fields is given here. Refer to
|
|
||||||
the XKB protocol specification for more details.
|
|
||||||
❧❧❧❧❧❧❧❧❧❧❧
|
|
||||||
|
|
||||||
2. Notations used in this document
|
|
||||||
|
|
||||||
Notation for structures:
|
|
||||||
|
|
||||||
┌───
|
|
||||||
Name of struct
|
|
||||||
name of field: type or fixed value of field
|
|
||||||
name of field: type or fixed value of field
|
|
||||||
└───
|
|
||||||
|
|
||||||
Data types are identical to those used in the X Protocol specification
|
|
||||||
except where noted otherwise. Structs specific to XKM are prefixed with XKM,
|
|
||||||
defines specific to the XKB protocol specification are prefixed with Xkb and
|
|
||||||
their value is equivalent to that in the protocol specification.
|
|
||||||
|
|
||||||
Multiple instances of a given type are denoted in the following form:
|
|
||||||
name of field: LISTofFIELDTYPE
|
|
||||||
|
|
||||||
Length specifiers for such fields are usually prefixed with num_. For
|
|
||||||
example, a struct containing a num_foo of 8 and a 'foo' field contains 8
|
|
||||||
structures of type 'foo'.
|
|
||||||
|
|
||||||
Variable length padding is specified as pad(x), where x is the length of the
|
|
||||||
data to be padded out to a multiple of 4 bytes. For example, given an x of
|
|
||||||
10, pad(x) would be the remaining 2 bytes to pad the whole struct to 12
|
|
||||||
bytes.
|
|
||||||
|
|
||||||
A special notation is a variable content struct. In this case, the contents
|
|
||||||
of the struct depend on the value of one or more specific fields.
|
|
||||||
┌───
|
|
||||||
Name of struct
|
|
||||||
field: type or fixed value of field
|
|
||||||
field: type or fixed value of field
|
|
||||||
───
|
|
||||||
field ⇒ value 1
|
|
||||||
⇒
|
|
||||||
specific field: type
|
|
||||||
specific field: type
|
|
||||||
───
|
|
||||||
field ⇒ value 2
|
|
||||||
⇒
|
|
||||||
specific field: type
|
|
||||||
specific field: type
|
|
||||||
└───
|
|
||||||
This notation denotes that if field is of value 1, this struct contains the
|
|
||||||
specific fields listed underneath value 1.
|
|
||||||
|
|
||||||
❧❧❧❧❧❧❧❧❧❧❧
|
|
||||||
|
|
||||||
3. XKM Format
|
|
||||||
|
|
||||||
The XKM format is a binary format with structs usually being padded to a
|
|
||||||
multiple of 4 bytes. No provisions for endianess are provided, the parser is
|
|
||||||
left to guess the endianess of the XKM file.
|
|
||||||
|
|
||||||
❧❧❧❧❧❧❧❧❧❧❧
|
|
||||||
3.1 Common data types
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMCountedString
|
|
||||||
count: CARD16
|
|
||||||
string: count * CHAR
|
|
||||||
pad: pad(count + 2)
|
|
||||||
└───
|
|
||||||
|
|
||||||
XKMCountedString is used for user-readable identifiers. Prime example are
|
|
||||||
the level names and the section names ("complete", "evdev(inet)", etc.)
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMGroupBits: CARD8
|
|
||||||
group1 0x1
|
|
||||||
group2 0x2
|
|
||||||
group3 0x4
|
|
||||||
group4 0x8
|
|
||||||
└───
|
|
||||||
|
|
||||||
❧❧❧❧❧❧❧❧❧❧❧
|
|
||||||
|
|
||||||
3.2 Header and Table of Contents
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMHeader
|
|
||||||
version: CARD8
|
|
||||||
identifier1: 'm'
|
|
||||||
identifier2: 'k'
|
|
||||||
idenfifier3: 'x'
|
|
||||||
└───
|
|
||||||
|
|
||||||
The XKM file format has a 4 byte header identifying the file and the XKM
|
|
||||||
version. The header is followed by the table of contents indicating the
|
|
||||||
sections present in this file.
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMFileInfo
|
|
||||||
type: CARD8
|
|
||||||
min_keycode: CARD8
|
|
||||||
max_keycode: CARD8
|
|
||||||
num_sectioninfo: CARD8
|
|
||||||
present: CARD16
|
|
||||||
pad: CARD16
|
|
||||||
sectioninfo: LISTofXKMSectionInfo
|
|
||||||
└───
|
|
||||||
|
|
||||||
min_keycode and max_keycode specify the keycode range for this keyboard
|
|
||||||
descriptions. The core protocol requires min_keycode always be equal to or
|
|
||||||
greater than 8.
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMSectionInfo
|
|
||||||
type: CARD16
|
|
||||||
XkmTypesIndex 0
|
|
||||||
XkmCompatMapIndex 1
|
|
||||||
XkmSymbolsIndex 2
|
|
||||||
XkmIndicatorsIndex 3
|
|
||||||
XkmKeyNamesIndex 4
|
|
||||||
XkmGeometryIndex 5
|
|
||||||
XkmVirtualModsIndex 6
|
|
||||||
format: CARD16
|
|
||||||
size: CARD16
|
|
||||||
offset: CARD16
|
|
||||||
└───
|
|
||||||
|
|
||||||
Describes the section found in a chunk of a file. This struct is found
|
|
||||||
_twice_ in the file per section, once as part of the XKMFileInfo, once at
|
|
||||||
the beginning of the actual section (see offset).
|
|
||||||
The type specifies the type of the section, the section is to be parsed
|
|
||||||
according to this type.
|
|
||||||
Size and offset specify the size in bytes and the offset into the file in
|
|
||||||
bytes, respectively.
|
|
||||||
|
|
||||||
3.3 Sections
|
|
||||||
|
|
||||||
Each section resides at the offset specified in the XKMFileInfo sectioninfo.
|
|
||||||
|
|
||||||
❧❧❧❧❧❧❧❧❧❧❧
|
|
||||||
|
|
||||||
3.3.1 XKMTypes
|
|
||||||
|
|
||||||
An XKMTypes section describes the key types defined in a layout. Roughly
|
|
||||||
speaking, a key type defines how many levels a given key has and which
|
|
||||||
modifiers change to a particular level.
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMTypesSection
|
|
||||||
section_info: XKMSectionInfo
|
|
||||||
name: XKMCountedString
|
|
||||||
num_types: CARD16
|
|
||||||
pad: CARD16
|
|
||||||
types: LISTofXKMKeyType
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMKeyType
|
|
||||||
real_mods: CARD8
|
|
||||||
num_levels: CARD8
|
|
||||||
virt_mods: CARD16
|
|
||||||
num_map_entries: CARD8
|
|
||||||
num_level_names: CARD8
|
|
||||||
perserve: CARD8
|
|
||||||
pad: CARD8
|
|
||||||
map_entries: LISTofXKMKTMapEntry
|
|
||||||
name: XKMCountedString
|
|
||||||
mods: LISTofXKMModsDesc
|
|
||||||
level_names: LISXTofXKMCountedString
|
|
||||||
└───
|
|
||||||
|
|
||||||
The num_map_entries specifies the number of structs in both map_entries and mods. mods is only present if preserve is TRUE.
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMKTMapEntry
|
|
||||||
level: CARD8
|
|
||||||
real_mods: CARD8
|
|
||||||
virt_mods: CARD16
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMModsDesc
|
|
||||||
real_mods: CARD8
|
|
||||||
pad: CARD8
|
|
||||||
virt_mods: CARD16
|
|
||||||
└───
|
|
||||||
|
|
||||||
❧❧❧❧❧❧❧❧❧❧❧
|
|
||||||
3.3.2 XKMCompatMap
|
|
||||||
|
|
||||||
An XKMCompatMap section describes the actions a keyboard may trigger. This
|
|
||||||
ranges from the TerminateServer action to simple modifier bits.
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMCompatMap
|
|
||||||
section_info: XKMSectionInfo
|
|
||||||
name: XKMCountedString
|
|
||||||
num_si: CARD16
|
|
||||||
group_mask: XKMGroupBits
|
|
||||||
pad: CARD8
|
|
||||||
si: LISTofXKMSymInterpreterDesc
|
|
||||||
groups: LISTofXKMModsDesc
|
|
||||||
└───
|
|
||||||
|
|
||||||
One XKMModsDesc is present for each bit set in group_mask.
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMSymInterpretDesc
|
|
||||||
sym: CARD32
|
|
||||||
mods: CARD8
|
|
||||||
match: CARD8
|
|
||||||
virtual_mod: CARD8
|
|
||||||
flags: CARD8
|
|
||||||
action_type: CARD8
|
|
||||||
action_data: XKMActionData
|
|
||||||
└───
|
|
||||||
|
|
||||||
Where the action is 7 bytes of CARD8 whose content is determined by
|
|
||||||
action_type.
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMActionData:
|
|
||||||
pad0: CARD8
|
|
||||||
pad1: CARD16
|
|
||||||
pad2: CARD32
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_SetMods ||
|
|
||||||
action_type ⇒ XkbSA_LatchMods ||
|
|
||||||
action_type ⇒ XkbSA_LockMods
|
|
||||||
⇒
|
|
||||||
flags: CARD8
|
|
||||||
mask: CARD8
|
|
||||||
real_mods: CARD8
|
|
||||||
vmods1: CARD8
|
|
||||||
vmods2: CARD8
|
|
||||||
pad: CARD16
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_SetGroup ||
|
|
||||||
action_type ⇒ XkbSA_LatchGroup ||
|
|
||||||
action_type ⇒ XkbSA_LockGroup
|
|
||||||
⇒
|
|
||||||
flags: CARD8
|
|
||||||
group_XXX: CARD8
|
|
||||||
pad0: CARD8
|
|
||||||
pad1: CARD32
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_MovePtr
|
|
||||||
⇒
|
|
||||||
flags: CARD8
|
|
||||||
high_XXX: CARD8
|
|
||||||
low_XXX: CARD8
|
|
||||||
high_YYY: CARD8
|
|
||||||
low_YYY: CARD8
|
|
||||||
pad: CARD16
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_PtrBtn ||
|
|
||||||
action_type ⇒ XkbSA_LockPtrBtn
|
|
||||||
⇒
|
|
||||||
flags: CARD8
|
|
||||||
count: CARD8
|
|
||||||
button: CARD8
|
|
||||||
pad: CARD32
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_DeviceBtn ||
|
|
||||||
action_type ⇒ XkbSA_LockLockPtrBtn
|
|
||||||
⇒
|
|
||||||
flags: CARD8
|
|
||||||
count: CARD8
|
|
||||||
button: CARD8
|
|
||||||
device: CARD8
|
|
||||||
pad0: CARD8
|
|
||||||
pad1: CARD16
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_SetPtrDflt
|
|
||||||
⇒
|
|
||||||
flags: CARD8
|
|
||||||
affect: CARD8
|
|
||||||
valueXXX: CARD8
|
|
||||||
pad0: CARD32
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_ISOLock
|
|
||||||
⇒
|
|
||||||
flags: CARD8
|
|
||||||
mask: CARD8
|
|
||||||
real_mods: CARD8
|
|
||||||
group_XXX: CARD8
|
|
||||||
affect: CARD8
|
|
||||||
vmods1: CARD8
|
|
||||||
vmods1: CARD8
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_SwitchScreen
|
|
||||||
⇒
|
|
||||||
flags: CARD8
|
|
||||||
screenXXX: CARD8
|
|
||||||
pad0: CARD8
|
|
||||||
pad1: CARD32
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_SetControls ||
|
|
||||||
action_type ⇒ XkbSA_LockControls
|
|
||||||
⇒
|
|
||||||
flags: CARD8
|
|
||||||
ctrls3: CARD8
|
|
||||||
ctrls2: CARD8
|
|
||||||
ctrls1: CARD8
|
|
||||||
ctrls0: CARD8
|
|
||||||
pad: CARD16
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_RedirectKey
|
|
||||||
⇒
|
|
||||||
new_key: CARD8
|
|
||||||
mods_mask: CARD8
|
|
||||||
mods: CARD8
|
|
||||||
vmods_mask0: CARD8
|
|
||||||
vmods_mask1: CARD8
|
|
||||||
vmods0: CARD8
|
|
||||||
vmods1: CARD8
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_DeviceValuator
|
|
||||||
⇒
|
|
||||||
device: CARD8
|
|
||||||
v1_what: CARD8
|
|
||||||
v1_idx: CARD8
|
|
||||||
v1_value: CARD8
|
|
||||||
v2_what: CARD8
|
|
||||||
v2_idx: CARD8
|
|
||||||
v2_value: CARD8
|
|
||||||
pad: CARD8
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_XFree86Private ||
|
|
||||||
action_type ⇒ XkbSA_Terminate
|
|
||||||
⇒
|
|
||||||
pad0: CARD8
|
|
||||||
pad1: CARD16
|
|
||||||
pad2: CARD32
|
|
||||||
───
|
|
||||||
action_type ⇒ XkbSA_ActionMessage
|
|
||||||
⇒
|
|
||||||
press_msg: BOOL
|
|
||||||
release_msg: BOOL
|
|
||||||
gen_event: BOOL
|
|
||||||
message: 4 * CHAR
|
|
||||||
└───
|
|
||||||
|
|
||||||
Note: XkbSA_ActionMessage is currently unsupported and the contents are
|
|
||||||
ignored.
|
|
||||||
|
|
||||||
❧❧❧❧❧❧❧❧❧❧❧
|
|
||||||
3.3.3 XkmSymbols
|
|
||||||
|
|
||||||
The symbols in a keymap define the actual keysyms each key may produce.
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMSymbols
|
|
||||||
section_info: XKMSectionInfo
|
|
||||||
name: XKMCountedString
|
|
||||||
min_keycode: CARD8
|
|
||||||
max_keycode: CARD8
|
|
||||||
group_names_mask: XKMGroupBits
|
|
||||||
num_vmod_maps: CARD8
|
|
||||||
group_names: LISTofXKMCountedString
|
|
||||||
keysyms: XKMKeysymMapDesc
|
|
||||||
vmod_maps: XKMVModMapDesc
|
|
||||||
└───
|
|
||||||
One group_name is present for each bit set in group_names_mask.
|
|
||||||
The number of keysyms present is max_keycode - min_keycode + 1.
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMKeysymMapDesc
|
|
||||||
width: CARD8
|
|
||||||
num_groups: CARD8
|
|
||||||
modifier_map: CARD8
|
|
||||||
flags: CARD8
|
|
||||||
names: LISTofXKMCountedString
|
|
||||||
syms: LISTofCARD32
|
|
||||||
behavior: XKMBehaviorDesc
|
|
||||||
└───
|
|
||||||
|
|
||||||
Presence of names is conditional on the XkmKeyHasTypes flag. The number of
|
|
||||||
strings is equal to the number of group bits in group_names_mask in the
|
|
||||||
preceeding XKMSymbols section.
|
|
||||||
The number of elements in syms is equal to width * num_groups.
|
|
||||||
Presence of behavior is conditional on the XkmKeyHasBehavior flag.
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMKeyBehaviorDesc
|
|
||||||
type: CARD8
|
|
||||||
data: CARD8
|
|
||||||
pad: CARD16
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMVModMapDesc
|
|
||||||
key: CARD8
|
|
||||||
pad: CARD8
|
|
||||||
vmods: CARD16
|
|
||||||
└───
|
|
||||||
|
|
||||||
❧❧❧❧❧❧❧❧❧❧❧
|
|
||||||
|
|
||||||
3.3.4 XKMIndicators
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMIndicators
|
|
||||||
section_info: XKMSectionInfo
|
|
||||||
name: XKMCountedString
|
|
||||||
num_indicators: CARD8
|
|
||||||
pad0: CARD8
|
|
||||||
pad1: CARD16
|
|
||||||
indicators: LISTofXKMIndicatorMapDesc
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMIndicatorMapDesc
|
|
||||||
name: XKMCountedString
|
|
||||||
indicator: CARD8
|
|
||||||
flags: CARD8
|
|
||||||
which_mods: CARD8
|
|
||||||
real_mods: CARD8
|
|
||||||
vmods: CARD16
|
|
||||||
which_groups: CARD8
|
|
||||||
groups: CARD8
|
|
||||||
ctrls: CARD32
|
|
||||||
└───
|
|
||||||
❧❧❧❧❧❧❧❧❧❧❧
|
|
||||||
|
|
||||||
3.3.5 XKMKeyNames
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMKeyNames
|
|
||||||
section_info: XKMSectionInfo
|
|
||||||
name: XKMCountedString
|
|
||||||
min_keycode: CARD8
|
|
||||||
max_keycode: CARD8
|
|
||||||
num_aliases: CARD8
|
|
||||||
pad: CARD8
|
|
||||||
keynames: LISTofXKMKeyname
|
|
||||||
aliases: LISTofXKMKeyAlias
|
|
||||||
└───
|
|
||||||
|
|
||||||
keynames contains max_keycode - min_keycode + 1 entries.
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XkmKeyname
|
|
||||||
name: 4 * CHAR8
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XkmKeyAlias
|
|
||||||
real: XkmKeyname
|
|
||||||
alias: XkmKeyname
|
|
||||||
└───
|
|
||||||
|
|
||||||
❧❧❧❧❧❧❧❧❧❧❧
|
|
||||||
|
|
||||||
3.3.5 XKMGeometry
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMGeometry
|
|
||||||
section_info: XKMSectionInfo
|
|
||||||
name: XKMCountedString
|
|
||||||
width_mm: CARD16
|
|
||||||
height_mm: CARD16
|
|
||||||
base_color_ndx: CARD8
|
|
||||||
label_color_ndx: CARD8
|
|
||||||
num_properties: CARD16
|
|
||||||
num_colors: CARD16
|
|
||||||
num_shapes: CARD16
|
|
||||||
num_sections: CARD16
|
|
||||||
num_doodads: CARD16
|
|
||||||
num_key_aliases: CARD16
|
|
||||||
pad: CARD16
|
|
||||||
label_font: XKMCountedString
|
|
||||||
properties: LISTofXKMGeomProperty
|
|
||||||
colors: LISTofXKMCountedString
|
|
||||||
shapes: LISTofXKMGeomShape
|
|
||||||
sections: LISTofXKMGeomSection
|
|
||||||
doodads: LISTofXKMGeomDoodad
|
|
||||||
key_aliases: LISTofXKMKeyAlias
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMGeomProperty
|
|
||||||
name: XKMCountedString
|
|
||||||
value: XKMCountedString
|
|
||||||
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMGeomShape
|
|
||||||
name: XKMCountedString
|
|
||||||
num_outlines: CARD8
|
|
||||||
primary_idx: CARD8
|
|
||||||
approx_idx: CARD8
|
|
||||||
pad: CARD8
|
|
||||||
outlines: LISTofXKMOutlineDesc
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMOutlineDesc
|
|
||||||
num_points: CARD8
|
|
||||||
corner_radius: CARD8
|
|
||||||
pad: CARD16
|
|
||||||
points: LISTofXKMPointDesc
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMPointDesc
|
|
||||||
x: INT16
|
|
||||||
y: INT16
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMGeomSection
|
|
||||||
name: XKMCountedString
|
|
||||||
top: INT16
|
|
||||||
left: INT16
|
|
||||||
width: CARD16
|
|
||||||
height: CARD16
|
|
||||||
angle: INT16
|
|
||||||
priority: CARD8
|
|
||||||
num_rows: CARD8
|
|
||||||
num_doodads: CARD8
|
|
||||||
num_overlays: CARD8
|
|
||||||
pad: CARD16
|
|
||||||
rows: LISTofXKMRowDesc
|
|
||||||
doodads: LISTofXKMGeomDoodad
|
|
||||||
overlays: LISTofXKMGeomOverlay
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMRowDesc
|
|
||||||
top: INT16
|
|
||||||
left: INT16
|
|
||||||
num_keys: CARD8
|
|
||||||
vertical: BOOL
|
|
||||||
pad: CARD16
|
|
||||||
keys: XKMKeyDesc
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMKeyDesc
|
|
||||||
name: XKMKeyname
|
|
||||||
gap: INT16
|
|
||||||
shape_idx: CARD8
|
|
||||||
color_idx: CARD8
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMGeomDoodad
|
|
||||||
name: XKMCountedString
|
|
||||||
type: CARD8
|
|
||||||
priority: CARD8
|
|
||||||
top: INT16
|
|
||||||
left: INT16
|
|
||||||
pad1: CARD16
|
|
||||||
pad2: CARD32
|
|
||||||
pad3: CARD32
|
|
||||||
───
|
|
||||||
type ⇒ XkbOutlineDoodad ||
|
|
||||||
type ⇒ XkbSolideDoodad
|
|
||||||
⇒
|
|
||||||
type: CARD8
|
|
||||||
priority: CARD8
|
|
||||||
top: INT16
|
|
||||||
left: INT16
|
|
||||||
angle: INT16
|
|
||||||
color_idx: CARD8
|
|
||||||
shape_idx: CARD8
|
|
||||||
pad0: CARD16
|
|
||||||
pad1: CARD32
|
|
||||||
───
|
|
||||||
type ⇒ XkbTextDoodad
|
|
||||||
⇒
|
|
||||||
type: CARD8
|
|
||||||
priority: CARD8
|
|
||||||
top: INT16
|
|
||||||
left: INT16
|
|
||||||
angle: INT16
|
|
||||||
width: CARD16
|
|
||||||
height: CARD16
|
|
||||||
color_idx: CARD8
|
|
||||||
pad0: CARD8
|
|
||||||
pad1: CARD16
|
|
||||||
text: XKMCountedString
|
|
||||||
font: XKMCountedString
|
|
||||||
───
|
|
||||||
type ⇒ XkbIndicatorDoodad
|
|
||||||
⇒
|
|
||||||
type: CARD8
|
|
||||||
priority: CARD8
|
|
||||||
top: INT16
|
|
||||||
left: INT16
|
|
||||||
shape_idx: CARD8
|
|
||||||
on_color_idx: CARD8
|
|
||||||
off_color_idx: CARD8
|
|
||||||
pad0: CARD8
|
|
||||||
pad1: CARD16
|
|
||||||
pad2: CARD32
|
|
||||||
───
|
|
||||||
type ⇒ XkbLogoDoodad
|
|
||||||
⇒
|
|
||||||
type: CARD8
|
|
||||||
priority: CARD8
|
|
||||||
top: INT16
|
|
||||||
left: INT16
|
|
||||||
angle: INT16
|
|
||||||
color_idx: CARD8
|
|
||||||
shape_idx: CARD8
|
|
||||||
pad0: CARD16
|
|
||||||
pad1: CARD32
|
|
||||||
logo_name: XKMCountedString
|
|
||||||
└───
|
|
||||||
|
|
||||||
WARNING: XKMGeomDoodad has variable length depending on the type.
|
|
||||||
NOTE: The current server implementation does not use all fields of all
|
|
||||||
structures.
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMOverlayDesc
|
|
||||||
name: XKMCountedString
|
|
||||||
num_rows: CARD8
|
|
||||||
pad0: CARD8
|
|
||||||
pad1: CARD16
|
|
||||||
rows: LISTofXKMOverlayRowDesc
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMOverlayRowDesc
|
|
||||||
name: XKMCountedString
|
|
||||||
row_under: CARD8
|
|
||||||
num_keys: CARD8
|
|
||||||
pad: CARD16
|
|
||||||
keys: LISTofXKMOverlayKeyDesc
|
|
||||||
└───
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMOverlayKeyDesc
|
|
||||||
over: XKMKeyname
|
|
||||||
under: XKMKeyname
|
|
||||||
└───
|
|
||||||
|
|
||||||
❧❧❧❧❧❧❧❧❧❧❧
|
|
||||||
|
|
||||||
3.3.6 XKMVirtualMods
|
|
||||||
|
|
||||||
┌───
|
|
||||||
XKMOverlayRowDesc
|
|
||||||
section_info: XKMSectionInfo
|
|
||||||
name: XKMCountedString
|
|
||||||
bound_mask: SETofVMODBITS
|
|
||||||
named_mask: SETofVMODBITS
|
|
||||||
vmods: LISTofCARD8
|
|
||||||
pad: pad(vmods)
|
|
||||||
names: LISTofXKMCountedString
|
|
||||||
└───
|
|
||||||
|
|
||||||
VMODBITS: CARD16
|
|
||||||
|
|
||||||
Number of elements in vmods is equal to the number of bits set in
|
|
||||||
bound_mask. The padding completes vmods to a multiple of 4 byte units.
|
|
||||||
Number of elements in names is equal to the number of bits set in
|
|
||||||
named_mask.
|
|
||||||
Reference in New Issue
Block a user