概要
Electron でキーボードショートカットを設定する方法について、解説します。
キーボードの一覧
登録可能なキーボードショートカットの一覧は、Accelerator | Electron で確認できます。
修飾キー+キー
または キー
で指定します。
- 修飾キー
- Control/Ctrl (または Ctrl)
- CommandOrControl/CmdOrCtrl (Windows だと Ctrl、Mac だと Command)
- Alt
- Option (Mac)
- Command/Cmd (Mac)
- Shift
globalShortcut で登録する
グローバルショートカットは、アプリ起動中は、常に反応するショートカットです。最小化されている場合など、アプリケーションがフォーカスされていない場合も反応します。
使用するには、globalShortcut
インタフェースを import して、globalShortcut.register()
で登録します。
アプリの初期化後でないと使用できないので、whenReady()
の履行ハンドラ内で呼び出します。
globalShortcut.register()
は第一引数に登録したキーが押下されると、第二引数の関数が呼ばれます。
他のアプリケーションによって、登録しようとしたショートカットカットが使用できない場合、globalShortcut.register()
は false を返します。
main.ts
API
GlobalShortcut.isRegistered(accelerator)
: キーボードショートカットが登録されているかどうかGlobalShortcut.register(accelerator, callback)
: キーボードショートカットを登録するGlobalShortcut.registerAll(accelerators, callback)
: 複数のキーボードショートカットをまとめて登録するGlobalShortcut.unregister(accelerator)
: キーボードショートカットの登録を解除するGlobalShortcut.unregisterAll()
: キーボードショートカットの登録をすべて解除する
ローカルショートカット
グローバルショートカットは、アプリケーションがフォーカスされている場合のみ反応するショートカットです。最小化されている場合など、フォーカスされていない場合は反応しません。 ローカルアプリケーションは、メニューにアイテムを追加する形で登録します。
レンダラー単位のショートカット
指定のウィンドウのみで有効にしたいショートカットは、BrowserWindow.webContents
で、キーが押されたときに発生するイベント before-input-event
を購読することで処理します。キーが押下されると、before-input-event
イベントが発生し、input
引数に押下されたキーの情報が格納されています。
コメント