mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-10-01 05:40:50 -07:00
Merge remote-tracking branch 'origin/main' into add-hachidori-backend
This commit is contained in:
@@ -0,0 +1,4 @@
|
|||||||
|
type: fixed
|
||||||
|
area: overlay
|
||||||
|
|
||||||
|
- Fixed the overlay (subtitles and sidebar) becoming unclickable after mpv goes fullscreen on Hyprland with `mpv.backend: x11`. The launcher no longer strips `HYPRLAND_INSTANCE_SIGNATURE` from the X11 environment, so the overlay can lift Hyprland's fullscreen input block again.
|
||||||
@@ -179,7 +179,8 @@ test('buildMpvEnv forces X11 by dropping Wayland hints when backend resolves to
|
|||||||
assert.equal(env.DISPLAY, ':1');
|
assert.equal(env.DISPLAY, ':1');
|
||||||
assert.equal(env.WAYLAND_DISPLAY, undefined);
|
assert.equal(env.WAYLAND_DISPLAY, undefined);
|
||||||
assert.equal(env.XDG_SESSION_TYPE, 'x11');
|
assert.equal(env.XDG_SESSION_TYPE, 'x11');
|
||||||
assert.equal(env.HYPRLAND_INSTANCE_SIGNATURE, undefined);
|
// The overlay inherits this env and needs hyprctl for its XWayland window.
|
||||||
|
assert.equal(env.HYPRLAND_INSTANCE_SIGNATURE, 'hypr');
|
||||||
assert.equal(env.SWAYSOCK, undefined);
|
assert.equal(env.SWAYSOCK, undefined);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ test('shouldForceX11MpvBackend honors explicit x11 and auto modes', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test('applyX11EnvOverrides strips Wayland hints and pins session type to x11', () => {
|
test('applyX11EnvOverrides strips Wayland hints, keeps Hyprland IPC, and pins session type to x11', () => {
|
||||||
const env = {
|
const env = {
|
||||||
DISPLAY: ':1',
|
DISPLAY: ':1',
|
||||||
WAYLAND_DISPLAY: 'wayland-0',
|
WAYLAND_DISPLAY: 'wayland-0',
|
||||||
@@ -94,7 +94,7 @@ test('applyX11EnvOverrides strips Wayland hints and pins session type to x11', (
|
|||||||
assert.equal(result, env); // mutates in place
|
assert.equal(result, env); // mutates in place
|
||||||
assert.equal(result.DISPLAY, ':1');
|
assert.equal(result.DISPLAY, ':1');
|
||||||
assert.equal(result.WAYLAND_DISPLAY, undefined);
|
assert.equal(result.WAYLAND_DISPLAY, undefined);
|
||||||
assert.equal(result.HYPRLAND_INSTANCE_SIGNATURE, undefined);
|
assert.equal(result.HYPRLAND_INSTANCE_SIGNATURE, 'hypr');
|
||||||
assert.equal(result.SWAYSOCK, undefined);
|
assert.equal(result.SWAYSOCK, undefined);
|
||||||
assert.equal(result.XDG_SESSION_TYPE, 'x11');
|
assert.equal(result.XDG_SESSION_TYPE, 'x11');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -89,10 +89,14 @@ export function shouldForceX11MpvBackend(
|
|||||||
/**
|
/**
|
||||||
* Strip Wayland/compositor hints and pin the session type to X11 on the given env
|
* Strip Wayland/compositor hints and pin the session type to X11 on the given env
|
||||||
* object (mutates in place and returns it) so a child mpv process picks XWayland.
|
* object (mutates in place and returns it) so a child mpv process picks XWayland.
|
||||||
|
*
|
||||||
|
* HYPRLAND_INSTANCE_SIGNATURE is kept: the overlay app inherits this env through the
|
||||||
|
* mpv plugin, and Hyprland still manages its XWayland windows. Without hyprctl access
|
||||||
|
* the overlay cannot lift Hyprland's fullscreen input block, so it stays visible but
|
||||||
|
* unclickable over fullscreen mpv.
|
||||||
*/
|
*/
|
||||||
export function applyX11EnvOverrides(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv {
|
export function applyX11EnvOverrides(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv {
|
||||||
delete env.WAYLAND_DISPLAY;
|
delete env.WAYLAND_DISPLAY;
|
||||||
delete env.HYPRLAND_INSTANCE_SIGNATURE;
|
|
||||||
delete env.SWAYSOCK;
|
delete env.SWAYSOCK;
|
||||||
env.XDG_SESSION_TYPE = 'x11';
|
env.XDG_SESSION_TYPE = 'x11';
|
||||||
return env;
|
return env;
|
||||||
|
|||||||
Reference in New Issue
Block a user