📌

Tauriのウィンドウカスタマイズ

2023/09/09に公開


前回からの続きでTauriのウィンドウカスタマイズについての備忘です。ウィンドウカスタマイズ時にRustコードを書くことになると思っていましたが全く不要でした。実現が簡単すぎてTauriの優秀さを実感しました。Rustの勉強は別の機会にします。

実現したい事

  • タイトルバー,枠線の非表示
  • 最大化,最小化,閉じるの無効化
  • 大きさ変更無効化
  • 常に前面表示
  • 背景透過
  • タスクバー非表示

Tauriのwindowカスタマイズ方法

使用した設定項目

公式ドキュメントに全て書いています。
設定箇所は以下です。#部分はコメント風にしているだけの追記なので削除しないと動きません。

tauri.conf.json
    "windows": [
      {
        "title": "clock",
        "fileDropEnabled": false,
        "resizable": false,
        "maximizable": false, #resizable falseであれば不要
        "minimizable": false, #resizable falseであれば不要
        "closable": false,
        "focus": false,
        "alwaysOnTop": true,
        "contentProtected": true,
        "skipTaskbar": true,
        "transparent": true,
        "decorations": false, #タイトルバー,枠線非表示
        "width": 120,
        "height": 25,
        "x": 120,
        "y": 1410,
        "fullscreen": false,
        "additionalBrowserArgs": "--disable-features=msWebOOUI,msPdfOOUI,msSmartScreenProtection --disable-gpu --disable-local-storage --disable-background-networking --kiosk --disable-context-menu --single-process" #WebView2(Chromium Edge)の起動オプション
      }
    ]

実現した所感

  • additionalBrowserArgsがデフォルトだとメモリ使用量が80-90MB程度と大きかった
    • GPU描画管理にリソースを使用しているようだったので、disableオプション等を適当に追加し30-40MB程度に抑制
  • --disable-featuresに記載する機能IDのリストが無くて困った
  • additionalBrowserArgsオプションが膨大にあって見るのが大変だった
  • WebView経由でメモリ使用量が多いのは仕方ないとして、イメージ通りの物ができて満足した
  • index.htmlの内容とwindow位置と大きさは後から変更できるようにしたい
    • 自分の環境が変わることはほぼないし再ビルドするだけでいいので今回は妥協

参考文献

Discussion