mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-08-14 01:55:58 -07:00
fix(overlay): handle X11 display scaling across monitors (#193)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import { shouldForceX11ElectronBackend } from './electron-backend';
|
||||
import { resolveX11ElectronRelaunchArgs, shouldForceX11ElectronBackend } from './electron-backend';
|
||||
|
||||
function withPlatform(platform: NodeJS.Platform, run: () => void): void {
|
||||
const original = Object.getOwnPropertyDescriptor(process, 'platform');
|
||||
@@ -32,3 +32,70 @@ test('shouldForceX11ElectronBackend is false off Linux', () => {
|
||||
assert.equal(shouldForceX11ElectronBackend({}), false);
|
||||
});
|
||||
});
|
||||
|
||||
test('resolveX11ElectronRelaunchArgs adds the raw X11 Ozone argument on unsupported Linux', () => {
|
||||
assert.deepEqual(
|
||||
resolveX11ElectronRelaunchArgs(
|
||||
['--start'],
|
||||
{
|
||||
DISPLAY: ':1',
|
||||
WAYLAND_DISPLAY: 'wayland-0',
|
||||
XDG_CURRENT_DESKTOP: 'KDE',
|
||||
},
|
||||
'linux',
|
||||
),
|
||||
['--start', '--ozone-platform=x11'],
|
||||
);
|
||||
});
|
||||
|
||||
test('resolveX11ElectronRelaunchArgs avoids loops and preserves native Wayland backends', () => {
|
||||
const kdeWayland = {
|
||||
DISPLAY: ':1',
|
||||
WAYLAND_DISPLAY: 'wayland-0',
|
||||
XDG_CURRENT_DESKTOP: 'KDE',
|
||||
};
|
||||
assert.equal(
|
||||
resolveX11ElectronRelaunchArgs(['--start', '--ozone-platform=x11'], kdeWayland, 'linux'),
|
||||
null,
|
||||
);
|
||||
assert.equal(
|
||||
resolveX11ElectronRelaunchArgs(
|
||||
['--start'],
|
||||
{ ...kdeWayland, HYPRLAND_INSTANCE_SIGNATURE: 'hypr' },
|
||||
'linux',
|
||||
),
|
||||
null,
|
||||
);
|
||||
assert.equal(resolveX11ElectronRelaunchArgs(['--start'], kdeWayland, 'darwin'), null);
|
||||
assert.equal(
|
||||
resolveX11ElectronRelaunchArgs(
|
||||
[],
|
||||
{
|
||||
...kdeWayland,
|
||||
SUBMINER_APP_ARGC: '1',
|
||||
SUBMINER_APP_ARG_0: '--start',
|
||||
},
|
||||
'linux',
|
||||
)?.at(-1),
|
||||
'--ozone-platform=x11',
|
||||
);
|
||||
assert.equal(
|
||||
resolveX11ElectronRelaunchArgs([], { ...kdeWayland, SUBMINER_X11_BOOTSTRAPPED: '1' }, 'linux'),
|
||||
null,
|
||||
);
|
||||
});
|
||||
|
||||
test('resolveX11ElectronRelaunchArgs replaces an explicit unsupported Wayland argument', () => {
|
||||
assert.deepEqual(
|
||||
resolveX11ElectronRelaunchArgs(
|
||||
['--start', '--ozone-platform', 'wayland'],
|
||||
{
|
||||
DISPLAY: ':1',
|
||||
WAYLAND_DISPLAY: 'wayland-0',
|
||||
XDG_CURRENT_DESKTOP: 'KDE',
|
||||
},
|
||||
'linux',
|
||||
),
|
||||
['--start', '--ozone-platform=x11'],
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user