You can get the same in Germany with the much simpler GmbH or UG. GmbH & Co. KG is much more complex and mostly used to save some taxes in some scenarios.
(However I absolutely agree that all of this is much too complicated and slow here in Germany)
The notary adds about a week to the process (2-3 hours of your time, plus the time to wait for the appointment), and about $1000 (depends on how much money you put in the company). And for "standard" setups you can skip the lawyer and simply use the templates and "free" legal advice from the notary (free as in "included in the notary fee you have to pay anyways")
Yes, it's more involved than an online form. But in the grand scheme of things, a notary is neither a huge expense (the tax advisor will likely cost you more) nor a big time sink
yes you can do a lot background UI interaction using the AX APIs. Displaying a second cursor is also simple, just a borderless, transparent window that moves around.
For the few things you cannot achieve with the Accessibility API's there are ways to post events directly to an app - even though CGEventPostToPid is mostly broken when used on its own. These require a combination of CGEventPostToPid and CGEventTapCreateForPid. (I have done a lot of this stuff in my BetterTouchTool app)
Neat, good to know! And it does seem my mental model of event loop was broken. Accessibility related interactions don't have any related NSEvent.
They are handled as part of the "conceptual" run loop, but they seem to be dispatched internally by AXRuntime library from a callback off some mach port. And because of this, the call to nextEventMatchingEventMask in the main -[NSApplication run] loop never even sees any such NSEvent.
-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] (in AppKit)
_DPSNextEvent (in AppKit)
_BlockUntilNextEventMatchingListInModeWithFilter (in HIToolbox)
ReceiveNextEventCommon (in HIToolbox)
RunCurrentEventLoopInMode (in HIToolbox)
CFRunLoopRunSpecific (in CoreFoundation)
__CFRunLoopRun (in CoreFoundation)
__CFRunLoopDoSource1 (in CoreFoundation)
__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ (in CoreFoundation)
mshMIGPerform (in HIServices)
_XPerformAction (in HIServices)
_AXXMIGPerformAction (in HIServices)
In some sense this is sort of similar to apple events, which are also "hidden" from the caller of nextEventMatchingEventMask. From what I can see those are handled by DPSNextEvent, which sorts based on the raw carbon EventRef. aevt types have `AEProcessAppleEvent` called on them, then the event is just consumed silently. Others get converted to a CGEvent and returned back to caller for it to handle. But of course accessibility events didn't exist in Classic mac, so they can't be handled at this layer so they were pushed further down. You can almost see the historical legacy here..
> Sadly, solutions like BetterTouchTool and InstantSpaceSwitcher won't work for me because I prefer to use my trackpad to switch spaces.
One of BetterTouchTool's first features ~17 years ago was trackpad gesture customization, it is still one of the most important things you can do with BTT! ;-) You'd just need to assign the "Move Right a Space (without animation)" and "Move Left a Space (without animation)" actions to trackpad gestures in BTT.
I don't want it "without animation", I like that the animation tracks my fingers and that the response is instant and doesn't wait until a "gesture" is "triggered". I just want it to wait a second after I let go until the target workspace starts receiving input.
that is weird, BTT's space switching should really be instant when used via keyboard shortcuts. (Developer of BTT here)
One advantage of BTT's current implementation is that it still allows you to move windows to the next/previous space while dragging them and simultaneously executing the "Move Left / Right a space" action. In that case there will be an animation but it will at least work.
I recently stumbled upon this (and it sounded great!), but was already too far in the development cycle of a medium sized Swift UI iOS app. Instead I used ChatGPT & Claude to convert the SwiftUI Code to Kotlin & Jetpack Compose & Material3. This worked crazy well. The generated code worked almost instantly and basically just needed small modifications for the styling /theming. I think the similarities in SwiftUI and Jetpack Compose make this a great match for LLMs
the code I got is pretty maintainable and it’s all standard kotlin & jetpack compose. Even the ui tests converted nicely. The big effort was the initial conversion of the app to Android, for maintenance I won’t necessarily use LLMs
at least BetterSnapTool was never available for free and I believe I can see the spikes in sales when the fake reviewers did purchase (just before they reviewed). Not sure whether one can check the pricing history of an app, maybe there are some sites which collect that data?
BetterTouchTool is overkill for most users who only need window snapping :-)
I‘m the developer of BetterSnapTool & BTT and have also discovered & reported these fake reviews to Apple about three weeks ago on July 2. They are investigating and keep deleting (some of) the fake reviews, but I have no idea who is responsible for them or what they want to achieve
Previously this only worked with the built in AI assistant.