2022/02/09 16:37:22
Lebon14
I just got my Z20 keyboard today. Hooray.
I downloaded the software and, for the most part, it was pretty staright forward.
 
But for macros however....
 
Here's a thing I found out.
If you create a macro, assign it to a key, then hit apply, it will work as you originally created it. If you go back to change the timings and whatnot, you *HAVE* to remove the binding, hit apply, re-assign the macro and hit apply again.
It's a bit cumbersome but it works.
My shortcut was a simple CTRL+= to change Windows Explorer to folder list.
2022/02/09 20:10:55
jcoehoorn
Looking into a macro file, and it's just JSON data.
 
Knowing this, I was able to add a few actions to an existing macro by recording the actions separately into a new macro. Then I export both macros and open them in a text editor. This lets me paste the code into a json prettifier, so I can see where individual actions start and stop. Now I can copy the actions from the new file file and paste them into the appropriate place in the file from the original macro and save the file. Then, in EVGA Unleashed I delete both macros and import the one I saved with both sets of actions. I'm thinking about writing a powershell script to simplify this.
2022/02/09 20:28:12
jcoehoorn
Okay, here's a very basic script. Remember, to use this you must delete both of the recorded macros from Unleased before importing the new combined macro. This is because each action is identified with a pair of unique GUIDs, and if you don't delete the originals Unleashed will get confused by the duplicate actions. Maybe someone else can enhance this to also generate new guids for each action:
 
param (
[string]$original,
[string]$append,
[string]$output
)

if ($original.Length -le 0) {
    write-host 'Need original file name'
    return
}
if ($append.Length -le 0) {
    write-host 'Need file to append'
    return
}
if($output.Length -le 0) {
    write-host 'Need file to output'
    return
}

$o = get-content $original | ConvertFrom-Json
$a = get-content $append | ConvertFrom-Json
$newActions = $a.MacroActions

$newActions | % {
    $o.MacroActions += $_
}
" " | out-file -Encoding ASCII -noNewline $output # Force ps to omit the BOM
ConvertTo-Json $o -Compress | out-file $output -Encoding utf8 -Append

 
Save this to a *.ps1 file, enable scripts in powershell (ie: set-executionpolicy remotesigned) then use it like this:
 
scriptfile.ps1 -original MyMainMacro.macro -append MyNewMacro.macro -output final.macro

 
 
2022/02/09 20:41:57
jcoehoorn
Scratch all that about needing to delete the originals. This version will let you generate new guids if you want:
param (
[Parameter(Mandatory=$true)][string]$original,
[Parameter(Mandatory=$true)][string]$append,
[Parameter(Mandatory=$true)][string]$output,
[switch]$keepOriginalGuids=$false
)
$o = get-content $original | ConvertFrom-Json
$a = get-content $append | ConvertFrom-Json
$newActions = $a.MacroActions
$newActions | % {
    $o.MacroActions += $_
}
if (-not $keepOriginalGuids) {
    foreach($action in $o.MacroActions) {
        $action.BindingGuid = (new-guid).ToString()
        $action.Guid = (new-guid).ToString()
    }
}
" " | out-file -Encoding ASCII -noNewline $output # Force ps to omit the BOM
ConvertTo-Json $o -Compress | out-file $output -Encoding utf8 -Append

2022/02/10 14:54:42
lastsamurairick
Very Nice guide. thanks
2022/05/24 19:51:48
RocViper
Tab, shift, ctrl and alt are recording in my macros but not playing back when I press the assigned macro key. Has anyone else seen this?
Unleash RGB v1.0.16
Firmware v1.33
2022/07/23 09:02:06
Sinster
In my experience the macro settings are a joke on these keyboards.  
 
The issues I have is when I go set up macros record the key combo, first action is always above 6000 ms ****! I'm not holding my finger on the keyboard.  Then if I try to use the macro as recorded it doesn't work.  It ends up performing single key function rather than multi key. 
 
Take example, I use LefShift + T
Action 1 LeftShift Keydown: 3082ms
Action 2 T KeyDown: 305ms
Action 3 T KeyUp: 123ms
Action 4 Leftshift KeyUp: 31ms
 
Let say I manually adjust the times.  To 10ms and try my macro it doesn't work.  I end up having to do is set time 100ms, 101ms, 102ms, 103ms in order for it to work when it wants to.  I have tried adjusting the times and yes each time I adjust the time, I save, un-bind, and re-bind.
Whatever you do don't accidentally change profiles during gaming.  When you go back to the original your macro will not work unless you restart your game. YMMV
2022/08/18 00:14:10
rootajoe4
Let say I manually adjust the times.  To 10ms and try my macro it doesn't work.  I end up having to do is set time 100ms, 101ms, 102ms, 103ms in order for it to work when it wants to.  I have tried adjusting the times and yes each time I adjust the time, I save un-bind, and re-bind.
2022/09/16 20:33:30
Sinster
Is the MS the duration of the press or duration before the button is pressed/released?
2022/09/21 17:16:21
burtsmithers
i have my macro MS delay set to 0 and when i press the E4 or E5 keys (where i bound my macros) it would take about 3 to 3.5 whole seconds for it to happen. 

i am pretty sure, based on some testing just now, that the recording takes into account how long it takes you to start pressing buttons, etc. but doesnt tell you that.. so you if you hit record and then slowly think "ok hold WINKEY and press CTRL and RIGHT ARROW" its going to take your human delay into account and not tell you that. it will show you how long the key was held etc but the recording has more to it than that. i would like it to be more instant.

i tried to play with the MS delay to make up for this but i couldnt get it quite right being a dumb human and all.

next test will be to export the macro and see if i can remove the initial delay in the recording and then save and import.
(sorry if all of this is old news to most of you, but i figured if im just now realizing this than someone else might be too)

Use My Existing Forum Account

Use My Social Media Account