FancyZones

FancyZones はデスクトップ上のウィンドウ群を対象とするレイアウトマネージャーだ。設定画面でデスクトップを何らかの区画群に分割しておき、マウスまたはキーボード操作でアクティブウィンドウを任意の区間にフィットさせるものだ。 FancyZones の説明文では、この区画一つのことを zone と称している。

Attention

Microsoft PowerToys 利用ノート 冒頭の前提条件に留意すること。

Note

撮影が面倒なのでここには載せないが、スクリーンショットを見ると理解しやすい。

マウスでゾーン一つにスナップする

まず、適当なウィンドウ(のタイトルバー)をドラッグする。既定では Shift キーを押し続ける必要もある。すると、画面上にゾーンがオーバーレイ描画される。マウスを動かしながらゾーンをホバーしていると、そのゾーンが強調される。

キーボードゾーン一つにスナップする

FancyZones 設定で Windows Snap のオーバーライド を有効にしてあると、 Win + ( | | | ) のいずれかでウィンドウを複数のゾーンに拡張することができる。

利用者ノート

どの矢印キーが有効なのかはゾーンレイアウトに依存する。

複数ゾーンにスナップ

以下に述べる方法でウィンドウを複数のゾーンにスナップすることが可能だ。

共有辺めがけてスナップ

ゾーン二つが隣接している場合、それらの和ゾーンにウィンドウをスナップさせることができる。マウスカーソルがゾーン二つの共有辺の近くにある場合、ゾーンの双方が同時にアクティブになり、ウィンドウを両方に落とすことができる。

マウスとキーボードで複数ゾーンにスナップ

いずれかのゾーンがアクティブになるまでウィンドウをドラッグし、Ctrl キーを押しながらウィンドウをドラッグすると、ゾーン複数を選択可能だ。

利用者ノート

どうやらゾーンを追加的にアクティブとさせるには、何らかの条件があるようだ。

キーボードだけで複数ゾーンにスナップ

Win + Ctrl + Alt + ( | | | ) でウィンドウを複数ゾーンに拡張することが可能だ。それにはまず FancyZones 設定で Windows スナップのオーバーライド を有効にし、 次に基づいてウィンドウを移動 を項目 相対位置 に選択することだ。

利用者ノート

相対位置 でないときは、画面上にオーバーレイされる番号順に移動する。

同一ゾーン内でのウィンドウ切り替え

同じゾーンにウィンドウが複数スナップされている場合、ショートカットキー Win + (PgUp | PgDn) を押すとそのゾーンにスナップされたウィンドウを次々にアクティブにできる。

キーバインド

Win + Shift + @ でレイアウトエディターを起動する。

Win + ( | ) を押すと Windows スナップのオーバーライド がオンになっている場合に限り、フォーカスウィンドウをゾーン間で移動する。一方、Win + ( | ) は通常通り動作する。

FancyZones は Win + Shift + ( | ) の動作を変更するものではない。

特権プロセスのウィンドウをスナップする

特権アプリケーションがあり、このウィンドウを FancyZones でスナップしたい場合は PowerToys を管理者モードで実行する。

レイアウトエディター

FancyZones には PowerToys の設定画面からもアクセスできるレイアウトエディターが含まれる。このエディターでゾーン配置を細かく制御するのだ。

エディターを開く

FancyZones 機能が有効であれば、Win + Shift + @ を押すとレイアウト編集画面が開く。テンプレートを基にゾーンを細分してカスタマイズしておき、それを有効化しておくのがより一般的な設定様式だ。

レイアウトを選ぶ

初回起動時、ゾーンエディターはレイアウトの一覧を示す。これは画面内に配置できるウィンドウの個数で調整可能なものからなる。レイアウトを選択すると、そのレイアウトのプレビューが画面上に描画される。選択されたレイアウトが自動的に適用される。レイアウトをダブルクリックすると、そのレイアウトが適用され、エディターが自動的に閉じる。

複数のディスプレイを使用しているときには、エディターは使用可能なものを検出し、選択できる UI を表示する。選択されたディスプレイが指定したレイアウトの対象となる。

ゾーン周縁部の空き

設定項目 ゾーンの周りのスペース は FancyZone ウィンドウそれぞれの周囲にどのような余白を設けるかを決定する。スイッチを切り替えることで、余白を生じさせるか否かを指定可能。スライダーで余白の太さをドット数単位で指定可能。CSS の margin と同様の意味があるだろう。値を編集中に設定がどう適用されるかを確認できる。

強調する距離 では、ゾーン間の空きの量をカスタム値で設定する。ゾーン同士が密着するまでの間、つまり両者が強調されて連結されるまでの空きだ。

カスタムレイアウトを作成する

ゾーンエディターはカスタムレイアウトの作成に対応している。右下にある 新規レイアウト作成 ボタンをクリックする。

カスタムレイアウトを作成する方法は二つある。グリッドレイアウトとキャンバスレイアウトだ。

グリッドモデルは、三列の格子から始まって、ゾーンの分割、統合、ゾーン間の溝のサイズ変更によってゾーンを作成することができる。これは相対的レイアウトであり、異なる画面サイズに応じてサイズは変わる。

  • ゾーンを分割する場合にはマウスをクリックする。

  • 区切り線を回転させるには Shift キーを押しながらする。

  • ゾーンをマージ・削除するには、ゾーンを選択し、マウスの左ボタンを押したまま、複数のゾーンが選択されるまでマウスをドラッグし、ボタンを離す。すると、ポップアップメニューが出現する。ゾーンのマージ をクリックすると、一つの大きなゾーンになる。このように、ゾーンを他にマージすることで削除することができる。

キャンバスモデルは、空白のレイアウトから始まって、ウィンドウと同様にドラッグやサイズ変更が可能なゾーンの追加をできるようにしている。キャンバスレイアウトは、モニターの DPIと解像度に直接関連付けられる。

キャンバスレイアウトではキーボードを使った編集機能もある。

  • 矢印キーを修飾キーなしで押してゾーンを 10 ドットずつ移動するか、

  • Ctrl + ( | | | ) キーで 1 ドットずつ、

  • Shift + ( | | | ) キーで 10 ピクセル(各辺 5 ドット)、

  • Ctrl + Shift + ( | | | ) キーで 2 ドット(各辺 1 ドット)ずつ

ゾーンをリサイズすることができる。エディターとダイアログを切り替えるには、 Ctrl + Tab キーを押す。

カスタムレイアウトを急速に変更する

カスタムレイアウトは、ユーザー定義キーバインドを設定することで、目的の配置に素早く適用することができる。これは編集メニューで設定することができる。いったん設定すると、Win + Ctrl + Alt + (19) を押すことでカスタムレイアウトを適用することができる。また、ウィンドウをドラッグする際にこれらのキーを押すことでも適用できる。

利用者ノート

編集メニューはレイアウトサムネイル右上の鉛筆アイコンをクリックすると出現する。

カスタムゾーンのレイアウトの設定は JSON ファイル

%LocalAppData%\Microsoft\PowerToys\FancyZones\custom-layouts.json

に保存される。このファイルを手動で編集してゾーンを調整したり、エクスポートして複数のデバイス間でレイアウトを共有することができる。同じディレクトリーにある他の JSON ファイルはモニターやレイアウトのキーバインドなどの設定を変更するために編集することができる。

設定

項目がとにかく多い。

エディター

翻訳が英語と日本語の語順の違いを考慮していないので、本稿では勝手に修正しておく。

レイアウトエディターの起動

下記キーバインドを押さずとも、当設定画面が表示されているならばこのアイコンクリックでエディターを開くことが可能だ。

アクティブ化のショートカット

既定は Win + Shift + @ だが、変更可能だ。

エディターを起動するディスプレイ

複数ディスプレイを利用するならば、FancyZones を起動する画面を選択する余地がある:

  • マウスポインターの位置

  • アクティブなフォーカスあり

ゾーン

設定項目がべらぼうに多い。試行錯誤している余裕はない。

ゾーンの動作

ドラッグ中に Shift キーを長押ししてゾーンをアクティブにする

Shift キーによる自動スナップモード(ドラッグ中のスナップを無効にする)と、ドラッグ中に Shift キーを押してスナップを有効にする手動スナップモードを切り換える。

プライマリ以外のマウスボタンを使用してゾーンのアクティブ化を切り替える

左マウスボタン以外のクリックでゾーン稼働を切り替える。

ウィンドウのドラッグ中にすべてのモニターでゾーンを表示する

FancyZones は現在のディスプレイで利用可能なゾーンしか表示しないのが既定動作だ。この機能をオンにすると、性能に影響を及ぼす可能性がある。

ゾーンがモニターにまたがることを許可する

接続されているディスプレイすべてを一つの大きな画面として扱うことができる。正しく動作させるためには、すべてのモニターの DPI 拡縮因数が同じであることを必要とする。ディスプレイの向きを変えて使用した場合、予期せぬ影響が生じる可能性がある。

項目 複数のゾーンが重なり合っている場合 では、ゾーン同士が重なっている場合の対処方法を選択する。選択肢は次のとおり:

  • 領域ごとに最小のゾーンをアクティブにする

  • 領域ごとに最大のゾーンをアクティブにする

  • 重複する領域を複数のアクティブターゲットに分割する

  • 中心がカーソルに最も近いゾーンをアクティブにする

ゾーンの外観

主旨

ユーザー設定の色

レイアウトに対する色味を指定および適用する

Windows の既定値

Windows ユーザー設定の色味を適用する

ゾーン番号の表示 をオンにすると、オーバーレイのゾーンに番号が描画される。

不透明度 スライダーでオーバーレイのアルファブレンド値を指定する。

ユーザー設定の色 を適用するときに指定できる色は次のとおり:

項目

主旨

強調表示の色

ウィンドウのドラッグ中にアクティブなドロップ対象である場合のゾーンの色

非アクティブの色

ウィンドウのドラッグ中にアクティブドロップでない場合のゾーンの色

罫線の色

アクティブゾーンと非アクティブゾーンの境界の色

数字の色

ゾーン番号の色

ウィンドウの動作

画面の解像度が変更されたときにウインドウをゾーンに保持する

画面の解像度を変更した後、ウィンドウのサイズを変更し、以前いたゾーンに配置し直す。

ゾーンレイアウトの変更時に、ゾーンに割り当てられているウィンドウを新しいサイズまたは位置に合わせる

各ウィンドウの以前のゾーン番号の位置を維持しながら、新しいゾーンレイアウトにウィンドウのサイズと位置を変更する。

新しく作成されたウィンドウを最後の既知のゾーンに移動する

新しく開いたウィンドウを、そのアプリケーションが最後にいたゾーンの位置に自動的に移動する。

新しく作成したウィンドウを現在アクティブなモニターに移動する

このオプションをオンにし、上記項目をオフにするか、アプリケーションに最終既知のゾーンがない場合、アプリケーションを現在のアクティブなモニター上に維持する。

スナップ解除する場合にウィンドウの元のサイズを復元する

ウィンドウのスナップを解除すると、以前のサイズに戻る。

ドラッグしたウィンドウを透明にする

ゾーンを有効にすると、ドラッグ中のウィンドウが透明になり、ゾーンの視認性が向上する。

ポップアップウィンドウのスナップを許可する

通知を含むすべてのポップアップウィンドウに対してスナップを有効にする。

子ウィンドウのスナップを許可する

同上。

ウィンドウの切替

同じゾーンにウィンドウが複数スナップされている場合、次で設定するショートカットキーを押すことでそのゾーンにスナップされたウィンドウを順番にアクティブにするように変える。

  • 次のウィンドウ: 既定キーバインドは Win + PgDn.

  • 前のウィンドウ: 既定キーバインドは Win + PgUp.

Windows スナップのオーバーライド

先述のように、オンにすると Win + ( | ) の動作を FancyZones が上書きする。

次に基づいてウィンドウを移動

ゾーンレイアウトに対する相対的な位置に基づいて、Win + ( | | | ) でウィンドウをスナップできるようにする。

すべてのモニターのゾーン間でウィンドウを移動する

オンにするとすべてのモニターのすべてのゾーンにまたがってウィンドウが循環する。オフの場合は Win + ( | | | ) でスナップすると、現在のモニターのゾーン間でウィンドウが循環する。

レイアウト

クイックレイアウトスイッチを有効にする をオンにすると、レイアウトを素早く変更するキーバインドを有効にする。

レイアウトを切り替えるときにゾーンを点減させる をオンにすると、ショートカットでレイアウトを選択するときにゾーンが点滅するようになる。

除外するアプリ

Always on Top の同名設定項目と同様。