Is there a way to invert vertical mouse direction?


#1

I’m looking for a way to invert the vertical mouse direction but can’t find it in the HUD or Preferences on OSX. Is this possible in HF?


Burton Samograd


#2

Or even have a more traditional ‘Doom’ style focus follows mouse navigation with configurable keybindings for movement?


#3

The first part is definitely possible, but you may have to jump down to the scripting level to configure that sort of thing right now (ie: using the Controller Mapping API).

Here is an example mod to try that inverts all pitch related keyboard/mouse/touchpad inputs:
https://cdn.rawgit.com/humbletim/hifi-aux/cd60c44b/snippets/invert-vertical-mouse.js

(note: to run in Interface use Edit -> Running Scripts… -> Load: From URL)

Regarding traditional ‘Doom’ style mappings… do you mean something like http://doom.wikia.com/wiki/Controls?


#4

He probably means WASD controls with mouselook. instead of having to drag the mouse around.

Sorta like the original mouse look in SL, where you moved around in WASD/Arrowkeys, and moved the mouse to move the head.

Pressing/holding a button would toggle/release the mouse.

I’d say its doable, just needs a script to be made for it.


#5

Something we asked for a year ago. holding button to look aron
und is still bad for the finger.


#6

Yes, that Doom :slight_smile: Thank you for the example! I’m also curious about lowering the mouse sensitivity, if that’s possible.


#7

Was it context specific (or just a long-press maybe?)?

… still not quite following how pressless mouse look saves fingers trouble overall… but here is a variation on the theme to try out:

Client script URL: kb-mouse-customizer.js#m=.5,healthyfingers=1

In that mode, mouse look is on except when any of the following are true:

  • SpanTurn is enabled
  • NavigationFocused is enabled
  • Shift key is down
  • MiddleMouseButton is pressed

(if those building blocks get close then there might be a way to emulate what I think you had in mind)

Glad to provide what insights I can – this is a rabbit hole I’ve been itching to dive down for a while now.

Based on your questions I started wondering whether how far simply being able to rescale axes would go. And it turns out I strongly prefer these scaling factors:

k=.5, ksy=.75, m=.125, m.x=.75, shift=.3

Which translate into:

  • make all keyboard “axes” 1/2 as sensitive
  • make keyboard+shift (y) axis another 1/4 less sensitive
  • make all mouse axes (including (z) – mouse wheel) 1/8th as sensitive
  • reduce mouse left-right (x) axis by another 1/4
  • and when I look with Right Mouse and press Shift, decrease all mouse axes by another ~2/3

Those are probably specific to me / my mouse / system settings. But in any event I set things up so parameters can be changed in the script URL in case others want to try different configs on for size too:

Client script URL: kb-mouse-customizer.js#k=.5,ksy=.75,m=.125,m.x=.75,shift=.3

An inverted config with lower sensitivities would look like this:

m.y=-1, t.y=-1, k.s.y=-.5, m=.125, t=.5

Client script URL: kb-mouse-customizer.js#m.y=-1,m.y=-1,k.s.y=-.5,m=.125,t=-.5

(I don’t have a touchpad so guessed at t support, but it should scale/invert like the rest)


  • loading kb-mouse-customizer.js without any ? or # in the URL puts it into a remedial dev mode that prompts you at each run with the last settings, so repeatedly restarting the script provides one way to iterate.
  • the generated controller mapping can be seen by adding dump=json
  • in theory stopping the Client script returns everything to normal… but in some cases I had to actually restart Interface to get a baseline state back.