Followed one of the links in your article and ended up unexpectedly watching a video review of different types of canned fish (https://www.youtube.com/watch?v=rymwqxBkxus). Wasn't expecting that, but I must say I did rather enjoy it.
krackers [3 hidden]5 mins ago
>To my knowledge, this can be fixed by requesting the OS-level accessibility permissions, which would require a separate user interaction.
Does this imply that running Gregglogger _doesn't_ require granting accessibility input monitoring permission? On osx there's at least 4 ways to monitor inputs I think (iokit level, cgeventap, carbon event monitoring, cocoa global event monitor), I'd really expect all of them to require the input monitoring permission.
wizerno [3 hidden]5 mins ago
It looks like you're correct -- Gregglogger relies on pynput, and its behavior on macOS aligns with the library's documented limitations [1]:
Recent versions of macOS restrict monitoring of the keyboard for security reasons. For that reason, one of the following must be true:
- The process must run as root.
- Your application must be whitelisted under "Enable access for assistive devices." Note that this might require packaging your application, since otherwise the entire Python installation must be whitelisted.
- On macOS versions after Mojave, you may also need to whitelist your terminal application if running your script from a terminal.
I also wrote a 5ish line python script that instead of logging keys, presses them. I used it to avoid idle detection in a game a few years ago. Similarly to you, I found it somewhat disconcerting how easy it was. This was on windows though.
But also, this is Rafal’s project. I’m just a huge huge fan of his..! See:
https://sit.sonnet.io/
https://untested.sonnet.io/
And https://www.potato.horse/ !
Does this imply that running Gregglogger _doesn't_ require granting accessibility input monitoring permission? On osx there's at least 4 ways to monitor inputs I think (iokit level, cgeventap, carbon event monitoring, cocoa global event monitor), I'd really expect all of them to require the input monitoring permission.
Recent versions of macOS restrict monitoring of the keyboard for security reasons. For that reason, one of the following must be true:
- The process must run as root.
- Your application must be whitelisted under "Enable access for assistive devices." Note that this might require packaging your application, since otherwise the entire Python installation must be whitelisted.
- On macOS versions after Mojave, you may also need to whitelist your terminal application if running your script from a terminal.
[1] https://pynput.readthedocs.io/en/stable/limitations.html#mac...
I also wrote a 5ish line python script that instead of logging keys, presses them. I used it to avoid idle detection in a game a few years ago. Similarly to you, I found it somewhat disconcerting how easy it was. This was on windows though.