16

it's possible to use custom window level in Electron Framework, for make window always on top, even other apps is in fullscreen ?

For native MacOS apps i found this: https://stackoverflow.com/a/27397096/5838242

Where he saying:

window.level = Int(CGWindowLevelForKey(kCGMaximumWindowLevelKey))

On electron, i have a browser window:

mainWindow = new BrowserWindow({width: 1400, height: 50, resizable: false, alwaysOnTop: true, y: 0, x: 0, minimizable: false, title: 'CD App', frame: false, titleBarStyle: 'hidden', type: 'desktop' });

I know the 'type' parameter is the POINT, but this parameter have just two options:

On macOS, possible types are desktop, textured. The textured type adds metal gradient appearance (NSTexturedBackgroundWindowMask). The desktop type places the window at the desktop background window level (kCGDesktopWindowLevel - 1). Note that desktop window will not receive focus, keyboard or mouse events, but you can use globalShortcut to receive input sparingly.

So, any possibilities to do this thing ?

Community
  • 1
  • 1
Paulo Rodrigues
  • 723
  • 1
  • 5
  • 16

1 Answers1

29

As of Electron 1.4.2 the setAlwaysOnTop() API takes an optional level parameter to adjust the window level, you'd use it like so:

mainWindow = new BrowserWindow({ ... });
mainWindow.setAlwaysOnTop(true, 'screen');

See the docs for all the possible values of the optional parameter, I'm not sure screen is the one you want in this case, you'll need to experiment.

Vadim Macagon
  • 14,463
  • 2
  • 52
  • 45
  • This, answer my question partially, i need to know if is possible to do electron apps with highest window level possible, even if other apps (like keynote) is on fullscreen, i need to show a "toolbar" in front of keynote. – Paulo Rodrigues Oct 04 '16 at 17:48
  • I don't know if it's possible, you'll have to experiment. – Vadim Macagon Oct 06 '16 at 03:30
  • 2
    works for me too, and also adding these to it, the app rules the screen```windowName.setMinimizable(false); fullscreen:true``` – Alex Jul 08 '21 at 06:04