REVAMP : Firefox handling
This commit is contained in:
@@ -80,6 +80,34 @@ export function resolveDisplay(): string {
|
||||
return ':0';
|
||||
}
|
||||
|
||||
/**
|
||||
* Socket Wayland de la session, si elle existe.
|
||||
*
|
||||
* Sans cette variable, une application lancée par l'agent retombe sur XWayland
|
||||
* alors que la session est native — c'est-à-dire sur une copie d'image
|
||||
* supplémentaire, payée à chaque trame pendant tout l'enregistrement.
|
||||
*/
|
||||
export function resolveWaylandDisplay(): string | null {
|
||||
const declared = process.env.WAYLAND_DISPLAY?.trim();
|
||||
if (declared) return declared;
|
||||
|
||||
const runtime = runtimeDir();
|
||||
if (!runtime) return null;
|
||||
|
||||
try {
|
||||
const sockets = fs
|
||||
.readdirSync(runtime)
|
||||
.filter((entry) => /^wayland-\d+$/.test(entry))
|
||||
.sort();
|
||||
for (const socket of sockets) {
|
||||
if (fs.statSync(path.join(runtime, socket)).isSocket()) return socket;
|
||||
}
|
||||
} catch {
|
||||
/* pas de session Wayland accessible */
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Bus de session de l'utilisateur.
|
||||
*
|
||||
@@ -122,5 +150,8 @@ export function sessionEnv(): NodeJS.ProcessEnv {
|
||||
const bus = resolveSessionBus();
|
||||
if (bus) env.DBUS_SESSION_BUS_ADDRESS = bus;
|
||||
|
||||
const wayland = resolveWaylandDisplay();
|
||||
if (wayland) env.WAYLAND_DISPLAY = wayland;
|
||||
|
||||
return env;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user