Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide installer #1

Open
tillt opened this issue Jan 4, 2023 · 6 comments
Open

Provide installer #1

tillt opened this issue Jan 4, 2023 · 6 comments
Labels
enhancement New feature or request

Comments

@tillt
Copy link
Owner

tillt commented Jan 4, 2023

macOS installer (dmg or pkg)

  • creates the named MIDI port
  • configures Synthesia for making use of that MIDI port for light guide control
    • is that even doable? can we safely patch Synthesia's configuration?
@tillt tillt added the enhancement New feature or request label Jan 4, 2023
@tillt
Copy link
Owner Author

tillt commented Jan 5, 2023

Seems that the PKG support for scripting is there but not well documented. Apparently Apple stopped supporting that approach with the advent of their AppStore.
The widely recommended way of making sure an application has its setup done / is doing it in the application itself. That's how this will possibly pan out then....

@tillt
Copy link
Owner Author

tillt commented Jan 7, 2023

Added a basic DMG but that isnt what I really had in mind when saying "installer". We still need something that does the heavy lifting of that MIDI port setup as well as the Synthesia configuration.

@theartwork
Copy link

HI! Thanks for awesome work! With an proper installer maybe it could be a better experience, but it works just fine with xcode project - finally can throw away printed numbers for the keys XD

@tillt
Copy link
Owner Author

tillt commented Jan 17, 2023

For the Synthesia configuration;

We would need to assert this OutputDevice in ~/Library/Application Support/Synthesia/multiDevice.xml

<?xml version="1.0"?>
<DeviceInfoList version="1" useSoftwareInput="1">
	<OutputDevice version="1" name="IAC Driver LoopBe" enabled="1" userNotes="0" backgroundNotes="0" metronome="0" percussion="0" lightChannel="-2" />
</DeviceInfoList>

Lets see how gatekeeper likes us patching that file.

@tillt
Copy link
Owner Author

tillt commented Jan 20, 2023

Added a Synthesia configuration patch mechanism that works but is not perfectly user-friendly. The user has to accept patching the file in question in a file-dialog. But that seems to work fine then for me - see https://github.com/tillt/KompleteSynthesia/tree/till/0.30

@tillt
Copy link
Owner Author

tillt commented Jan 19, 2024

I played a bit with the idea of providing a setup-dialog for giving users a neat and unified way for granting privacy related permissions. The inspiration came from looking at Alfred's permissions setup dialog.

Initially I was hoping I could get the current status of those permissions from macOS and then give users a way to add the missing permissions through a simple dialog. Trouble is, that is broken in macOS - one can not get the status of Accessibility permissions and then hope for achieving anything around Input Monitoring. See https://openradar.appspot.com/7381305

Next approach I tested was ignoring current permissions and simply giving users a unified surface for requesting those permissions;
Screenshot 2024-01-19 at 16 43 13
If the user now was clicking on Accessibility first, the permission request dialog from macOS would correctly pop up and do its thing. All fine and dandy. When the user then clicks on Input Monitoring, nothing happens - macOS will not show the permission request dialog for that feature. Actually never ever -- even if the app gets restarted in between. macOS appears to mix the idea of Accessibility and Input Monitoring as soon as the former is setup before the latter.

The only way to get all those permissions requested and setup properly is when Input Monitoring gets requested first.

That in turn means such setup dialog would have to be a step-by-step guide -- first only asking for Input Monitoring and when that was setup by the user ask for Accessibility. Overall, the convenience gain is vastly diminished by that macOS bugfest and I decided to drop the entire idea. The flow would be very similar to what we got already, so why bothering with added dialogs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants