2.9 KiB
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:
- any Linux with Wayland (optional: TPM-based FDE plus BIOS password to prevent tampering)
- System dependencies:
- Ubuntu/Debian:
apt install build-essential pkg-config libglib2.0-dev libgtk-4-dev libcairo2-dev libpango1.0-dev libgdk-pixbuf-xlib-2.0-dev libwayland-dev libx11-dev libxkbcommon-dev libgirepository1.0-dev libgtk4-layer-shell-dev librust-gtk4-layer-shell-sys-dev sway swayidle
- Ubuntu/Debian:
- Rust (
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) - binaries (TODO: deployable package that depends on Sway and installs the config)
- test session on login
- 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
.desktopsyntax 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.