/
Mativ
/
solo-master
Обзор
Документация
Войти
/
Mativ
/
solo-master
Код
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/services/MonitorService.ts
36 строк
1 KB
mativ
Wayland
28 апр 2026, 21:32
28 апр 2026, 21:32
4b03010
Код
Авторство
О чём код?
import { app, screen, BrowserWindow } from 'electron'; import { DisplayInfo } from '../../electronAPI'; class MonitorServiceImpl { isWaylandNative(): boolean { if (process.platform !== 'linux') return false; const isWaylandSession = process.env.XDG_SESSION_TYPE === 'wayland' || !!process.env.WAYLAND_DISPLAY; if (!isWaylandSession) return false; // Forced XWayland — positioning works if (process.env.ELECTRON_OZONE_PLATFORM_HINT === 'x11') return false; if (app.commandLine.getSwitchValue('ozone-platform') === 'x11') return false; return true; } getDisplays(): DisplayInfo[] { const displays = screen.getAllDisplays(); const primaryId = screen.getPrimaryDisplay().id; return displays.map((d, i) => ({ index: i, label: `${i + 1} (${d.bounds.width}×${d.bounds.height})${d.id === primaryId ? ' — основной' : ''}`, bounds: d.bounds, isPrimary: d.id === primaryId, })); } applyToWindow(win: BrowserWindow, targetDisplayIndex: number): void { const display = screen.getAllDisplays()[targetDisplayIndex]; if (display) { win.setBounds(display.bounds); } } } export const MonitorService = new MonitorServiceImpl();