<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">On 12 Jul 2017, at 17:22, じょいすじょん wrote:</p>

</div>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><p dir="auto">The defaults keys you provided also do not exist by default on my system.</p>
</blockquote></div>
<div style="white-space:normal">

<p dir="auto">Correct, this would only be if the user has explicitly changed the default fixed width font.</p>

</div>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><p dir="auto">Core Text and AppKit are both kind of vague.<br>
The solution there seems to be to start with a font and apply the fixed width trait to get a descriptor for a font that comes close to matching somehow (who knows how? personal taste?) or present a UI and let a user select something. Still does not give a default does it? How loopy these APIs can be :(</p>
</blockquote></div>
<div style="white-space:normal">

<p dir="auto"><code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">NSFont</code> has a method to return the default fixed width font, from Python you can use this code to obtain it:</p>

<pre style="background-color:#F7F7F7; border-radius:5px 5px 5px 5px; margin-left:15px; margin-right:15px; max-width:90vw; overflow-x:auto; padding:5px" bgcolor="#F7F7F7"><code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0" bgcolor="#F7F7F7">#!/usr/bin/python
import objc
from AppKit import NSFont

font = NSFont.userFixedPitchFontOfSize_(0)
print("family: %s, name: %s, size: %.1f" % (font.familyName(), font.fontName(), font.pointSize()))
</code></pre>

<p dir="auto">On my system it prints:</p>

<pre style="background-color:#F7F7F7; border-radius:5px 5px 5px 5px; margin-left:15px; margin-right:15px; max-width:90vw; overflow-x:auto; padding:5px" bgcolor="#F7F7F7"><code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0" bgcolor="#F7F7F7">family: Menlo, name: Menlo-Regular, size: 11.0
</code></pre>

<p dir="auto">I deliberetly hardcoded the shebang to call <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">/usr/bin/python</code> as PyObjC (the Cocoa bridge used here) may not be installed for a custom python on the user’s system.</p>
</div>
</div>
</body>
</html>