WootingKb / wootility-issues

A place to report issues with the Wootility and help with feedback on existing issues
21 stars 3 forks source link

Macro Recording and Replay #156

Open Sigma-Erebus opened 2 years ago

Sigma-Erebus commented 2 years ago

Is your feature request related to a problem? Please describe. Next to gaming, I personally also do a lot of productivity work and altering large text files (of which most are code or data files)

Describe the solution you'd like What I'd like the wootility to have is something similar to a piece of software I've used before. Sadly, that was a piece of software proprietary to that keyboard. (image attached below) It allows you to record (or manually set up) a set amount of steps the macro will go through, how long of a delay should be in between each step of the macro, and how often it should be repeated. Perhaps even with the option to interrupt the macro's execution with Escape. This way you could set the delay to something like half a second, and watch it go through a text file, and halt it when you see something go wrong.

One very simple example of what such a macro might look like:

  1. Press End Key -Delay of 50ms
  2. Press Delete Key -Delay of 50ms
  3. Press Arrow Down Key -Delay of 50ms
  4. Repeat 15 times

This is something that I've had to do manually in one of my projects quite a number of times. And it'd be lovely to be able to set up a simple macro for that with a user-friendly piece of software.

Describe alternatives or workarounds you've considered I know that this is a feature I could program in myself, but that would mean that I have to go through a presumably rather challenging process of installing the required software, and spending time to program a macro that I'm going to use for maybe a day or two, and delete again. Compared to quickly setting it up in a friendly UI, or perhaps even being recorded by said software.

Additional context image Screenshot of the firmware of a Sharkoon SHARK ZONE MK80 keyboard

Additional information

Wootility and Firmware version Wootility v4.3.11-beta Firmware v2.4.13

Keyboard Type Wooting Two HE ANSI (used to have a Wooting Two ANSI)

ThinkSalat commented 1 year ago

Same here - the workaround to use ahk is laborious. And any keyboard can use ahk, it's not a real response, just a bandaid over a missing feature.

Sigma-Erebus commented 1 year ago

Same here - the workaround to use ahk is laborious. And any keyboard can use ahk, it's not a real response, just a bandaid over a missing feature.

True, though the use case I'd like to use it in, is to be able to quickly record a macro when scripting or coding. Whenever i have a repetitive piece of code i need to write, or a certain sequence of keys I need executed repeatedly. I want to be able to quickly program that in, instead of having to write an entire AHK script to do it for me. Because in the time it takes me to script it in AHK, it would have been more efficient to do it manually.

It's more for quickly setting up macro's on the fly, rather than defining macro's for long term use. (not that you wouldn't be able to set them up for long term though)

Sigma-Erebus commented 1 year ago

fuck, didn't realize that that drop-down menu acted as a button. My apologies

ThinkSalat commented 1 year ago

@Sigma-Erebus exactly fdude. I want a shortcut key that opens a macros pop up window where I can easily create a macro. AHK Should be able to actually do that for, but t's still laborious.

I think one could make one of the macro keys a macro record key, you then select the macro key you want to write the macro for, and then you hit the macro record key and it records hat macro. But like, that's so much work for a feature that's available in like, every gaming focused keyboard ever made and so lacking on Wooting's offerings.

That said there still is so much more power in AHK than a simple macro manager. For example I can set up to connect a particular pair of headphones, or pair my ps5 controller. But again, any keybaord with a macro manager can still use the power of ahk, so regardless, the wooting offreings are lacking something I consider to be part of a standard when it comes to gaming keyboards.

ThinkSalat commented 1 year ago

Just fyi - learning more and more about ahk. Its like, makes macros not even relevant. Though I have made a profile that assigns fn+the number row to equal f13-24 in case you want to assign macros.

But hotstrings are actually amazing: I can add

:o:pw::password and boom, I have a macro for my password - of course you can addd whatever modifiers you like, minus the fn keys.

Again, the issue still stands, one can do this with literally any keyboard on the market so it's not exactly a fix to the omission of easy macro managment on the wooting kb

WooTHaX commented 1 year ago

Would it be possible to even save macros on the profile in on-board memory of the keyboard?

ThinkSalat commented 1 year ago

It would be but then you'd have to put a limit on the macros depending on amount on board memory. I think it depends on the level of complexity. Are you including the ability to include time intervals, etc. That said, current onboard memory is probably optimized for the keyboard towork without macros. Theo nboard memory would most likely have to be updated.

WooTHaX commented 1 year ago

The wooting two HE has 16MB onboard Memory. This should be more than enough to spare some macros, even with time intervals etc. This might just be a case for that keyboard though, not sure what the other models have.

ThinkSalat commented 1 year ago

Definitely more than enough. I imagine they could put a hardware macro limit and if you wanted infinite macros, you could store on the computer.

On Mon, Nov 14, 2022 at 6:07 AM WooTHaX @.***> wrote:

The wooting two HE has 16MB onboard Memory. This should be more than enough to spare some macros, even with time intervals etc. This might just be a case for that keyboard though, not sure what the other models have.

— Reply to this email directly, view it on GitHub https://github.com/WootingKb/wootility-issues/issues/156#issuecomment-1313580610, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHNEPJOCMIU43KBPAVOPSOTWIITPFANCNFSM5XONOK3A . You are receiving this because you commented.Message ID: @.***>

simon-wh commented 1 year ago

I just wanted to add some notes for context. We are looking into adding macros.

Re: On-board macros. As you have noticed, the Wooting Two HE has 16MB of flash storage (60HE has 8MB), which is plenty for storing macros long term. The thing that is more of a limiting factor is the RAM on the microcontroller, as that dictates how much profile configuration we can have pre-loaded to work with quickly in the firmware. That being said, we have a concept for getting over that limitation and having a pretty decent onboard macro system.

However, I have some concerns about onboard macros. For productivity, macros are great, although on-board ones can come fixed with general onboard keyboard limitations (i.e. No support for e.g. opening applications, and inputting arbitrary Unicode [yes that can be done on-board, but not in a cross-platform manner], etc). The big concern I have is with Gaming. In pretty much any competitive game context, macros are cheating. Then by having macros onboard, you have the really big issue in the context of LAN tournaments of how to prevent that. As usually, if it's software-based, you can't install the software anyway on the LAN machine, so it's a non-issue. However, if it's onboard, then there's not much the tournament organisers can reasonably do, other than outright ban the keyboard.

In conclusion, while we have a potential solution for onboard macros, there are too many issues/limitations around it. So we're going to be focusing more on software-based macros for general usage. Although those are just my thoughts, maybe there are things I hadn't considered that would make some of my concerns a non-issue.

With all that being said though, I would love for you all to share your macro use cases and feature requests. Then we can include those in our macro support design 😃

jzhang3d commented 1 year ago

is it feasible to have a hybrid macro approach? ie. more limitations when defining onboard macros and high customization when using software macros?

context: i use the keyboard for personal and work with a kvm, and the hotkey to swap between two sources is scrl+scrl+pgdn (since this is a kvm feature, software can't control this). This is finger gymnastics, especially on the 60HE and a lightweight solution would be much appreciated

Edit to add: Just did some research on macro pads and found that any keyboard with onboard memory that supports QMK/VIA can have this issue of cheating. I'm not sure what kind of strategies tournaments have to figure out who is using hardware macros. Maybe the most unbiased approach is to assume good intent by your users and allow full customization?

ThinkSalat commented 1 year ago

I agree with @jzhang3d - a hybrid approach is probably best

as for the cheating concerns - maybe part of the wootility a tournament mode can be added which disables any macros and allows registrars or whatnot to know for certain that the user is not using macros with the keyboard. It does seem like a null point when you consider how almost all gaming peripherals have macro support. And there are plenty of ways to get around such a thing.

BigBrainAFK commented 1 year ago

is it feasible to have a hybrid macro approach? ie. more limitations when defining onboard macros and high customization when using software macros?

context: i use the keyboard for personal and work with a kvm, and the hotkey to swap between two sources is scrl+scrl+pgdn (since this is a kvm feature, software can't control this). This is finger gymnastics, especially on the 60HE and a lightweight solution would be much appreciated

Edit to add: Just did some research on macro pads and found that any keyboard with onboard memory that supports QMK/VIA can have this issue of cheating. I'm not sure what kind of strategies tournaments have to figure out who is using hardware macros. Maybe the most unbiased approach is to assume good intent by your users and allow full customization?

ScrLk + ScrLk + PgDn can be done in DKS. just no precise timing

Edit: Tournaments also usually provide keyboards and I haven't seen people use QMK/VIA keyboards at tournaments.

simon-wh commented 1 year ago

is it feasible to have a hybrid macro approach? ie. more limitations when defining onboard macros and high customization when using software macros?

I agree with jzhang3d - a hybrid approach is probably best

I am interested in a hybrid approach, as I'm already planning on adding a 'Shortcut' advanced binding, which would allow you to input up to 7 bindings simultaneously on a single key. Outside of that, the main thing I need is use cases to see what we can do with the on-board ones.

context: i use the keyboard for personal and work with a kvm, and the hotkey to swap between two sources is scrl+scrl+pgdn (since this is a kvm feature, software can't control this). This is finger gymnastics, especially on the 60HE and a lightweight solution would be much appreciated

As was mentioned, you should be able to achieve this with DKS. Although, I'm not 100% sure if it would work as you have scrl twice? Is there a specific timing thing or is that just a typo?

as for the cheating concerns - maybe part of the wootility a tournament mode can be added which disables any macros and allows registrars or whatnot to know for certain that the user is not using macros with the keyboard. It does seem like a null point when you consider how almost all gaming peripherals have macro support. And there are plenty of ways to get around such a thing.

Do any gaming peripherals have onboard macro support? My understanding is that all of them rely on their software running in the background, which wouldn't be installed on tournament machines anyway.

There's also the argument you could make which is that you could theoretically use DKS to create certain macro inputs, causing the same issue already.

The idea of a tournament mode is kinda interesting, although it would be highly implementation specific (& likely involve some Tournament organiser input) to actually make something good/viable. As pretty much anything like that would mean that the TO would need to be able to tell if the board is in tournament mode or not, so would require them to implement something in their own protocols (which comes back to the question of if they'd actually care enough to take the effort to support that, rather than outright ban them for simplicity).

ThinkSalat commented 1 year ago

DKS is really limiting though. For example it can't even handle entering a string of text like an email address, let alone a physical address. Maybe the software version could have some kind of AHK integration. Like, a gui for macros, but they're mapped into an AHK file which can be modified.

domgetter commented 1 day ago

Proposed solution to the tournament cheating problem:

Make it so that if there are any macros saved to a keyboard, the entire keyboard flashes red a couple times when it is first plugged in and gets power. This way a tournament organizer can easily check if any macros are saved to a keyboard by unplugging and plugging back in a Wooting keyboard, and can have a blanket rule that no Wooting keyboard with red flashing on plug-in is allowed. Plus, this is wouldn't interfere with normal workflows for people who are using the keyboard for work since it only happens for a very short time on startup/plug-in.