1.これはそもそもエレクトロンで実装可能なのでしょうか
試したところ、以下のようなコードで実現できました。
BrowserWindowのオプションで、
frame: falseを付けると、タイトルバーや閉じるボタンなどを消してそれっぽいウインドウになります。
必ず最前面に表示したいのであれば、alwaysOnTop: trueもつけておくと良いです。
これで作られるウインドウは内部的にはブラウザそのものなのですが、見た目はかなり柔軟にカスタマイズ可能です。
また、globalShortcutを使うと、アプリ外でも動くショートカットを登録可能です。
以下、簡単なサンプルです。
js
1const Electron = require("electron");
2const app = Electron.app;
3const BrowserWindow = Electron.BrowserWindow;
4const globalShortcut = Electron.globalShortcut;
5
6app.addListener("ready", () => {
7 const window = new BrowserWindow({
8 alwaysOnTop: true,
9 frame: false,
10 width: 600,
11 height: 60,
12 show: false,
13 });
14 window.loadURL(`file://${__dirname}/index.html`);
15
16 globalShortcut.register('Command+Space', () => {
17 window.show();
18 })
19});
20
21app.addListener('will-quit', () => {
22 globalShortcut.unregisterAll();
23})
html
1<html>
2<head>
3 <style>
4 input[type=text] {
5 width: 95%;
6 font-size: 30px;
7 vertical-align: top;
8 }
9 button {
10 width: 5%;
11 height: 100%;
12 }
13 </style>
14</head>
15<body>
16<div>
17 <input type="text"><button>↩</button>
18</div>
19</body>
20</html>

2.この機能のことは専門用語としてはどう呼ばれていますか。検索する際に「デスクトップ モーダル」などで調べてみてもイマイチヒットせず。。。
私も確実なことはわからないですが、一応、モーダルで意味合いは通じるかと思います。
ただ、検索ワードとしては、一般的な言葉過ぎてそれっぽいものは出てこないかもしれないですね。
あと、ElectronのBrowserWindowにもmodalというオプションがありますが、
このオプションはあくまで親子になったBrowserWindowに対してモーダルかどうかを決めるオプションですので、今回の用途とは異なるかと思います。
2019/05/07 14:00