Files
SubMiner/src/core/utils/electron-backend.ts

40 lines
1.2 KiB
TypeScript

import { CliArgs, shouldStartApp } from "../../cli/args";
function getElectronOzonePlatformHint(): string | null {
const hint = process.env.ELECTRON_OZONE_PLATFORM_HINT?.trim().toLowerCase();
if (hint) return hint;
const ozone = process.env.OZONE_PLATFORM?.trim().toLowerCase();
if (ozone) return ozone;
return null;
}
function shouldPreferWaylandBackend(): boolean {
return Boolean(
process.env.HYPRLAND_INSTANCE_SIGNATURE || process.env.SWAYSOCK,
);
}
export function forceX11Backend(args: CliArgs): void {
if (process.platform !== "linux") return;
if (!shouldStartApp(args)) return;
if (shouldPreferWaylandBackend()) return;
const hint = getElectronOzonePlatformHint();
if (hint === "x11") return;
process.env.ELECTRON_OZONE_PLATFORM_HINT = "x11";
process.env.OZONE_PLATFORM = "x11";
}
export function enforceUnsupportedWaylandMode(args: CliArgs): void {
if (process.platform !== "linux") return;
if (!shouldStartApp(args)) return;
const hint = getElectronOzonePlatformHint();
if (hint !== "wayland") return;
const message =
"Unsupported Electron backend: Wayland. Set ELECTRON_OZONE_PLATFORM_HINT=x11 and restart SubMiner.";
console.error(message);
throw new Error(message);
}