Skip to content

Releases: UltimateHackingKeyboard/firmware

10.6.0

02 Jan 12:56
Compare
Choose a tag to compare
10.6.0 Pre-release
Pre-release

Device Protocol: 4.10.0 | Module Protocol: 4.3.0 | User Config: 6.0.0 | Hardware Config: 1.0.0 | Smart Macros: 2.3.0

  • Set trackpoint drift reset period to 1s, resulting in quicker auto-recovery.
  • Don't change the test keymap when it's active upon module reconnection.

10.5.0

14 Dec 17:44
Compare
Choose a tag to compare

Device Protocol: 4.10.0 | Module Protocol: 4.3.0 | User Config: 6.0.0 | Hardware Config: 1.0.0 | Smart Macros: 2.3.0

  • Automatically recover from trackpoint drifts after a couple of seconds. This initial implementation may use some fine-tuning, so we welcome feedback.
  • Fix final { command. SMARTMACROS:PATCH
  • Fix ifDoubletap command to not miss doubletap if another macro fit in between the two activations. SMARTMACROS:PATCH
  • Add ifModuleConnected condition. SMARTMACROS:MINOR
  • Return deprecation errors for removed functionality. SMARTMACROS:PATCH
  • Make the smart macro documentation insert invertScrollDirectionY instead of invertScrollDirection.

10.4.0

12 Nov 15:03
Compare
Choose a tag to compare

Device Protocol: 4.10.0 | Module Protocol: 4.3.0 | User Config: 6.0.0 | Hardware Config: 1.0.0 | Smart Macros: 2.2.0

  • Implement touchpad hold continuation timeout via set module.touchpad.holdContinuationTimeout <0-65535> (milliseconds). If non-zero, the touchpad module allows the release of finger for the specified amount of time during drag-and-drop without the left click getting released. SMARTMACROS:MINOR
  • Blink adaptive mode (triangle) LED display icon when recording runtime macros. SMARTMACROS:PATCH
  • Fix repeatFor-related macro validation error. SMARTMACROS:PATCH
  • Fix "$($keyId.*)" parsing. SMARTMACROS:PATCH
  • Clear sticky modifiers when navigation mode is active.
  • Improve macro guide documentation and add examples.

10.3.1

13 Oct 11:10
Compare
Choose a tag to compare

Device Protocol: 4.10.0 | Module Protocol: 4.3.0 | User Config: 6.0.0 | Hardware Config: 1.0.0 | Smart Macros: 2.1.1

  • Fix the && macro command. SMARTMACROS:PATCH
  • Fix the setLedTxt macro command to consume parameters correctly. SMARTMACROS:PATCH

10.3.0

01 Oct 12:37
Compare
Choose a tag to compare

Device Protocol: 4.10.0 | Module Protocol: 4.3.0 | User Config: 6.0.0 | Hardware Config: 1.0.0 | Smart Macros: 2.1.0

  • Implement macro scopes via curly brackets. SMARTMACROS:MINOR
  • Implement while macro command. SMARTMACROS:MINOR
  • Implement else macro condition. SMARTMACROS:MINOR
  • Implement exit macro command. SMARTMACROS:MINOR
  • Implement oneShot macro command timeout. SMARTMACROS:MINOR
  • Report macro line position in errors. SMARTMACROS:MINOR
  • Don't throw "unprocessed input" macro error as consequence of another error. SMARTMACROS:PATCH
  • Fix redundant "unprocessed input" warning after if BOOLEAN condition. SMARTMACROS:PATCH
  • Fix oneShot macro command timeout in combination with commands that sleep until release. SMARTMACROS:PATCH

10.2.0

16 Sep 17:40
Compare
Choose a tag to compare

Device Protocol: 4.10.0 | Module Protocol: 4.3.0 | User Config: 6.0.0 | Hardware Config: 1.0.0 | Smart Macros: 2.0.0

  • Introduce named, dynamically typed variables via the setVar command and $ syntax. For example: setVar myDelay 50 and set doubletapDelay $myDelay
  • Introduce expression parser that allows in-line arithmetics, including +, -, *, /, %, min(...), max(...) and boolean conditions, including <, <=, >, >=, ==, !=, !, &&, ||. For example: ifShift set leds.brightness ($leds.brightness * 1.5 + 0.01) and ifNotShift set leds.brightness ($leds.brightness / 1.5)
  • Introduce if (EXPRESSION) command. For example: if ($a < 2 || $a > 4) tapKey a
  • Introduce string parser. Strings must be enclosed in double or single quotes. Double-quote strings support variable expansion and \ escapes. For example: write "Current keystrokeDelay is $keystrokeDelay. One plus one is $(1 + 1).\n" and write 'This is literal "$" character. And here you have an apostrophe '"'"'.'
  • Introduce key id parser. As a result, ifGesture, ifShortcut, and some other commands now accept key id abbreviations. For example: ifShortcut a b holdLayer fn
  • Make setLedTxt accept numeric expressions. For example: setLedTxt 500 $keystrokeDelay
  • Configuration values now can be retrieved using the $<name> syntax, just as variables. For example: set leds.brightness ($leds.brightness * 1.5 + 0.01)
  • Deprecated #, %, and @ syntaxes.
  • Deprecated registers, including the ifRegEq, ifNotRegEq, ifRegGt, ifRegLt, setReg, addReg, subReg, mulReg commands.
  • Deprecate # comments in favor of the // comment syntax.
  • Deprecated writeExpr and setStatusPart commands.
  • Implement set autoShiftDelay <time in ms (NUMBER)>. If nonzero, the autoshift feature is turned on. This adds shift to a scancode when the key is held for at least autoShiftDelay ms. For example, tapping 'a' results in 'a', pressing 'a' for a little bit longer results in 'A'. SMARTMACROS:MINOR
  • Limit set command values, preventing invalid values. SMARTMACROS:PATCH
  • Expose the status buffer via the UsbCommand_GetVariable:UsbVariable_StatusBuffer USB command. DEVICEPROTOCOL:MINOR
  • Unify layer switching implementations, so macro commands behave like native layer switcher actions. SMARTMACROS:PATCH
  • Expose the current keymap via the GetDeviceState USB command.
  • Fix some initialization-related bugs. DEVICEPROTOCOL:MINOR
  • Implement firmware MD5 checksums to make firmware udpates faster and more reliable. DEVICEPROTOCOL:MINOR MODULEPROTOCOL:MINOR
  • Add untoggleLayer alias for the unToggleLayer macro command.
  • Switch error logs to line numbers and fix trailing newlines. SMARTMACROS:PATCH
  • Validate all macros when the configuration is updated. SMARTMACROS:PATCH
  • Always update LEDs according to leds.fadeTimeout. SMARTMACROS:PATCH
  • Alternate between segment display texts when there is more than one thing to show, such as ERR, WRN, or the name of the current keymap.
  • Fix the behavior of the advanced secondary role strategy when rolling over multiple secondary role keys. Latter keys tended to produce false secondary role.

10.1.0

26 Jul 14:27
Compare
Choose a tag to compare

Device Protocol: 4.9.0 | Module Protocol: 4.2.0 | User Config: 6.0.0 | Hardware Config: 1.0.0 | Smart Macros: 1.4.0

  • Fix oneShot macro command for the proper composition of modifiers. SMARTMACROS:PATCH
  • Fix ifPrimary and ifSecondary macro commands, which were not functional after reconnection onto the default secondary role mechanism. SMARTMACROS:PATCH
  • Fix the navigation mode of modifier layers to always correspond to the base layer.
  • Make non-keypress actions in modifier layers not receive the relevant modifier.
  • Add overlayKeymap, overlayLayer, and replaceLayer macro commands. SMARTMACROS:MINOR
  • Add module.MODULEID.{invertScrollDirectionX,invertScrollDirectionY} macro variables. Use module.MODULEID.invertScrollDirectionY instead of the now deprecated module.MODULEID.invertScrollDirection. SMARTMACROS:MINOR
  • Add $onCapsLockStateChange, $onNumLockStateChange, and $onScrollLockStateChange macro events. Scroll Lock only works as expected on Windows. SMARTMACROS:MINOR
  • Add ifCapsLockOn, ifNotCapsLockOn, ifScrollLockOn, ifNotScrollLockOn, ifNumLockOn, ifNotNumLockOn conditional macro commands. Scroll Lock only works as expected on Windows. SMARTMACROS:MINOR
  • Add set backlight.keyRgb.LAYERID.KEYID macro command. SMARTMACROS:MINOR
  • Add Artificial delay between touchpad presses and releases, fixing doubletap-to-select-word for systems that ignore sub-20ms mouse button releases.
  • Any module pointer action now triggers secondary roles.
  • Make module states not oscillate temporarily upon module attachment/detachment.

10.0.0

10 Jul 20:59
Compare
Choose a tag to compare

Device Protocol: 4.9.0 | Module Protocol: 4.2.0 | User Config: 6.0.0 | Hardware Config: 1.0.0 | Smart Macros: 1.3.0

  • Add backlighting mode, per-key RGB values, functional backlighting color values, and LED fade timeout to the user configuration. USERCONFIG:MAJOR
  • Add oneShot smart macro command. SMARTMACROS:MINOR
  • Add advanced secondary role resolution strategy via secondaryRole.* smart macro variables. SMARTMACROS:MINOR
  • Fix simple secondary role resolution when chording swaps releases.
  • Fix macro-activated sticky modifiers.

Smart macro migration guide:

  • ifPrimary and ifSecondary commands have been connected to the simple secondary role resolution strategy. Please migrate ifPrimary to ifPrimary advancedStrategy and ifSecondary to ifSecondary advancedStrategy in your macro commands.
  • resolveSecondary is kept for backward compatibility without changes. We strongly advise to avoid it.

9.3.0

25 Jun 20:24
Compare
Choose a tag to compare

Device Protocol: 4.9.0 | Module Protocol: 4.2.0 | User Config: 5.1.0 | Hardware Config: 1.0.0 | Smart Macros: 1.2.0

  • Send empty report after every write command, fixing the bug that resulted in 'onewo' when encountering consecutive 'one', 'two' write commands. SMARTMACROS:PATCH
  • Disallow navigation modes in modifier layers. SMARTMACROS:MINOR
  • Switch leds.fadeTimeout value from minutes to seconds. SMARTMACROS:MINOR
  • Add onLayerChange and onKeymapLayerChange macro events. SMARTMACROS:MINOR
  • Add prepend activateKeyPostponed option. SMARTMACROS:MINOR

9.2.3

09 Apr 17:37
Compare
Choose a tag to compare

Device Protocol: 4.9.0 | Module Protocol: 4.2.0 | User Config: 5.1.0 | Hardware Config: 1.0.0 | Smart Macros: 1.1.2

  • Fix the initialization of non-base layers, resolving the fallback of unmapped modifier layer actions.