## 事象 ### 再現手順 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>