jahnf / Projecteur

Linux Desktop Application for the Logitech Spotlight device (and similar devices) - Digital Laser Pointer
MIT License
374 stars 33 forks source link

Adding Kensington PowerPointer support #214

Open MarcelWaldvogel opened 10 months ago

MarcelWaldvogel commented 10 months ago

While playing around with the Kensington PowerPointer, I found out that Projecteur now supports way more than what it did in the early days! 🎉

I started a branch for the Kensington PowerPointer, but noticed you wanted it discussed before a PR.

So, here is the discussion issue.

Maybe one point to discuss:

Activation of spotlight?

Right now, any motion of the device (when in "laser pointing" mode) activates the spotlight. I currently have a Projecteur rule that pressing the "laser activation" button toggles the spotlight mode.

The user experience in PowerPoint for the device is that the PowerPoint built-in "laser" pointer appears on screen while the "laser activation" button is pressed. I think that would be the right way of handling it.

Where would such a handling best be added?

(For context: If I remember the Logitech behavior correctly, it only sends relative movement events while the button is pressed. In the "laser pointing mode", sends these events on every orientation change. As this mode is activated by one of the awkward middle positions of a four-position sliding switch, activating/deactivating the mode on the fly is not something you want to be doing continuously while giving a presentation. The "movement-disabled" active position is the other middle position, so switching between them requires some concentration on the fine motor skills…)

jahnf commented 10 months ago

Hello Marcel, thank you for this, for supporting the device out of the box feel free to create a PR!

For the other topic about the activation of the spotlight: I never used the "laser pointing mode" of the Logitech Spotlight, wasn't even aware of it. I for myself only want the spotlight shown and "movable" when pressing a button, so currently the activation of the spotlight on move events works well at least with the Spotlight and some cheaper imitations I own.

How does that work with the Kensington device? Is the device sending mouse move events all the time? I think there is surely a possibility to integrate a mode like that, but I would need a better understanding of the workflow and what the device is sending exactly.

MarcelWaldvogel commented 10 months ago

There are two useful modes for the Kensington (besides "off" and "show battery level"):

  1. Dumb presentation: No mouse events are ever sent; only forward/backward and screen blanking is supported
  2. Highlight mode: Mouse events are sent on every movement (i.e., always, if someone holds it in their hand). Pressing/holding the buttons will trigger either drawing commands (for annotation) or the "PowerPoint laser simulation" (where essentially the mouse pointer is replaced by a red dot)

For a reasonable UX with this device, it would be great to have the spotlight only appear if both of the following conditions are met:

The Ctrl+LeftMouse-Combo is kind of strange. It does trigger the "laser" effect, but does not trigger the Context Menu on a Mac. Ctrl is only briefly held down when the left mouse button is initially pressed; it is released immediately afterward. This activates the "Laser" pointer on PowerPoint, which stays active until the release of the mouse button.

What would be the best way of supporting this:

MarcelWaldvogel commented 10 months ago

I just noticed that when in "Dumb mode", Projecteur works like a charm, when I long-press the "laser pointer" button: Movement events will only be sent while the button is pressed (and the initial Ctrl-Mouse1-Ctrl combo is conveniently filtered by Projecteur).

So recognizing this sequence was just significantly lowered in my personal priority…