pointer: a low hand keeps its laser; typing still holds it back

The hand ray hid once the knuckles were more than 40 cm under the eyes,
so aiming at a keyboard below lost the laser after a few keys. The
user: "hands are still recognized even if they are low, just not if
they are typing". The height test is now a setting, POINTER_RAY_RAISED
(cm under the eyes; 0, the default, is off), with a toggle in the input
settings. Hands typing on a keyboard stay held back by the typing guard,
and a hand in the lap palm up still fails the palm test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
DeeJanuzandClaude Opus 5.5 committed 2026-10-19 21:23:58 -06:00
1 parent e5b6e23aa1
commit 7dfcd9b6de
5 files changed
+51 -3

No files matched your search

+5
View File
@@ -1123,6 +1123,11 @@ int main() {
rayParams.readyShow = std::clamp(ConfDouble(conf, "POINTER_RAY_READY", 6), 0.0, 30.0) / 100;
rayParams.readyHide = rayParams.readyShow > 0 ? std::max(rayParams.readyShow, std::clamp(ConfDouble(conf, "POINTER_RAY_READY_HIDE", 10), 0.0, 40.0) / 100) : 0;
rayParams.fistCurl = std::clamp(ConfDouble(conf, "POINTER_RAY_FIST_CURL", 1.1), 0.0, 2.0);
// the laser only for a raised hand: its knuckles within this far under the eyes, and gone 10 cm
// past it (cm; 0, the default: a low hand points too, and a hand typing is held back by the
// typing guard instead; 30 until 2026-10-19, when aiming at a keyboard below lost the laser)
rayParams.raisedShow = std::clamp(ConfDouble(conf, "POINTER_RAY_RAISED", 0), 0.0, 100.0) / 100;
rayParams.raisedHide = rayParams.raisedShow > 0 ? rayParams.raisedShow + 0.10 : 0;
rayParamsNew = true;
rayTap = std::clamp(ConfDouble(conf, "POINTER_RAY_TAP", 0.3), 0.0, 2.0);
rayTapDeadzone = std::clamp(ConfDouble(conf, "POINTER_RAY_TAP_DEADZONE", 6.0), 0.0, 30.0);