diff --git a/README.md b/README.md index 2edfe33..d162e45 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ 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 access controls similar to iOS Screen Time +* 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 (or not use) them or write your own. +(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 @@ -20,8 +20,8 @@ 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, Waydroid) -* externally managed ChromeOS Flex for access to school resources +* 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 @@ -31,15 +31,45 @@ TODO: tl;dr: 1. any Linux with Wayland (optional: TPM-based FDE plus BIOS password to prevent tampering) -2. Sway + config -3. binaries (TODO: deployable package that depends on Sway and installs the config) -4. test session on login -5. configure auto-login to this session +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 +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.