クイックアクションのネタもう一つ。
やってみたら上手くいったので。
macOS でフルパスが必要な時、Terminal.app にドロップしてからコピー。
が有名な方法だけど正直面倒臭い、クリップボードに一発でコピーしたい。
minipoli を作った作者だもん、もう誰も覚えていないだろうけど。
macOS では NSPasteboard を使うようだ。
クイックアクションで簡単に作れそう。
NSRect を使わないなら JXA でイケるな、よし。
Automator 起動、クイックアクションを新規作成。
[指定された Finder 項目を取得] を配置
[JavaScript を実行] を配置
ObjC.import("Cocoa"); function run(argv) { let s = argv.join('\n'); let clipboard = $.NSPasteboard.generalPasteboard; clipboard.clearContents; clipboard.setStringForType($(s), $.NSPasteboardTypeString); }
ファイル名コピー.workflow
NSPasteboardItem は必要なかった。
後はフルパスを得たいファイルを選択してコンテキストメニューから
後はそのままテキストエディタ等に貼り付けできます。
join(‘ ‘) にすれば端末用の空白区切り、等に応用できます。
ちなみに GNOME(GTK+) 環境では同様な処理は不可能。
クリップボードは特殊なバッファではなく単なるポインタだから。
コピー元アプリを終了させるとバッファを保持できなくてペースト不可になる。
Gedit と gnome-terminal で試してみるとすぐ解ると思う。
Linux ではフルパスを使うことは皆無に近いから別にいいんだけど。