InDesign:選択した画像のリンク元ファイルに赤タグつけるやつ

すっごい昔に書いたスクリプトが動かなくて、
困ってしまって教えてもらって直ってしまったのでメモ。

経緯

案件はInDesignで、
1年ちょっとぶりに初校戻しがきて(どうなんだそれは)、
配置済みの画像が大量に差し替えになって。
ふるい画像をレイアウト上で削除するのは簡単なんだけど、同時に不要になったファイルをLinksフォルダから移動したくて。
本来はパッケージで収集しなおすのが筋なんでしょうけど、
理由をかっこよく言うと「だって、したくないんだもん」です。
ちゃんとこまかく言うと、
いちど明示的にリンク切れ状態を作ってから、確実に差し替えを行うため。

で、ファイルを移動するスクリプトを書いてしまうと、移動先の名前重複など厄介が多いのと
リネームしたくない場合があることなどもふまえ。
で、ふと「レイアウト上で選択した画像のリンク元ファイルにFinderでタグ(昔でいうラベル)をつけるスクリプト」というのを過去に書いた記憶がよみがえって。
外付SSDに保管してある旧OS環境を調べてみたら、まんまと見つかったんですよ。
あのー、13年前のjsxファイルが。

問題が浮上

で、わーいって喜んで(ほんとに「わーい」言った。職場で)
実行したら、エラー。
要約すると「System Eventsにお願いする権限がありません」と言われた。
Finder操作が絡むため、そこの処理だけピンポイントでdoScript()でAppleScriptを使ってて。
この10年ちょっとでファイルアクセスの類に関してはずいぶんと厳しくなっているので、
そのへんのあれなんだろうなあ、と、わかったようなことを思いつつ、結局わかってなくて。

これはmacOS Montereyのシステム環境設定 > セキュリティとプライバシーのスクショ。

だいたいは、ここの「フルディスクアクセス」にアプリケーションを追加しておけば動いてたんですな。
でもいま動いてないじゃんすかー。

解決

そんでまあ、Twitterという名のメンター群に助けを求めてみました。

https://x.com/sttk3com/status/1849278046857273691
したたか企画さんからズバリの回答いただきました。彼もAdobe Community Expertやってます。

「オートメーション」を確認しろ、と。
前のスクショで見切れてたぐらい、存在を認識してすらいなかった項目。
こんな状態になってました。

チェックがついていないFinderにチェックを入れたら、やっと動きました。
ばんざいすぎる。なんというばんざい。
ほんとに助かりました。いつもいつもありがとうございます。

余録

そんなところで、今回思ったのは、今後はスクリプトの公開・配布の際、macOS各バージョンすべてに応じたセキュリティまわりの対処法を添書きしないとだめだな、ということ。
しかしアプリケーションならまだしも、OSの全バージョンを網羅するというのは個人では実際だいぶ厳しいですね。
なので、誰かいい感じにまとまった記事を書いてくれたやつをリンクして済ませたいです(レンタルふんどし)。

おまけ

そのスクリプト、ついでなので置いておk……おこうと思ったんですが
いくらなんでも昔すぎて、自分で見てもあまりに稚拙なので書きなおしました。
13年前って、ムス子が幼稚園、自分もまだ12歳ぐらいですよ※
よかったらどうぞ。

ダウンロード

解答すると日本語名のjsxがでてきます。macOSだけで動きます。
雑に選択 → 実行 → リンク元ファイルに赤タグがつく → 選択解除されて完了 です。
リンク切れなど何らかの事由でタグ付けができなかった物は選択状態で完了するので参考にしてください。

てなかんじです。

ことえりの句読点の種類を切り替えるやつ、アプリにしてみた

app作ったの初めてなの

macOS標準の日本語入力を使っている人向けの話題です。
以前は「ことえり」っていうかわいい名前がついていた、あいつですよ。

いま職場ではまだMontereyなんですが、
扱う案件によって本文で使う句読点が「 、。」だったり「 ,。」だったり「 ,.」だったりしてて。
ちょっとならoptionキー併用で済ませるんですが。ちょっとじゃないなら切り替えてしまいたいじゃない。

いざ切り替えたいとなると、「システム環境設定」を開いて、
「キーボード」を開いて、「入力ソース」を開いて、「日本語-ローマ字入力」を開いて、
ずーっと下にスクロールして、「句読点の種類」をプルダウン選択するんですよ。
なんてめんどうなんだ、と思いながら、かれこれ20年以上やってますねえ。

…などと書いているうち、たった今、メニューバーからわりとすんなりアクセスできることに気付いてしまい、ものすごく呆然してます。

ていうか、勢いで切り替えるメニューバーアプリ作ってしまってました。
どうしよう。すごい無駄足だ。。まあ勉強にはなった。
まあ、作ってしまったので公開しときます。
自己責任になりますが、よかったらどうぞ。


ダウンロード

先に謝っておきますが、これしきの内容なのに50MBちょっとあります。
なんだかもうほんとにわからないままです。

SetPunctuation.dmg

macOS Monterey12.7.6 で作成、動作確認。他でもたぶん運がよければ動きます。

参考にさせてもら(というか、コードをぱく)ったサイト:
サポミク:macOSでCLIで日本語入力の句読点を切替
https://tech.sup39.dev/jp-punctuation/

NIFTY engineering:超簡単にメニューバーアプリを作りたい(macOS)
https://engineering.nifty.co.jp/blog/22146


いれかた

今さらですが、dmgファイルを開いて、マウントされたボリュームを開いて、アプリ本体をいい場所にコピーするだけです。
初回の起動時、もし何かセキュリティ的なことを言われたら、ものかのさんのGlow関連の説明を参考に右クリックで開いてみてください。いわゆる野良アプリなのでご了承のほど。
https://tama-san.com/app-page/unnotarized.html


つかいかた

起動するとメニューバーにアイコンが追加されます。
使うやつを選びましょう。操作直後の入力開始があまりにも早いと、切り替え完了前に半角英数が入力されてしまう場合があります。なんだかなあだけど、どんまい。

常駐させておきたい場合は、システム環境設定 > ユーザーとグループ > ログイン項目 に追加するとよいんでないですかね。
最近のOSを知らないので表現が古かったらすまんごめんです。

以上、大半のATOKを愛用してる人にはまったく関係のない話です。。

InDesign:CEP版 jsx Timer できました

どうもどうも。
泥作業オペレーターの悲願である
あっちこっちに同じ文字を何度も何度も何度も何度も打つ時
とか、あるじゃないですか。まあ、あるんですよ。

昔、それで寝言をゆったんですわ。
「選択しただけで定型の文字が入るようにならんかなあ」って。
そしたら、まんまと叶ってしまったやつです。

当時、感激した記事です。さすがに記事内リンクはすべて切れていますw
InDesign:あっちこっちに同じ文字を何度も何度も何度も何度も打つ時にすごい便利なやつ

ご尽力いただいた信長と秀吉のお二人には、ほんとにもう。オッス、オラ家康!
今でも足を向けて寝られないので毎晩北枕です。

ところがで、CS6当時のエクステンションはFlashベースだもんで、
CC2015の頃にはもう使えなくなっちまいまして。
(実際にはCC2019を作業メインにする旨の号令が出るまでずっとCS6を使ってたので寿命はもう少しあった)
以来、作業効率が落ちるわ、キーボードは同じキーばっかり打つからへたっていくわ、散々。
「あたらしいのつくってー」とかおねだりできるほどツラのカワも厚くなくて(ということに)。

いつか、そのうち、自分でなんとか、とかぼんやり思って幾年、
何度かCEP系の案件をいただいたことで、ちょっとずつ自由が利くようになり、
ようやく動くものを作ることができましたのでお披露目です。
今のところ、ただ見せびらかしてるだけで公開の有無は未定。

当時の物に対して、ガワ(UI)だけはなるべく忠実に模倣しました。
中身は、できればまるっともらってラクしたかったんですがスキル的に無理だったため一新しました。

どんなもんなのか

端的には、
一点時間おきにスクリプトを実行するもの。現状、テキストにしか使えなくしてあります。

詳しくは、
一定時間おきにInDesign上の選択範囲をみて、前回と違っていたらスクリプトを実行するものです。
操作してないのに延々スクリプトが走るということはありません。
あのー、お鍋の吹きこぼれ防止装置みたいなもんです。

実演

反響次第では何か考えますが、今のところはただ自慢するだけです。
オッス、オラ骨川!

一番上から、
繰り返しのディレイ間隔1/1000秒、
入力する文字、
入力文字の登録&削除ボタン、
登録済み文字群、
スクリプトのたーっぷり詰まったフォルダの丸焼き選択ボタン、
フォルダから読み込んだスクリプトのボタン群。
クリックしたものは赤(アクティブ)になりタイマーが発動。

実際こんなかんじです。基本となる「文字を挿入」を使用したところ。

実際この内容だと「正規表現検索置換でよくね?」となるんですが…
フリーダムな文字訂正指示に手早く対応できるでございます。

うごかすスクリプトについて

公開した場合、登録するスクリプトは各自で用意してもらうことになりますが
いま使っているいくつかはサンプルとして収録の予定。
基本的には名前順で並ぶけど、ファイル名先頭に「00_」とナンバリングしておけば
優先して前に来るようにしました。
UI上ではナンバリングと拡張子は省略されたすっきり表示に。

3つばかし、定数のような変数を用意してあります。
必要なければ使わずに、スクリプト上で全部ケーサンして処理してもいいですし。

そんなかんじです。
はかどりすぎて顔がニヤけてしまい周囲に気味悪がられることうけあい。
どーですか。