Files
RedBear-OS/local/recipes/system/redbear-accessibility
vasilito 7b8a1b2838 release: open 0.3.2 and sync Cat 1/Cat 2 version labels
New release branch per the release-branch model (operator decision;
local/AGENTS.md reserves branch creation to the operator).

sync-versions.sh, driven by bump-release.sh, rewrites:
  - Cat 1 in-house crates  -> version = 0.3.2
  - Cat 2 upstream forks   -> <upstream-tag>+rb0.3.2

Labels only; no fork source was rebased in this commit. bump-release.sh
reports these forks as having newer upstream tags, to be taken next:
  relibc   0.2.5  -> 0.6.0
  syscall  0.9.0  -> 0.9.1
  libredox 0.1.18 -> 0.1.19
redoxfs and redox-scheme are already current. kernel, bootloader and
installer are 'diverged' in the fork map and stay report-only (manual
rebase); bootloader additionally has no merge-base with upstream.
2026-08-03 11:04:40 +03:00
..

redbear-accessibility

Accessibility scheme daemon — sticky keys, slow keys, bounce keys, and keyboard repeat control.

Status: FEATURE-INCOMPLETE Category: system Build: ./local/scripts/build-redbear.sh redbear-full (via redbear-full.toml)

Purpose

Provides accessibility features traditionally found in desktop environments (XKB AccessX / GNOME a11y settings), implemented as a Redox userspace scheme daemon. It filters keyboard input events through configurable rules — sticky modifier keys, key debouncing, slow-key acceptance windows, and repeat-rate controls — before the filtered events reach the application.

Interface

  • Scheme: accessibility — path convention: accessibility:/config, accessibility:/status, accessibility:/sticky-keys
  • Init service: /usr/lib/init.d/13_redbear-accessibility.service
  • Configuration: Read/write via the scheme file accessibility:/config (key=value lines: sticky_keys=true, slow_key_delay_ms=300, etc.)

Architecture

File Purpose
src/main.rs Daemon entry point — creates Socket, registers scheme:accessibility, runs event loop
src/scheme.rs AccessibilityScheme — implements SchemeSync with openat/read/write/fstat; owns filter_key() logic + sticky modifier state machine

Dependencies: redox-scheme, redox_syscall (path deps to local forks).

Consumers

  • evdevd (potential integration point for real-time key filtering)
  • Desktop compositors that read accessibility state for on-screen indicators
  • The init service 10_evdevd.service is listed as requires_weak, making this daemon available after the input event layer is up

Status Notes

  • Compiles against the current relibc/kernel forks.
  • Scheme interface is implementedopen, read, write, fstat all wired.
  • Filtering state machine (sticky keys latch/lock cycle, bounce key rejection, slow key timing) is present but not yet integrated into the input pipeline — the scheme currently serves its config/status as a filesystem-like view without actively intercepting evdev events.
  • No runtime validation on bare metal or QEMU. The filter_key() method exists but has no upstream caller in the input path.
  • No compositor/indicator integration — sticky modifier states are queryable via the scheme but no UI feedback loop exists yet.