diff --git a/app/src/components/mainWindow/mainWindow.js b/app/src/components/mainWindow/mainWindow.js index d0fe1ca..cf2e1e1 100644 --- a/app/src/components/mainWindow/mainWindow.js +++ b/app/src/components/mainWindow/mainWindow.js @@ -104,6 +104,8 @@ function createMainWindow(inpOptions, onAppQuit, setDockBadge) { }, }; + const browserwindowOptions = Object.assign({}, options.browserwindowOptions); + const mainWindow = new BrowserWindow( Object.assign( { @@ -128,6 +130,7 @@ function createMainWindow(inpOptions, onAppQuit, setDockBadge) { backgroundColor: options.backgroundColor, }, DEFAULT_WINDOW_OPTIONS, + browserwindowOptions, ), ); diff --git a/docs/api.md b/docs/api.md index aa964fe..49ed0c1 100644 --- a/docs/api.md +++ b/docs/api.md @@ -64,6 +64,7 @@ - [[file-download-options]](#file-download-options) - [[always-on-top]](#always-on-top) - [[global-shortcuts]](#global-shortcuts) + - [[browserwindow-options]](#browserwindow-options) - [[darwin-dark-mode-support]](#darwin-dark-mode-support) - [[background-color]](#background-color) - [Programmatic API](#programmatic-api) @@ -696,6 +697,21 @@ Example `shortcuts.json` for `https://deezer.com` & `https://soundcloud.com` to ] ``` +#### [browserwindow-options] + +``` +--browserwindow-options +``` + +a JSON string that will be sent directly into electron BrowserWindow options. +See [Electron's BrowserWindow API Documentation](https://electronjs.org/docs/api/browser-window#new-browserwindowoptions) for the complete list of options. + +Example: + +```bash +nativefier --browserwindow-options '{ "webPreferences": { "defaultFontFamily": { "standard": "Comic Sans MS", "serif": "Comic Sans MS" } } }' +``` + #### [darwin-dark-mode-support] ``` diff --git a/src/build/buildApp.js b/src/build/buildApp.js index 078846e..1391411 100644 --- a/src/build/buildApp.js +++ b/src/build/buildApp.js @@ -58,6 +58,7 @@ function selectAppArgs(options) { alwaysOnTop: options.alwaysOnTop, titleBarStyle: options.titleBarStyle, globalShortcuts: options.globalShortcuts, + browserwindowOptions: options.browserwindowOptions, backgroundColor: options.backgroundColor, darwinDarkModeSupport: options.darwinDarkModeSupport, }; diff --git a/src/cli.js b/src/cli.js index 2a6f29d..00324f6 100755 --- a/src/cli.js +++ b/src/cli.js @@ -238,6 +238,11 @@ if (require.main === module) { '--global-shortcuts ', 'JSON file with global shortcut configuration. See https://github.com/jiahaog/nativefier/blob/master/docs/api.md#global-shortcuts', ) + .option( + '--browserwindow-options ', + 'a JSON string that will be sent directly into electron BrowserWindow options. See https://github.com/jiahaog/nativefier/blob/master/docs/api.md#browserwindow-options', + parseJson, + ) .option( '--background-color ', "Sets the background color (for seamless experience while the app is loading). Example value: '#2e2c29'", diff --git a/src/options/optionsMain.js b/src/options/optionsMain.js index 429b297..72c1de3 100644 --- a/src/options/optionsMain.js +++ b/src/options/optionsMain.js @@ -77,6 +77,7 @@ export default function(inpOptions) { alwaysOnTop: inpOptions.alwaysOnTop || false, titleBarStyle: inpOptions.titleBarStyle || null, globalShortcuts: inpOptions.globalShortcuts || null, + browserwindowOptions: inpOptions.browserwindowOptions, backgroundColor: inpOptions.backgroundColor || null, darwinDarkModeSupport: inpOptions.darwinDarkModeSupport || false, };