intellimouse-ctl icon indicating copy to clipboard operation
intellimouse-ctl copied to clipboard

Make the backend available as a cross-platform library

Open noah-nuebling opened this issue 3 years ago • 3 comments

This is really cool. Thanks for making it!

I would love to support Microsoft Mice in Mac Mouse Fix. For that it would be awesome to have a cross-platform library that lets you talk to Microsoft Mice. This would also make it a lot easier to write great drivers for MS mice on linux.

I think a command line tool would also be fine.

noah-nuebling avatar Jan 17 '22 07:01 noah-nuebling

@noah-nuebling
Cool, I was thinking about dropping the whole Qt GUI / fbs thing and turning it into an cli tool since it's keeping the project back at an ancient python version. Would a Python library work for you or would you prefer something like a native C(++) lib?

paw-eloquent-safe avatar Feb 05 '22 09:02 paw-eloquent-safe

Great, thanks for getting back!

  • A C API would be very nice.
  • C++ would be good as well, although I think I'd have to write a thin ObjC++ wrapper to use it from normal Mac app code (which is written in ObjC and Swift).
  • There's PyObjC which I think let's you call Python libraries from normal Mac app code, but I have no experience with it.
  • Calling a Command Line Tool would work fine as well.

I think for optimal cross-platform compatibility, it's probably best to have a C library. But any option would be great!

Edit: I just looked into calling Python from C#/C/C++ (the languages I assume are being used to develop Linux and Windows apps) and it seems really tedious. It looks to me like it's probably easier to use a Command Line Tool over a Python library for most native app development.

noah-nuebling avatar Feb 06 '22 03:02 noah-nuebling

Happy to inform you there's a CLI/library that installable from here now. I put in an --json argument specifically for your use-case, so it outputs JSON. concrete example:

$ intellimouse-ctl --json list
[
    {
        "name": "ProIntelliMouse",
        "path": "2-2.3:1.1"
    },
    {
        "name": "ClassicIntelliMouse",
        "path": "2-2.2:1.1"
    }
]

Please let me know what you think of it!

paw-eloquent-safe avatar Feb 22 '22 18:02 paw-eloquent-safe