タグ: Keyboard Maestro

テンキーのないMacbook ProでInDesignのテキストスタイルのショートカットを登録してみる

面白いことに、InDesignでは、テンキーの数字キーは[文字スタイル][段落スタイル]に割り当てるショートカット用として予約されています。
そのため、通常のショートカットでは使用できません。
逆に言えば、[文字スタイル][段落スタイル]のショートカットには、テンキー+command、option、shiftキーの組み合わせしか登録できないようで、テンキーのないマシンでは困ったことになります。

ScreenShot 2015-04-13 at 12.53.52

追加でテンキーを導入するというのも作業スペースの関係で採用したくないので、なんとか方法はないものかと思ってはいたのですが、漸く少し時間が空いたので、AppleScriptとKeyboard Maestro 4でやってみました。
(Keyboard Maestro 4のTypeアクションだけでやれると思っていたのですが、commandとoptionキーの同時押し下げの方法が分かりませんでした…)

取り敢えず、「command+shift+数字」と「command+option+数字」のパターンを設定してみました。

1KM

・InDesignがフロントアプリケーションの時だけ動作するように、最初にマクログループを作って、そのグループフォルダ内にAppleScriptを実行するアクションを設定してます。
・テンキーの数字に対応するキーコードは、このページを参照してください。

「command+shift+数字」パターンでは、スクリプト内ではshiftを設定していないのですが、Keyboard Maestro 4のホットキーの「shift」を拾っているのかもしれません。

■補遺

サンプルとしての上の図のKeyboard Maestro 4のホットキー設定は、InDesignの既定のショートカットとのコンフリクトを一切考慮していません。あくまで、テンキーのkey codeを使えば、[文字スタイル][段落スタイル]にショートカットをテンキーのないマシンでも設定できることを試したものです。

もし、既定のショートカットとのコンフリクトがある場合は、ホットキー設定を変えるか、InDesign側の既定値を書き換えるなどで対処してください。

広告

Plain Clip.appとKeyboard Maestro 6でプレーンテキストを抜き出す

この‘Plain Clip.app’はAppleScriptで«class ktxt»でプレーンテキストを抜き出すレスポンスに不満があって使い始めていたのですが、コマンドラインからの使用については迂闊に知りませんでした。
これを利用して、‘do shell script …’で使用すれば更に早い処理スピードが期待できます。

‘Plain Clip’のシェルスクリプトはアプリケーション‘Plain Clip.app’にバインドされています。つまり、アプリケーションのバンドルパッケージ内に‘pc’という名前のスクリプトがあります。‘Plain Clip.app’がアプリケーションフォルダ内にあれば、‘/Applications/Plain Clip.app/pc’というわけです。
‘Plain Clip’をシェルスクリプトで起動する場合は、以下のオプションが使えます。

-w Remove whitespace from the end of each line
-l Remove whitespace from the beginning of each line
-m Remove spaces, tabs and returns from the beginning and end of the whole string
-i Remove invisible characters (see above)
-r Remove line breaks
-b Remove blank lines
-s Replace consecutive spaces with a single one
-p Replace tabs with spaces
-a Convert to ASCII
-v After cleaning the clipboard text, emulate a ⌘V keystroke.

シェルスクリプトからの実行をKeyboard Maestro 6に組み込んでみた例が次の図です。

1

オプションで‘-v’を付加すれば、最新バージョン2.4.8では、⌘+vのペーストまで‘Plain Clip’がエミュレートしてくれますので、Keyboard Maestro 6はシェルスクリプトを起動するためだけに使っていることになります。

と、ここまで書いていて、Keyboard Maestro 6を使うのであれば、Keyboard Maestro 6自身が持つクリップボード操作機能で同じことができそうです。気がつきませんでした。(最近、うっかりし過ぎのような気がします…)
それが、次の図です。

kbm6

結局、これが一番シンプルだったようです。

Keyboard Maestro 6

■メニュー項目へのアクセスとマウスシミュレーション
図は、Safariの履歴を消去するためのものですが、Safariが日本語メニューの場合でも英語メニューの場合でも動作します。アクションが無効であった場合は中断する訳ではなく、スルーしてくれる訳です(もちろん止めることもできます)。
論理分岐させない分処理は速いです。

2014-01-16 12.35.56

また次の図は、Illustratorのアンカーポイントの平均化を行うもので、マウスポインタの移動をシミュレーションさせています。

2014-01-16 13.11.32

Keyboard Maestro 6ではUIエレメンツへのアクセス時に待ち時間を設定しなくても取りこぼしなくイベントを処理して行くので、安心感があります。iKey2ではこの辺が不安定で、数10回以上の繰り返しシーケンスでマウスシミュレーションを使ったりすると、ステップをセグメント化して意図的に待ち時間を入れておかないとエラーが発生していたのですが、Keyboard Maestro 6はその点非常に安定していて、乗り換えは成功だったなと思っています。

■クリップボード操作
クリップボードの内容に対して正規表現を使った検索置換ができることも嬉しいことです。

clipb

ホットキーマクロでこれができるということは、アプリケーションに縛られないので便利です。
また、クリップボードへの対処というか、機能は豊富で、スタイルテキストにも対応しています。この辺りの機能紹介は、TidBITS#1176/03-Jun-2013<http://jp.tidbits.com/TidBITS-jp-1176.html#lnk6>が参考になるでしょう。iKey2のマニュアル本を執筆したAdam C. Engst氏がKeyboard Maestro 6のレビューをしています。

Adobe PDFとして保存—3(補足or蛇足?)

■iKey2でもマクロを作ってみる
Keyboard Maestro 6でプリントダイアログから「Save as Adobe PDF.app」を呼び出すマクロを紹介しましたが、これをiKey2でやってみると図のようになります。(ここではファイル保存ステップまでは表示できていません)

iKey

マウスのクリックとドラッグをシミュレーションするしかないようなのですが、ウィンドウのTop/Leftからの座標で追いかけますので、ポップアップメニューの座標を取るのが少々厄介です。
また、「Pause(Wait)」に関してもKeyboard Maestro 6の方がスマートで確実性が高いようです。
iKeyはYoupiKeyと呼ばれていた初期バージョンから使ってきましたので、現在の停滞状況が何か寂しい気がします。
Keyboard Maestro 6に切り替えてから、ホットキーを新しく設定することが楽しみになってきて、KeyQuencerの時代の登録数に並ぶくらいの数になってきました。現時点でマクロ数76です。

Adobe PDFとして保存—2

ホットキー(キーボードショートカット)ユーティリティというエントリ<http://wp.me/p1Cs3W-5l>で書きましたが、10.9 Mavericks環境でのキーボードショートカットユーティリティの選択で迷っていました。
OfficeドキュメントをAdobe PDFとして保存する際に、プリントダイアログから「Adobe PDF として保存」アプリケーションを呼び出す際に、毎回マウスをドラッグしてポップアップメニューから実行するのは面倒です。これをホットキーで実行できれば、さらにこのホットキーアクションをマクロに組み込めそうです。
そこで、なにを使うかという点で迷っていた訳です。
ここ<http://wp.me/p1Cs3W-5l>で挙げた候補の中から考えてみると、マウスシミュレーション機能とキーボードシミュレーション機能をもったものを拾い上げると、ikey2、Keyboard Maestro6、QuicKeys4の3つに絞られることになります。
調べてみると、QuicKeys4は2009年から更新がありません。iKey2も2011年の2.5.2以降更新が滞っています。現在、OSのアップデートに合わせてアクティブに更新が継続しているのはKeyboard Maestroだけだということに気がつきました。迷う必要はなかったのですね。

使い始めてみると、複数のシーケンスコントロールやメニューへのアクセス、ウィンドウコントロール、クリップボード操作など、機能も充実していてiKeyよりもレスポンスもいいです。

■プリントダイアログで「Save as Adobe PDF.app」を呼び出す
PowerPoint.appから呼び出す場合のマクロです。

2014-01-14 9.20.54

「Pause…」アクションが時間だけでなくウィンドウやアプリケーションウィンドウ、ダイアログなどの状況に合わせられる点が優秀です。「PDF」ボタンをクリックは図のように「Press Button」アクションでなくロケーションクリックでもOKでしょう。
「Save as Adobe PDF.app」を呼び出すところもマウスドラッグ指定でもOKでしょうが、ここは無骨に「↓」キーで確定しています。
このマクロではなんと言っても「Pause Until Condition Met」アクションが機能することが肝でしょう。
このマクロをシーケンスに組み込んで繰り返し実行する際には、「Pause…」アクションが時間指定でしか実行できなかった場合、PowerPoint.appやSave as Adobe PDF.appの反応時間の変動やファイルサイズによるウィンドウの展開などで誤動作が起きる率が跳ね上がります。

■ワークフローに組み込んでみる
Automatorを使って、Finder上でPowerPointドキュメントを選択した状態で実行するワークフローを作ってみました。

2014-01-14 9.37.11

Keyboard Maestroのいいところとして、AppleScriptからマクロ名でマクロを実行できる点が挙げられます。

連続で処理するドキュメントの数やマシンスピードなどによってスクリプト内の「delay」のタイミング調整が必要でしょうが、試してみたところエラーなく動作しました。

Keyboard Maestroは現行バージョンにおいても機能拡張がなされていて、未だ発展途上という楽しみなユーティリティです。