えいのうにっき

a-knowの日記です

Mac がスリープから復帰したときにウインドウレイアウトがグチャグチャになってしまう問題

がずっと起きていて、調べてみたかぎりどうやら自分だけではない様子。

自分の Mac まわりの環境はだいたい以下のような感じ。

  • 使っている Mac は MacBook Pro 14inch (M1 Pro, 2021)
  • 外部ディスプレイを1つ使用。HDMI接続
  • 仮想デスクトップ(3本指スワイプで切り替えられるやつ)を使用。本体ディスプレイ側に2つ、外部ディスプレイ側に3つ。
  • 時々コワーキングスペースなどに行き、そこで普段使っているディスプレイとは異なる外部ディスプレイを接続することもある

「ウインドウレイアウトがグチャグチャになる」については、発生する現象にバラつきはあれど、ひどいときは以下のような感じ。

  • 外部ディスプレイ側にはひとつもウインドウがない状態になってしまう
  • 外部ディスプレイ側に配置していたウインドウは、Mac 本体側のディスプレイのある仮想デスクトップに集約されてしまう
  • しかも、ウインドウサイズが奇妙に小さなサイズになっている
  • 仮想デスクトップの数だけは維持されている
    • つまり、外部ディスプレイ側にはひとつもウインドウがない仮想デスクトップが3枚存在している状態になる

そのため、スリープから復帰するたびに「各ウインドウを目的の仮想デスクトップに移動させて」「それぞれのウインドウサイズを元に戻す」という作業を行う虚無の時間が発生してしまっていた。

以下のような生活の知恵感のあるブログ記事を見つけて実践してみたけど、自分の環境には全然効果がなかった。

gloria.cool

もう一つ見つけたのが「Stay」というアプリケーション。

Stay

Stay

  • Cordless Dog
  • ユーティリティ
  • ¥2,400
apps.apple.com

解説記事もあった。

estpolis.com

こんなわけのわからん挙動に対して行っているわけのわからん時間を無くすために、2400円(2022年11月現在)というわけのわからん出費をしなければならないのか......。。

購入を数日躊躇したものの、「対策のできるアプリケーションがこの世にある」ことを知ってしまってはもう我慢ができず、購入してしまった。

快適ではある、と、最初は思った。ワンクリックで現在のウインドウレイアウト(各ウインドウサイズも含めて)を記憶してくれるし、

ウインドウレイアウトを戻す処理をトリガーするためのショートカットキーの指定もできる。

が、繰り返し使ってみると、「Stay」にも微妙に穴があることがわかった。。

  • ウインドウサイズは完璧に復元されている
  • が、ウインドウの復元先は、外部ディスプレイに現在表示されている仮想デスクトップに集約されてしまう(ように見える)
  • そのため、「外部ディスプレイに現在表示されている仮想デスクトップ」から「外部ディスプレイ上のその他の仮想デスクトップ」へのウインドウ割り振り作業は引き続き発生する

たぶんこんな感じの挙動。難しい。

完璧ではないけど、それでも、虚無の作業の手間は大幅に改善することができた。ありがとう Stay。

もしこの問題を完璧に解消することができる方法を知っている方がおられましたら、ぜひ教えてください!

ちなみに、以下のような方法もあるようです。私はまだ試していませんが...!