feat(app-binding): lier les presets aux applications

Ajoute la configuration des associations application/preset, le service de suivi du focus, l'intégration GUI et les fichiers d'installation nécessaires.

Ajoute les tests unitaires ciblés des bindings, du service de focus, des migrations et des composants GUI associés.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 23:52:34 +02:00
parent 0ab77d2a64
commit 9ef2c1439c
42 changed files with 4353 additions and 12 deletions

View File

@ -35,9 +35,20 @@ def check_dependencies() -> None:
import dasbus
import pygobject
import pydantic
import Xlib # python-xlib, required by the X11/XWayland focus backend
print("All required Python modules found")
except ImportError as e:
print(f"\033[93mMissing Python module: {e}\033[0m")
try:
import pywayland # optional, enables the wlroots/KDE-Wayland focus backend
del pywayland
except ImportError:
print(
"\033[93mOptional module 'pywayland' not found: the wlroots/KDE-Wayland "
"focus backend will be disabled\033[0m"
)
except Exception as e:
print(f"\033[93mException while checking dependencies: {e}\033[0m")

View File

@ -40,6 +40,8 @@ def get_data_files() -> list[tuple[str, list[str]]]:
("usr/share/icons/hicolor/scalable/apps/", ["data/input-remapper.svg"]),
("usr/share/polkit-1/actions/", ["data/input-remapper.policy"]),
("usr/lib/systemd/system", ["data/input-remapper.service"]),
# The focus-service is a per-user service running in the graphical session.
("usr/lib/systemd/user", ["data/input-remapper-focus.service"]),
# Fun fact: At some point during development and testing on arch, I ended up
# with an empty inputremapper.Control.conf file, causing dbus to fail to start,
# which rendered the whole operating system unusable.
@ -51,6 +53,7 @@ def get_data_files() -> list[tuple[str, list[str]]]:
("usr/bin/", ["bin/input-remapper-service"]),
("usr/bin/", ["bin/input-remapper-control"]),
("usr/bin/", ["bin/input-remapper-reader-service"]),
("usr/bin/", ["bin/input-remapper-focus-service"]),
]