ウィンドウをドラッグ移動できる領域を作る

Recipe ID: win-006

OS標準のタイトルバーを使わず、独自のタイトルバーやドラッグ可能なエリアを作成する方法を紹介します。

デザインをカスタマイズしたい場合に必須の機能です。
tauri.conf.json で標準の装飾を無効化し、HTMLの要素に data-tauri-drag-region 属性を付与することで、その領域を掴んでウィンドウを移動できるようになります。

前提条件

Permissions (権限) の設定

src-tauri/capabilities/default.json に以下の権限を追加します。

{
  "permissions": [
    ...,
    "core:window:allow-start-dragging",
    "core:window:default"
  ]
}

1. 静的な設定 (tauri.conf.json)

ドラッグ移動させるようなカスタムウィンドウを作る場合、通常はOS標準のタイトルバーを非表示にします。

{
  "app": {
    "windows": [
      {
        "decorations": false
      }
    ]
  }
}

2. フロントエンドから変更する (HTML/CSS)

data-tauri-drag-region 属性を付与した要素内でのドラッグ操作が、ウィンドウ移動として処理されます。

サンプルコード

<!-- data-tauri-drag-region 属性を付けた要素をドラッグするとウィンドウが移動します -->
<div data-tauri-drag-region class="titlebar">
  ここをドラッグして移動
</div>
.titlebar {
  height: 30px;
  background: #dddddd;
  user-select: none; /* テキスト選択を防ぐため推奨 */
  display: flex;
  align-items: center;
  padding-left: 10px;
}