ターミナル.app
のウィンドウグループのロードがおかしくなったので修正した時のメモ。
ターミナル.app
のバージョンは、2.8.3
。
ウィンドウグループの概要
macOS
のターミナルには、メニュー > ウィンドウ
のところに、ウィンドウグループを開く
やウィンドウをグループとして保存…
がある。
グループとして保存すると、ウィンドウグループを開く
から、保存したグループを開くことができる。
このグループというのは、保存時に開いていた全てのウィンドウと、各々のウィンドウの全てのタブのこと。
特定の環境を1,2秒で開くことができるので、便利である。
保存したグループがおかしい
ある時、新しく保存したグループを開こうとすると、保存時には開いていなかった空のウィンドウまで開いていることがあった。しかも、5,6枚も。
グループを開くたびに空のウィンドウが開くので、閉じるのが面倒で仕方ない。修正することにした。 以下のようになってしまう。
ダメだった修正方法
単純に、空のウィンドウを閉じたあと、保存したいタブ・ウィンドウだけにしてから、再度グループとして保存する。という方法。
結果は変わらず空のウィンドウが開いてしまっていた。
有効な修正方法
ウィンドウグループの設定をエクスポートし、テキストエディタで修正してから、ターミナル.app
にインポートし直す。という方法。
設定をエクスポート
ターミナル.app
のメニュー > 環境設定
を開く。ウィンドウグループ
タブを開く。- 左下の歯車メニューから
書き出す…
を選択。適当な場所に書き出す。
書き出したファイルの構造
適当なテキストエディタで開くとすぐわかる。(自分の場合は、mi.app
を使った。)
マークアップ言語で設定が書いてある(plist
)。関係ありそうなところだけ抜粋。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>WindowList</key>
<array>
<dict>
<!-- 内容に意味はない気がするウィンドウX -->
<key>Origin</key>
<string>{78, 643}</string>
<key>ScrollerStyle</key>
<integer>0</integer>
<key>ShowsTabBar</key>
<false/>
<key>ShowsTabBarInFullScreen</key>
<false/>
<key>Window Settings</key>
<array/>
<key>WindowNumber</key>
<integer>1</integer>
<!-- 1行上のWindowNumberが10桁以上あるものもあった。 -->
</dict>
<!-- 上のようなウィンドウ情報が28個ほど続く -->
<dict>
<!-- 本来意図したウィンドウ -->
<key>Origin</key>
<string>{181, 678}</string>
<key>ScrollerStyle</key>
<integer>1</integer>
<key>ShowsTabBar</key>
<false/>
<key>ShowsTabBarInFullScreen</key>
<false/>
<key>Window Settings</key>
<array>
<dict>
<!-- ウィンドウ設定やタブの情報など -->
</dict>
</array>
<key>WindowNumber</key>
<integer>1</integer>
</dict>
<dict>
<!-- 本来意図したウィンドウ2 -->
<key>Origin</key>
<string>{296, 761}</string>
<key>ScrollerStyle</key>
<integer>1</integer>
<key>ShowsTabBar</key>
<false/>
<key>ShowsTabBarInFullScreen</key>
<false/>
<key>Window Settings</key>
<array>
<dict>
<!-- ウィンドウ設定やタブ情報など -->
</dict>
</array>
<key>WindowNumber</key>
<integer>2</integer>
</dict>
<dict>
<!-- 本来意図したウィンドウ3 -->
<key>Origin</key>
<string>{82, 831}</string>
<key>ScrollerStyle</key>
<integer>1</integer>
<key>ShowsTabBar</key>
<false/>
<key>ShowsTabBarInFullScreen</key>
<false/>
<key>Window Settings</key>
<array>
<!-- ウィンドウ設定やタブ情報など -->
</array>
<key>WindowNumber</key>
<integer>3</integer>
</dict>
</array>
<key>name</key>
<string>テスト用</string>
<key>type</key>
<string>Window Group</string>
</dict>
</plist>
書き出したファイルを編集
上記のウィンドウX
群の行を全て削除して保存すればOK。
エクスポートした時の設定画面で、読み込む…
から設定を新しく保存すればいい。同名のグループがあるときは、末尾に1
などが付加される。
原因
テスト用のウィンドウグループを作って実験していたら、原因がわかった。
再現手順
- ウィンドウグループ
A
を保存する。 - 設定から保存したグループ
A
を削除する。 - 名前が同一の新しいウィンドウグループ
A
を保存する。 - 新しく保存したグループ
A
を開く。 - ウィンドウがいっぱい開く。
削除した以前のものと同一名の設定を保存すると、おかしくなるようだ。
上の修正手順でも、古いのを削除してから、インポートしたら、再びおかしくなるかもしれない。(未確認)
また、他の要因もあるかもしれない。
新しいバージョンでは起こらないかも
自分が使っているターミナル.app
は古いバージョンであるという自覚はあるので、新しいバージョンなら起こらないんじゃないかと思う。
以前にも、削除したのと同名のものを作成するとおかしくなる、という挙動は見たことがある。しかし、どこで見たか記憶が怪しい。Finder
だった気もする。
設定やファイルの名前は被らないようにするのがいいのかもしれない。
以上です。