# Sample shepherdd configuration # This file defines the policy for what applications can run and when config_version = 1 [service] # Uncomment to customize paths # socket_path = "/run/shepherdd/shepherdd.sock" # log_dir = "/var/log/shepherdd" # data_dir = "/var/lib/shepherdd" # Default max run duration if not specified per entry (1 hour) # Set to 0 for unlimited (no time limit) default_max_run_seconds = 3600 # Global volume restrictions (optional) # These apply when no entry-specific restrictions are defined [service.volume] max_volume = 80 # Maximum volume percentage (0-100) # min_volume = 20 # Minimum volume percentage (0-100) allow_mute = true # Whether mute toggle is allowed allow_change = true # Whether volume changes are allowed at all # Default warning thresholds [[service.default_warnings]] seconds_before = 300 severity = "info" message = "5 minutes remaining" [[service.default_warnings]] seconds_before = 60 severity = "warn" message = "1 minute remaining!" [[service.default_warnings]] seconds_before = 10 severity = "critical" message = "10 seconds remaining!" # ----------------------------------------------------------------------------- # Entries # ----------------------------------------------------------------------------- ## === Native Linux executables === # Tux Math - math games # Ubuntu: sudo apt install tuxmath [[entries]] id = "tuxmath" label = "Tux Math" icon = "tuxmath" [entries.kind] type = "process" command = "tuxmath" [entries.availability] [[entries.availability.windows]] days = "weekdays" start = "15:00" end = "18:00" [[entries.availability.windows]] days = "weekends" start = "10:00" end = "20:00" # Putt Putt Joins the Circus via 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. # 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). # https://store.steampowered.com/app/294690/PuttPutt_Joins_the_Circus/ [[entries]] id = "scummvm-putt-putt" label = "Putt Putt Joins the Circus" icon = "scummvm" [entries.kind] type = "process" command = "scummvm" args = ["puttcircus-win-us"] # ScummVM game ID for Putt Putt Joins the Circus [entries.availability] [[entries.availability.windows]] days = "weekdays" start = "15:00" end = "18:00" [[entries.availability.windows]] days = "weekends" start = "10:00" end = "20:00" # Secret of Monkey Island via ScummVM # Like above, but with the following caveats: # * 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. # * 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. # * See https://www.gratissaugen.de/ultimatetalkies/ for how to do this. [[entries]] id = "scummvm-monkey-island" label = "Secret of Monkey Island" icon = "scummvm" [entries.kind] type = "process" command = "scummvm" args = ["monkey"] # ScummVM game ID for Secret of Monkey Island [entries.availability] [[entries.availability.windows]] days = "weekdays" start = "15:00" end = "18:00" [[entries.availability.windows]] days = "weekends" start = "10:00" end = "20:00" [entries.limits] # Set max_run_seconds or daily_quota_seconds to 0 for unlimited max_run_seconds = 3600 # 1 hour max (0 = unlimited) daily_quota_seconds = 7200 # 2 hours per day (0 = unlimited) cooldown_seconds = 300 # 5 minute cooldown after each session ## === Snap-based applications === # Snap entries use the "snap" type for proper process management. # GCompris - educational games suite # Ubuntu: sudo snap install gcompris [[entries]] id = "gcompris" label = "GCompris" icon = "gcompris" [entries.kind] type = "snap" snap_name = "gcompris" [entries.availability] [[entries.availability.windows]] days = "weekdays" start = "15:00" end = "18:00" [[entries.availability.windows]] days = "weekends" start = "10:00" end = "20:00" [entries.limits] max_run_seconds = 0 # Unlimited daily_quota_seconds = 0 # Unlimited cooldown_seconds = 0 # No cooldown # Minecraft via mc-installer snap # Ubuntu: sudo snap install mc-installer [[entries]] id = "minecraft" label = "Minecraft" icon = "minecraft" [entries.kind] type = "snap" snap_name = "mc-installer" [entries.availability] [[entries.availability.windows]] days = "weekdays" start = "15:00" end = "18:00" [[entries.availability.windows]] days = "weekends" start = "10:00" end = "20:00" [entries.limits] max_run_seconds = 1800 # 30 minutes (roughly 3 in-game days) daily_quota_seconds = 3600 # 1 hour per day cooldown_seconds = 600 # 10 minute cooldown [[entries.warnings]] seconds_before = 600 severity = "info" message = "10 minutes left - start wrapping up!" [[entries.warnings]] seconds_before = 120 severity = "warn" message = "2 minutes remaining - save your game!" [[entries.warnings]] seconds_before = 30 severity = "critical" message = "30 seconds! Save NOW!" # Entry-specific volume restrictions (overrides global) [entries.volume] max_volume = 60 # Limit volume during gaming sessions ## === Steam games === # Steam can be used via Canonical's Steam snap package: # https://snapcraft.io/steam # Install it with: sudo snap install steam # Steam must be set up and logged in before using these entries. # You must have the games installed in your Steam library. # Human Resource Machine # https://store.steampowered.com/app/375820/Human_Resource_Machine [[entries]] id = "steam-human-resource-machine" label = "Human Resource Machine" icon = "steam" [entries.kind] type = "snap" snap_name = "steam" args = ["steam://rungameid/375820"] # 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" # No [entries.limits] section - uses service defaults # Omitting limits entirely uses default_max_run_seconds ## === Media === # Just use `mpv` to play media (for now). # Files can be local on your system or URLs (YouTube, etc). # "lofi hip hop radio 📚 beats to relax/study to" streamed live from YouTube # This should eventually be replaced with the media type. [[entries]] id = "lofi-beats" label = "Lofi Beats" icon = "mpv" [entries.kind] type = "process" command = "mpv" args = ["https://www.youtube.com/watch?v=jfKfPfyJRdk"] [entries.availability] always = true [entries.limits] max_run_seconds = 0 # Unlimited: sleep/study aid daily_quota_seconds = 0 # Unlimited cooldown_seconds = 0 # No cooldown # Example: Disabled entry [[entries]] id = "disabled-game" label = "Game Under Maintenance" disabled = true disabled_reason = "This game is being updated" [entries.kind] type = "process" command = "/bin/false"