Need help with electron-window-state?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

mawie81
487 Stars 54 Forks MIT License 80 Commits 24 Opened issues

Description

A library to store and restore window sizes and positions for your Electron app

Services available

!
?

Need anything else?

Contributors list

No Data

electron-window-state Build Status

A library to store and restore window sizes and positions for your Electron app

Heavily influenced by the implementation in electron-boilerplate.

Install

$ npm install --save electron-window-state

Usage

const windowStateKeeper = require('electron-window-state');
let win;

app.on('ready', function () { // Load the previous state with fallback to defaults let mainWindowState = windowStateKeeper({ defaultWidth: 1000, defaultHeight: 800 });

// Create the window using the state information win = new BrowserWindow({ 'x': mainWindowState.x, 'y': mainWindowState.y, 'width': mainWindowState.width, 'height': mainWindowState.height });

// Let us register listeners on the window, so we can update the state // automatically (the listeners will be removed when the window is closed) // and restore the maximized or full screen state mainWindowState.manage(win); });

Please do not set

useContentSize
to
true
at creating
BrowserWindow
instance because it changes how to calculate window size.

API

windowStateKeeper(opts)

Note: Don't call this function before the

ready
event is fired.
opts

defaultWidth
- Number

The width that should be returned if no file exists yet. Defaults to

800
.

defaultHeight
- Number

The height that should be returned if no file exists yet. Defaults to

600
.

path
- String

The path where the state file should be written to. Defaults to

app.getPath('userData')

file
- String

The name of file. Defaults to

window-state.json
. This is usefull if you want to support multiple windows. Simply create multiple
windowStateKeeper
instances with different filenames.

maximize
- Boolean

Should we automatically maximize the window, if it was last closed maximized. Defaults to

true

fullScreen
- Boolean

Should we automatically restore the window to full screen, if it was last closed full screen. Defaults to

true

state object

const windowState = windowStateKeeper({
  defaultWidth: 1000,
  defaultHeight: 800
});

x
- Number

The saved

x
coordinate of the loaded state.
undefined
if the state has not been saved yet.

y
- Number

The saved

y
coordinate of the loaded state.
undefined
if the state has not been saved yet.

width
- Number

The saved

width
of loaded state.
defaultWidth
if the state has not been saved yet.

height
- Number

The saved

heigth
of loaded state.
defaultHeight
if the state has not been saved yet.

isMaximized
- Boolean

true
if the window state was saved while the window was maximized.
undefined
if the state has not been saved yet.

isFullScreen
- Boolean

true
if the window state was saved while the window was in full screen mode.
undefined
if the state has not been saved yet.

manage(window)
- Function

Register listeners on the given

BrowserWindow
for events that are related to size or position changes (
resize
,
move
). It will also restore the window's maximized or full screen state. When the window is closed we automatically remove the listeners and save the state.

unmanage
- Function

Removes all listeners of the managed

BrowserWindow
in case it does not need to be managed anymore.

saveState(window)
- Function

Saves the current state of the given

BrowserWindow
. This exists mostly for legacy purposes, and in most cases it's better to just use
manage
.

License

MIT © Marcel Wiehle

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.