デスクトップアプリでdockにアイコンを表示させないアプリをいくつかみたことあるんだけれど、electronでどうやるのか気になったので、やってみました。
dockのアイコンを非表示にするには
dockでアイコンを表示させないようにするには dock.hide()
を使えば良い。
これはドキュメントにも書いてあることなので、すんなり辿り着くことができる。
クラス: Dock | Electron
macOS Dock 内のアプリを制御する
もちろんアプリの実行中に動的にアイコンを非表示にしたい場合はこの方法で十分。
これで起動時からアイコンを非表示にできるかと思いきや、事件は起こった….
なんか、違う….
一瞬だけアイコンが表示されて消えるという動作になってしまっている。
今回の目的は最初からアイコンが表示されないようにすることなので、改善する必要がある。
本題 : アプリ起動時からアイコンを非表示にしたい
dock.hide()
を使う箇所をアプリのライフサイクルを考えて工夫してみたけど、ちょっと無理そうだったので方針変更。
で、Swiftとかではどうしてるのか気になったので調べてみた。
どうやら、LSUIElement
とやらを設定してやると良いみたい。
それでLSUIElement
はinfo.plist
というものの設定項目の一つらしい。

Swift MacアプリでDockにアイコンを表示しない方法

LSUIElement | Apple Developer Documentation
A Boolean value indicating whether the app is an agent app that runs in the background and doesn't appear in the Dock.
じゃあ、これをelectronでどう設定するのか??
electron-builderを使用することで、info.plist
を設定できるらしい。

Electron+Macで「このアプリケーションで開く」に対応する - Qiita
TL;DRelectron-builder を使用しているElectronアプリをmacOSの「このアプリケーションで開く」に対応させます。さらに、アプリ内でファイルパスを受け取る方法も取り上げます。行儀のいいエデ...
{
"build": {
"mac": {
"extendInfo": {
"LSUIElement": true
}
}
}
}
をpackage.json
に追加してやり、アプリを作成すると上手く行きました!
コメント