Fix : try FS 3
This commit is contained in:
@@ -66,6 +66,22 @@ interface VisibleWindow {
|
||||
title: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fenêtres techniques des compositeurs. Sous Wayland, le serveur XWayland n'en
|
||||
* expose qu'elles : les applications, elles, sont des clients Wayland natifs,
|
||||
* invisibles à xdotool. N'avoir qu'elles à l'écran est donc une signature, pas
|
||||
* un hasard — et le diagnostic doit le dire plutôt que de laisser croire à un
|
||||
* titre de fenêtre mal renseigné.
|
||||
*/
|
||||
const COMPOSITOR_WINDOWS = [/^mutter guard window$/i, /^gnome-shell$/i, /^kwin/i, /^plasmashell$/i];
|
||||
|
||||
export function looksLikeWayland(windows: VisibleWindow[]): boolean {
|
||||
return (
|
||||
windows.length > 0 &&
|
||||
windows.every((window) => COMPOSITOR_WINDOWS.some((pattern) => pattern.test(window.title)))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Traduit un échec de xdotool en cause identifiable.
|
||||
*
|
||||
@@ -171,9 +187,20 @@ function describeNoMatch(match: string, windows: VisibleWindow[]): string {
|
||||
if (windows.length === 0) {
|
||||
return (
|
||||
`Aucune fenêtre visible sur DISPLAY=${display}. L'agent ne voit pas ta session ` +
|
||||
'graphique : soit le navigateur tourne dans une autre session, soit la session est ' +
|
||||
'en Wayland — une fenêtre Wayland native est invisible à xdotool. ' +
|
||||
'Lance Firefox avec MOZ_ENABLE_WAYLAND=0, ou ouvre une session Xorg.'
|
||||
"graphique : le navigateur tourne-t-il bien sur cette machine, dans la session de " +
|
||||
"l'utilisateur qui exécute l'agent ?"
|
||||
);
|
||||
}
|
||||
|
||||
if (looksLikeWayland(windows)) {
|
||||
const only = windows.map((window) => `« ${window.title} »`).join(', ');
|
||||
return (
|
||||
`Session Wayland : côté X11, seule la fenêtre technique du compositeur est visible ` +
|
||||
`(${only}). Firefox y tourne en client Wayland natif — xdotool ne peut ni le voir ni ` +
|
||||
'lui envoyer de touche. Deux issues : relancer Firefox sous XWayland (ferme toutes ses ' +
|
||||
"fenêtres d'abord, l'agent pose MOZ_ENABLE_WAYLAND=0 au lancement ; une instance déjà " +
|
||||
"ouverte en Wayland récupérerait l'URL et le réglage resterait sans effet), ou ouvrir " +
|
||||
'une session Xorg depuis l\'écran de connexion GDM.'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user