Skip to content

v0.7.3 — Cleanup subprocess X11

Choose a tag to compare

@Gheop Gheop released this 11 Apr 19:42
· 65 commits to main since this release
99d29c8

🧹 Cleanup release

Suite à la discussion autour du portage Wayland natif (#7) : tant que GNOME Mutter ne supporte pas `wlr-layer-shell` (issue ouverte depuis 2019, sans signe de mouvement), CATAI reste obligatoirement en Xwayland sur GNOME parce que `XShape` n'a pas d'équivalent. Plutôt que d'attendre Mutter, on a fait un cleanup intermédiaire.

What's gone

  • `xprintidle` subprocess → `org.gnome.Mutter.IdleMonitor` D-Bus via `Gio.DBusProxy` (PyGObject natif, zéro nouvelle dep). ~0.1 ms par appel vs ~5-15 ms.
  • `xprop` subprocess (×2) pour fullscreen detection → `XGetWindowProperty` direct ctypes. ~50 µs vs ~30 ms.
  • `xdotool getwindowgeometry` pour Y offset → `XTranslateCoordinates` direct ctypes.
  • `_run_x11()` + tous les fallbacks subprocess morts (xdotool windowmove, wmctrl, xprop -set) — code mort qu'on shippait pour rien.
  • `import subprocess` retiré de `app.py` (plus aucun caller).
  • 3 deps runtime virées : `xdotool`, `xprop`, `xprintidle` ne sont plus jamais appelées au runtime. Tu peux les désinstaller du système, CATAI continue de tourner. (Toujours requis pour `make e2e`.)

Net result

  • ~6 fork() supprimés par seconde (sub-1% CPU mais réel pour la batterie portable)
  • ~30 lignes de plomberie subprocess virées
  • 14 nouveaux unit tests, 325 passed / 0 failed total
  • Code path testable sans display, future-proof contre la dépréciation X11 progressive de GNOME

Aucun changement fonctionnel visible. L'auto-update va attraper cette version au prochain lancement.

🤖 Generated with Claude Code