ウインドウコントロール



「僕は以前UNIXを使ってたんだけど、会社ではしょうがなくWindowsを使ってるんだ。 今までWindowsのウインドウ操作の機能の低さにほとほと困ってたんだ。 (ちょっとウインドウを後ろに持っていきたいだけなのに苦労したりしてさ。※) でも、gwcを使い始めてからはそんな苦労ともおさらばできたよ。 もう、gwc無しのWindowsなんて考えただけでも恐ろしいよ。(笑)」

Bob(仮名)

※ Alt+ESCで後ろに行きます。

機能

ウインドウの中で右ボタンのドラッグを行うと、 ドラッグのやり方(ジェスチャー)によって そのウインドウに対して様々なコントロールを行うことができます。

たとえば、あるウインドウの中で右ボタンを押し、押したまま下に移動してボタンを離すと、 そのウインドウは最小化します。

このジェスチャーによるコントロールには、以下のものがあります。

  1. [右] ウインドウを奥へ移動。
  2. [左] ウインドウを手前へ移動。
  3. [右上] ウインドウを最大化。
  4. [左下] ウインドウを元のサイズへ。
  5. [下] ウインドウを最小化。
  6. [V字チェック] ウインドウを閉じる。
  7. [下から右回り] ウインドウの移動。
  8. [下から左回り] ウインドウのサイズ変更。
  9. [「へ」の字チェック] エクスプローラで上位フォルダへ。(BackSpaceを送る)
  10. [右下] エクスプローラの表示変更。
  11. [上] ウインドウセレクタ起動。
  12. [左上] プログラムランチャ起動。
  13. [逆V] 仮想画面マネージャ起動。

ウインドウの中でドラッグを行うと書きましたが、 実際にはドラッグの軌跡が最も多く通っているウインドウが対象となるので、 アバウトな操作でもほぼ問題ありません。

ここはリファレンスとして簡単に書きました。詳細は後述します。




操作

基本操作
右ボタンを押して、移動してからボタンを離すと、 移動時の軌跡(ジェスチャー)によって 上で説明したようなコントロールを行います。

ジェスチャーのキャンセル
右ボタンのジェスチャーを開始して、右ボタンを離す前に左クリックすると、 ジェスチャーはキャンセルされます。

ジェスチャーの移動量が少ないときは、通常の右クリックになります。
この量はコンフィグファイルの samepoint_delta()で 指定することができます。

右ボタンを押して、あまり移動せずに約0.2秒間経過すると、 ウインドウコントロールはできなくなり通常の右ドラッグになります。
ウインドウコントロールを行う場合は0.2秒以内にジェスチャーを開始してください。 逆に、通常の右ドラッグを行う場合は、 右ボタンを押して一呼吸おいてからドラッグを開始してください。

ジェスチャーの調整
ジェスチャーを行うと、 2つのジェスチャーの中間的なものになってしまうことがあります。
このようなジェスチャーをどちらのジェスチャーとして認識するかは コンフィグファイルの gesture_parameter() で調整することができます。

例えば、閉じるジェスチャーをやっているつもりなのに、 最初の下方向のストロークが認識されずに、 「右上」ジェスチャーのウインドウ最大化となってしまう場合は、 1ストロークの優先度を下げる、 即ち gesture_parameter の設定値を大きくします。

機能の詳細
このページの始めに示したジェスチャーの詳細を説明します。

多くのジェスチャーは、 ジェスチャーを行う時間の長短によって2つの機能が実行されます。 長短の区別はコンフィグファイルの alternate_time() で指定した時間より長いか短いかによって決定されます。
「右下」ジェスチャーでは、ジェスチャーの距離によっても区別されます。 距離の区別はコンフィグファイルの alternate_distance() で指定した距離より長いか短いかによって決定されます。

  1. [右]
    ウインドウを一番奥へ移動します。 フォーカスを持つウインドウに対して短時間ジェスチャーを行うと、 フォーカスを持ったまま奥へ移動します。
    長時間ジェスチャーでは、 あるウインドウが奥へ行ったことによって表に出てきたウインドウに フォーカスが移ります。
  2. [左]
    ウインドウを手前へ移動します。
    長時間ジェスチャーでは、ウインドウを手前に固定します。 固定されたウインドウは、 短時間ジェスチャーか、上記の奥へ移動するジェスチャーで固定が解除されます。
  3. [右上]
    ウインドウを最大化します。
  4. [左下]
    最大化されたウインドウを元のサイズに戻します。 また、gwc のジェスチャーによって移動、またはリサイズされたウインドウを、 直前の位置・サイズに戻します。
  5. [下]
    ウインドウを最小化します。
  6. [V字チェック]
    ウインドウを閉じます。 デスクトップウインドウ(背景)を閉じると、ログオフとなります。
  7. [下から右回り]
    このジェスチャーを行って引き続きドラッグすることで、 ウインドウを移動します。 1回転のジェスチャーは約0.4秒以内に完了しないと無効となります。

    移動は、近くのウインドウの端に吸い寄せるような動作をします。
    吸い寄せる範囲はコンフィグファイルの align_delta()で 指定することができます。 移動中、Controlキーを押しておくと、この吸い寄せが無くなり、 マウスで指示した位置へ移動します。

    ウインドウの移動を完了する時(ボタンを離す時)に マウスをすばやく動かしていると、 移動しているウインドウがマウスを動かしていた方向に飛んで行き、 ほかのウインドウや画面の端にぶつかった所で確定します。
    飛ぶ方向は、斜めの4方向です。
    ウインドウを飛ばすために必要な移動量はコンフィグファイルの throw_delta() で指定することができます。

    Windows 7 では、ウインドウの端の方で移動を開始した場合、 素早く移動するとマウスポインタがウインドウの外に出て、ウインドウが ついて来なくなる場合があります。 この場合は move_offset() でウインドウ端からマウスポインタまでの最短距離を設定します。

    Windows Vista 以降では、移動中に表示されるウインドウ枠の描画が 遅くて使いにくい場合があります。この場合は、 この場合は opaque_move() に大きい値を設定して、 ウインドウの内容を表示したまま移動する設定にしてください。

  8. [下から左回り]
    このジェスチャーを行って引き続きドラッグすることで、 ウインドウのサイズを変更します。
    始めはウインドウの右下をリサイズする状態ですが、ウインドウの各辺や角へ マウスポインタを持っていくことでリサイズする辺や角を選択できます。
    ジェスチャーのタイムリミットが約0.4秒であること、 Control キーで近くのウインドウに吸い寄せる動作が変わることは、 ウインドウの移動と同じです。

    Windows Vista 以降では、リサイズ中に表示されるウインドウ枠の描画が 遅くて使いにくい場合があります。この場合は、 この場合は opaque_resize() に大きい値を設定して、 ウインドウの内容を表示したままリサイズする設定にしてください。

    Windows 7 ではウインドウの拡大ができず、おかしな状態になります。 必ず move_offset() を設定してください。

  9. [「へ」の字チェック]
    BackSpace を押したのと同じ動作をします。
    エクスプローラでは上位フォルダへ移りますし、 Lotus Notes などでは前の文書へ移ります。 テキストエディタでは直前の1文字が削除されます。:-)
  10. [右下]
    リストビューの表示を変更します。
    リストビューというのは、 エクスプローラ右側のファイルリストに代表される、 アイテムのリストを表示するツールです。

    リストビューは エクスプローラがそうであるように4種類の表示形式を持っています。 このジェスチャーでは時間の長短とジェスチャー長さの長短の組み合わせにより、 4種類の表示形式をダイレクトに指定できます。

    • 短距離・短時間ジェスチャー: アイコン表示
    • 短距離・長時間ジェスチャー: 小さいアイコン表示
    • 長距離・短時間ジェスチャー: レポート表示
    • 長距離・長時間ジェスチャー: リスト表示

    リストビューを使っていても 全ての表示形式に対応していないアプリケーションがあります。 その場合でも gwc は変更してしまいますので、表示が崩れる場合があります。
    ところで、デスクトップはエクスプローラですので、 表示を変更することができます。

  11. [上]
    ウインドウセレクタを起動します。 詳しくはウインドウセレクタのページを 参照してください。
  12. [左上]
    プログラムランチャを起動します。 詳しくはプログラムランチャのページを 参照してください。
  13. [逆V]
    仮想画面マネージャを起動します。 詳しくは仮想画面マネージャのページを 参照してください。

この他、MDI アプリケーションに対してジェスチャーを行うと、 時間の短いジェスチャーではジェスチャーを行った位置に応じて 子ウインドウや親ウインドウに対して実行されますが、 時間の長いジェスチャーを行うと、 子ウインドウの上で行ったジェスチャーでも親ウインドウに対して実行されます。


gwc・トップページ

GWC - Window Control