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

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.

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

Requirements

  • Qt4.6

Predicates

  • location (position, allowed radius, accurazy, 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.

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)

User interface

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