Skip to content

Releases: daverad/onion-kids-mode

Kids Mode v1.2.0

Choose a tag to compare

@daverad daverad released this 21 Aug 12:22
79a1166

Everything a kid can reach is now locked down: RetroArch's in-game
shortcuts, the blue-light toggle, and your save states. Plus longer play
sessions, screen brightness from the menu, and a PIN you can change on the
device.

Locked down while armed

  • RetroArch's in-game hotkeys are dead — MENU+SELECT (the RetroArch
    menu), MENU+L2/R2 (save/load state), MENU+L/R (rewind, fast-forward),
    MENU+←/→ (save slots), screenshots, cheats, shaders, disc swap and the
    rest. Kiosk mode only ever hid the settings; the menu itself still
    opened. MENU+VOLUME for brightness is untouched — that one is handled
    outside RetroArch. Fixes #4. Prefer stock shortcuts? Set
    "lock_retroarch_hotkeys": false.
  • MENU+B blue-light toggle does nothing while armed (a schedule you
    have configured still runs).
  • The kid gets their own saves: saves, states and romScreens are
    swapped for a persistent Saves/KidsProfile while armed, so a child
    can't overwrite your save states or flood the game switcher with their
    thumbnails. Their progress persists between sessions; yours comes back
    untouched on unlock. Per-core settings and themes stay shared.

Parent menu

  • Longer sessions: the play timer now goes to 120 minutes, up from
    50 — on the arm screen and on Add play time.
  • Brightness straight from the menu, changing as you move the row —
    no confirm — in 10% steps down to 10%.
  • Change PIN on the device — no computer, no SD card reader.
  • Auto-resume last game: boot straight back into what the kid was
    playing instead of the carousel.
  • Coming back from a game reopens the carousel on the game just played,
    not at the start.

Carousel

  • Battery level on the kid screen, drawn exactly as Onion draws it
    everywhere else (icon and level, top right), with the play-time chip
    opposite it.
  • X = RESTART now has a footer hint and icon, so the start-over shortcut
    is visible instead of hidden.
  • Long titles wrap onto a second line instead of being cut off with an
    ellipsis.

Faster

Arming went from ~15 seconds of black screen to about 1.5. Three
things were doing it, none of them what they looked like:

  • The RetroArch lock matched every setting against every line with a
    regex built from a variable, which busybox awk recompiles each time —
    ~133,000 compilations. Matching each line's key once and looking it up
    in a hash: 14s → under 1s. (It also left duplicate keys later in the
    file untouched, and RetroArch honours the last one, so a repeated key
    silently defeated the lock.)
  • Every config read spawned jq. Reads now parse in the shell, with jq
    kept for writes and as a fallback for any file the parser won't touch.
  • The timer state file cost three sed processes per read, and the
    ticker reads it every 10 seconds.

Also

  • README gains a settings table for kidmode.json and an FAQ (including
    netplay — it's driven from the RetroArch menu, which Kids Mode blocks, so
    it isn't available while armed).
  • A kidmode.json with broken JSON is now backed up before being reset,
    so a stray comma doesn't silently lose your settings.

Install

  1. Download KidsMode.zip below
  2. Copy the KidsMode folder into App/ on your SD card (so it becomes
    /App/KidsMode/)
  3. Reboot, then arm from Apps → Kids Mode

Updating from v1.1.0: replace the KidsMode folder — your PIN survives
(it's snapshotted in Saves/kidmode/). The new locks apply the next time
you arm Kids Mode.

Thanks

The hotkey lockout, blue-light guard, save isolation and auto-resume are
@Veuks' work, forwarded by
@andygeorge in #5.

Requires Onion OS 4.3+. Tested on a Miyoo Mini Plus running Onion
4.4-beta; base Mini and Mini V4 are supported in code but less tested —
reports welcome.

Kids Mode v1.1.0

Choose a tag to compare

@daverad daverad released this 17 Jul 03:52
4ecdc44

Kids Mode now looks and feels like part of Onion OS — every screen renders
through Onion's own theme engine — plus smarter timer controls and a
PIN system that can't lock you out.

Highlights

  • Native Onion look: your active theme's background, fonts, and colors
    everywhere — header bar with battery, footer button hints, and an
    Apps-menu-style parent menu with full-width rows
  • Add play time inline: on the parent menu row, ◀ ▶ picks +5…+50 min
    and A applies — with a live preview of what the remaining time becomes
  • Turn off timer: new parent-menu option that removes any running timer
    entirely for unlimited play (until re-armed or time is added again)
  • Auto power-off: if the "Time's up!" screen is left alone for 5 minutes,
    the device shuts down cleanly instead of draining the battery overnight
  • PIN improvements: A confirms (up/down changes a digit, left/right
    moves); a wrong PIN lets you retry on the same screen; and the PIN now
    survives app updates via a snapshot in Saves/kidmode/ — if no PIN exists
    at all, the unlock gesture asks you to set a new one instead of locking
    you out

Install

  1. Download KidsMode.zip below
  2. Copy the KidsMode folder into App/ on your SD card (so it becomes
    /App/KidsMode/)
  3. Reboot, then arm from Apps → Kids Mode

Updating from v1.0.0: replacing the KidsMode folder resets the PIN
once (the update-proof snapshot didn't exist yet). If the device was armed,
hold SELECT+START and you'll be asked to set a new PIN. From v1.1.0
onward, the PIN survives updates.

Requires Onion OS 4.3+. Tested on a Miyoo Mini Plus running Onion
4.4-beta; base Mini and Mini V4 are supported in code but less tested —
reports welcome.

Kids Mode v1.0.0

Choose a tag to compare

@daverad daverad released this 15 Jul 05:11

First release 🎉

A fullscreen, favorites-only launcher that locks a Miyoo Mini / Mini+ running
Onion OS so a young child can use it unsupervised.

Highlights

  • Boots straight into a kid-proof carousel of your ★ favorited games — box art, big labels, A to play
  • Exiting a game returns to the carousel, never to Onion's menus
  • Optional session play timer (5–50 min) with in-game countdown; at zero the game quits gracefully so auto-save keeps the exact spot
  • Parent menu (hold SELECT+START ~3s, then 4-digit PIN): exit Kids Mode or add play time
  • X = start over (with confirmation); MENU in-game saves & exits back to the carousel
  • RetroArch settings kiosk-locked while armed; everything restored on unlock
  • Survives reboots; fully recoverable from a computer (see README)

Install

  1. Download KidsMode.zip below
  2. Copy the KidsMode folder into App/ on your SD card (so it becomes /App/KidsMode/)
  3. Reboot, then arm from Apps → Kids Mode

Requires Onion OS 4.3+. Tested on a Miyoo Mini Plus running Onion 4.4-beta;
base Mini and Mini V4 are supported in code but less tested — reports welcome.