Manuel / Documentation actuelle du bureau

Apps & Installation

Walker, recherche globale, désinstaller, pacman, AUR et outils optionnels.

Voici le Manuel du bureau, publié depuis le même catalogue généré. Les boutons, panneaux et menus décrivent le bureau installé. Les mises à jour peuvent être plus récentes que l’ISO disponible. Consulter le périmètre d’installation et de validation.

Avant l’installation des paquets officiels, le terminal indique qu’il recherche les mises à jour du système en attente. Cette vérification peut prendre un moment avant de vous demander le mot de passe administrateur. Les installations avec Flatpak indiquent également leur étape de préparation. Si des mises à jour sont en attente, il explique pourquoi : Arch n’installe des apps que sur un système à jour, et installer maintenant mettrait aussi à jour une partie du système sans instantané de récupération. Entrée lance la Mise à jour du système avec son instantané puis installe ; Échap annule sans rien changer.

SUPER + Space et Principal > Applications ouvrent la même liste. Enter lance une application. Delete permet de la désinstaller dans Applications après confirmation. La recherche globale par SUPER + F lance les applications sans proposer leur désinstallation. Il n’existe pas de menu distinct fondé sur des applications épinglées.

Saisir dans le menu principal recherche les applications installées et les actions de tous les sous-menus. Dans un sous-menu comme Système ou Installer, la recherche couvre celui-ci et ses descendants. Les dispositions de clavier et ce qui se trouve sous un compte cloud (services, ressources, journaux) ne sont recherchés que dans leur propre menu ; les listes de comptes cloud restent dans la recherche. Les lignes de sous-menu se terminent par > ; Shift + Backspace revient au parent.

Les menus dynamiques recherchent aussi les actions secondaires déjà chargées, par exemple celles d’un plugin installé ou d’un compte Git. La recherche réutilise les données chargées par le menu ; ouvrez le sélecteur de ressources ou Visuels pour rechercher les choix nécessitant une nouvelle lecture du fournisseur.

Installer

Appuyez sur Delete sur une entrée installée dans les listes d’applications et d’outils d’Installer pour la désinstaller après confirmation. Applications web conserve son action de suppression. Dans les listes de paquets (Pacman et Yay), Ctrl+D supprime le paquet installé sélectionné après confirmation. Ctrl+F alterne entre les paquets installés et tous les paquets. Les paquets Eitr restent installés. Les dépendances nécessaires au système ne sont jamais supprimées récursivement ; pacman refuse une suppression qui casserait un autre paquet.

Les ensembles de langages gérés affichent leur avertissement complet dans un terminal avant de demander confirmation avec [y/N] ; Enter annule. La suppression de Node inclut toutes les versions gérées par NVM et leurs outils npm globaux. Celle de Python concerne les versions gérées par uv et uv lui-même, pas Python du système. Pour Java, les versions actuelles de Java et Maven dans SDKMAN sont supprimées ; pour Rust, seule la chaîne d’outils stable est supprimée. Rails et Laravel suppriment leurs outils de framework en conservant Ruby, PHP et Composer. Vos projets, paramètres et identifiants sont conservés, mais certains outils et environnements dépendants pourraient ne plus fonctionner. La suppression des assistants natifs conserve les versions en cache et les paramètres.

Les applications présentes affichent Installé sous leur nom ; les choisir l’indique au lieu de réinstaller. Cela reconnaît aussi les outils installés par leur gestionnaire, comme Java avec SDKMAN ou Node.js avec NVM. Un paquet nécessitant un environnement d’exécution, tel Java pour DBeaver, n’en ajoute un petit que si aucun paquet ne le fournit déjà.

  • CLI d’IA: clients IA facultatifs en ligne de commande.
  • Navigateurs: choix de navigateurs compatibles.
  • Bases de données: outils facultatifs comme DBeaver, clients de bases et Valkey, le serveur compatible Redis distribué par Arch à la place de Redis.
  • Langages de développement: outils facultatifs ; Java/Flutter ne sont pas des dépendances obligatoires du bureau.
  • Outils JavaScript: environnements d’exécution et outils JavaScript facultatifs.
  • Paquets > Pacman et Paquets > Yay (AUR): recherche de paquets officiels Arch ou communautaires AUR, avec origine et état d’installation. La recherche est en haut, les paquets dessous et les détails de la sélection en bas. Ctrl+B alterne avec les instructions de compilation (PKGBUILD), Ctrl+O ouvre la page web, Tab sélectionne plusieurs paquets et Enter les installe. Les paquets AUR sont compilés ici à partir de ces instructions : lisez-les d’abord. Ce ne sont pas des paquets officiels Arch.

Les terminaux d’installation, mise à jour et configuration affichent le bandeau EITR aux couleurs du thème. Les tâches réussies se ferment normalement ; les échecs restent visibles. Les rapports comme Nettoyage restent ouverts pour lecture. Les terminaux ordinaires et À propos n’affichent pas ce bandeau.

Appuyez sur Échap pour fermer les terminaux de tâches, de comptes, de rapports et À propos qui attendent une touche. Entrée reste utilisée pour les réponses et confirmations, notamment après avoir noté la clé de récupération et pour éteindre le programme d’installation.

Utilisez eitr package install NAME pour un paquet officiel, eitr package install --aur NAME pour AUR ou eitr package remove NAME pour le supprimer. Un terminal est requis. La présentation indique le paquet et sa source : Enter confirme et Esc annule. Pour AUR, Ctrl+B affiche le fichier de compilation (q revient) et Ctrl+O ouvre le dépôt. Les paquets communautaires AUR ne sont vérifiés ni par Eitr ni par Arch Linux. Les paquets déjà installés terminent avec succès. Les erreurs restent visibles jusqu’à Esc. Les plugins peuvent utiliser kitty --class eitr-menu-terminal -e eitr package install --aur lowfi.

Outils

Calculatrice dans Applications, ou la touche calculatrice, ouvre celle d’Eitr aux couleurs du thème. Saisissez ou cliquez : + − × ÷, ^ pour les puissances, % pour les pourcentages (200×15%), √ et parenthèses. Un nombre avant une parenthèse multiplie (2(3+4)). Enter affiche le résultat, Backspace supprime un caractère, Escape efface (deux fois ferme), Ctrl+C ou Copier copie le résultat. L’expression est calculée sans être exécutée comme du code.

Dictée hors ligne transforme la parole en texte sans l’envoyer hors de l’ordinateur. Maintenez SUPER + D, parlez et relâchez : les mots sont saisis au curseur dans la langue parlée. Vous pouvez aussi appuyer brièvement sur SUPER + D, parler, puis appuyer à nouveau. Pendant l’écoute, le point rouge à gauche de l’horloge devient une petite onde suivant votre voix, pour confirmer sa réception ; après relâchement, elle pulse jusqu’à la saisie du texte. Le premier usage télécharge une fois le modèle vocal (148 Mo, vérifié avec sa somme de contrôle publiée) dans ~/.local/share/eitr/whisper/ ; ensuite, tout fonctionne hors ligne. La transcription prend un moment après relâchement, davantage sur les anciens processeurs. L’enregistrement s’arrête au relâchement de D, même si SUPER a été relâché avant, ou après 120 secondes ; les mots sont ensuite transcrits comme d’habitude.

Principal > Outils > Rappels > Nouveau rappel demande quand (durée comme 10m ou 1h30m, heure comme 18:30) et quoi, puis affiche à cet instant une notification avec des boutons pour reporter ou fermer. Rappels à venir liste ceux en attente ; choisissez-en un pour l’annuler. Ils survivent au redémarrage ; ceux échus pendant l’arrêt apparaissent à la prochaine connexion. Dans un terminal : eitr remind 25m Take the tea out ; eitr remind seul les liste.

Jeux

Principal > Jeux liste GeForce NOW, RetroArch et Steam. Choisir l’un l’ouvre s’il est installé, sinon l’installe. RetroArch provient des paquets officiels Arch avec des cœurs pour NES, SNES, Game Boy et Game Boy Advance, Mega Drive/Genesis, PlayStation, Nintendo 64, Nintendo DS, PSP et Dreamcast. Ajoutez vos jeux et les fichiers BIOS nécessaires aux consoles ; Eitr ne fournit ni les uns ni les autres. GeForce NOW s’installe par Flatpak.

Actions rapides > Mode jeu limite les interventions du bureau : animations, flou et ombres désactivés, notifications contextuelles différées (Ne pas déranger), profil de performances activé si disponible. Le désactiver restaure exactement ses changements. Steam inclut GameMode et MangoHud : ajoutez gamemoderun mangohud %command% aux options de lancement du jeu dans Steam pour optimiser le processeur et afficher les FPS.

Le paquet LocalSend inclut ses besoins d’exécution : le Flutter SDK n’est pas nécessaire pour l’utiliser. Les outils de développement restent facultatifs.

Pour mettre à jour, consultez Mises à jour et nettoyage ; installer un seul paquet n’équivaut pas à la Mise à jour du système protégée par instantanés.

Visualiseur de musique ouvre cava avec les couleurs du thème. Un clic droit sur l’égaliseur multimédia ouvre ce visualiseur ; le clic gauche ouvre toujours les détails multimédias. Appuyez sur q ou Échap pour le fermer. Si cava manque, il est installé au préalable.

Lorsqu’un moniteur connecté prend en charge HDR, Eitr utilise par défaut Wayland et HDR pour les jeux Proton de Steam avec PROTON_ENABLE_WAYLAND=1, PROTON_ENABLE_HDR=1 et DXVK_HDR=1. Sans moniteur HDR, les réglages existants sont conservés. La détection matérielle actualise la configuration d’affichage générée à chaque liste ou modification des écrans et avant son chargement à la connexion ou au rechargement. Ouvrez une nouvelle session de bureau et redémarrez Steam pour hériter des changements ; Steam déjà lancé conserve son environnement. Activez HDR dans le jeu ; les jeux en plein écran peuvent basculer automatiquement le moniteur même sans HDR du bureau. Quelques jeux perdent la superposition Steam sous Wayland. Pour exclure un jeu, utilisez PROTON_ENABLE_WAYLAND=0 %command% dans ses options de lancement Steam. Pour calibrer un jeu, réglez sa luminosité maximale ou de crête sur le pic HDR indiqué dans les caractéristiques de votre moniteur (un moniteur DisplayHDR 400 atteint environ 400 nits), puis ajustez le blanc papier ou la luminosité générale à votre goût. Si les zones claires perdent du détail, baissez le pic ; si l’image paraît terne, augmentez le blanc papier. Les navigateurs utilisent HDR uniquement lorsque le HDR du bureau est activé pour leur moniteur ; ils ne l’activent jamais automatiquement. Les jeux HDR en plein écran continuent de basculer automatiquement lorsque le HDR du bureau est désactivé. La lecture HDR dans le navigateur dépend aussi de sa prise en charge et de ses réglages.

Rappels vocaux

Maintenez SUPER + Shift + D, parlez puis relâchez, ou saisissez du texte dans Principal > Outils > Rappels > Parler à l’assistant…. Eitr transcrit localement avec le modèle hors ligne de la dictée, puis consulte l’assistant choisi dans Développement > Assistant par défaut. Seuls la transcription et le contexte des rappels vont à son fournisseur ; l’audio reste local et est supprimé après transcription. L’assistant fonctionne sans fenêtre par la voie en lecture seule d’Eitr. Eitr valide son JSON et exécute les actions ; l’assistant ne reçoit aucun outil permettant des modifications. Avec Ratatoskr (Développement > Assistant par défaut), la transcription ne quitte jamais ce PC.

Dites « Rappelle-moi d’appeler demain à 15 h » ou « Dentiste le 30 octobre à 15 h, prévenir 30 minutes avant ». Les rendez-vous déclenchent un avis une heure avant par défaut (ou selon le délai demandé), puis à l’heure prévue ; les rappels simples seulement à leur heure. En cas d’ambiguïté ou de détails manquants, un terminal affiche les choix numérotés en entier. Saisissez le numéro ou votre propre réponse, ou dictez-le avec SUPER + D ; Esc annule. Une date sans heure ouvre l’horloge, quel que soit l’assistant. Une notification indique le résultat. Vous pouvez aussi demander de lister ou d’annuler les rappels.

Nouveau rappel accepte tomorrow 15:00, les jours anglais, 2026-10-30 09:00, Oct 30 15:00, 9am, in 5 minutes et every 29th. Mettez les dates contenant des espaces entre guillemets dans la CLI. Chaque avis possède son minuteur ; l’annulation les supprime tous. Les avis manqués apparaissent à la prochaine connexion. Une date sans heure, saisie ou dictée, ouvre une petite horloge : saisissez une heure sur 24 heures dans HH:MM ; Retour arrière efface le dernier chiffre et les flèches règlent les heures ou minutes ; Entrée valide l’heure et Échap annule. Les avis de rappel émettent un son bref, sauf en mode Ne pas déranger. Le calendrier marque les jours concernés ; cliquez pour voir les heures et titres immédiatement actualisés. Chaque rappel listé a un bouton corbeille : cliquez deux fois pour supprimer un rappel unique, ou choisissez Celle-ci (seulement la prochaine occurrence) ou Toutes pour un rappel répété. Échap, un clic ailleurs ou quelques secondes sans action conservent le rappel.

Les rappels récurrents acceptent every day 08:00, every Monday 09:30, weekdays 07:00, every Monday and Thursday 09:30, every week, every month on the 15th et every year (avec une heure). Utilisez des guillemets : eitr remind "every day 08:00" Stretch. L’assistant accepte un intervalle, une date de fin ou un nombre d’occurrences. Les dates inexistantes utilisent le dernier jour du mois. L’heure locale et les alertes relatives sont conservées. Seule la prochaine occurrence a des minuteries ; après un arrêt, un seul rappel manqué apparaît et les occurrences passées sont sautées, en comptant pour la limite. La liste montre la prochaine heure et la règle. Annulez une occurrence ou la série : eitr remind cancel ID occurrence ou eitr remind cancel ID series. Le calendrier affiche des points et ↻ sans changer de hauteur.

Les notifications de rappels, y compris les alertes manquées, proposent Reporter de 5 min, Reporter de 10 min, Reporter de 1 heure et Fermer dans la fenêtre et l’historique des notifications. Le report programme un rappel ponctuel distinct avec le même texte à partir du clic ; les rappels récurrents conservent leur calendrier. Fermer ferme l’alerte. Les actions restent disponibles pendant 24 heures au maximum, puis la notification expire.

Principal > Outils > Sources de calendriers > Ajouter un calendrier… affiche un calendrier Google, Outlook ou un autre calendrier iCal dans le panneau du calendrier, en lecture seule et sans connexion. Choisissez le fournisseur : Google et Outlook ouvrent leurs paramètres dans le navigateur. Dans Google, copiez Paramètres de mes agendas > Intégrer l’agenda > Adresse secrète au format iCal ; dans Outlook, publiez un calendrier sous Paramètres > Calendrier > Calendriers partagés et copiez son lien ICS. Collez l’adresse (https:// ou webcal://), puis nommez le calendrier. Toute personne qui connaît cette adresse peut lire le calendrier : Eitr la garde donc dans un fichier privé et ne l’affiche jamais dans les menus, les notifications ou les journaux ; réinitialisez l’adresse secrète chez le fournisseur si elle fuit. Les calendriers se mettent à jour à la connexion, toutes les 15 minutes et à l’ouverture du panneau du calendrier (au plus une fois par minute). Les événements de la semaine dernière aux 60 prochains jours apparaissent à côté des rappels avec le nom du calendrier et sans corbeille : modifiez-les dans Google ou Outlook. Les événements avec heure préviennent à leur début avec le son des rappels ; ceux sur toute la journée ne préviennent pas. Les répétitions quotidiennes, hebdomadaires, mensuelles (un jour du mois ou un jour de la semaine comme le dernier vendredi) et annuelles sont affichées ; les règles plus rares ne montrent que leur premier événement. Dans le menu Sources de calendriers, Entrée actualise un calendrier tout de suite et Suppr le retire après confirmation. La synchronisation dans les deux sens (créer ou modifier des événements chez le fournisseur) n’est pas prise en charge. Le terminal reste ouvert pendant la copie du lien dans le navigateur ; Entrée sur le récapitulatif ajoute le calendrier et Échap annule.

Plugins

Un plugin est un dépôt Git contenant des scripts, des entrées Walker, des éléments visuels facultatifs (tuiles, panneaux, widgets de bureau et éléments de barre) et éventuellement un service utilisateur ; un dépôt peut contenir plusieurs plugins. Un plugin s’exécute en votre nom, avec toutes les permissions de votre compte : il peut lire vos fichiers, vos clés SSH et les données de votre navigateur, les envoyer n’importe où et continuer à tourner. Eitr n’a pas vérifié son code ; le code appartient à son auteur, pas à Eitr, et chaque entrée de plugin l’indique, par exemple Plugin de Ada · non vérifié par Eitr. N’ajoutez que des plugins de personnes et de dépôts de confiance.

Eitr ne demande votre mot de passe que dans un terminal qu’il a ouvert pour une étape que vous avez lancée, comme Mise à jour du système, jamais dans une fenêtre surgissante. Si un plugin vous demande votre mot de passe, ce n’est pas Eitr : ne le saisissez pas.

Principal > Plugins > Ajouter des plugins demande une URL Git HTTPS ou, pour un dépôt privé, une URL SSH comme git@github.com:you/plugin.git (elle utilise vos clés SSH via l’agent). L’ajout demande deux confirmations, toutes deux à Non par défaut. D’abord, avant tout téléchargement, une page de sécurité explique ces risques ; appuyez sur Entrée pour télécharger le plugin et le vérifier. Ensuite, la vérification commence par l’avertissement de confiance et les éventuels avertissements (un service en arrière-plan lancé à chaque connexion, des fichiers binaires), puis présente l’auteur du manifeste, le dépôt, le commit exact, l’auteur Git et sa date, la version, le nombre de fichiers exécutables et les entrées. Appuyez sur Entrée pour installer ; Échap annule à chaque étape. Rien du plugin ne s’exécute avant l’approbation. eitr plugin add URL pose les deux mêmes questions (Entrée continue, Échap annule) et refuse de fonctionner sans terminal. Principal > Plugins > Plugins installés liste ses actions ; la saisie dans Outils les recherche aussi. Le menu vide affiche Aucun plugin installé.

Le catalogue installe et met à jour les plugins dans la fenêtre. Les cartes Officiel et Communauté ouvrent les détails avec images, vidéos et composants. Les vidéos démarrent sans son et s’arrêtent à la fermeture. Installer et Mettre à jour présentent source, commit complet, auteur, fichiers, commandes, avertissements et changements ; la vérification facultative par IA apparaît sous forme de texte. Les plugins disposent de toutes les permissions du compte. Entrée confirme et Échap annule. Le commit installé est exactement celui vérifié ; Communauté utilise le commit fixé dans l’index. La vérification expire après 15 minutes et est supprimée à la fermeture du catalogue. Installés > Ajouter depuis une adresse Git accepte HTTPS ou SSH pour les plugins et les thèmes de données, sans terminal.

Dans la vérification d’installation, appuyez sur A pour demander à votre assistant par défaut d’examiner une copie temporaire du dépôt sous forme de texte, sans outils. Ratatoskr et Claude peuvent vérifier les plugins ; si l’assistant par défaut n’est pas pris en charge, son nom est indiqué dans la vérification. Claude envoie le texte à son fournisseur ; Ratatoskr le conserve sur ce PC. Faites défiler le rapport avec PgUp/PgDn. L’IA peut manquer des problèmes : c’est un conseil, pas une approbation, et l’avertissement sur les droits complets reste valable. Enter installe et Esc annule, même pendant la vérification. Les erreurs, les réponses vides et le délai de 180 secondes laissent la vérification normale disponible. Rien n’est installé automatiquement.

La mise à jour du système vérifie seulement les nouveaux commits des plugins, même si les paquets sont à jour, et indique leur nombre et où les mettre à jour. Elle ne révise ni ne met à jour les plugins ; les erreurs réseau sont ignorées silencieusement. Utilisez Mettre à jour les plugins dans Centre de contrôle > Plugins, à côté d’Ajouter des plugins, ou Plugins > Mettre à jour les plugins, ou lancez eitr plugin update. Le bouton et la ligne « Mettre à jour les plugins » n’apparaissent que si la dernière vérification a trouvé une mise à jour. La marque ↑ dans la ligne et « Mise à jour disponible » dans les détails reflètent la dernière vérification du commit approuvé. L’action séparée conserve les diffs, avertissements et confirmations pour chaque plugin.

Chaque mise à jour commence par un résumé : ancien et nouveau commit, sujets des commits, fichiers modifiés avec lignes ajoutées et supprimées, et signaux de RISQUE pour un service en arrière-plan ajouté, modifié ou supprimé, toute modification du manifeste, des fichiers exécutables nouveaux ou modifiés, des fichiers binaires et des commits d’un autre auteur que celui du commit approuvé. Appuyez sur d pour lire le diff complet dans un pager (delta s’il est installé, sinon less -R), Entrée pour mettre à jour, ou Échap pour garder la version actuelle. Si l’historique a été réécrit et que le commit approuvé ne fait plus partie du nouveau, Eitr ne met pas à jour automatiquement et explique pourquoi ; supprimez le plugin et ajoutez-le de nouveau si vous lui faites toujours confiance. Les mises à jour non interactives ignorent les plugins. Plugins > Plugins installés > le plugin propose Mise à jour et Supprimer ; la suppression demande confirmation et retire fichiers, entrées et service. Les mêmes parcours existent avec eitr plugin list, eitr plugin add URL, eitr plugin update [ID] et eitr plugin remove ID.

Eitr fournit une liste de blocage des plugins dans le paquet signé eitr-desktop, si bien que la signature du paquet par pacman la protège. Chaque entrée désigne un dépôt, un commit ou un identifiant de plugin, avec un motif. L’ajout ou la mise à jour d’un plugin bloqué est refusé. Un plugin installé qui devient bloqué s’arrête : ses entrées quittent Plugins > Plugins installés, il ne peut plus être lancé, son service est arrêté et désactivé, et une seule notification le nomme avec le motif, accompagnée d’un bouton Supprimer. Plugins > Plugins installés le marque comme bloqué, et le sélectionner le supprime. Ses fichiers ne sont jamais effacés automatiquement. Pour signaler un plugin nuisible, ouvrez https://github.com/eitr-org/eitr/issues/new?template=malicious-plugin.yml ; ne collez jamais de mots de passe, jetons ou clés dans le signalement. Un profil d’organisation peut aussi désactiver les plugins ou n’autoriser que les dépôts d’une liste (voir Profils d’organisation).

Les plugins résident uniquement dans $XDG_DATA_HOME/eitr/plugins/<id>/ (par défaut ~/.local/share/eitr/plugins/) ; les approbations dans $XDG_STATE_HOME/eitr/plugins.json. Les services utilisent $XDG_CONFIG_HOME/systemd/user/eitr-plugin-<id>.service avec NoNewPrivileges=yes et ne peuvent donc pas obtenir de privilèges via des programmes comme sudo. N’utilisez jamais sudo. Les mises à jour valident un candidat séparé et gardent le commit approuvé en cas de refus ou d’échec. Un plugin peut modifier vos fichiers pendant son exécution ; le supprimer n’annule pas ces modifications.

Référence du manifeste

Version 1 : La racine contient eitr-plugin.json. Seules ces clés sont admises : id (minuscules et chiffres séparés par des tirets simples), name, description (72 caractères maximum), author, version, rows (1–20 ; 0–20 avec ui) et les champs facultatifs service, schemaVersion et hooks. Chaque entrée exige title, description (72 caractères maximum chacun) et run ; icon et arguments (liste de chaînes fixes) sont facultatifs. Un service accepte seulement run et éventuellement arguments. Les commandes utilisent argv, jamais des chaînes de shell. run doit désigner un exécutable interne au dépôt : chemins absolus et .. sont refusés, tout comme un lien symbolique n’importe où dans le plugin. Les clés JSON inconnues ou dupliquées sont refusées. Les sous-modules ne sont pas initialisés.

L’exemple dans distro/plugins/example/ contient un manifeste et notify.sh, une action de notification et un hook de thème, sans service. Copiez-le dans votre dépôt Git, créez un commit et publiez une URL Git HTTPS pour essayer le parcours complet. Il est fourni comme documentation, sans installation automatique. Pour un plugin visuel, la collection officielle sur https://github.com/eitr-org/eitr-plugins contient le Visualizer.

Déclarez schemaVersion: 1 pour les manifestes de scripts ou schemaVersion: 2 pour la section facultative ui ci-dessous. Les anciens sans version restent en v1, avec un rappel lors de la vérification ; les versions supérieures à 2 nécessitent un Eitr plus récent. Le guide des auteurs distro/PLUGINS.md (installé sous PLUGINS.md) définit le contrat stable de la version 1.

Les plugins peuvent déclarer les hooks theme-changed, wallpaper-changed, after-update et login. Ils tournent en arrière-plan après l’action, une fois par session de bureau pour login, avec un délai maximal de 30 secondes. Les échecs sont consignés dans $XDG_STATE_HOME/eitr/plugin-hooks.log et ne font jamais échouer l’action. La vérification liste les hooks ; leur ajout ou modification déclenche des indicateurs RISK lors des mises à jour. La liste de blocage et les politiques d’organisation s’appliquent aussi aux hooks.

Plugins visuels

Le schéma version 2 peut ajouter des tuiles dans Centre de contrôle > Général > Plugins et des panneaux ouverts depuis ces tuiles. Ils peuvent suivre les couleurs, polices et angles d’Eitr ; les widgets et éléments de barre apparaissent seulement après leur ajout. La révision liste chaque fichier QML et son code complet avant l’installation. Les mises à jour montrent un diff défilant et le QML candidat avant approbation ; les changements QML génèrent des avertissements RISK. QML n’est pas un bac à sable : il s’exécute dans la barre avec tous vos droits. Faites confiance à l’auteur ; le chargeur ne peut isoler les boucles ni les plantages natifs.

Une erreur de chargement remplace le contenu par un message et est consignée dans $XDG_STATE_HOME/eitr/plugin-ui.log. Après trois erreurs de chargement ou signalées, les composants visuels du plugin sont désactivés, même après une mise à jour. Choisissez Réactiver dans Centre de contrôle > Plugins, ou lancez eitr plugin enable-ui ID. Avant ce seuil, fermez puis rouvrez Général pour réessayer. Actions, hooks et services restent indépendants. Plugins apparaît après les sections existantes de Général. Les panneaux remplacent les tuiles par un titre et un chevron de retour ; Retour ou Échap revient aux tuiles, puis un autre Échap ferme le Centre de contrôle. Les panneaux hauts défilent dans la sous-vue. L’exemple v2 propose une tuile Hello et un panneau d’état. Les plugins v1 restent compatibles sans changement. Le schéma et l’API limitée de style/données figurent dans distro/PLUGINS.md ; cette API est une interface prise en charge, pas une frontière de sécurité.

Un plugin de schéma v2 peut demander audio-spectrum. La révision indique qu’il lit seulement les niveaux du son système : aucun son n’est enregistré ni envoyé, et l’hôte ne capture jamais le microphone. L’ajout de cette capacité déclenche un avertissement RISK. Tous les consommateurs visibles partagent un fournisseur du spectre de lecture ; les plugins demandent de 8 à 128 barres et jusqu’à 60 images par seconde. Il s’arrête lorsqu’aucun consommateur n’est visible. Une commande dataStream déclarée fournit des lignes de texte tant que son composant est visible, avec une limite de 60 lignes par seconde et 4096 octets par ligne. La révision montre la commande et les changements déclenchent des avertissements RISK. Les composants masqués arrêtent les flux et les groupes de processus enfants ; les échecs sont réessayés avec un délai croissant. Les détails pour les auteurs figurent dans distro/PLUGINS.md.

Gestionnaire de plugins et options des widgets

Centre de contrôle > Plugins affiche chaque plugin installé avec icône, auteur, version, description et état. Dépliez Aperçu pour voir sa capture. Activer/Désactiver conserve les positions et arrête ou rétablit services, lignes Walker, hooks et composants visuels ; utilisez eitr plugin enable ID ou eitr plugin disable ID. Ajouter des plugins, Mettre à jour et Supprimer ouvrent les parcours de vérification du terminal ; la suppression demande confirmation. Général conserve uniquement les tuiles. Les erreurs visuelles ont une action indépendante de réactivation.

Ajoutez les widgets par écran et les éléments de barre sous chaque plugin. Modifier la position élève temporairement le widget au-dessus des fenêtres : faites glisser le titre ou la poignée de taille, puis Terminé ou Échap. Le mouvement est continu ; au relâchement, la position s’aligne sur l’espacement et s’enregistre. Un clic droit derrière les fenêtres ou pendant l’édition ouvre la taille (90 % / 110 %, proportions et centre conservés dans les limites de l’écran), Pleine largeur, fond Panneau/Transparent, Afficher au-dessus des fenêtres, options du plugin et Retirer du bureau. Pleine largeur utilise la plus grande taille proportionnelle possible. Les widgets au-dessus des fenêtres laissent passer les clics ; leurs options sont dans Plugins. Modifier les widgets ici ou dans Walker rend tous les widgets interactifs jusqu’à Terminé ou Échap (plugin-widgets edit / done par IPC). Les écrans déconnectés conservent leurs positions.

Les fonds transparents n’ont ni couleur, ni bordure, ni flou du système hôte ; les poignées restent visibles. Les nouveaux plugins v2 exigent une icône PNG/SVG carrée (512 Kio maximum, PNG de 64–1024 px) ; les aperçus facultatifs sont PNG/JPEG jusqu’à 2 Mio et 3840 px par axe, homepage utilise HTTPS. Les anciens plugins sans icône ont un symbole générique et une note de vérification. L’API offre api.setMenu([{id, text, checked}]) et api.menuTriggered(id) pour des options comme Wave/Terminal. Voir distro/PLUGINS.md.

Les auteurs choisissent couleurs, images, shaders et animations. Les aides de thème (api.palette, color0–15, rôles nommés, polices, tailles, rayon et themeChanged) sont facultatives. Widgets et panneaux utilisent surface: "none" par défaut ; "panel" choisit le fond Eitr. Un fond de widget enregistré explicitement prime sur la déclaration ; sinon celle-ci s’applique. Le Centre de contrôle conserve son cadre externe sans décorer le canevas du plugin. header: false masque l’en-tête ; Retour/Échap fonctionnent toujours. Les tuiles utilisent look: "eitr" par défaut ; "custom" dessine tout l’emplacement fixe, avec activation et contour de focus fournis par l’hôte. La barre n’ajoute ni teinte ni fond au survol. Les images QML relatives se résolvent dans le dossier du plugin. Limites, horloge centrée, vérifications, capacités et gestion des erreurs restent inchangées. L’exemple montre les deux styles de tuiles.