FancyZones 利用ノート

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

Attention

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

Note

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

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

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

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

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

利用者ノート

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

複数ゾーンにスナップ

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

共有辺めがけてスナップ

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

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

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

利用者ノート

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

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

Win + Ctrl + Alt + ( | | | ) でウィンドウを複数ゾーンに拡張することが可能だ。それにはまず FancyZones 設定で

  1. Override Windows Snap を On にし、

  2. Move windows based on を項目 Relative に選択することだ。

利用者ノート

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

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

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

キーバインド

Win + Shift + @ で FancyZones Editor を起動する。

Win + ( | ) を押すと Override Windows Snap が On になっている場合に限り、フォーカスウィンドウをゾーン間で移動する。一方、Win + ( | ) は通常通り動作する。

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

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

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

FancyZones Editor

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

エディターを開く

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

レイアウトを選ぶ

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

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

ゾーン周縁部の空き

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

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

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

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

カスタムレイアウトを作成する方法は二つある。Grid レイアウトと Canvas レイアウトだ。

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

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

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

  • 矢印キーを修飾キーなしで押してゾーンを 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 ファイルはモニターやレイアウトのキーバインドなどの設定を変更するために編集することができる。

設定

項目がとにかく多い。

FancyZones 全体を有効にするために Enable FancyZone を On にする。

Editor

Open layout editor

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

Activation shortcut

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

Launch editor on the display

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

  • With active focus

  • Where the mouse pointer is

Zones

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

Zone behavior

Hold Shift key to activate zones while dragging a window

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

Use a non-primary mouse button to toggle zone activation

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

Use middle-click mouse button to toggle multiple zones spanning

タッチパッドを使う関係で無視する。

Show zones on all monitors while dragging a window

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

Allow zones to span across monitors

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

When multiple zones overlap

ゾーン同士が重なり合う場合に、どれをアクティブにするのかを選択肢から決める。

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

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

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

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

Zone appearance

ゾーン自体の見てくれをプレビューを確認しながら決める。まず色合いを次の二つから決める:

Windows default

Windows ユーザー設定の色味を適用する。これでいい。

Custom colors

レイアウトに対する色味を指定および適用する。適用するときに指定できる色は次のとおり:

項目

主旨

Highlight color

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

Inactive color

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

Border color

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

Number color

ゾーン番号の色

Show zone number

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

Opacity (%)

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

Windows

Windows behavior

FancyZones を使用中にウィンドウがどういう動作をするのかを構成する。

Keep windows in their zones when the screen resolution or work area changes

画面解像度を変更した後、ウィンドウ寸法を変更し、以前そのウィンドウが位置したいたゾーンに配置し直す。

During zone layout changes, windows assigned to a zone will match new size/positions

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

Move newly created windows to their last known zone

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

Move newly created windows to the current active monitor (Experimental)

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

Restore the original size of windows when unsnapping

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

Make the dragged window transparent

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

Allow child windows snapping

ノーチェックでいい。

Disable rounded corners when a window is snapped

ゾーンには丸角の概念がないかも?

Switch between windows in the current zone

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

  • Next window: 既定キーバインドは Win + PgDn.

  • Previous window: 既定キーバインドは Win + PgUp.

Override Windows Snap

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

Move windows based on

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

Move windows between zones across all monitors

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

Layouts

Enable quick layout switch

On にすると、レイアウトを素早く変更するキーバインドが有効になる。

Flash zones when switching layout

On にすると、ショートカットでレイアウトを選択するときにゾーンが点滅するようになる。

Excluded apps

Always On Top 利用ノート の同名設定項目と同様。