Your own build¶
There's nothing to host¶
Prompter is only a Mac app. There's no server, no database and no account behind it, so your own copy is simply the one you build. Install covers that, and this page covers making it yours.
Signing it as yourself¶
build.sh signs with the first Apple Development certificate in your keychain, which Xcode makes for you once
you've signed in with your Apple ID (Xcode › Settings › Accounts). With a certificate, macOS knows each new build is
the same app, so it keeps the microphone and speech recognition permissions.
To pick a different identity, or to sign ad hoc on purpose:
PROMPTER_SIGN="Apple Development: you@example.com (ABCDE12345)" ./build.sh
PROMPTER_SIGN=- ./build.sh # ad hoc
A build signed this way runs on your own Mac. To make a copy to hand to someone else, tools/dmg.sh builds a
universal app (Apple silicon and Intel) into a DMG with the Applications folder beside it, signed with the identity
named in ~/.config/prompter-release.env (the top of the script says what goes in it), or ad hoc with --adhoc.
Either way it isn't notarized, so the first time it opens it goes through Open Anyway, as Install
describes. Opening without that needs a Developer ID certificate and Apple's notarization, which need a paid Apple
Developer account.
Your own name and id¶
The app's id is xyz.tiresia.prompter. Settings and permissions belong to the id, so a build under another one
starts fresh and doesn't touch an installed copy:
PROMPTER_BUNDLE_ID=com.example.prompter ./build.sh
To change it for good, change PRODUCT_BUNDLE_IDENTIFIER in project.yml. The scripts folder doesn't depend on the
id, so every copy sees the same scripts.
Changing the defaults¶
Every setting's default is in one place, Pref.register() in Prompter/Prefs.swift: the text size, the speed, the
mode it starts in, the width and height, and the rest. Change them there and build again. A default only applies
until you change that setting yourself in Settings.
Opening it in Xcode¶
xcodegen generate && open Prompter.xcodeproj
project.yml is the source of truth for both builds, so the Xcode project and build.sh can't drift apart. The
project file itself isn't in git.
These docs¶
They're plain Markdown in docs/, so GitHub shows them as they are. docs.tiresia.xyz
builds them into a site with MkDocs Material, where every ### section in docs/README.md becomes a group in the
sidebar. To serve them yourself, pip install mkdocs-material and point an mkdocs.yml with docs_dir: docs at the
same pages.