Microsoftがオープンソースで開発しているユーティリティーソフトウェア「PowerToys」。Aero Snapよりも柔軟なウィンドウ配置を可能にする「FancyZones」など便利なツールが提供されている。この便利なツール群について解説する。
Windows 10でウィンドウを左半分や右半分などに自動配列するデスクトップマネジャー「Aero Snap」は便利なものの、縦方向には配列できないなど、不便な点もある。また、エクスプローラーではファイル名の一括変更が面倒など、Windows 10にはまだまだ改善の余地がある。
ただ、こうした不便な点は、さまざまなベンダーやフリーソフトウェアで提供されているユーティリティーソフトウェア(ツール)を使うことで改善できる。とはいえ、サードパーティー製のユーティリティーソフトウェアを使うことにためらいを感じる人もいることだろう。そうした人に最適なユーティリティーソフトウェアが本家Microsoftから提供されようとしている。本稿では、現在、Microsoftが開発中のユーティリティーソフトウェア「PowerToys」の現状について紹介していく。
Microsoftがオープンソースで開発する「PowerToys」は、Windows OSのリリース時に標準搭載を断念せざるを得なかった便利な機能を、別途まとめて提供するためのソフトウェアである。PowerToysで提供した機能が後からWindows OSで標準機能となったことも少なくない。Windows Vista以降、提供が止まっていたが、Windows 10でオープンソースソフトウェアとして開発が始まった。
ソースコードや配布バイナリーなどは、GitHub(ソフトウェア開発のプラットフォーム。2018年にMicrosoftが買収している)のプロジェクトページで公開されている。いまのところMicrosoft Storeからの配布は行われていないので、時々プロジェクトページなどをチェックして最新バージョンを入手する必要がある。
このところは、毎月1回程度、最新版バイナリーが更新されている。もっとも、Visual Studioがあるなら、自分で最新版をコンパイルして使うことも不可能ではない。2019年12月時点での最新版は、Release v0.14.1である。2020年1月にv0.15、2月にはv0.16のリリースが予定されている。
PowerToysは、複数の機能から構成されていて、現在の計画では6つの機能を搭載する予定だ。ただし現時点で提供されているバージョンには、このうち「FancyZones」「Shortcut Guide」「PowerRename」の3つのみが含まれている。
アプリケーション名 | 説明 |
---|---|
FancyZones | ウィンドウのレイアウトを指定するウィンドウマネジャー |
Shortcut Guide | Windowsキーを使うショートカットのガイド |
PowerRename | 複雑なパターンが扱えるファイル/フォルダのリネーム機能 |
現在提供中のPowerToysの機能 |
計画では、さらに「Maximize to new desktop widget」「Process terminate tool」「Animated gif screen recorder」の3つの機能の搭載が予定されている。
アプリケーション名 | 説明 |
---|---|
Maximize to new desktop widget | ウィンドウを新しい仮想デスクトップで最大化して表示 |
Process terminate tool | プログラム強制終了ツール |
Animated gif screen recorder | デスクトップをGIFアニメーションファイルに録画 |
今後提供予定のPowerToysの機能 |
それぞれの機能は実際には独立したプログラムなのだが、設定に関しては、通知領域に常駐するPowerToysアイコンから行う。ここからは、個別の機能のオン/オフやWindows 10起動時の自動実行の有無などの他、機能ごとの設定ページがある。
インストールは、GitHubのプロジェクトページからmsiファイルをダウンロードして実行するだけだ。前述のように毎月のように更新が行われ、自分でアップデートする必要がある。
また、開発途上のソフトウェアであり、まだ一部、動作のおかしいところもあるので、試用は自分のリスクで行ってほしい。なお、Release v0.14.1のユーザーインタフェースは英語版のみである(日本語版が提供されるかは、原稿執筆時点で明らかにされていない)。
「FancyZones」は、ウィンドウをデスクトップ上に並べる「ウィンドウマネジャー」だ。Windows 10に標準で組み込まれているAero Snapは縦横4分割程度しかパターンがないが、FancyZonesはこれを拡張し、複数のレイアウトが可能になる。これにより、縦向きディスプレイでウィンドウを上下に並べるといったことが可能になる(左右分割の後に上下分割で4分割パターンは可能)。
FancyZonesのレイアウトは、ウィンドウの配置位置を示す複数のゾーンから構成される。ゾーンは、重なってもよく、単純な縦横分割だけでなく、一部が重複するようなレイアウトを作ることもできる。このあたりが、縦横分割しかないAero Snapとは違う。
レイアウトのパターンは、あらかじめ分割方法が決められた「テンプレート」と、ユーザーが自由にゾーンを配置できる「カスタムレイアウト」の2種類がある。テンプレートとしては、分割/配置方法が次の5パターン用意されている。
テンプレートでは、それぞれの分割数も指定できる。
一方、カスタムレイアウトには、ゾーンを重ねても配置できる自由配置レイアウトと、テンプレートを元に分割ゾーンのみでゾーン同士を重ね合わせしない分割型レイアウトの2種類がある。前者は、「カスタムゾーン」タブから新規作成し、後者は、テンプレートタブからレイアウトの編集を起動して作成する。
分割型レイアウトの編集画面では、クリックしたところで分割を行い、既存の分割位置を上下または左右の動かすことはできるが、分割を削除することはできない(事前に分割数は指定しておくか、少ない分割数で編集を開始して分割を追加する)。自由配置型レイアウトでは、ゾーンを示す半透明のウィンドウが表示されるため、これをデスクトップに配置していく。
FancyZonesのレイアウトは、マルチディスプレイ時には、ディスプレイごとに指定できる。それぞれのディスプレイにマウスカーソルを移動させて、[Windows]+[@]キーでレイアウトエディタを起動させればよい。
FancyZonesでウィンドウを配置したい場合には、[Shift]キーを押しながらウィンドウをドラッグする。すると、対応するゾーンが青く表示されるので、該当ゾーンに入ったらマウスボタンを離す。
インジケーター領域の[PowerToys]アイコンをクリックしてPowerToysの設定画面を開き、左ペインで[FancyZones]を選択すると、FancyZonesの設定画面が開く。このFancyZonesの設定画面では、ディスプレイ数や解像度の変化、新規ウィンドウの位置などをどうするかを細かく指定できる。
Windows 10のシステムショートカットキーは、互換性が必要なものを除き、大半が[Windows]キーを併用するものになりつつある。この[Windows]キーを併用するショートカットのガイドを表示し、そのまま実行できるのがこの「Shortcut Guide」だ。
インジケーター領域の[PowerToys]アイコンをクリックしてPowerToysの設定画面を開き、左ペインで[Shortcut Guide]を選択すると、Shortcut Guideの設定画面が開く。
このShortcut Guideの設定画面では、[Windows]キーを長押しでShortcut Guideが起動するまでの待ち時間などが設定で変更できる。[Windows]キーを離すと、ガイドは消える。スタートメニューを表示させたいときには、[Windows]キーを押してすぐ離せばよい。[Windows]キーを押したままにするとずっとガイドを表示し続けるが、その間に[Windows]キーと併用するキーを押すと該当する機能が実行できる。
ただし、ガイドが表示されるのはプライマリーディスプレイのみで、マルチディスプレイでは、他のディスプレイにカーソルがあっても、ガイドは表示されないので注意してほしい。
また、ガイドが表示されるまでの時間も設定で変更できるので、ガイドの表示が邪魔に感じるようならば、表示までの時間を長くすることで、[Windows]キーを押してもガイドが表示されにくくなる([Windows]キーを離せば表示が消えるため)。
コマンドラインでは、例えば「ren test?.* task?.*」と指定することで、「test」で始まり、その後に1文字が続く任意の拡張子のファイル全てを、「task」で始まるファイル名に一気に変更できる。
しかしエクスプローラーでは、ファイル名の変更は、原則ファイル1つ1つで行わねばならない。このため、似たようなファイル名で異なる拡張子が混在するような場合にファイル名を変更するのはかなり面倒な作業である。筆者は、こうした場合、コマンドラインを起動したり、最近ではbashを使ったりしている。
PowerRenameはこうした問題を解決するエクスプローラーの拡張機能となるリネームユーティリティーだ。もともとはSmartRenameという名前で提供されていたオープンソースソフトウェアの寄贈を受け、PowerToysに含まれることになった。
PowerRenameは、イメージ的には、テキストエディタなどの置換機能に近い。正規表現も利用可能な検索パターン指定と、キャプチャー(正規表現のグループ化部分を記録し置換時に参照する機能)が利用可能な他、対象をファイルやフォルダ、大文字小文字の区別あり/なし、あるいは拡張子に限定するなどの細かいオプション指定を持つ。
オプション名 | 説明 |
---|---|
Use Regular Expressions | 正規表現を使う |
Case Sensitive | 大文字小文字を区別する |
Match All Occurences | 複数の一致に対応する |
Exclude Files | ファイルを除外 |
Exclude Folders | フォルダを除外(フォルダ内のファイルは対象) |
Exclude Subfolder Items | サブフォルダ内を除外(サブフォルダ名は対象に含まれる) |
Enumerate Items | 連番を付ける |
Item Name Only | ファイル/フォルダ名のみを対象にする(Item Extension Onlyと排他) |
Item Extension Only | 拡張子のみを対象にする(Item Name Onlyと排他) |
PowerRenameのオプション指定 |
ただし、デフォルトの動作は、検索パターンで見つけた文字列のみを置き換えるため、例えばファイルの先頭部分のみを書き換え、後続文字列をそのままにしたいといった程度であれば、正規表現キャプチャーを利用するまでもない。キャプチャーを使う必要があるのは、正規表現でグループ化した部分を入れ替えるなどかなり複雑なパターンのときだ。なお、キャプチャーを使う場合には、オプションの「Match All Occurences」をオンにしておく必要がある。
PowerRenameは、エクスプローラーの右クリックメニューから起動するが、その前に対象となるファイルを選択している必要がある。いったん起動すれば、選択したファイル名(サブフォルダを含むこともできる)のチェックボックス付き一覧が表示されるため、後から個別にPowerRenameの処理対象から外すことはできる。
この他、ファイル/フォルダ/サブフォルダ内のファイルを除外するオプションもあり、エクスプローラー側での選択は多少、ぞんざいでも構わない。多数のファイルを置き換えるなら、[Ctrl]+[A]キーでフォルダ内のファイルを全て選択してからPowerRenameを起動して、不要なファイルのチェックボックスを外すといった使い方もできる。
右クリックメニューからPowerRenameを選択するとダイアログボックスが表示される。このとき、上から「検索パターン」「置き換えパターン」「オプション」「選択したファイルのリスト」が並ぶ。
PowerRenameのダイアログは、サイズ変更が可能なのでリストが大きい場合にはウィンドウを広げることも可能だ。検索パターンやオプションなどを指定し、最後に[Rename]ボタンを押せば、リネームが実行される。リストでは、条件を満たし、名前が変更されるファイルのリネーム後のプレビューも表示されるため、間違ってリネームする危険も少ない。なお、間違ってPowerRenameを実行してしまっても、直後であれば、エクスプローラーの取り消し([Ctrl]+[Z]キー)で元に戻せる。
インジケーター領域の[PowerToys]アイコンをクリックしてPowerToysの設定画面を開き、左ペインで[PowerToys]を選択すると、PowerToysの設定画面が開く。このPowerToysの設定画面では、PowerRenameの起動方法などを指定可能だ。
では、実際にPowerRenameを使ってみよう。
まずは、基本の置き換えである。下画面は、単純な文字列の置き換えだ。
この例では、「test」という文字列を「MYPIC」に置き換えている。これは単純な置き換えなので、置き換え対象にならない文字列部分は全てそのまま残っている。何もオプションを指定しなければ、選択したファイルやフォルダが全て対象となり、下のリスト右側にリネームのプレビューが表示される。
また、オプションとしてフォルダを除外している。「Exclude Folders」は、リネームの対象からフォルダ名のみを除外するが、サブフォルダ内のファイルは対象のままになる。この場合、コマンドラインのリネームコマンドとは違い、「test」という文字列は、ファイル名のどこにあっても一致するので、「protestant」のように思わぬ部分が一致しないように注意する必要がある。コマンドラインでいえば、「*test*」を指定したのと同等である。
次に正規表現を使う複雑な例を試してみよう。下画面は、正規表現とキャプチャーを使った例だ。
ここでは、「test」という文字列で始まるjpgファイルとpngファイルのみを対象として、ファイル名の先頭を「MYPIC」として、元のファイル名の「test」以下の部分を残すような指定を行ってみた。
具体的には、「^test([^.])¥.(png|jpg)」と検索パターンを指定した。括弧で囲まれた部分はグループ化で、ひとまとまりのパターンを示す。これに対して置き換えパターンは、「MYPIC$1.$2」とした。置き換えパターンの「$1」「$2」はキャプチャーと呼ばれるもので、検索パターンの2つのグループ化にマッチした文字列になる。
正規表現として「^test」というパターンが指定されているため、「test」で始まらないファイルは、jpgファイルやpngファイルでも対象にならない。また、検索パターンの後半で「(png|jpg)」としてpngまたはjpgと指定されているため、「test」で始まっていても拡張子が「gif」になっていると対象にならない。
なお、正規表現の文法には「拡張子」という概念はないので、明示的にピリオドを指定して拡張子を区別させる必要がある。
PowerToysは、便利な機能を持つが、必ずしも万人受けするような機能でもない。ディスプレイが1つしかなければ、Aero Snapの4分割で十分という人もいるだろう。しかし、マルチディスプレイを使い、そのうち1枚が縦置きといった場合には、FancyZonesで縦分割を指定できるため、使い勝手がぐっと上がる。
PowerRenameにしても、ファイル管理のやり方しだいであり、使い方によっては、エクスプローラーのリネームで十分という人もいる。あるいは、慣れているのでシェルでやるという人もいるだろう。
MicrosoftがPowerToysのようなユーティリティーをリリースするのは、その機能がWindows OSの開発中に一度は俎上に上がり、検討されたからだろう。しかし、必ずしもWindows OSの標準として組み込むほどではない、あるいはかえって初心者を混乱させるとして、搭載あるいは公開を断念した機能なのだと思われる。
過去のPowerToysでは、その機能が後で標準化されたものもあった。また、PowerToysの機能として紹介されたが、そもそもWindows OSに組み込まれていた機能を有効化していたものも少なくない。
例えば、Windows 98のPowerToysの1つだったTweak UIは、レジストリを操作しなければ有効にできなかったマウスのホーバー機能(ウィンドウをクリックしなくてもマウスカーソルを乗せるだけでウィンドウを選択する機能)をGUIでオン/オフできるようにしたものだった。この機能は、後に標準となり、現在のWindows 10でもコントロールパネルの簡単操作センターで設定が可能になっている。このように、日の目を見なかった機能を復活させるのが、PowerToysの1つの役割である。
Copyright© Digital Advantage Corp. All Rights Reserved.