Initial commit, with working version

This commit is contained in:
Juan Arteaga Carmona committed 2026-10-01 21:28:33 +02:00
1 parent 49589f3309
commit da48c37235
21 files changed
+1349 -1

No files matched your search

@@ -0,0 +1,7 @@
{
"alwaysActivate": true,
"name" : "mouselaser",
"directory" : "",
"resourceOnly" : false,
"hmd_presence" : []
}
@@ -0,0 +1,21 @@
{
"jsonid" : "input_profile",
"controller_type" : "mouselaser",
"device_class" : "TrackedDeviceClass_Controller",
"resource_root" : "mouselaser",
"driver_name" : "mouselaser",
"input_bindingui_mode" : "controller_handed",
"should_show_binding_errors" : true,
"input_source" : {
"/input/trigger" : { "type" : "trigger", "click" : true, "value" : true, "binding_image_point" : [ 50, 50 ], "order" : 1 },
"/input/a" : { "type" : "button", "click" : true, "binding_image_point" : [ 50, 50 ], "order" : 2 },
"/input/b" : { "type" : "button", "click" : true, "binding_image_point" : [ 50, 50 ], "order" : 3 },
"/input/grip" : { "type" : "button", "click" : true, "binding_image_point" : [ 50, 50 ], "order" : 4 },
"/input/thumbstick" : { "type" : "joystick", "touch" : true, "binding_image_point" : [ 50, 50 ], "order" : 5 },
"/pose/raw" : { "type" : "pose", "binding_image_point" : [ 50, 50 ] },
"/pose/tip" : { "type" : "pose", "binding_image_point" : [ 50, 50 ] }
},
"default_bindings" : [
{ "app_key" : "openvr.component.vrcompositor", "binding_url" : "vrcompositor_bindings_mouselaser.json" }
]
}
@@ -0,0 +1,203 @@
{
"action_manifest_version": 0,
"alias_info": {},
"app_key": "openvr.component.vrcompositor",
"category": "steamvr_input",
"controller_type": "mouselaser",
"description": "Mouse aims the SteamVR laser. Buttons click, and the wheel acts as the thumbstick (lists and scrolling).",
"name": "Mouse Laser: dashboard and overlays",
"options": {},
"simulated_actions": [],
"bindings": {
"/actions/lasermouse": {
"poses": [
{
"output": "/actions/lasermouse/in/pointer",
"path": "/user/hand/left/pose/raw"
},
{
"output": "/actions/lasermouse/in/pointer",
"path": "/user/hand/right/pose/raw"
}
],
"sources": [
{
"path": "/user/hand/left/input/trigger",
"mode": "button",
"inputs": {
"click": {
"output": "/actions/lasermouse/in/leftclick"
}
}
},
{
"path": "/user/hand/right/input/trigger",
"mode": "button",
"inputs": {
"click": {
"output": "/actions/lasermouse/in/leftclick"
}
}
},
{
"path": "/user/hand/left/input/a",
"mode": "button",
"inputs": {
"click": {
"output": "/actions/lasermouse/in/rightclick"
}
}
},
{
"path": "/user/hand/right/input/a",
"mode": "button",
"inputs": {
"click": {
"output": "/actions/lasermouse/in/rightclick"
}
}
},
{
"path": "/user/hand/left/input/b",
"mode": "button",
"inputs": {
"click": {
"output": "/actions/lasermouse/in/middleclick"
}
}
},
{
"path": "/user/hand/right/input/b",
"mode": "button",
"inputs": {
"click": {
"output": "/actions/lasermouse/in/middleclick"
}
}
}
]
},
"/actions/lasermouse_secondary": {
"sources": [
{
"path": "/user/hand/left/input/trigger",
"mode": "button",
"inputs": {
"click": {
"output": "/actions/lasermouse_secondary/in/switchlaserhand"
}
}
},
{
"path": "/user/hand/right/input/trigger",
"mode": "button",
"inputs": {
"click": {
"output": "/actions/lasermouse_secondary/in/switchlaserhand"
}
}
}
]
},
"/actions/quickmouse": {
"sources": [
{
"path": "/user/hand/left/input/grip",
"mode": "button",
"inputs": {
"click": {
"output": "/actions/quickmouse/in/ActivateQuickMouse"
}
}
},
{
"path": "/user/hand/right/input/grip",
"mode": "button",
"inputs": {
"click": {
"output": "/actions/quickmouse/in/ActivateQuickMouse"
}
}
}
]
},
"/actions/scroll_discrete": {
"sources": [
{
"path": "/user/hand/left/input/thumbstick",
"mode": "scroll",
"inputs": {
"scroll": {
"output": "/actions/scroll_discrete/in/scroll"
}
}
},
{
"path": "/user/hand/right/input/thumbstick",
"mode": "scroll",
"inputs": {
"scroll": {
"output": "/actions/scroll_discrete/in/scroll"
}
}
}
]
},
"/actions/dualanalog": {
"sources": [
{
"path": "/user/hand/left/input/thumbstick",
"mode": "joystick",
"inputs": {
"position": {
"output": "/actions/dualanalog/in/leftvalue"
},
"touch": {
"output": "/actions/dualanalog/in/lefttouch"
}
}
},
{
"path": "/user/hand/right/input/thumbstick",
"mode": "joystick",
"inputs": {
"position": {
"output": "/actions/dualanalog/in/rightvalue"
},
"touch": {
"output": "/actions/dualanalog/in/righttouch"
}
}
}
]
},
"/actions/scroll_smooth": {
"sources": [
{
"path": "/user/hand/left/input/thumbstick",
"mode": "scroll",
"parameters": {
"scroll_mode": "smooth"
},
"inputs": {
"scroll": {
"output": "/actions/scroll_smooth/in/scroll"
}
}
},
{
"path": "/user/hand/right/input/thumbstick",
"mode": "scroll",
"parameters": {
"scroll_mode": "smooth"
},
"inputs": {
"scroll": {
"output": "/actions/scroll_smooth/in/scroll"
}
}
}
]
}
}
}
@@ -0,0 +1,20 @@
[
{
"language_tag": "en_US",
"mouselaser": "Mouse Laser",
"/input/trigger": "Left Click",
"/input/a": "Right Click",
"/input/b": "Middle Click",
"/input/grip": "Laser Mode (held while active)",
"/input/thumbstick": "Mouse Wheel"
},
{
"language_tag": "es_ES",
"mouselaser": "Láser de ratón",
"/input/trigger": "Clic izquierdo",
"/input/a": "Clic derecho",
"/input/b": "Clic central",
"/input/grip": "Modo láser (activo mientras está encendido)",
"/input/thumbstick": "Rueda del ratón"
}
]
@@ -0,0 +1,3 @@
newmtl none
Kd 0 0 0
map_Kd mouselaser_none.png
@@ -0,0 +1,11 @@
# effectively invisible: one 0.1 mm triangle
mtllib mouselaser_none.mtl
v 0 0 0
v 0.0001 0 0
v 0 0.0001 0
vt 0 0
vt 1 0
vt 0 1
vn 0 0 1
usemtl none
f 1/1/1 2/2/1 3/3/1
Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

@@ -0,0 +1,20 @@
{
"driver_mouselaser": {
"enable": true,
"sensitivity": 0.05,
"toggleButton": 276,
"role": 1,
"deviceNameFilter": "",
"originOffsetY": -0.08,
"invertY": false,
"wheelMode": "smooth",
"wheelDeflection": 1.0,
"wheelSmoothMin": 0.7,
"wheelSmoothImpulse": 0.3,
"wheelSmoothHoldMs": 80,
"wheelSmoothDecayMs": 150,
"wheelPressMs": 90,
"wheelReleaseMs": 60,
"wheelMaxQueued": 10
}
}