Shepherd

This page contains all the input for a tool called "Shepherd". Please feel free to add suggestions an content. There is a thread containing much more information which could be added here.

Contents

[edit] Google Summer of Code Project

Shepherd was chosen as one of the 10 Maemo-related project's for GSoC. More information are available on the GSoC-page.

[edit] Technical background

  • Small, daemon style Qt based C++ core
  • Separate GUI interface for configuration
  • Modular, plugin based approach for triggers and actions
  • Plugins can be written in C++, Python or external scripts

[edit] Requirements

  • Qt4.6

[edit] Predicates

  • location (position, allowed radius, accuracy, speed)
  • time of day / day of week (cron style or whatever)
  • time interval
  • internet connection (cell connection vs wifi--including ESSID)
  • Connected Bluetooth devices
  • battery level

And of course a mix out of more than one predicate. There should be a kind of grammar which allows to use operators like AND/OR/NOT. There also should be a possibility to priorize the rules.

[edit] Actions

  • run an app (determine if it's running--if not, start it up)
  • close an app
  • set profile (ringer, volume, etc)
  • toggle FM transmitter
  • run general script, which can totally open up opportunities
  • Start or Stop Instant Messaging services, Skype or VoIP-Services
  • Switch status of IM Accounts
  • Get emails for specific accounts
  • Trigger sharing services (e.g. Upload new photos to flickr)
  • Do software upgrades in background
  • Syncronize (e.g. Syncevolution)

[edit] User interface

  • Feel free to define a graphical user interface for functions defined above