Update README and example config for discoverability
This commit is contained in:
parent
a17fb5104d
commit
b3144e213d
2 changed files with 77 additions and 13 deletions
27
README.md
27
README.md
|
|
@ -19,23 +19,33 @@ or write your own.
|
||||||
|
|
||||||
### Home screen
|
### Home screen
|
||||||
|
|
||||||
|
Activities can be made selectively available at certain times of day.
|
||||||
|
|
||||||
TODO: home screen at different times (bedtime vs afternoon) showing different applications
|
TODO: home screen at different times (bedtime vs afternoon) showing different applications
|
||||||
|
|
||||||
### Time limits
|
### Time limits
|
||||||
|
|
||||||
|
Activities can have configurable time limits, including:
|
||||||
|
* individual session length
|
||||||
|
* total usage per day
|
||||||
|
* cooldown periods before that particular activity can be restarted
|
||||||
|
|
||||||
TODO: GIF or video of GCompris a few seconds from closing, emphasizing:
|
TODO: GIF or video of GCompris a few seconds from closing, emphasizing:
|
||||||
* Countdown clock
|
* Countdown clock
|
||||||
* Warning messaging
|
* Warning messaging
|
||||||
* Automatic close at end of time
|
* Automatic close at end of time
|
||||||
* Icon deliberately missing afterwards -- cooldown
|
* Icon deliberately missing afterwards -- cooldown
|
||||||
|
|
||||||
### "access to any application that can be run, emulated, or virtualized"
|
### Anything on Linux
|
||||||
|
|
||||||
|
If it can run on Linux in *any way, shape, or form*, it can be supervised by
|
||||||
|
`shepherd-launcher`.
|
||||||
|
|
||||||
TODO: show the following running with some subset of the above features highlighted:
|
TODO: show the following running with some subset of the above features highlighted:
|
||||||
* Minecraft
|
* Media (Big Buck Bunny locally, YouTube via `mpv`)
|
||||||
* Steam games (World of Goo, Portal 2)
|
|
||||||
* ScummVM games (Putt Putt, Secret of Monkey Island)
|
* ScummVM games (Putt Putt, Secret of Monkey Island)
|
||||||
* Media
|
* Minecraft
|
||||||
|
* Steam games (Celeste, A Short Hike)
|
||||||
|
|
||||||
Contributions are welcome for improvements and not yet implemented backends,
|
Contributions are welcome for improvements and not yet implemented backends,
|
||||||
such as:
|
such as:
|
||||||
|
|
@ -44,6 +54,13 @@ such as:
|
||||||
* Android apps via Waydroid, including pre-booting Android if necessary [TODO: link to issue]
|
* Android apps via Waydroid, including pre-booting Android if necessary [TODO: link to issue]
|
||||||
* Legacy Win9x via DOSBox, QEMU, or PCem, including scripts to create a boot-to-app image [TODO: link to issue]
|
* Legacy Win9x via DOSBox, QEMU, or PCem, including scripts to create a boot-to-app image [TODO: link to issue]
|
||||||
* Chrome, including strict sandboxing and support for firewall rules [TODO: link to issue]
|
* Chrome, including strict sandboxing and support for firewall rules [TODO: link to issue]
|
||||||
|
* Awareness of whether an Internet connection is available, and an availability
|
||||||
|
rule that gates activities based on this [TODO: link to issue]
|
||||||
|
* Porting to other *host* platforms, such as a Microsoft Windows shell
|
||||||
|
replacement or macOS kiosk via MDM. `shepherd-launcher` is architected such
|
||||||
|
that `shepherdd`, the core enforcement service, does not render any UI and
|
||||||
|
performs platform-specific functions like process management in
|
||||||
|
platform-specific crates.
|
||||||
|
|
||||||
## Core concepts
|
## Core concepts
|
||||||
|
|
||||||
|
|
@ -136,4 +153,4 @@ compatibility infrastructure:
|
||||||
|
|
||||||
This project was written with the assistance of generative AI-based coding
|
This project was written with the assistance of generative AI-based coding
|
||||||
agents. Substantial prompts and design docs provided to agents are disclosed in
|
agents. Substantial prompts and design docs provided to agents are disclosed in
|
||||||
[docs/ai](./docs/ai/)
|
[docs/ai](./docs/ai/).
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ end = "20:00"
|
||||||
# This requires ScummVM to be installed (Ubuntu: `sudo apt install scummvm`).
|
# This requires ScummVM to be installed (Ubuntu: `sudo apt install scummvm`).
|
||||||
# You must install the game files from your copy of the game into ScummVM first.
|
# You must install the game files from your copy of the game into ScummVM first.
|
||||||
# See https://docs.scummvm.org/en/v2.9.1/use_scummvm/game_files.html for how to do this.
|
# See https://docs.scummvm.org/en/v2.9.1/use_scummvm/game_files.html for how to do this.
|
||||||
# If you do not have the game files, you can run via Steam instead (see below).
|
# If you do not have the game files, you can purchase and run via Steam instead (see below).
|
||||||
# https://store.steampowered.com/app/294690/PuttPutt_Joins_the_Circus/
|
# https://store.steampowered.com/app/294690/PuttPutt_Joins_the_Circus/
|
||||||
[[entries]]
|
[[entries]]
|
||||||
id = "scummvm-putt-putt"
|
id = "scummvm-putt-putt"
|
||||||
|
|
@ -95,7 +95,7 @@ end = "20:00"
|
||||||
# Secret of Monkey Island via ScummVM
|
# Secret of Monkey Island via ScummVM
|
||||||
# Like above, but with the following caveats:
|
# Like above, but with the following caveats:
|
||||||
# * I have only tested this with the original CD-ROM version of the game.
|
# * I have only tested this with the original CD-ROM version of the game.
|
||||||
# * The GOG version at https://www.gog.com/en/game/the_secret_of_monkey_island_special_edition uses a different engine.
|
# * The GOG version available for purchase at https://www.gog.com/en/game/the_secret_of_monkey_island_special_edition uses a different engine.
|
||||||
# * It does *not* contain ScummVM-compatible data files, so this entry will not work with that version.
|
# * It does *not* contain ScummVM-compatible data files, so this entry will not work with that version.
|
||||||
# * It may be possible to extract compatible files from the GOG installer or run it via WINE, but that is outside the scope of this example.
|
# * It may be possible to extract compatible files from the GOG installer or run it via WINE, but that is outside the scope of this example.
|
||||||
# * See https://www.gratissaugen.de/ultimatetalkies/ for how to do this.
|
# * See https://www.gratissaugen.de/ultimatetalkies/ for how to do this.
|
||||||
|
|
@ -209,17 +209,17 @@ max_volume = 60 # Limit volume during gaming sessions
|
||||||
# Steam must be set up and logged in before using these entries.
|
# Steam must be set up and logged in before using these entries.
|
||||||
# You must have the games installed in your Steam library.
|
# You must have the games installed in your Steam library.
|
||||||
|
|
||||||
# Human Resource Machine
|
# Celeste via Steam
|
||||||
# https://store.steampowered.com/app/375820/Human_Resource_Machine
|
# https://store.steampowered.com/app/504230/Celeste
|
||||||
[[entries]]
|
[[entries]]
|
||||||
id = "steam-human-resource-machine"
|
id = "steam-celeste"
|
||||||
label = "Human Resource Machine"
|
label = "Celeste"
|
||||||
icon = "steam"
|
icon = "~/Games/Icons/Celeste.png"
|
||||||
|
|
||||||
[entries.kind]
|
[entries.kind]
|
||||||
type = "snap"
|
type = "snap"
|
||||||
snap_name = "steam"
|
snap_name = "steam"
|
||||||
args = ["steam://rungameid/375820"] # Steam App ID (passed to 'snap run steam')
|
args = ["steam://rungameid/504230"] # Steam App ID (passed to 'snap run steam')
|
||||||
|
|
||||||
[entries.availability]
|
[entries.availability]
|
||||||
[[entries.availability.windows]]
|
[[entries.availability.windows]]
|
||||||
|
|
@ -235,10 +235,57 @@ end = "20:00"
|
||||||
# No [entries.limits] section - uses service defaults
|
# No [entries.limits] section - uses service defaults
|
||||||
# Omitting limits entirely uses default_max_run_seconds
|
# Omitting limits entirely uses default_max_run_seconds
|
||||||
|
|
||||||
|
# A Short Hike via Steam
|
||||||
|
# https://store.steampowered.com/app/1055540/A_Short_Hike/
|
||||||
|
[[entries]]
|
||||||
|
id = "steam-a-short-hike"
|
||||||
|
label = "A Short Hike"
|
||||||
|
icon = "~/Games/Icons/A_Short_Hike.png"
|
||||||
|
|
||||||
|
[entries.kind]
|
||||||
|
type = "snap"
|
||||||
|
snap_name = "steam"
|
||||||
|
args = ["steam://rungameid/1055540"] # Steam App ID (passed to 'snap run steam')
|
||||||
|
|
||||||
|
[entries.availability]
|
||||||
|
[[entries.availability.windows]]
|
||||||
|
days = "weekdays"
|
||||||
|
start = "15:00"
|
||||||
|
end = "18:00"
|
||||||
|
|
||||||
|
[[entries.availability.windows]]
|
||||||
|
days = "weekends"
|
||||||
|
start = "10:00"
|
||||||
|
end = "20:00"
|
||||||
|
|
||||||
## === Media ===
|
## === Media ===
|
||||||
# Just use `mpv` to play media (for now).
|
# Just use `mpv` to play media (for now).
|
||||||
# Files can be local on your system or URLs (YouTube, etc).
|
# Files can be local on your system or URLs (YouTube, etc).
|
||||||
|
|
||||||
|
# "Big Buck Bunny" saved on local disk
|
||||||
|
# Available for free as CC BY 3.0 at https://peach.blender.org/download/
|
||||||
|
[[entries]]
|
||||||
|
id = "big-buck-bunny"
|
||||||
|
label = "Big Buck Bunny"
|
||||||
|
icon = "mpv"
|
||||||
|
|
||||||
|
[entries.kind]
|
||||||
|
type = "process" # TODO: change to "media" type once supported
|
||||||
|
command = "mpv"
|
||||||
|
args = ["~/Videos/big_buck_bunny_720p_h264.mov"] # Local file path
|
||||||
|
|
||||||
|
[entries.availability]
|
||||||
|
|
||||||
|
[[entries.availability.windows]]
|
||||||
|
days = "weekdays"
|
||||||
|
start = "15:00"
|
||||||
|
end = "18:00"
|
||||||
|
|
||||||
|
[[entries.availability.windows]]
|
||||||
|
days = "weekends"
|
||||||
|
start = "10:00"
|
||||||
|
end = "20:00"
|
||||||
|
|
||||||
# "lofi hip hop radio 📚 beats to relax/study to" streamed live from YouTube
|
# "lofi hip hop radio 📚 beats to relax/study to" streamed live from YouTube
|
||||||
[[entries]]
|
[[entries]]
|
||||||
id = "lofi-beats"
|
id = "lofi-beats"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue