dockで起動時からアイコンを表示させたくない【Electron】

Electron

デスクトップアプリでdockにアイコンを表示させないアプリをいくつかみたことあるんだけれど、electronでどうやるのか気になったので、やってみました。

本記事の主題は起動時からアイコンを非表示にする方法についてです。
一応、アプリ実行中でアイコンを非表示にする方法についても言及しています。

dockのアイコンを非表示にするには

dockでアイコンを表示させないようにするには dock.hide()を使えば良い。

これはドキュメントにも書いてあることなので、すんなり辿り着くことができる。

クラス: Dock | Electron
macOS Dock 内のアプリを制御する

もちろんアプリの実行中に動的にアイコンを非表示にしたい場合はこの方法で十分。

これで起動時からアイコンを非表示にできるかと思いきや、事件は起こった….

なんか、違う….

一瞬だけアイコンが表示されて消えるという動作になってしまっている。
今回の目的は最初からアイコンが表示されないようにすることなので、改善する必要がある。

本題 : アプリ起動時からアイコンを非表示にしたい

dock.hide()を使う箇所をアプリのライフサイクルを考えて工夫してみたけど、ちょっと無理そうだったので方針変更。

で、Swiftとかではどうしてるのか気になったので調べてみた。

どうやら、LSUIElementとやらを設定してやると良いみたい。
それでLSUIElementinfo.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;DR electron-builder を使用しているElectronアプリをmacOSの「このアプリケーションで開く」に対応させます。 さらに、アプリ内でファイルパスを受け取る方法も取り上げます。 行儀のいいエデ...
{ 
 "build": {
    "mac": {
      "extendInfo": {
        "LSUIElement": true
      }
    }
  }
}

package.jsonに追加してやり、アプリを作成すると上手く行きました!

コメント