Drop use of ronn, switch to raw roff instead

Drop the ronn source files, check in the generated files instead. This gets rid
of the ruby+gem+ronn toolchain requirement at the cost of having to edit raw man
pages.

ronn files are as-generated but with the preamble and generation date removed.
The latter isn't important enough to keep, it'll just go stale for manually
maintained files and it's not worth setting up a configure_file() just for that
date.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
master
Peter Hutterer 2020-07-23 09:37:15 +10:00 committed by Ran Benita
parent 31b38c3137
commit cd119a2824
17 changed files with 334 additions and 336 deletions

View File

@ -23,7 +23,7 @@ jobs:
sudo apt update -y sudo apt update -y
sudo env DEBIAN_FRONTEND=noninteractive apt install -y \ sudo env DEBIAN_FRONTEND=noninteractive apt install -y \
doxygen libxcb-xkb-dev valgrind ninja-build \ doxygen libxcb-xkb-dev valgrind ninja-build \
libwayland-dev wayland-protocols bison graphviz ruby-ronn libwayland-dev wayland-protocols bison graphviz
- name: Setup - name: Setup
run: | run: |
meson setup build meson setup build
@ -40,14 +40,12 @@ jobs:
runs-on: macos-10.15 runs-on: macos-10.15
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: actions/setup-ruby@v1
- uses: actions/setup-python@v1 - uses: actions/setup-python@v1
with: with:
python-version: '3.7' python-version: '3.7'
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip meson python -m pip install --upgrade pip meson
gem install ronn
brew install doxygen bison ninja brew install doxygen bison ninja
brew link bison --force brew link bison --force
env: env:
@ -67,7 +65,6 @@ jobs:
runs-on: windows-2019 runs-on: windows-2019
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: actions/setup-ruby@v1
- uses: actions/setup-python@v1 - uses: actions/setup-python@v1
with: with:
python-version: '3.7' python-version: '3.7'
@ -81,7 +78,6 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip meson python -m pip install --upgrade pip meson
gem install ronn
choco install ninja winflexbison3 -y --no-progress --stop-on-first-failure choco install ninja winflexbison3 -y --no-progress --stop-on-first-failure
- name: Setup - name: Setup
shell: cmd shell: cmd

View File

@ -13,7 +13,6 @@ pkgconfig = import('pkgconfig')
cc = meson.get_compiler('c') cc = meson.get_compiler('c')
dir_libexec = join_paths(get_option('prefix'), get_option('libexecdir'), 'xkbcommon') dir_libexec = join_paths(get_option('prefix'), get_option('libexecdir'), 'xkbcommon')
dir_man = join_paths(get_option('prefix'), get_option('mandir'))
# Compiler flags. # Compiler flags.
foreach cflag: [ foreach cflag: [
@ -543,21 +542,21 @@ if build_tools
executable('xkbcli', 'tools/xkbcli.c', executable('xkbcli', 'tools/xkbcli.c',
dependencies: tools_dep, install: true) dependencies: tools_dep, install: true)
man_pages += 'tools/xkbcli.1.ronn' install_man('tools/xkbcli.1')
executable('xkbcli-compile-keymap', executable('xkbcli-compile-keymap',
'tools/compile-keymap.c', 'tools/compile-keymap.c',
dependencies: tools_dep, dependencies: tools_dep,
install: true, install: true,
install_dir: dir_libexec) install_dir: dir_libexec)
man_pages += 'tools/xkbcli-compile-keymap.1.ronn' install_man('tools/xkbcli-compile-keymap.1')
configh_data.set10('HAVE_XKBCLI_COMPILE_KEYMAP', true) configh_data.set10('HAVE_XKBCLI_COMPILE_KEYMAP', true)
executable('xkbcli-how-to-type', executable('xkbcli-how-to-type',
'tools/how-to-type.c', 'tools/how-to-type.c',
dependencies: tools_dep, dependencies: tools_dep,
install: true, install: true,
install_dir: dir_libexec) install_dir: dir_libexec)
man_pages += 'tools/xkbcli-how-to-type.1.ronn' install_man('tools/xkbcli-how-to-type.1')
configh_data.set10('HAVE_XKBCLI_HOW_TO_TYPE', true) configh_data.set10('HAVE_XKBCLI_HOW_TO_TYPE', true)
if cc.has_header('linux/input.h') if cc.has_header('linux/input.h')
executable('xkbcli-interactive-evdev', executable('xkbcli-interactive-evdev',
@ -566,7 +565,7 @@ if build_tools
install: true, install: true,
install_dir: dir_libexec) install_dir: dir_libexec)
configh_data.set10('HAVE_XKBCLI_INTERACTIVE_EVDEV', true) configh_data.set10('HAVE_XKBCLI_INTERACTIVE_EVDEV', true)
man_pages += 'tools/xkbcli-interactive-evdev.1.ronn' install_man('tools/xkbcli-interactive-evdev.1')
endif endif
if get_option('enable-x11') if get_option('enable-x11')
x11_tools_dep = declare_dependency( x11_tools_dep = declare_dependency(
@ -582,7 +581,7 @@ if build_tools
dependencies: x11_tools_dep, dependencies: x11_tools_dep,
install: true, install: true,
install_dir: dir_libexec) install_dir: dir_libexec)
man_pages += 'tools/xkbcli-interactive-x11.1.ronn' install_man('tools/xkbcli-interactive-x11.1')
configh_data.set10('HAVE_XKBCLI_INTERACTIVE_X11', true) configh_data.set10('HAVE_XKBCLI_INTERACTIVE_X11', true)
endif endif
if get_option('enable-wayland') if get_option('enable-wayland')
@ -617,7 +616,7 @@ if build_tools
dependencies: [tools_dep, wayland_client_dep], dependencies: [tools_dep, wayland_client_dep],
install: true, install: true,
install_dir: dir_libexec) install_dir: dir_libexec)
man_pages += 'tools/xkbcli-interactive-wayland.1.ronn' install_man('tools/xkbcli-interactive-wayland.1')
configh_data.set10('HAVE_XKBCLI_INTERACTIVE_WAYLAND', true) configh_data.set10('HAVE_XKBCLI_INTERACTIVE_WAYLAND', true)
endif endif
@ -628,7 +627,7 @@ if build_tools
dependencies: dep_libxkbregistry, dependencies: dep_libxkbregistry,
install: true, install: true,
install_dir: dir_libexec) install_dir: dir_libexec)
man_pages += 'tools/xkbcli-list.1.ronn' install_man('tools/xkbcli-list.1')
endif endif
# pytest finds files named test_foo_bar.py but not # pytest finds files named test_foo_bar.py but not
@ -644,22 +643,6 @@ if build_tools
args: [tool_option_test, '-n', 'auto']) args: [tool_option_test, '-n', 'auto'])
endif endif
if get_option('enable-manpages')
prog_ronn = find_program('ronn', required: true)
foreach manpage : man_pages
# man page filenames adhere to directory/topic.section.ronn
topic = manpage.split('/')[-1].split('.')[-3]
section = manpage.split('.')[-2]
output = '@0@.@1@'.format(topic, section)
custom_target(output,
input: manpage,
output: output,
command: [prog_ronn, '--manual=libxkbcommon manual', '--pipe', '--roff', files(manpage)],
capture: true,
install: true,
install_dir: join_paths(dir_man, section))
endforeach
endif
# xkeyboard-config "verifier" # xkeyboard-config "verifier"
xkct_config = configuration_data() xkct_config = configuration_data()

View File

@ -219,15 +219,9 @@ tools_exec_command(const char *prefix, int real_argc, char **real_argv)
} }
command = real_argv[0]; command = real_argv[0];
#ifdef _MSC_VER
#define PATH_SEP '\\'
#else
#define PATH_SEP '/'
#endif
if (!snprintf_safe(executable, sizeof(executable), if (!snprintf_safe(executable, sizeof(executable),
"%s%c%s-%s", LIBXKBCOMMON_TOOL_PATH, PATH_SEP, "%s/%s-%s", LIBXKBCOMMON_TOOL_PATH, prefix, command)) {
prefix, command)) {
fprintf(stderr, "Failed to assemble command\n"); fprintf(stderr, "Failed to assemble command\n");
return EXIT_FAILURE; return EXIT_FAILURE;
} }

View File

@ -0,0 +1,70 @@
.TH "XKBCLI\-COMPILE\-KEYMAP" "1" "" "" "libxkbcommon manual"
.
.SH "NAME"
\fBxkbcli\-compile\-keymap\fR \- compile an XKB keymap
.
.SH "SYNOPSIS"
\fBxkbcli\fR compile\-keymap [\-\-help] [OPTIONS]
.
.SH "DESCRIPTION"
\fBxkbcli compile\-keymap\fR compiles and prints a keymap based on the given options\.
.
.SH "OPTIONS"
.
.TP
\fB\-\-help\fR
Print help and exit
.
.TP
\fB\-\-verbose\fR
Enable verbose debugging output
.
.TP
\fB\-\-kccgst\fR
Print a keymap which only includes the KcCGST component names instead of the full keymap
.
.TP
\fB\-\-rmlvo\fR
Print the full RMLVO with the defaults filled in for missing elements
.
.TP
\fB\-\-from\-xkb\fR
Load the XKB file from stdin, ignore RMLVO options\. This option must not be used with \fB\-\-kccgst\fR\.
.
.TP
\fB\-\-include\fR
Add the given path to the include path list\. This option is order\-dependent, include paths given first are searched first\. If an include path is given, the default include path list is not used\. Use \fB\-\-include\-defaults\fR to add the default include paths
.
.TP
\fB\-\-include\-defaults\fR
Add the default set of include directories\. This option is order\-dependent, include paths given first are searched first\.
.
.TP
\fB\-\-rules <rules>\fR
The XKB ruleset
.
.TP
\fB\-\-model <model>\fR
The XKB model
.
.TP
\fB\-\-layout <layout>\fR:
.
.IP
The XKB layout
.
.TP
\fB\-\-variant <variant>\fR:
.
.IP
The XKB layout variant
.
.TP
\fB\-\-options <options>\fR
The XKB options
.
.SH "SEE ALSO"
\fBxkbcli\fR(1)
.
.P
The libxkbcommon online documentation at \fIhttps://xkbcommon\.org\fR

View File

@ -1,63 +0,0 @@
# xkbcli-compile-keymap(1) - compile an XKB keymap
## SYNOPSIS
**xkbcli** compile-keymap \[--help\] \[OPTIONS\]
## DESCRIPTION
**xkbcli compile-keymap** compiles and prints a keymap based on the given
options.
## OPTIONS
* `--help`:
Print help and exit
* `--verbose`:
Enable verbose debugging output
* `--kccgst`:
Print a keymap which only includes the KcCGST component names instead of
the full keymap
* ` --rmlvo`:
Print the full RMLVO with the defaults filled in for missing elements
* ` --from-xkb`:
Load the XKB file from stdin, ignore RMLVO options. This option must not
be used with `--kccgst`.
* ` --include`:
Add the given path to the include path list. This option is
order-dependent, include paths given first are searched first.
If an include path is given, the default include path list is
not used. Use `--include-defaults` to add the default include
paths
* ` --include-defaults`:
Add the default set of include directories.
This option is order-dependent, include paths given first
are searched first.
* ` --rules <rules>`:
The XKB ruleset
* ` --model <model>`:
The XKB model
* ` --layout <layout>`:
The XKB layout
* ` --variant <variant>`:
The XKB layout variant
* ` --options <options>`:
The XKB options
## SEE ALSO
**xkbcli**(1)
The libxkbcommon online documentation at <https://xkbcommon.org>

View File

@ -0,0 +1,41 @@
.TH "XKBCLI\-HOW\-TO\-TYPE" "1" "" "" "libxkbcommon manual"
.
.SH "NAME"
\fBxkbcli\-how\-to\-type\fR \- query how to type a given Unicode codepoint
.
.SH "SYNOPSIS"
\fBxkbcli\fR how\-to\-type [OPTIONS] <codepoint>
.
.SH "DESCRIPTION"
\fBxkbcli how\-to\-type\fR prints key sequences to type the given Unicode codepoint\.
.
.P
Pipe into \fBcolumn \-ts $\'\e\et\'\fR for nicely aligned output\.
.
.SH "OPTIONS"
.
.TP
\fB\-\-rules <rules>\fR
The XKB ruleset
.
.TP
\fB\-\-model <model>\fR
The XKB model
.
.TP
\fB\-\-layout <layout>\fR
The XKB layout
.
.TP
\fB\-\-variant <variant>\fR
The XKB layout variant
.
.TP
\fB\-\-options <options>\fR
The XKB options
.
.SH "SEE ALSO"
\fBxkbcli\fR(1)
.
.P
The libxkbcommon online documentation at \fIhttps://xkbcommon\.org\fR

View File

@ -1,36 +0,0 @@
# xkbcli-how-to-type(1) - query how to type a given Unicode codepoint
## SYNOPSIS
**xkbcli** how-to-type \[OPTIONS\] &lt;codepoint&gt;
## DESCRIPTION
**xkbcli how-to-type** prints key sequences to type the given Unicode
codepoint.
Pipe into `column -ts $'\\t'` for nicely aligned output.
## OPTIONS
* `--rules <rules>`:
The XKB ruleset
* `--model <model>`:
The XKB model
* `--layout <layout>`:
The XKB layout
* `--variant <variant>`:
The XKB layout variant
* `--options <options>`:
The XKB options
## SEE ALSO
**xkbcli**(1)
The libxkbcommon online documentation at <https://xkbcommon.org>

View File

@ -0,0 +1,61 @@
.TH "XKBCLI\-INTERACTIVE\-EVDEV" "1" "" "" "libxkbcommon manual"
.
.SH "NAME"
\fBxkbcli\-interactive\-evdev\fR \- interactive debugger for XKB maps
.
.SH "SYNOPSIS"
\fBxkbcli\fR interactive\-evdev [\-\-help] [OPTIONS]
.
.SH "DESCRIPTION"
\fBxkbcli interactive\-evdev\fR is a commandline tool to interactively debug XKB maps by listening to \fB/dev/input/eventX\fR evdev devices\.
.
.P
This is a debugging tool, its behavior or output is not guaranteed to be stable\.
.
.SH "OPTIONS"
.
.TP
\fB\-\-help\fR
Print help and exit
.
.TP
\fB\-\-rules <rules>\fR
The XKB ruleset
.
.TP
\fB\-\-model <model>\fR
The XKB model
.
.TP
\fB\-\-layout <layout>\fR
The XKB layout
.
.TP
\fB\-\-variant <variant>\fR
The XKB layout variant
.
.TP
\fB\-\-options <options>\fR
The XKB options
.
.TP
\fB\-\-keymap\fR
Specify a keymap path\. This option is mutually exclusive with the rmlvo options\.
.
.TP
\fB\-\-report\-state\-changes\fR
Report changes to the keyboard state
.
.TP
\fB\-\-enable\-compose\fR
Enable compose functionality
.
.TP
\fB\-\-consumed\-mode={gtk|xkb}\fR
Set the consumed modifiers mode (default: xkb)
.
.SH "SEE ALSO"
\fBxkbcli\fR(1), \fBxkbcli\-interactive\-wayland\fR(1), \fBxkbcli\-interactive\-x11\fR(1)
.
.P
The libxkbcommon online documentation at \fIhttps://xkbcommon\.org\fR

View File

@ -1,56 +0,0 @@
# xkbcli-interactive-evdev(1) - interactive debugger for XKB maps
## SYNOPSIS
**xkbcli** interactive-evdev \[--help\] \[OPTIONS\]
## DESCRIPTION
**xkbcli interactive-evdev** is a commandline tool to interactively
debug XKB maps by listening to `/dev/input/eventX` evdev devices.
This is a debugging tool, its behavior or output is not guaranteed to be
stable.
## OPTIONS
* `--help`:
Print help and exit
* `--rules <rules>`:
The XKB ruleset
* `--model <model>`:
The XKB model
* `--layout <layout>`:
The XKB layout
* `--variant <variant>`:
The XKB layout variant
* `--options <options>`:
The XKB options
* `--keymap`:
Specify a keymap path. This option is mutually exclusive with the rmlvo
options.
* `--report-state-changes`:
Report changes to the keyboard state
* `--enable-compose`:
Enable compose functionality
* `--consumed-mode={gtk|xkb}`:
Set the consumed modifiers mode (default: xkb)
## SEE ALSO
**xkbcli**(1),
**xkbcli-interactive-wayland**(1), **xkbcli-interactive-x11**(1)
The libxkbcommon online documentation at <https://xkbcommon.org>

View File

@ -0,0 +1,25 @@
.TH "XKBCLI\-INTERACTIVE\-WAYLAND" "1" "" "" "libxkbcommon manual"
.
.SH "NAME"
\fBxkbcli\-interactive\-wayland\fR \- interactive debugger for XKB maps
.
.SH "SYNOPSIS"
\fBxkbcli\fR interactive\-wayland [\-\-help] [OPTIONS]
.
.SH "DESCRIPTION"
\fBxkbcli interactive\-wayland\fR is a commandline tool to interactively debug XKB maps by listening to wayland events\. This requires a Wayland compositor to be running\.
.
.P
This is a debugging tool, its behavior or output is not guaranteed to be stable\.
.
.SH "OPTIONS"
.
.TP
\fB\-\-help\fR
Print help and exit
.
.SH "SEE ALSO"
\fBxkbcli\fR(1), \fBxkbcli\-interactive\-evdev\fR(1), \fBxkbcli\-interactive\-x11\fR(1)
.
.P
The libxkbcommon online documentation at \fIhttps://xkbcommon\.org\fR

View File

@ -1,28 +0,0 @@
# xkbcli-interactive-wayland(1) - interactive debugger for XKB maps
## SYNOPSIS
**xkbcli** interactive-wayland \[--help\] \[OPTIONS\]
## DESCRIPTION
**xkbcli interactive-wayland** is a commandline tool to interactively
debug XKB maps by listening to wayland events. This requires a Wayland
compositor to be running.
This is a debugging tool, its behavior or output is not guaranteed to be
stable.
## OPTIONS
* `--help`:
Print help and exit
## SEE ALSO
**xkbcli**(1), **xkbcli-interactive-evdev**(1),
**xkbcli-interactive-x11**(1)
The libxkbcommon online documentation at <https://xkbcommon.org>

View File

@ -0,0 +1,25 @@
.TH "XKBCLI\-INTERACTIVE\-X11" "1" "" "" "libxkbcommon manual"
.
.SH "NAME"
\fBxkbcli\-interactive\-x11\fR \- interactive debugger for XKB maps
.
.SH "SYNOPSIS"
\fBxkbcli\fR interactive\-x11 [\-\-help] [OPTIONS]
.
.SH "DESCRIPTION"
\fBxkbcli interactive\-x11\fR is a commandline tool to interactively debug XKB maps by listening to X11 events\. This requires an X server to be running\.
.
.P
This is a debugging tool, its behavior or output is not guaranteed to be stable\.
.
.SH "OPTIONS"
.
.TP
\fB\-\-help\fR
Print help and exit
.
.SH "SEE ALSO"
\fBxkbcli\fR(1), \fBxkbcli\-interactive\-evdev\fR(1), \fBxkbcli\-interactive\-wayland\fR(1)
.
.P
The libxkbcommon online documentation at \fIhttps://xkbcommon\.org\fR

View File

@ -1,28 +0,0 @@
# xkbcli-interactive-x11(1) - interactive debugger for XKB maps
## SYNOPSIS
**xkbcli** interactive-x11 \[--help\] \[OPTIONS\]
## DESCRIPTION
**xkbcli interactive-x11** is a commandline tool to interactively
debug XKB maps by listening to X11 events. This requires an X server to be
running.
This is a debugging tool, its behavior or output is not guaranteed to be
stable.
## OPTIONS
* `--help`:
Print help and exit
## SEE ALSO
**xkbcli**(1), **xkbcli-interactive-evdev**(1),
**xkbcli-interactive-wayland**(1)
The libxkbcommon online documentation at <https://xkbcommon.org>

41
tools/xkbcli-list.1 Normal file
View File

@ -0,0 +1,41 @@
.TH "XKBCLI\-LIST" "1" "" "" "libxkbcommon manual"
.
.SH "NAME"
\fBxkbcli\-list\fR \- list available XKB rules, models, layouts, variants and options
.
.SH "SYNOPSIS"
\fBxkbcli\fR list [\-\-help] [/path/to/xkbbase [/path/to/xkbbase] \.\.\.]
.
.SH "DESCRIPTION"
\fBxkbcli list\fR is a commandline tool to list available model, layout, variant and option (MLVO) values from the XKB registry\.
.
.P
Arguments provided on the commandline are treated as XKB base directory installations\.
.
.SH "OPTIONS"
.
.TP
\fB\-\-help\fR
Print help and exit
.
.TP
\fB\-v, \-\-verbose\fR
Increase verbosity, use multiple times for debugging output
.
.TP
\fB\-\-ruleset <name>\fR
Load the ruleset with the given name
.
.TP
\fB\-\-skip\-default\-paths\fR
Do not load the default XKB include paths
.
.TP
\fB\-\-load\-exotic\fR
Load exotic (extra) layouts
.
.SH "SEE ALSO"
\fBxkbcli\fR(1)
.
.P
The libxkbcommon online documentation at \fIhttps://xkbcommon\.org\fR

View File

@ -1,36 +0,0 @@
# xkbcli-list(1) - list available XKB rules, models, layouts, variants and options
## SYNOPSIS
**xkbcli** list [--help] [/path/to/xkbbase [/path/to/xkbbase] ...]
## DESCRIPTION
**xkbcli list** is a commandline tool to list available model, layout, variant
and option (MLVO) values from the XKB registry.
Arguments provided on the commandline are treated as XKB base directory
installations.
## OPTIONS
* `--help`:
Print help and exit
* `-v, --verbose`:
Increase verbosity, use multiple times for debugging output
* `--ruleset <name>`:
Load the ruleset with the given name
* `--skip-default-paths`:
Do not load the default XKB include paths
* `--load-exotic`:
Load exotic (extra) layouts
## SEE ALSO
**xkbcli**(1)
The libxkbcommon online documentation at <https://xkbcommon.org>

62
tools/xkbcli.1 Normal file
View File

@ -0,0 +1,62 @@
.TH "XKBCLI" "1" "" "" "libxkbcommon manual"
.
.SH "NAME"
\fBxkbcli\fR \- tool to interact with XKB keymaps
.
.SH "SYNOPSIS"
\fBxkbcli\fR [\-\-help|\-\-version] <command> [\fIargs\fR]
.
.SH "DESCRIPTION"
\fBxkbcli\fR is a commandline tool to query, compile and test XKB keymaps, layouts and other elements\.
.
.SH "OPTIONS"
.
.TP
\fB\-\-help\fR
Print help and exit
.
.TP
\fB\-\-version\fR
Print the version and exit
.
.SH "COMMANDS"
.
.TP
\fBhow\-to\-type\fR
Show how to type a given unicode codepoint, see \fBxkbcli\-how\-to\-type\fR(1)
.
.TP
\fBinteractive\-x11\fR
Interactive debugger for XKB maps for X11, see \fBxbkcli\-interactive\-x11\fR(1)
.
.TP
\fBinteractive\-wayland\fR
Interactive debugger for XKB maps for Wayland, see \fBxkbcli\-interactive\-wayland\fR(1)
.
.TP
\fBinteractive\-evdev\fR
Interactive debugger for XKB maps for evdev, see \fBxkbcli\-interactive\-evdev\fR
.
.TP
\fBlist\fR
List available layouts and more, see \fBxkbcli\-list\fR(1)
.
.P
Note that not all tools may be available on your system\.
.
.SH "EXIT STATUS"
.
.TP
0
exited successfully
.
.TP
1
an error occured
.
.TP
2
program was called with invalid arguments
.
.SH "SEE ALSO"
The libxkbcommon online documentation at \fIhttps://xkbcommon\.org\fR

View File

@ -1,53 +0,0 @@
# xkbcli(1) - tool to interact with XKB keymaps
## SYNOPSIS
**xkbcli** [--help|--version] &lt;command&gt; [<args>]
## DESCRIPTION
**xkbcli** is a commandline tool to query, compile and test XKB keymaps,
layouts and other elements.
## OPTIONS
* `--help`:
Print help and exit
* `--version`:
Print the version and exit
## COMMANDS
* `how-to-type`:
Show how to type a given unicode codepoint, see
`xkbcli-how-to-type`(1)
* `interactive-x11`:
Interactive debugger for XKB maps for X11, see `xbkcli-interactive-x11`(1)
* `interactive-wayland`:
Interactive debugger for XKB maps for Wayland, see
`xkbcli-interactive-wayland`(1)
* `interactive-evdev`:
Interactive debugger for XKB maps for evdev, see
`xkbcli-interactive-evdev`
* `list`:
List available layouts and more, see `xkbcli-list`(1)
Note that not all tools may be available on your system.
## EXIT STATUS
* 0:
exited successfully
* 1:
an error occured
* 2:
program was called with invalid arguments
## SEE ALSO
The libxkbcommon online documentation at <https://xkbcommon.org>