globalShortcut
アプリケーションにキーボードフォーカスがないときにキーボードイベントを検出します。
プロセス: メイン
globalShortcut モジュールは、オペレーティングシステムに対してグローバルショートカットを登録/登録解除することができます。そのため、様々なショートカットに対する操作をカスタマイズすることができます。
[!NOTE] ショートカットはグローバルです。そのため、アプリにキーボードフォーカスがない場合でも機能します。 app モジュールの
readyイベントが発生するまでは、このモジュールは使用できません。 また、Chromium のGlobalShortcutsPortal実装の使用も可能であることに注意してください。これにより、Wayland セッション内で実行するときにアプリがグローバルのショートカットをバインドできるようになります。
const { app, globalShortcut } = require('electron')
// Portal の globalShortcuts の使用を有効化します。 これは、
// アプリが Wayland セッションで実行される場合に不可欠です。
app.commandLine.appendSwitch('enable-features', 'GlobalShortcutsPortal')
app.whenReady().then(() => {
// 'CommandOrControl+X' ショートカットのリスナーを登録します。
const ret = globalShortcut.register('CommandOrControl+X', () => {
console.log('CommandOrControl+X is pressed')
})
if (!ret) {
console.log('registration failed')
}
// ショートカットが登録されているかどうかをチェックします。
console.log(globalShortcut.isRegistered('CommandOrControl+X'))
})
app.on('will-quit', () => {
// ショートカットを登録解除します。
globalShortcut.unregister('CommandOrControl+X')
// すべてのショートカットを登録解除します。
globalShortcut.unregisterAll()
})
[!TIP] こちらもご参照ください: キーボードショートカットに関する詳細ガイド。
メソッド
globalShortcut モジュールには以下のメソッドがあります。
globalShortcut.register(accelerator, callback)
acceleratorstring - アクセラレータ のショートカット。callbackFunction
戻り値 boolean - ショートカットが正常に登録されたかどうか.
accelerator のグローバルショートカットを登録します。 callback は登録したショートカットがユーザに押下されたときに呼び出されます。
アクセラレータが他のアプリケーションによってすでに使用されている場合、この呼び出しは何も通知することなく失敗します。 この動作は、アプリケーションにグローバルショートカットの取り合いをさせたくないため、オペレーティングシステムによって意図されたものです。
以下のアクセラレータは、アプリが 信頼できるアクセシビリティクライアント として認識されていない限り macOS 10.14 Mojave に正常に登録されません。
- "Media Play/Pause"
- "Media Next Track"
- "Media Previous Track"
- "Media Stop"
globalShortcut.registerAll(accelerators, callback)
acceleratorsstring[] - アクセラレータ のショートカットの配列。callbackFunction
accelerators 内の全ての accelerator のグローバルショートカットを登録します。 callback は登録したいずれかのショートカットがユーザに押下されたときに呼び出されます。
与えられたアクセラレータが他のアプリケーションによってすでに使用されている場合、この呼び出しは何も通知することなく失敗します。 この動作は、アプリケーションにグローバルショートカットの取り合いをさせたくないため、オペレーティングシステムによって意図されたものです。
以下のアクセラレータは、アプリが 信頼できるアクセシビリティクライアント として認識されていない限り macOS 10.14 Mojave に正常に登録されません。
- "Media Play/Pause"
- "Media Next Track"
- "Media Previous Track"
- "Media Stop"
globalShortcut.isRegistered(accelerator)
acceleratorstring - アクセラレータ のショートカット。
戻り値 boolean - このアプリケーションが accelerator を登録したかどうか。
アクセラレータが他のアプリケーションによってすでに使用されている場合、この呼び出しは false を返すはずです。 この動作は、アプリケーションにグローバルショートカットの取り合いをさせたくないため、オペレーティングシステムによって意図されたものです。
globalShortcut.unregister(accelerator)
acceleratorstring - アクセラレータ のショートカット。
accelerator のグローバルショートカットを登録解除します。
globalShortcut.unregisterAll()
すべてのグローバルショートカットを登録解除します。