Name: xkeyboard-config-user-hw-extras Version: 0.1 Release: 1%{?dist} Summary: XKB extension: user-contributed hardware keyboard models and symbol options License: Apache-2.0 URL: https://gitlab.com/COPR-Projekte/user-hw-extras Source0: %{name}-%{version}.tar.gz BuildArch: noarch Requires: libxkbcommon >= 1.13 Requires: xkeyboard-config >= 2.45 %define xkbextdir /usr/share/xkeyboard-config.d/user-hw-extras %define xkbsysdir %{_datadir}/X11/xkb %package compat Summary: xkbcomp compatibility symlinks for user-hw-extras Requires: %{name} = %{version}-%{release} Requires: xkeyboard-config %description User-contributed XKB extension: hardware keyboard models, geometry definitions, and symbol options not (yet) available in upstream xkeyboard-config. Currently includes: Models: cherrymx20s, cherrymx30s, cherrymxboard30 (Cherry MX family) Option: cherrymx:symbols (AltGr symbols, extended keypad, fast-typist Caps) Registered via libxkbregistry extensions mechanism (libxkbcommon 1.13+). Automatically discovered by KDE Plasma, GNOME Settings, and other desktops using libxkbcommon. %description compat Symlinks XKB files into the system XKB path so that libxkbfile-based tools (keyboard preview, setxkbmap) can find geometry and symbol definitions. Also installs rules/cherrymx.xml as human-readable documentation for anyone investigating hardware keyboard geometry support on this system. %prep %autosetup %build # nothing to build %install # --- main package: extension directory --- install -d %{buildroot}%{xkbextdir}/{rules,symbols,keycodes,geometry} install -m644 rules/evdev %{buildroot}%{xkbextdir}/rules/ install -m644 rules/evdev.xml %{buildroot}%{xkbextdir}/rules/ install -m644 rules/cherrymx.xml %{buildroot}%{xkbextdir}/rules/ install -m644 symbols/cherrymx %{buildroot}%{xkbextdir}/symbols/ install -m644 keycodes/cherrymx %{buildroot}%{xkbextdir}/keycodes/ install -m644 geometry/cherrymx %{buildroot}%{xkbextdir}/geometry/ # --- compat subpackage: symlinks into system XKB path --- install -d %{buildroot}%{xkbsysdir}/{rules,symbols,keycodes,geometry} ln -sr %{buildroot}%{xkbextdir}/symbols/cherrymx %{buildroot}%{xkbsysdir}/symbols/cherrymx ln -sr %{buildroot}%{xkbextdir}/keycodes/cherrymx %{buildroot}%{xkbsysdir}/keycodes/cherrymx ln -sr %{buildroot}%{xkbextdir}/geometry/cherrymx %{buildroot}%{xkbsysdir}/geometry/cherrymx ln -sr %{buildroot}%{xkbextdir}/rules/cherrymx.xml %{buildroot}%{xkbsysdir}/rules/cherrymx.xml %files %dir %{xkbextdir} %dir %{xkbextdir}/rules %dir %{xkbextdir}/symbols %dir %{xkbextdir}/keycodes %dir %{xkbextdir}/geometry %{xkbextdir}/rules/evdev %{xkbextdir}/rules/evdev.xml %{xkbextdir}/rules/cherrymx.xml %{xkbextdir}/symbols/cherrymx %{xkbextdir}/keycodes/cherrymx %{xkbextdir}/geometry/cherrymx %files compat %{xkbsysdir}/symbols/cherrymx %{xkbsysdir}/keycodes/cherrymx %{xkbsysdir}/geometry/cherrymx %{xkbsysdir}/rules/cherrymx.xml %changelog * Thu May 28 2026 Stefan Kaps - 0.1-1 - Initial release: Cherry MX 2.0S/3.0S/Board 3.0 models, geometry, cherrymx:symbols option