## 事象
### 再現手順
1. [[Ghostty]]でタブ1とタブ2を開き、タブ1をアクティブにする
2. タブ2をアクティブにする
3. [[Focus Back (JINRAI)|Focus Back]]で別ウィンドウをアクティブにする
4. [[Focus Back (JINRAI)|Focus Back]]で[[Ghostty]]をアクティブにする
-> タブ1がアクティブになる(期待値: タブ2がアクティブになる)
### 再現しない手順
1. [[Ghostty]]でタブ1とタブ2を開き、タブ1をアクティブにする
2. タブ2をアクティブにする
3. [[Focus Back (JINRAI)|Focus Back]]で別ウィンドウをアクティブにする
4. 手動でマウスを使って[[Ghostty]]をアクティブにする
5. [[Focus Back (JINRAI)|Focus Back]]で別ウィンドウをアクティブにする
6. [[Focus Back (JINRAI)|Focus Back]]で[[Ghostty]]をアクティブにする
### 環境
| 対象 | バージョン |
| ------------ | --------- |
| [[macOS]] | 15.7.4 |
| [[Ghostty]] | 1.2.3 |
| [[🦉JINRAI]] | `0567fd0` |
> [!info]
> [[Ghostty]]は 2026/03/01 時点のnightly版でも再現する。
## 原因
『最初に表示したタブの状態』が直前のウィンドウとして復元されるから。
恐らく以下2つの理由によるものと思われる。
- [[Ghostty]]はタブごとにwindow情報が異なり、タブを変更しただけで異なるwindowとみなされる
- [[Ghostty]]でタブを変更しても、windowがリフォーカスされたわけではないので、ウィンドウが変更されたとみなされない
## 解決方法
`focus_back.stateSync` オプションを指定する。
```lua
focus_back = {
stateSync = {
interval = 0.15, -- 好みで。長い方がパフォーマンスに影響しない
targetApps = { "com.mitchellh.ghostty" },
historyScope = "application",
},
}
```
対応コミット。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" />
<span class="link-card-v2-site-name">GitHub</span>
</div>
<div class="link-card-v2-title">
feat(focus_back): stateSyncオプションの追加 · tadashi-aikawa/jinrai@a5c799c
</div>
<div class="link-card-v2-content">
- GhosttyなどタブごとにウィンドウIDが異なりイベント検知が難しいアプリで利用する
</div>
<img class="link-card-v2-image" src="https://opengraph.githubassets.com/50659d34bdf8faecd35c3ee1b8b2928e337116ab06310c09be313558994d1515/tadashi-aikawa/jinrai/commit/a5c799c150adc20aa3c2dfbe6700dcce213406de" />
<a href="https://github.com/tadashi-aikawa/jinrai/commit/a5c799c150adc20aa3c2dfbe6700dcce213406de"></a>
</div>