20260404

【Spotlight】SlicesRootAttributes com_apple_ats_name フォント関連のSlicesRootAttributesの追加


フォント関連のSlicesRootAttributesの追加

NOTE記事一覧ですnote.com

【スクリプトエディタで開く】 |

SlicesRootAttributes.scpt
ソース
001#!/usr/bin/env osascript
002#coding: utf-8
003----+----1----+----2----+-----3----+----4----+----5----+----6----+----7--
004(*
005Finderの検索の選択肢にフォント関連の項目を追加します
006クラシックな記述で書いてみた
007ドメインは
008com.apple.finder
009キー
010SlicesRootAttributes
011値は フォント関連のみ
012kMDItemFonts
013kMDItemFonts.Description
014com_apple_ats_name_postscript
015com_apple_ats_name_family
016com_apple_ats_name_full
017com_apple_ats_name_style
018com_apple_ats_name_fond
019
020
021com.cocolog-nifty.quicktimer.icefloe *)
022----+----1----+----2----+-----3----+----4----+----5----+----6----+----7--
023use AppleScript version "2.8"
024use scripting additions
025
026set listAddAttributes to {"kMDItemFonts", "kMDItemFonts.Description", "com_apple_ats_name_postscript", "com_apple_ats_name_family", "com_apple_ats_name_full", "com_apple_ats_name_style", "com_apple_ats_name_fond"} as list
027
028#コマンド実行
029set strCmd to ("/usr/bin/defaults read com.apple.finder SlicesRootAttributes") as text
030set strStdOut to (do shell script strCmd) as text
031#テキスト整形して
032set strStdOut to doReplace(strStdOut, "\"", "") as text
033set strStdOut to doReplace(strStdOut, ",", "") as text
034set strStdOut to doReplace(strStdOut, space & space, "") as text
035#リストに
036set strDelim to AppleScript's text item delimiters
037set AppleScript's text item delimiters to return
038set listOrgArray to every text item of strStdOut
039set AppleScript's text item delimiters to strDelim
040
041repeat with itemAttributes in listAddAttributes
042   #含まれていないなら 追加
043   if listOrgArray does not contain itemAttributes then
044      set strCmd to ("/usr/bin/defaults write com.apple.finder SlicesRootAttributes -array-add '" & itemAttributes & "'") as text
045      try
046         do shell script strCmd
047      on error strErrMsg number numErrNo
048         log "No: " & numErrNo & linefeed & "Error:" & strErrMsg
049         return false
050      end try
051   end if
052end repeat
053
054return 0
055
056############################
057#文字の置換
058to doReplace(argOrignalText, argSearchText, argReplaceText)
059   set strDelim to AppleScript's text item delimiters
060   set AppleScript's text item delimiters to argSearchText
061   set listDelim to every text item of argOrignalText
062   set AppleScript's text item delimiters to argReplaceText
063   set strReturn to listDelim as text
064   set AppleScript's text item delimiters to strDelim
065   return strReturn
066end doReplace
AppleScriptで生成しました