1<?xml version="1.0" encoding="UTF-8"?>
2<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
3    <xsl:output method="text" encoding="UTF-8" doctype-system="xkb.dtd"/>
4    <xsl:template match="/xkbConfigRegistry">
5        <xsl:text><![CDATA[.\" WARNING: this man page is autogenerated. Do not edit or you will lose all your changes.
6.TH XKEYBOARD-CONFIG 7 @vendorversion@
7.SH NAME
8xkeyboard-config \- XKB data description files
9.SH DESCRIPTION
10xkeyboard-config provides the description files for the X Keyboard
11Extension (XKB) and for libxkbcommon. Typically it is
12the task of the desktop environment to apply the
13requested configuration. Users running an X server can also use the
14setxkbmap(1) tool to apply keyboard configuration at runtime or configure XKB
15settings in the xorg.conf(5).
16
17.SH XKB DATA FILES LOAD PATHS
18
19xkeyboard-config provides the XKB data files installed in
20@xkb_base@. User-specific data files may be elsewhere but it depends on
21the tool whether those files are loaded. For example, the libxkbcommon
22library will by default load XKB data files from the user's home directory.
23See the libxkbcommon documentation for details.
24
25.SH THE "CUSTOM" LAYOUT
26
27The "custom" layout is a layout that is listed as available to tools
28reading the data files but is not actually provided by xkeyboard-config.
29A user may save a layout specification in the @xkb_base@/symbols/custom file
30and that layout will be available to most tools interacting with the
31xkeyboard-config data files. This is primarily aimed at systems running X
32where additional lookup paths cannot easily be added.
33.PP
34Because the "custom" layout is merely listed as available but not
35provided by xkeyboard-config, the layout will not be overwritten on updates.
36
37.SH MODELS
38.TS
39left,box;
40lB lB
41___
42lB l.
43Model	Description
44]]></xsl:text>
45        <xsl:apply-templates select="modelList"/>
46        <xsl:text><![CDATA[
47.TE
48.SH LAYOUTS
49.TS
50left,box;
51lB lB
52____
53lB l.
54Layout(Variant)	Description
55]]></xsl:text>
56        <xsl:apply-templates select="layoutList"/>
57        <xsl:text><![CDATA[
58.TE
59.SH OPTIONS
60]]></xsl:text>
61        <xsl:apply-templates select="optionList"/>
62        <xsl:text><![CDATA[
63.SH FILES
64@xkb_base@/compat
65
66@xkb_base@/compiled
67
68@xkb_base@/geometry
69
70@xkb_base@/keycodes
71
72@xkb_base@/keymap
73
74@xkb_base@/rules
75
76@xkb_base@/semantics
77
78@xkb_base@/symbols
79
80@xkb_base@/types
81
82.SH SEE ALSO
83setxkbmap(1)
84]]></xsl:text>
85    </xsl:template>
86
87<!-- split model/description into a normal table -->
88    <xsl:template match="modelList">
89        <xsl:for-each select="model">
90            <xsl:value-of select="configItem/name"/><xsl:text>&#9;</xsl:text><xsl:value-of select="configItem/description"/>
91            <xsl:text>&#10;</xsl:text>
92        </xsl:for-each>
93    </xsl:template>
94
95<!-- split layout/variant/description into a table like this
96
97        layout1                 description
98        layout1(variant1)       description
99        layout1(variant2)       description
100        layout2                 description
101        layout2(variant1)       description
102-->
103    <xsl:template match="layoutList">
104        <xsl:for-each select="layout">
105            <xsl:value-of select="configItem/name"/>
106            <xsl:text>&#9;</xsl:text>
107            <xsl:value-of select="configItem/description"/>
108            <xsl:text>&#10;</xsl:text>
109            <xsl:for-each select="variantList/variant">
110                <xsl:value-of select="../../configItem/name"/>
111                <xsl:text>(</xsl:text>
112                <xsl:value-of select="configItem/name"/>
113                <xsl:text>)</xsl:text>
114                <xsl:text>&#9;</xsl:text>
115                <xsl:value-of select="configItem/description"/>
116                <xsl:text>&#10;</xsl:text>
117            </xsl:for-each>
118            <xsl:text>&#10;</xsl:text>
119            <xsl:text>_&#10;</xsl:text>
120        </xsl:for-each>
121    </xsl:template>
122
123<!-- split option into a table like this
124
125option description:
126        optarg          description
127        optarg          description
128        optarg          description
129
130option2 description:
131        optarg          description
132        optarg          description
133-->
134    <xsl:template match="optionList">
135        <xsl:for-each select="group">
136            <xsl:text><![CDATA[
137.SS]]></xsl:text>
138            <xsl:text>&#10;</xsl:text>
139            <xsl:value-of select="configItem/description"/>
140            <xsl:text><![CDATA[
141.BR
142.TS
143left,box;
144lB lB
145___
146lB l.
147Option	Description
148]]></xsl:text>
149            <xsl:for-each select="option">
150                <xsl:value-of select="configItem/name"/>
151                <xsl:text>&#9;</xsl:text>
152                <xsl:value-of select="configItem/description"/>
153                <xsl:text>&#10;</xsl:text>
154            </xsl:for-each>
155            <xsl:text><![CDATA[
156.TE
157
158]]></xsl:text>
159        </xsl:for-each>
160    </xsl:template>
161</xsl:stylesheet>
162