Child-friendly, parent-guided Wayland desktop environment alternative that puts parents, not platforms, in control
Find a file
2025-12-26 20:01:22 -05:00
crates WIP: Launcher UI 2025-12-26 20:01:22 -05:00
.gitignore Rust hello world 2025-12-21 23:52:28 -05:00
Cargo.lock WIP: Launcher UI 2025-12-26 20:01:22 -05:00
Cargo.toml WIP: Launcher UI 2025-12-26 20:01:22 -05:00
config.example.toml (Hopefully) productionized shepherdd 2025-12-26 15:35:27 -05:00
LICENSE.md Design goals README 2025-12-21 23:52:15 -05:00
README.md Update README 2025-12-22 23:50:42 -05:00
run-dev run-dev should only run if build succeeded 2025-12-25 15:02:39 -05:00
sway.conf Add development run script 2025-12-22 23:50:34 -05:00

shepherd-launcher

A child-friendly, parent-guided launcher for Wayland, allowing supervised access to applications and content that you define.

Its primary goal is to return control of child-focused computing to parents, not software or hardware vendors, by providing:

  • the ease-of-use of game consoles
  • access to any application that can be run, emulated, or virtualized in desktop Linux
  • with granular access controls inspired by and exceeding those in iOS Screen Time

While this repository provides some recipes for existing software packages (including non-free software), shepherd-launcher is non-prescriptive: as the end user, you are free to use them, not use them, or write your own.

Screenshots

TODO:

  • home screen at different times showing different applications
  • modern proprietary application showcase (Minecraft, individual Steam games)
  • emulated application showcase (ScummVM games, 90s edutainment on Win9x, Duolingo via Waydroid)
  • externally managed Chrome container for access to school resources
  • media showcase (local storage and individual titles from streaming services)
  • time limit popup
  • "token" system

Installation

tl;dr:

  1. any Linux with Wayland (optional: TPM-based FDE plus BIOS password to prevent tampering)
  2. System dependencies (Ubuntu: apt install curl sway swayidle pkg-config libcairo2-dev libxkbcommon-dev)
  3. Rust (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)
  4. binaries (TODO: deployable package that depends on Sway and installs the config)
  5. test session on login
  6. configure auto-login to this session

Usage

TODO: open lid; play

Core concepts

  • Launcher-first: only one foreground activity at a time
  • Time-scoped execution: applications are granted time slices, not unlimited sessions
  • Parent-defined policy: rules live outside the application being run
  • Wrappers, not patches: existing software is sandboxed, not modified
  • Revocable access: sessions end predictably and enforceably

Recipes

TODO

  • .desktop syntax plus rules (time allowance, time-of-day restrictions, network whitelist, etc.)
  • wrappers for common applications
  • how to write a custom wrapper or custom application

Development

TODO: ./run-dev, options

Contributing

shepherd-launcher is licensed under the GPLv3 to preserve end-users' rights. By submitting a pull request, you agree to license your contributions under the GPLv3.

Contributions written in part or in whole by generative AI are allowed; however, they will be reviewed as if you personally authored them.

The authors of shepherd-launcher do not condone software or media piracy. Contributions that explicitly promote or facilitate piracy will be rejected. Please support developers and creators by obtaining content legally.