![見出し画像](https://assets.st-note.com/production/uploads/images/54559522/rectangle_large_type_2_b4a3a918be8f9486ead0c64f8c724a5c.png?width=1200)
スクリプトファイルを実行する Keyboard Maestro 用アクション | Photoshop
macOS版のPhotoshopでは,次の種類のスクリプトファイルを実行できます。
• ExtendScript(JavaScript/拡張子:js, jsx, jsxbin)
• UXPScript(JavaScript/拡張子:psjs)
• AppleScript(拡張子:scpt, scptd, app, applescript)
• JXA(JavaScript for Automation/拡張子:scpt, scptd, app, applescript)
Keyboard Maestroでスクリプトを実行するには,それぞれ別のアクションを呼び出す必要があります。例えばAppleScriptはExecute an AppleScript,JXAはExecute a JavaScript For Automationです。
しかし,単にスクリプトを実行するだけでそこまでの使い分けが要るのはハードルが高く感じますよね。
そこで今回は,種類を気にせずPhotoshopでスクリプトファイルを実行できるKeyboard Maestro用アクションを紹介します。
あらまし
![画像14](https://assets.st-note.com/production/uploads/images/18842528/picture_pc_42f7cafab05cc693b67da2f48438d27b.png?width=1200)
スクリプトファイルのパスを渡すと,拡張子js/jsx/jsxbinのExtendScript,psjsのUXPScript,scpt/scptd/app/applescriptのAppleScript・JXAファイルをPhotoshopで実行するアクションです。Script pathは,Finderから対象のファイルをドロップすれば自動で入力されます。
Keyboard Maestroから引数としてテキストを渡し,スクリプト側でそれを受け取れます。Argumentsに用がないときは,空白でも何か文字を入れても問題ありません。
ExtendScriptの引数(※開発者向け情報)
Argumentsはargumentsまたは$.getenv('sttk3_arguments')で受け取ります。
// ExtendScript 1
var argv = arguments[0];
alert(argv.toString());
// ExtendScript 2
var argv = $.getenv('sttk3_arguments');
alert(argv.toString());
UXPScriptの引数(※開発者向け情報)
基本的にUXPScriptではArgumentsは受け取れないため、psjsファイル側からMaestroPackが用意したargments.txtを読みに行ってください。ここにあります。
~/Library/Application Support/com.sttk3.maestropack/arguments.txt
例えば次のコードは、Argumentsに指定したテキストをダイアログに表示するUXPScriptです。
const { app } = require('photoshop') ;
const fs = require('fs') ;
const os = require('os') ;
// config
const argumentsFileName = 'arguments.txt' ;
// ~/Library/Application Support/com.sttk3.maestropack/arguments.txt
const argumentsFilePath = path.join(os.homedir(), 'Library', 'Application Support', 'com.sttk3.maestropack', argumentsFileName) ;
(() => {
const argText = fs.readFileSync(argumentsFilePath, {encoding: 'utf-8'}) ;
app.showAlert(argText) ;
})() ;
AppleScript・JXAの引数(※開発者向け情報)
Argumentsはrunハンドラの引数として受け取ります。
-- AppleScript
on run (argv)
display dialog argv
end run
// JXA
function run(argv) {
const stdApp = Application.currentApplication() ;
stdApp.includeStandardAdditions = true ;
stdApp.displayDialog(argv) ;
}
動作環境・インストール方法はそれぞれリンク先をご確認ください。macOSとKeyboard Maestroを使用中のかたのみご利用できます。
使いかた
Photoshopを開いた状態でアクションを実行してください。指定したスクリプトが実行されます。
買う
すべてのアクションをまとめてほしい場合は,マガジン[MaestroPack]または記事[前面にあるAdobeアプリを自動で動かす Keyboard Maestro 用追加アクション]をご購入ください。すでにそちらの記事を購入済みの場合は,その記事からダウンロードできます。
単品で買いたい場合はこの記事をご購入のうえ,下のリンクからダウンロードしてください。
この記事が気に入ったらチップで応援してみませんか?