Input nesting is a feature in the X1 Control Panel that allows any active button, deep click, tilt, or pivot input to modify the output of all other inputs.
Some example methods of use consist of:
- Using a button or tilt as a modifier to unlock a secondary set of functions on top of your existing button assignments.
- Create mouse movement gestures while a button/tilt is active
You can use this feature of the X1 Control Panel to achieve many configurations, although this article will provide a general setup guide and potential use cases.
The term "Input Nesting" comes from the nature of "nesting" an input inside an input. Below is a basic example of an input nested setup on one of the Z3's 13 buttons.
In the configuration above, pressing "Rear Edge" on its own will output "Interact". However, the "Rear Edge" button also acts as a modifier for the "Bottom Thumb" button. So if Rear Edge is pressed, pressing Bottom Thumb in conjunction opens the Map.
Knowing this logic, if we navigate to our "Bottom Thumb Press" mappings, we can see it's currently set to output a Dodge Roll as its default configuration. So, in the example before, we modified the output of Bottom Thumb by pressing and holding Rear Edge.
Now that you know how Input Nesting works, we can dive deeper into how to set it up and cover some more examples.
In Simple Mode you can add a nested input by selecting any button or tilt Input, and then clicking the "Add Input" button:
In Expert mode click the three dots next to the input, and select "Add".
In both cases you will then select the type of input you want to add, and various settings depending on the input.
- Mouse Button
- User Input - Select a specific button inputs
- Mouse Movement
- Direction and Distance - Set's how far, and in which direction you need to move the mouse to activate it's output.
- Single/Repeat - Sets whether the output will activate only once, or if you can keep moving the mouse to repeat it.
- Scroll Wheel
- Direction - Select a Scroll Push or Pull input
- Deep Click
- Force - The minimum force required to activate the input.
- User Input (Expert Mode Only) - Select which button the deep click belongs too. Make sure to select an input the deep click is nested inside, or it will not function.
- Toggle Region/Analog Range(Expert Mode Only)
- Toggle region works like a button within a button, it activates when you go above the Force threshold, and releases when you drop below it.
- Analog Range allows you to define a force range which can be mapped onto a joystick slider output.
- Tilt/Pivot
- User Input - The direction of movement to activate the input.
- Angle - The minimum angle of movement in that direction to activate the input.
- Noise Level - Subtracted from the Angle setting to determine the deactivation angle of the input.
- Min/Max (Analog Inputs) - Set the active range for the analog input.
- Mirror (Analog Inputs) - Lock Min/Max values so they match, or unlock them to set each direction independently.
"Block Parent Mappings" option
When setting up a nested input, you may notice that the parent input's own primary output still fires when you press it. This is intentional and is useful for running outputs in parallel. Although in many cases, this is undesirable - for example, if Rear Edge is assigned to "Interact", you might not want "Interact" to fire every time you intend to use it as a modifier to access "Map".
There are two steps required to prevent this.
Block Parent Mappings is a toggle available on a nested input that, when enabled, suppresses the parent output when it is being used to trigger a nested input. You can enable this setting for any nested press or release output in Expert mode, as shown below.
Toggling Block Parent Mappings on a nested input's press or release gives you precise control over when the parent output is suppressed.
When enabled upon a press, the parent mapping is blocked as soon as the nested input is pressed. When enabled on release, the parent output remains active while the nested input is held, and is only suppressed once the nested input is released.
Shifting the parent mapping to a release output
Even when Block Parent Mappings enabled, the parent's press output will always fire first, as it can't be block by a nested input which hasn't happened yet.
To address this you can shift the entire parent mapping to the release output, which means the output only occurs when the parent key is released, and with Block Parent Mappings enabled, only when the nested input is not used.
In the example above, the key "E" for Interact is assigned to the press of the Front Edge button. Regardless of when I want to use "Map", I inevitably have to press "E" to access it.
You might not want this to occur, so, the easiest way to avoid this is the example below:
Here, you'll see that the parents' press output is assigned to do nothing - this is so that when the Rear Edge button is depressed, it will not output anything. This gives us the freedom to access our nested input, by holding down the bottom thumb to access the Map without triggering anything else.
Now, since we also have "Block Parent Mappings" enabled, once we are finished looking at the map, the parent mappings won't activate once we release the Rear Edge button.
On the other hand, if we want to interact, pressing and releasing the Rear Edge button will simulate pressing and releasing "E", giving us access to our "Interact" mapping.
Disclaimer: Assigning an output to a release instead of press does introduce latency. As a full press and release of the button is required to activate the desired output. This setup is not recommended for actions that require fast reactions or quick, repetitive outputs