Page 1 of 1
On MacOS, why request keylogging permissions?
Posted: Thu Feb 20, 2020 3:13 am
by abtinf
I started Factorio on MacOS and was confronted with this:

- factorio_18.6_permissions.png (168.72 KiB) Viewed 1349 times
Why does Factorio request permission to "receive keystrokes from any application"?
Re: On MacOS, why request keylogging permissions?
Posted: Thu Feb 20, 2020 8:19 am
by posila
Is that Steam version or standalone? It could be something in SDL2 (library we use to create application window, handle user input, etc.) as far as I could find we don't have anything that would need to listen to system-wide input events enabled. So it might be triggered also by Steam API we link against in Steam version of the game.
Re: On MacOS, why request keylogging permissions?
Posted: Thu Feb 20, 2020 8:31 am
by posila
https://www.emaculation.com/forum/viewtopic.php?t=10439#p64694 wrote:
As the new macOS Catalina was released recently, it was discovered that there was a unnecessary privilege used by the SDL2: It was listening to background key presses solely to track state of the caps lock key. Luckily, there was already a patch for this issue in SDL 2.0.10, so updating the SDL2 library (and adjusting some caps lock support code) fixed this problem.
So it's probably this. We are still on SDL 2.0.9. I'd apply the patch, but further in the thread they claim SDL 2.0.10 caused issues with Caps Lock, so I don't know.
Re: On MacOS, why request keylogging permissions?
Posted: Thu Feb 20, 2020 3:21 pm
by abtinf
Thank you for looking into this.
The note about macOS Catalina makes sense; many apps are triggering these kinds of warnings now (which has been *eye-opening* and shocking).
Even if you don't patch it--which is ok, since it is easy to just "Deny" permissions--I would suggest you add a note to the download page and steam description letting users know. I know I freaked out and was concerned that your servers or CI/CD pipeline had a security compromise.
I am running the standalone download. Here is the sha1sum:
2a26a1e2a7c42c190ac98244828831811ad86312 factorio_alpha_0.18.6.dmg