Arqade Asked by threeFatCat on March 24, 2021
I’m using Antimicro to map my Mocute-050 bluetooth controller to play The Witcher 3 Wild Hunt.
I’ve been reading the previous questions regarding “combo key” in the github page, but it seems it is not what I was expecting.
What I wanted:
Is to mimic the behavior in the “Set Selector [num] While Held” that when a [key] is pressed hold and unhold will toggle the select set. While normal [key] press will activate the default assigned function.
The problem is when I set the Macro:
Hold 0.50s > Set Select 2 > Release 0.01s > [TAB] > Release 0.49s
or
Release 0.01s > [TAB] > Release 0.49s >Hold 0.50s > Set Select 2
The after hold Set Select will not activate until you release the key which is opposite what I wanted is to keep it hold down, after releasing the key Set Select should no longer be active.
Is it a bug?
TL;DR: The short version is that there is a workaround but it does not meet the requirements exactly (skip to Workarounds section below for this).
That said, it's probably less a bug and more a limitation (explained in more detail below). The UI should probably label the Advanced option as "Set Selection as 1-way". You could still submit a feature request with something like "Request: Ability to use same button for Set Selection While Held and Send Key When Pressed" and explain your use-case; but keep in mind that at the time this answer was written (July 2020), there haven't been any active commits on the project since Mar 2017.
I understand this is question was asked some time ago and the OP may have moved on. However, I came across this post while attempting something similar for TW2 and since there were no existing answers, I thought I would make the attempt in case others might find it useful.
The OP sounds like an experienced Antimicro user. I will try to satisfy the original question but will be breaking it down a bit further for the benefit of less experienced users that might come upon this post.
If I am understanding the question correctly, then the requirements are as follows:
Here is how to re-create the OP's first setup. Note that I am going to use a mapping to D
instead of TAB
since that is easier to read when testing the profile in a text-editor. You don't have to use the same controller or bindings that I do, but I am going to write it with what I used.
X
on the gamepad.X
button then press Q key
on the keyboard to create the mapping (set 2): X -> Q
X
button then press W key
on the keyboard to create the mapping (set 1): X -> W
Left shoulder
as my modifier button; On Set 1, click the L shoulder
buttonHold
. Then from the time drop-downs select so it has 0m
, 0
, .5
, and 0s
. The Time label to the left should read: 0m 0.50s
Blank of KB/M
and pick a 1:1 keyboard mapping. To meet the OP's requirement, we will instead select Set Change
from the drop-down, then Select Set 2
from the second drop-down that appears.Release
from the drop-down and set the time to 0m 0.01s
Blank of KB/M
then click in the white square of the rightmost/selected assignment box and press D
(we will replace this with tab later but for now it is more visible for testing).Release
from the drop-down and set the time to 0m 0.49s
Hold 00.50, Set Change 2, Release 00.01, D, Release 00.49
; if it is missing anything then go back and fix it now. When it is correct, click the Close button to return to the main screen.X
on the controller types w
and pressing L Shoulder
types d
. Hold L Should
for a second and press X
and it should type q
. However, antimicro has toggled to Set 2 and is stuck thereThis meets requirements #1-3 but not requirement #4. Reading the documentation on Set Selection shows us that there are a lot of variables when working with sets. In particular, Sets can be 1-way or 2-way toggles or can operate only when some modifier button is held. Specific buttons can also be exempted from a set (antimicro terminology is "disabling set switching" [for the given button]). It basically boils down to that fact that you can't define an assignment that is triggered on release and have it apply while held down. The second method in the OP is also relying on Release
and so will have the same issue.
So this method works fine for normal button to keypress Tap/Hold mappings or even for 1-Way Set Selection toggles but appears to not support 2-Way/When Held sets. Is it a bug? That's hard to say objectively. I'm guessing here but I believe it is more likely to be a limitation than a bug. I'm not sure if this is a limitation of the current UI or a limitation of what is possible when using the Release
assignments. If 1-Way toggles are the only type of Set Selection possible using this approach, it would make sense to relabel the option in the drop-down to "Set Selection (1-Way)" to convey this. If not, it would make sense to provide options after selecting Set Selection
so the user can choose more granular behavior (e.g. 1-Way
, 2-Way
, or While Held
).
Personally, I would request this as a "feature request" rather than as a bug; I don't say this to be pedantic but rather because in software development circles the term bug can imply something is not working according to some arbitrary original design standard and can occasionally frustrate devs that are picky about ticket categorization (e.g. you generally want to avoid stepping on toes when requesting free help). At least, that has been my experience.
There is a workaround that gives a similar same effect but there are differences. It may be acceptable for some and not for others.
If you understand that the drop-down in the previous steps really means "Set Selection (1-Way)", then you can simply define a corresponding rule in Set 2 for the same gamepad button (L Shoulder
in my example above) and map both the press and hold to Set 1 (e.g. Hold 00.50, Set Change 1, Release 00.01, Set Change 1, Release 00.49
). However, you will want to play with this configuration in a text-editor and notice the differences. I saw that it mostly worked as expected but was not perfect: in particular, it has the following limitations:
Right Shoulder
to ALWAYS map to F
, regardless of Set, then you can right-click on "R Shoulder" > Set Select
> Disabled
; it will then be excluded from set changes. Alternately, you can just define the mapping in both sets (you may need to do this for triggers anyway as they don't have a Set Select
menu option).Only other option that I am aware of for the current version (AntiMicro v2.23) is to simply make a less complex layout that doesn't attempt to use the two features.
Answered by zpangwin on March 24, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP