I tried Automator to disable specific font in Font Book but I figured with a big deception that this is very unstable application.
Sometimes this work and the other time (most of it) this not work and it disable not the entire typeface. The “Deactivate Fonts” action work randomly. I will say this work 1 time of 15. I get an error like this one: “An error (Font Book got an error: NSReceiverEvaluationScriptError: 4 (1)) occured in Deactivate Fonts”. Someone can explain to me why? I cannot trust Automator and now I need a pure AppleScript script solution.
Can you help me?
For my example I want to disable the “Skia” font family.
tell application "Font Book"
activate
set myFonts to {"Al Bayan Bold", "Al Bayan Plain", "Skia Regular"}
set fontNames to name of typefaces
repeat with i from 1 to count myFonts
set fontName to item i of myFonts
try
set enabled of typeface fontName to false
end try
end repeat
end tell
Instead of the Al Bayan fonts, type whatever other typeface names you want deselected.
Thanks for this fast answer but if, for example, I want to disable the “Al Bayan” family how I do it? I don’t want or need to disable each sub parts of the font like regular, bold, italic, etc. It is possible? Check “Baskerville” this is an excellent example of many different parts.
Exactly what I needed! Except when Font Book is not already open the script get an error. I think I will needed and validate that the application is open and load before doing it. It is possible to do that?
Interesting, Kai. On my system [10.4.6] I get an error: ‘Font Book got an error: Can’t set enabled of every typeface of font family "Al Banyan to false.’ Variations on that theme fail as well.
Exact! This is the same error I got with Automator and AppleScript. The problem is maybe the Font Book application itself.
The only difference, I have far more control with AppleScript. A delay is not a solution because if you have a slow computer you will need more delay. That’s why I asked if this is possible to check in loop if the application is completly load before deactivate a font. I think this can be a good a workaround.
Yours does the trick for me, Kai, but neither of Jacques’ formulations would work for me - Al Bayan remained active although no error was reported. I think the “wait until exists” is the key - the Font Book seems slow to gather its info.
Thanks for the confirmation, Adam. (I wasn’t sure if it would fix things for you, since the only error I could manage here was our old friend “NSReceiverEvaluationScriptError: 4”.)