Screen Gnat, Begone!
The screen gnat is the mouse pointer, at best distracting as it's always there, in the way, at worst you click the trackpad by accident and then something happens in Brogue followed by "no, no, no, no, no!" as your character wanders somewhere to do something and probably die. Solution? In SDL applications one can remove mouse support and hide the cursor, and then your keyboard-controlled games (or whatever) are no longer infested by the screen gnat.
...
$ cd BrogueCE
$ patch -p0 < brogue.patch
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- src/platform/sdl2-platform.c
|+++ src/platform/sdl2-platform.c
--------------------------
Patching file src/platform/sdl2-platform.c using Plan A...
Hunk #1 succeeded at 144.
Hunk #2 succeeded at 209.
Hunk #3 succeeded at 241.
Hunk #4 succeeded at 272.
done
And then you need to compile Brogue for yourself. There are a few other patches I make to Brogue, most notably to cut down on needless message spam, like when you get an item from a vault, then head downstairs, the game interrupts your motion with a "the vault closes behind you!!" message which was probably good the first time it happened (you can only take one item from most vaults), while subsequently you have to press the "no, go downstairs, like I just told you" keys again each and every time the message comes up. Ugh. Best to simply remove the needless message, or at least to make it a non-blocking message.
On what passes for Mac OS X these days
You could either build Brogue as an Application, or run it from the terminal.
#!/bin/sh
# brogue - wrapper to start Brogue from build directory
set -e
cd /Users/FIXME/.../BrogueCE/bin
exec ./brogue
Eh, whatever, it works. (One addition might be to check if brogue is compiled, and try to compile it if not. Another would be to support arguments to brogue, maybe to play the day's seed if one has not done so already `brogue -s $(date +%Y%m%d)`, etc.) Then you may want some means to either bring the running instance to the foreground, or to start an instance, if you're not starting everything from the command line. No, AppleScript and I never did get along, but the following appears to work, maybe, if saved as a "Brogue.app" somewhere.
try
tell application "System Events" to tell application process "brogue"
set frontmost to true
end tell
on error
do shell script "/Users/jmates/bin/brogue &> /dev/null &"
end try
-- KLUGE but it might not actually be in the foreground, despite having just been started. of course this will fail if brogue takes longer than a second to start...
delay 1
try
tell application "System Events" to tell application process "brogue"
set frontmost to true
end tell
end try
In ScriptEditor.app the code will run, but once saved as an app app you may get a dialog (another interruption!) asking if the code you just wrote is okay to run?
Another thing we're trying to avoid here is that, sometimes, starting the regular Brogue.app causes the Dock to emerge, and then you have to waste time chasing that screen space waster away. I've tried so hard to kill the dock or to never see it, but since we're dealing with unfixable buggy jankware (where the dock does not have any way to be told to go away, forever, and will, sometimes, randomly show up again), there's only so much you can do. Maybe if Apple used some of their billions of profits to make the OS less bad? One can dream…