Прозрачная Windows на Linux (Электрон) - PullRequest
0 голосов
/ 19 февраля 2019

Использование прозрачного аргумента и установка его в true при создании нового BrowserWindow в Electron обычно дает окну прозрачный фон ... Но в Linux это не так, насколько я знаю

Теперь я слышалВы можете установить некоторые аргументы командной строки ... Но это не работает ... Он просто отображает черный или белый, несмотря ни на что ...

// Should set the commandLine arguments and work...

const {app} = require('electron')

app.commandLine.appendSwitch('enable-transparent-visuals');
app.commandLine.appendSwitch('disable-gpu');

Теперь я слышал, что это не проблема с электрономскорее проблема с аппаратным обеспечением ... Но мне просто нужно было убедиться, поэтому создаю этот вопрос!

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Я столкнулся с той же проблемой, что и вы, поэтому я написал:

Пока запрошенная функция реализована, решение просто, просто добавьтезадержка перед запуском окна.

Вы можете клонировать этот репозиторий git , установить задержку на 500, и обычно появится магия.

РЕДАКТИРОВАТЬ1: Используйте этот репо: https://gitlab.com/doom-fr/electron-transparency-demo

git clone https://gitlab.com/doom-fr/electron-transparency-demo
cd electron-transparency-demo
npm install
npm start
# or npm run startWithTransparentOption
# or npm run startWithAllOptions

Для меня это работает из коробки с Debian Jessie и электронным 4.0.5, для npm start, npm run startWithTransparentOption, но не с npm run startWithAllOptions.

Примечание: будьте осторожны, чтобы установить не менее 500 мс, чтобы иметь шанс, что это сработает.После вы можете уменьшить задержку, но она не является стабильной.Именно поэтому необходимо событие на transparentReady.

Doom

0 голосов
/ 20 февраля 2019

Кажется, есть много проблем с прозрачностью на разных дистрибутивах с разным оборудованием.Существуют различные предлагаемые обходные пути.Возможно, вам не удастся сделать работу прозрачности приемлемой для вашего сценария на всех аппаратных средствах и дистрибутивах.

Примеры

Из электронных документов:

В Linux пользователи должны поместить --enable-transparent-visuals --disable-gpu в командную строку, чтобы отключить графический процессор и позволить ARGB создать прозрачное окно, это вызвано восходящим потокомошибка в том, что альфа-канал не работает на некоторых драйверах NVidia для Linux.

https://github.com/electron/electron/blob/master/docs/api/frameless-window.md

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...