À propos du projet

perfuncted est une bibliothèque Go et une interface de ligne de commande conçue pour automatiser les applications de bureau Linux. Il simplifie le processus en détectant le type de session de l'utilisateur (X11 ou Wayland) au moment de l'exécution et en sélectionnant automatiquement le backend approprié, sans nécessiter de configuration manuelle. L'outil fournit des capacités complètes, notamment la capture d'écran, l'injection d'entrée (saisie, clic, glisser-déposer) et la gestion de fenêtres (activation, déplacement, redimensionnement, fermeture de fenêtres). Il prend en charge divers compositeurs Wayland tels que Sway, KDE Plasma et GNOME, avec des intégrations spécifiques telles qu'une extension GNOME Shell intégrée pour un contrôle natif. La bibliothèque expose des façades pour l'écran, les entrées, les fenêtres, les sorties, le presse-papiers et l'accessibilité (AT-SPI), permettant aux développeurs de créer des scripts d'automatisation robustes. Il comprend également un outil CLI `pf` pour tester la disponibilité du backend et exécuter des commandes. L'installation est prise en charge via Go install ou les paquets Flatpak, avec des dépendances facultatives telles que `wl-clipboard` ou `xclip` pour des fonctionnalités spécifiques.