editing controller bindings?

i'm running flatland on my original HTC Vive and the default binding for the corner handles is grip, which needs a bit too much force to comfortably hold while moving windows around, is there any way i can go about changing this to trigger or menu?
71 Replies
Nova
Nova2w ago
ah shoot that's kinda hardcoded in :/ most controllers have comfy grips i didn't think anyone would have an htc vive controller :p but i'll see what i can do
Nervyalloy5
Nervyalloy5OP2w ago
can i just change it myself for the time being?
Nova
Nova2w ago
yeah if you look in sk_controller.rs i believe you should be able to see datamap.grab = something like that
Nervyalloy5
Nervyalloy5OP2w ago
and yeah, completely understandable that you wouldn't expect someone using this hardware in 2024 lol
Nova
Nova2w ago
just search up grab: controller.grip, in the server you'll find it i want to make it comfy for all setups so actually this is very useful
Nervyalloy5
Nervyalloy5OP2w ago
one thing i'm very surprised about is how readable text is even on my ancient hardware
Nova
Nova2w ago
ahaha yeah i stole the lanzcos filter from simulavr it blurs text intelligently even with perspective warp you really don't need the highest spec stuff to get readable text, that's Big Headset wanting you to buy the higher res headset instead of making the headset do anything useful :p jk but it's not a common technique is what it really boils down to
Nervyalloy5
Nervyalloy5OP2w ago
lol yeah, honestly the only thing i didn't like about this HMD was the garbage-tier factory lenses, but you can just use a 3D printed adapter to swap them out for GearVR ones and then the picture gets like 10x better
Nova
Nova2w ago
oh nicee is it comfy to read?
Nervyalloy5
Nervyalloy5OP2w ago
haven't read anything long enough to determine that just yet, once i get the bindings changed and figure out keyboard input i'll try reading for a bit and see how it is i just know its orders of magnitude better than any other text i've ever seen rendered on this headset
Nova
Nova2w ago
ok for keyboard you just run manifold | azimuth and that'll take input from a desktop window you can click into to capture mouse/keyboard and turn it into a virtual pointer or manifold | simular to beam your keyboard to whatever you're looking at (eye tracking not included it's just a ray coming from your head directly forward lol) from the manifold window
Nervyalloy5
Nervyalloy5OP2w ago
lol, believe it or not the lack of eye tracking support is not a deal-breaker for me
Nova
Nova2w ago
stardust actually does support eye tracking but monado as of yet does not so i cannot test it i can even replicate transient pointers like visionOS using stardust and the SUIS
Nervyalloy5
Nervyalloy5OP2w ago
well i just mean i don't really have the hardware regardless
Nova
Nova2w ago
fair fair haha this is, until i get the dbus stuff working, in which case i'm gonna break apart the hardcoded input methods and put them in clients and such and allow mode switching to fix the issue architecturally
Nervyalloy5
Nervyalloy5OP2w ago
so uh, how do i actually go about changing the button?
Nova
Nova2w ago
you'll be able to switch between controllers/hand modes so you could have an extendo-hand mode, telekinesis, etc. change controller.grip to controller.<something else>
Nervyalloy5
Nervyalloy5OP2w ago
was assuming i'd find the typical OpenXR path stuff tried changing that to menu and it didn't compile since i'd imagine trigger is already mapped somewhere
Nova
Nova2w ago
trigger is select uhhh hmm idk lol grab: controller.stick_click.is_active() as u32 as f32, try this it'll middle click too but whatever
self.datamap = ControllerDatamap {
select: controller.trigger,
middle: 0.0,
context: controller.is_x2_pressed() as u32 as f32,
grab: controller.stick_click.is_active() as u32 as f32,
scroll: controller.stick.into(),
};
self.datamap = ControllerDatamap {
select: controller.trigger,
middle: 0.0,
context: controller.is_x2_pressed() as u32 as f32,
grab: controller.stick_click.is_active() as u32 as f32,
scroll: controller.stick.into(),
};
this should do it so you can press the circle pad to move stuff but can't middle click any flatland panels
Nervyalloy5
Nervyalloy5OP2w ago
unrelated, but it's awesome that cargo just doesn't bother building stuff that hasn't changed
Nova
Nova2w ago
everyone complains about rust compile times but like it's not that bad when iterating on stuff
Nervyalloy5
Nervyalloy5OP2w ago
i mean, the more i learn about rust the more i like it honestly i've been reading the rust book and slowly figuring things out yeah now i just can't grab things
Nova
Nova2w ago
dangit stick click must not map to the circle pad what the sigma
Nervyalloy5
Nervyalloy5OP2w ago
the joys of old hardware
Nova
Nova2w ago
vive controllers really barely had anything didn't they hmm ok actually
self.datamap = ControllerDatamap {
select: controller.trigger,
middle: controller.stick_click.is_active() as u32 as f32,
context: controller.is_x2_pressed() as u32 as f32,
grab: controller.trigger,
scroll: controller.stick.into(),
};
self.datamap = ControllerDatamap {
select: controller.trigger,
middle: controller.stick_click.is_active() as u32 as f32,
context: controller.is_x2_pressed() as u32 as f32,
grab: controller.trigger,
scroll: controller.stick.into(),
};
try this it should work fine actually, the SUIS can handle stuff like this just fine
Nervyalloy5
Nervyalloy5OP2w ago
i've got a total of 4 buttons and a trackpad lol
Nova
Nova2w ago
what buttons? you can make the trigger do both grab and select given how the system works
Nervyalloy5
Nervyalloy5OP2w ago
grip, menu, system and trackpad click
Nova
Nova2w ago
thank god i made the SUIS like this literally no other system would support this shenanigan
Nervyalloy5
Nervyalloy5OP2w ago
well, and trigger of course
Nova
Nova2w ago
yeah, so if you remap grab to trigger it should work given the way that the SUIS does capturing anything you wanna grab won't do trigger it'll capture the thing so nothing else detects it as trigger and vice versa
Nervyalloy5
Nervyalloy5OP2w ago
working great tried manifold | simular and it works, but inputs get stuck if i look away from a window
Nova
Nova2w ago
yeah that's... a bug it's very complex to fix it
Nervyalloy5
Nervyalloy5OP2w ago
i'd imagine it would be
Nova
Nova2w ago
so i've been focusing on a lot of other stuff before it
Nervyalloy5
Nervyalloy5OP2w ago
understandable the fact that it works at all is very impressive
Nova
Nova2w ago
you can hold the same key when not looking then look back at it then unpress to fix it :p
Nervyalloy5
Nervyalloy5OP2w ago
yeah i figured that out lol it's easy enough to work around is mouse input a thing?
Nova
Nova2w ago
well yes but actually no it's... broken
Nervyalloy5
Nervyalloy5OP2w ago
fair enough
Nova
Nova2w ago
and simular's mouse input doesn't get routed anywhere because flatland can't process it because that's a lot more work i haven't had time to do yet
Nervyalloy5
Nervyalloy5OP2w ago
understandable
Nova
Nova2w ago
azimuth moves the pointer but the input methods don't work in clients for some reason oh right i think it can't find the input handlers properly yet :blobcatgoogly:
Nervyalloy5
Nervyalloy5OP2w ago
even the idea of the workflow with this is super cool
Nova
Nova2w ago
what would you say is better about this workflow compared to other XR headsets or compositors
Nervyalloy5
Nervyalloy5OP2w ago
like, the ability to just look at the thing you want to interact with and just instantly interacting with it is crazy
Nova
Nova2w ago
i invented the basis for that back in 2020
Nervyalloy5
Nervyalloy5OP2w ago
it's like a step above focus follows mouse which i can't live without anymore
Nova
Nova2w ago
you could look at a cube and flick your head to rotate it what about stardust as a whole vs other stuff?
Nervyalloy5
Nervyalloy5OP2w ago
admittedly i've never used any other XR compositors, but so far this feels like the future in a way i didn't imagine it would
Nova
Nova2w ago
cool, thanks for your feedback, customer #1564151354 :p
Nervyalloy5
Nervyalloy5OP2w ago
i mean, combine this with passthrough and hand tracking and i don't even know that i would ever buy another monitor lol
Nova
Nova2w ago
well we have hand tracking and passthrough technically too but that one's janky
Nervyalloy5
Nervyalloy5OP2w ago
alright, weird question time. would it be possible to create a window that renders a different thing in each eye?
Nova
Nova2w ago
haven't added custom shaders yet but when that happens, yes that's also gonna take a while since i am not a graphics programmer
Nervyalloy5
Nervyalloy5OP2w ago
my mind is instantly going to the ability to play 3D content on this without the need for garbage like bigscreen
Nova
Nova2w ago
yes absolutely totally not something any other headset could do not like apple can
Nervyalloy5
Nervyalloy5OP2w ago
lol
Nova
Nova2w ago
i even want to make a special virtual controller for games
Nervyalloy5
Nervyalloy5OP2w ago
i've literally had the same for a while actually having a virtual environment with whatever kind of display you want and whatever kind of controller you want just seems so cool
Nova
Nova2w ago
yeah, it's total freedom since you can virtualize the hardware not good for everything like flight sticks are very good stilll but it can make a lot of stuff obsolete
Nervyalloy5
Nervyalloy5OP2w ago
but like, imagine having a virtual arcade cabinet type thing
Nova
Nova2w ago
oh yeah you could def do that the argument against it is "why not just have a list of games you tap like on a phone"
Nervyalloy5
Nervyalloy5OP2w ago
like take space harrier for example, this seems like it would translate perfectly
No description
Nervyalloy5
Nervyalloy5OP2w ago
but anyway, thanks for the help (and the amazing software)
Nova
Nova2w ago
thanks! if you wanna make your own stardust apps/objects ping me and i can help you understand how it's just basic rust
Nervyalloy5
Nervyalloy5OP2w ago
i'll absolutely start making stuff for this once i have a better understanding of rust i think just trying this has done wonders for my motivation to actually learn rust as well
Nova
Nova2w ago
it's taken me 5 years to get to this point 2 years since i ported it to rust
Nervyalloy5
Nervyalloy5OP2w ago
it's like, almost strange that i have a proper goal of something i want to make
Nova
Nova2w ago
that's the beauty of stardust and XR in general, the end result is tangible because it's a 3D thing
Nervyalloy5
Nervyalloy5OP2w ago
instead of just learning a language for the sake of it exactly
Want results from more Discord servers?
Add your server