Skip to content

Releases: TaiKeid/steam-frame-full-keyboard

0.8.2: Reduce background CPU wake-ups while Full Keyboard stays resident

Choose a tag to compare

@TaiKeid TaiKeid released this 20 Oct 02:03
  • With Replace native keyboard enabled and no keyboard open, the native recovery guard checks for events every 250 ms instead of every 25 ms. The replacement helper no longer contacts it on every frame unless a local-app request needs recovery.
  • With native replacement disabled, the internal safety thread no longer wakes up periodically.
  • Native keyboard recovery, request deadlines and Steam-side polling are unchanged. Battery-life impact has not been measured.

0.8.1: Update handoff fix

Choose a tag to compare

@TaiKeid TaiKeid released this 19 Oct 14:22
  • Fixed in-app update shutdown reopening Steam's native keyboard. The old typing session and queued input now end before the updated keyboard starts, while Quit and failure recovery still restore native.
  • Kept background replacement updates hidden until a fresh keyboard request, even if Start with SteamOS was disabled during the session. Manual updates and updates with replacement disabled still show the panel normally.

When updating from 0.7.0 or 0.8.0, Steam's native keyboard may still open once because the old version handles its own shutdown. Dismiss it; the next keyboard request can open Full Keyboard.

0.8.0: Typing reliability and Steam dashboard fixes

Choose a tag to compare

@TaiKeid TaiKeid released this 19 Oct 07:22
  • Added an ordered output queue so rapid two-controller typing, Backspace and arrow keys keep their press order while delivery is pending. Hiding, dismissal, target changes and native handoff discard old queued input and ignore late results.
  • Made local-app text delivery asynchronous so a slow compositor does not block the keyboard. Input connections recover in the background without replaying old keys or text. Bundled the fixed libei 1.6.0 client to prevent crashes during interrupted input negotiation, without changing system libraries.
  • Fixed Steam search typing reaching a local app behind the dashboard. Text stays bound to the selected Steam field, follows switches between supported Steam and local-app targets, and stops when the field loses focus or disappears.
  • Improved native keyboard handoff and cleanup when owners change, the helper fails, or Steam's UI stalls. Abandoned installation attempts are cleaned up, native restoration is checked, and repeated failures use bounded retries.
  • Fixed the first keyboard request after background startup and SteamVR session restart, and restored replacement readiness after headset sleep or tracking loss without requiring an app relaunch.
  • Fixed Escape dismissal in Steam fields and dashboard sessions. Releasing a queued Backspace repeat now completes its delivery without another deletion, preventing a missing acknowledgement from forcing native fallback.
  • Removed the routine pending-text notice that flashed during typing. Reduced bridge polling and inspection work while idle, retaining independent recovery checks and bounded diagnostics that never include typed text.
  • Preserved saved profile selections when startup temporarily falls back to another supported profile. Missing or incompatible profiles now produce a useful fallback reason, and custom key IDs no longer collide with toolbar controls.
  • Fixed Japanese Romaji input depending on cosmetic key labels instead of resolved key symbols, and stopped idle Space from incorrectly starting composition.
  • Made Reload wait for pending settings work while the VR loop stays responsive. Unrelated preference changes can still save when startup configuration fails, and storage errors remain visible.
  • Manual reinstalls and downgrades now use fresh release directories. Replacement removes only the old marked production release after successful activation, or startup confirmation for in-app updates, while preserving settings and unmarked development releases.
  • Refactored VR lifecycle coordination and expanded requirements-based tests for routing, queued cancellation, dismissal, native fallback, recovery and controller ownership.

Install and update

Download framekeyboard-0.8.0-aarch64.tar.gz and SHA256SUMS, then follow the installation and recovery instructions. Existing installations can check for this release from Settings after publication.

Full Keyboard serves the Frame dashboard and local apps. Experimental Steam keyboard replacement remains optional; see its coverage and limitations.

The real in-app upgrade from a previous published release remains a post-publication acceptance check.

0.7.0: Full Keyboard for Steam Frame 0.7.0 adds laser movement, native keyboard replacement, background startup and updates from Settings.

Choose a tag to compare

@TaiKeid TaiKeid released this 18 Oct 00:41

Full Keyboard for Steam Frame 0.7.0 adds laser movement, native keyboard replacement, background startup and updates from Settings.

  • Added a movement line below the keyboard with native-style colors and hover feedback. Hold it with the controller laser or AUX head cursor to move the keyboard; the same controller's thumbstick adjusts distance.
  • Renamed Appearance to General and added Use Drag to Move to select grip movement instead of the default laser line. Pinning blocks both movement methods and hides the line.
  • Added Auto leveling in General, enabled by default, to level small sideways tilts after releasing movement. Aligned the General checkboxes with their labels on the right.
  • Added experimental Replace native keyboard for supported dashboard, Steam-field and local-app requests. It is off by default and requires Steam Developer Mode with an available local debugger connection. Independent recovery restores the native keyboard when Full Keyboard becomes unavailable or stops progressing.
  • In replacement mode, × dismisses the panel while the app stays ready for the next request. Quit Full Keyboard appears in Settings, and Use Steam keyboard returns the current request to Steam.
  • Added optional Start with SteamOS, available only with replacement enabled. It starts the keyboard and recovery helpers in the background without showing the panel, ready for native keyboard requests. Startup after a device reboot has been manually verified.
  • Added Check for updates at the top of Settings. Checks run only when requested, report the latest-version result briefly, and keep a newer release available to download and install until the app exits.
  • Updates verify release checksums, archive contents, ARM64 architecture, version and profiles before installation. They restart the keyboard, preserve settings and startup preferences, and roll back if the new app fails to complete its startup checks. Failures show a short reason and retain normal logging.
  • Improved service recovery across SteamVR restarts and update handoffs. Saved startup preferences and owned service files stay consistent on Apply, Reload and launch, including after upgrades. Deliberate Quit pauses service restart, while ordinary manual launches retain successful exit codes.
  • Improved movement release detection, cancellation of native key repeats, and recovery from stalled or signal-stopped keyboard processes, with bounded allowances for slow work and SteamVR waits.

Installation

Download framekeyboard-0.7.0-aarch64.tar.gz and SHA256SUMS from the assets below, then follow the installation instructions. Existing 0.6.0 release users should install this update manually; 0.7.0 adds the in-app updater for later releases.

Native replacement is experimental, off by default, and requires Steam Developer Mode. This keyboard supports the Frame dashboard and local apps, with no input to streamed VR applications.

0.6.0: Settings and keyboard preferences

Choose a tag to compare

@TaiKeid TaiKeid released this 06 Oct 18:46
  • Rebuilt Settings with scrollable cards and dropdowns for layout, language, and theme.
  • Added favorite layout/language combinations and a toolbar button to cycle them.
  • Added a persistent pin to prevent accidental dragging while retaining dashboard following.
  • Added persistent Num Lock and a global Hide numpad preference.
  • Improved favorite switching and settings-save responsiveness.
  • Fixed keypad lock synchronization, compact toolbar overlap, and dropdown scrolling.
  • Added British English layout and language support, contributed by @cr0ss0vr.

Full Keyboard supports the Steam Frame dashboard and local apps. It does not replace the stock keyboard or send input to streamed VR applications.

Installation and controls
Full changelog

0.5.0: Full Keyboard for Steam Frame

Choose a tag to compare

@TaiKeid TaiKeid released this 29 Sep 18:49

First public release of Full Keyboard for Steam Frame.

A standalone alternative to the built-in keyboard, with arrow keys,
numpad, Ctrl/Alt/Super, dedicated Copy/Paste buttons, configurable
layouts and themes, and multilingual input.

Designed for the Steam Frame dashboard and local apps.
It does not replace the system keyboard or support streamed VR apps.

Download framekeyboard-0.5.0-aarch64.tar.gz and SHA256SUMS below,
then follow the README installation instructions.

This is an early release; feedback and bug reports are welcome.