Skip to content

Hotkey Recorder records wrong key format #104

@brunocalou

Description

@brunocalou

TanStack Hotkeys version

0.7.1

Framework/Library version

Svelte 0.9.1

Describe the bug and the steps to reproduce it

When using createHotkeyRecorder, the recorded hotkey is using the wrong format.

When I record a Shift+1 hotkey, it captures a Shift+! instead. Same happens for the option key; Option+1 captures ⌥ ¡.

Using the validateHotkey function, validateHotkey('Shift+1') is valid and has no errors and warnings, but validateHotkey('Shift+!') has this warning: "Unknown key: '!'. This may still work but won't have type-safe autocomplete."

Expectation

Recording Shift+1 should return Shift+1, not Shift+!

Code

<script lang="ts">
import { createHotkeyRecorder, formatForDisplay, validateHotkey } from '@tanstack/svelte-hotkeys';

const recorder = createHotkeyRecorder({
		onRecord: (hotkey) => {
			console.log({
				hotkey,
				recorded: recorder.recordedHotkey,
				formatForDisplay: formatForDisplay(hotkey),
			});
		},
	});

console.log('validateHotkey("Shift+1")', validateHotkey('Shift+1'));
console.log('validateHotkey("Shift+!")', validateHotkey('Shift+!'));
</script>

<button
  onclick={() => {
    recorder.startRecording();
  }}
  >
    Record
  </button>

Your Minimal, Reproducible Example - (Sandbox Highly Recommended)

Screenshots or Videos (Optional)

Gravacao.de.Tela.2026-04-03.as.17.06.27.mov

Do you intend to try to help solve this bug with your own PR?

No, because I do not have time to dig into it

Terms & Code of Conduct

  • I agree to follow this project's Code of Conduct
  • I understand that if my bug cannot be reliable reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions