読者です 読者をやめる 読者になる 読者になる

Vimperator風ウィンドウ切り替えツールSvitch(3)


バージョンが上がってだいぶ趣の違うソフトになりました。「:」とかでモード変更できたらVimっぽくね?とコマンドモードを実装してみたら案外面白いものになったと思います。command.iniにファイルのパスを入れることでランチャになったり、IronPythonでコマンドを書くことで種々のウィンドウ操作(最大化、最小化など)を短いコマンドで実現できるようになりました。

ヒント表示はこのように行われます

タスクバー上のヒント表示

デスクトップ上のヒント表示

追加した主な機能はこちら↓
[NEW] タスクバー上、ウィンドウ上のヒント文字の表示・非表示を
      設定可能にした
[NEW] 各ウィンドウ上にもヒント文字とタイトル文字を
      表示できるようにした
[NEW] IronPythonでコマンドを書けるようにした
[NEW] sourceコマンドで設定の再読み込み
[NEW] ウィンドウの最小化、最大化、閉じるをコマンドに追加
[NEW] イミディエイトモードの時に入力欄の色を変えるようにした
[NEW] コマンドモード、イミディエイトモードを追加

デフォルトで実際のウィンドウ上にもヒントを表示するようにしましたが、邪魔なときはsetting.xmlの[showDesktopHint]の項目をfalseに指定してください。

動作環境

WindowsXP SP3(Pro)とVista SP1(Business)で確認。2000はタスクバーの実装がXPと違うので今のところ動きません。Microsoft .NET Framework Version 2.0以上が必要です。

ダウンロード

ソフトウェア/Svitch - トモえもんの押し入れ


readmeに載せている簡単な操作説明を載せておきます。

(1) 常駐モードでホットキー(Alt+Q)を入力→ヒント表示
(2) ヒントを入力すると該当するウィンドウが開きます
  また矢印キー、Tabキーでウィンドウを選択し
    Space・Enterキーで開くこともできます
(3) 入力を中断したいときはEscキーまたはBackSpaceキーを押します

(*) ヒント表示中に次のキーを打つことでコマンドモードに移行します
    [;](セミコロン) => イミディエイトモード(入力欄が水色)
    [:](コロン) => コマンドモード(入力欄が白色)
    登録してあるコマンドの詳細はcommand.iniを確認してください
各モードになったときの入力画面はこんな感じです


ヒント表示モード。ホットキーを押した直後の状態です。タスクバー上に表示されるヒントを入力することでウィンドウが切り替わります。ESCを押すか他のウィンドウをクリックすると閉じます。

イミディエイトモード。ヒント表示モードで「;」を押すと入力画面がディスプレイ中央に表示されます。最短で一致するコマンドが入力された瞬間に実行します。画面は「タスクバー上のウィンドウタイトルを列挙する」コマンドの「twin」を打つ直前です。ESCかCtrl+[でヒント表示モードに戻ります。

コマンドモード。ヒント表示モードで「:」を押した状態です。このモードではコマンドに引数を付けて実行することができます。Enterキーを押すとコマンドが実行されます。画面は「設定ファイル・コマンドファイルをすべて再読込する」コマンドの「source」を確定する直前です。ESCかCtrl+[でヒント表示モードに戻ります。


デフォルトで追加してあるコマンドは現在次の通りです。

s
一番手前のウィンドウを最小化。「s hint1 hint2」という感じに引数で該当するウィンドウのヒント文字列を指定することも可能。
d
一番手前のウィンドウを最大化。手前のウィンドウが最大化している場合は通常のサイズに戻ります。
f
一番手前のウィンドウを閉じる「s hint1 hint2」という感じに引数で該当するウィンドウのヒント文字列を指定することも可能。
c
引数に指定した内容をコマンドプロンプトで実行します。この中で唯一引数が必要なコマンドです(引数が必要なコマンドはイミディエイトモードでは使えません)。例:「c  ipconfig」
read
既定のエディタでreadme.txtを開くサンプル。
google
既定のブラウザでgoogle先生を開くサンプル。
twin
タスクバー上のウィンドウタイトルを表示するIronPythonコマンドのサンプル。
dwin
デスクトップの手前にある順にウィンドウタイトルを表示するIronPythonコマンドのサンプル。


おそらくAutoHotkeyなんかとできることはだいぶ似通っていて、しかもコマンドの動作の簡便さ(こちらはAlt+Qでまずヒント表示モードにする必要がある)も向こうの方が上ですが、柔軟なPythonでコマンドを書けるというのがお勧めの点です。機能的には.NETを使えばほぼなんでもできます(ウィンドウの作成とか)。