diff -Nru wakeup-1.1/data/scripts/setalarm wakeup-1.2/data/scripts/setalarm --- wakeup-1.1/data/scripts/setalarm 2011-05-19 00:00:26.000000000 +0200 +++ wakeup-1.2/data/scripts/setalarm 2011-12-27 23:22:26.000000000 +0100 @@ -114,7 +114,7 @@ fi crontab_time=`date -d @$wake_time "+%M %H %d %m %w"` # add to temporary cron file - echo "$crontab_time DISPLAY=:0 $wakeup_script >/dev/null 2>&1 #entered by setalarm" >> $tmpfile + echo "$crontab_time $wakeup_script >/dev/null 2>&1 #entered by setalarm" >> $tmpfile # for recurrent alarms elif [[ $1 == "-c" ]]; then @@ -183,10 +183,10 @@ fi # add cron for setlarm that runs wtih the $wakeup_script and @reboot - echo "$2 $3 $4 $5 $6 DISPLAY=:0 $0 ${*/\*/\"*\"} >/dev/null 2>&1" >> $tmpfile - echo "@reboot DISPLAY=:0 $0 ${*/\*/\"*\"} >/dev/null 2>&1" >> $tmpfile + echo "$2 $3 $4 $5 $6 $0 ${*/\*/\"*\"} >/dev/null 2>&1" >> $tmpfile + echo "@reboot $0 ${*/\*/\"*\"} >/dev/null 2>&1" >> $tmpfile # add the cron-recurrent wakeup alarm to temporary cron file - echo "$2 $3 $4 $5 $6 DISPLAY=:0 $wakeup_script >/dev/null 2>&1 #entered by setalarm" >> $tmpfile + echo "$2 $3 $4 $5 $6 $wakeup_script >/dev/null 2>&1 #entered by setalarm" >> $tmpfile # for non-recurring alarms else @@ -202,7 +202,7 @@ # format $wakeup_time in crontab format. crontab_time=`date -d @$wake_time "+%M %H %d %m %w"` # add to temporary cron file - echo "$crontab_time DISPLAY=:0 $wakeup_script >/dev/null 2>&1 #entered by setalarm" >> $tmpfile + echo "$crontab_time $wakeup_script >/dev/null 2>&1 #entered by setalarm" >> $tmpfile fi # Actually set alarm and crontab # diff -Nru wakeup-1.1/data/scripts/wakeup wakeup-1.2/data/scripts/wakeup --- wakeup-1.1/data/scripts/wakeup 2011-09-23 21:29:53.000000000 +0200 +++ wakeup-1.2/data/scripts/wakeup 2011-12-28 00:17:06.000000000 +0100 @@ -44,7 +44,8 @@ # allow the user to end it all while [ ! ]; do - if [[ "$(who | grep -o -m 1 $usr)" == $usr ]]; then + eval export $(grep --text -oP "DISPLAY=:[0-9\.]*" /proc/$(pgrep -n gnome-session)/environ) + if [[ $DISPLAY != "" ]]; then sleep 2 eval "snooze=$($dosudo /usr/share/wakeup/stopalarm.py)" if [[ $snooze == 0 ]]; then @@ -61,7 +62,7 @@ tmpfile=/tmp/wake eval "$dosudo crontab -l >$tmpfile" snoozetime=$(date -d "+$snooze min" "+%M %H %d %m %w") - echo "$snoozetime DISPLAY=:0 /usr/bin/wakeup $1 $2 >/dev/null 2>&1"\ + echo "$snoozetime /usr/bin/wakeup $1 $2 >/dev/null 2>&1"\ "#entered by setnextalarm" >>$tmpfile eval "$dosudo crontab $tmpfile; rm $tmpfile" stop @@ -74,7 +75,7 @@ # play the alarm export DBUS_SESSION_BUS_ADDRESS PATH filename="$home/.wakeup/alarm$2/playable_text" -if [[ $2 == "test" ]]; then filename="$home/.wakeup/playable_tmp"; fi +if [[ $3 == "test" ]]; then filename="$home/.wakeup/playable_tmp"; fi chmod +x $filename echo "About to play the text..." $filename $usr diff -Nru wakeup-1.1/data/scripts/wakeup-settings wakeup-1.2/data/scripts/wakeup-settings --- wakeup-1.1/data/scripts/wakeup-settings 2011-05-23 21:27:21.000000000 +0200 +++ wakeup-1.2/data/scripts/wakeup-settings 2011-12-27 21:13:58.000000000 +0100 @@ -345,7 +345,7 @@ alarm = self.alarms[self.currentalarm] folder = re.search("alarm\d+", self.alarmfolders[self.currentalarm]).group(0) alarm.save_playfile(tmpPlayfile, folder, True, self.plugins) - os.system(wakeup_script + " $USER test &") + os.system(wakeup_script + " $USER " + re.search("\d+",folder).group(0) + " test &") '''Callback for clicking Help in main window''' def help_clicked (self, widget, data=None): if widget.get_label() == "gtk-about": @@ -410,7 +410,7 @@ def on_plugins_cancel_clicked (self, widget, data=None): # Restore the backup of previously active plugins and remake plugin list self.plugin_window.hide() - return True + return False '''Callback for clicking Ok in plugins window''' def on_plugins_ok_clicked (self, widget, data=None): @@ -454,6 +454,16 @@ activeplugins.append(name) item = self.treemodel2.iter_next(item) alarm.set_property("activeplugins", activeplugins) + if "Commands" in activeplugins: + alarmfolder = self.alarmfolders[self.currentalarm] + command_pref_file = os.path.join(alarmfolder, 'plugins/Commands/Commands.config') + c_pref_file = open(command_pref_file, "r") + self.lines = ''.join(c_pref_file.readlines()) + c_pref_file.close() + old_items = re.search("dataitems=(.*)", self.lines).group(1).split(",") + if old_items == ['']: + old_items = [] + alarm.set_property("Commands_dataitems", old_items) myiter = self.alarmlist.get_iter_from_string(str(self.currentalarm)) self.change_alarmlist_item(alarm, myiter) self.on_alarm_selected(None) @@ -483,12 +493,14 @@ pluginfolder = os.path.join(self.alarmfolders[self.currentalarm], "plugins", plugin) exec("pluginPref = " + plugin + "." + plugin + "('" + pluginfolder + "')") pluginPref.window.set_modal(True) - pluginPref.window.set_transient_for(self.plugin_window) + # This next line actually makes it impossible to close plugin preferences more than once + #pluginPref.window.set_transient_for(self.plugin_window) # TODO: This doesn't seem to work at the moment, so all plugin # glade files have the hint set to dialog individually. # pluginPref.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG) pluginPref.main() self.prefsOpen = False + return False '''Callback for toggling availability of a plugin by checking a box''' def on_plugin_toggled (self, widget, data=None): @@ -691,6 +703,7 @@ del self.alarmlist[pos] del self.alarms[pos] del self.alarmfolders[pos] + '''Callback for selecting an alarm from the list''' def on_alarm_selected(self, widget, data=None): model, paths = self.alarm_selection.get_selected_rows() @@ -718,6 +731,10 @@ if pluginname in alarm.get_property("activeplugins"): for item in self.plugins[pluginname]['data_items']: self.add_data_item("$" + item) + # Add in dynamic dataitems from Command plugin + if "Commands" in alarm.get_property("activeplugins"): + for item in alarm.get_property("Commands_dataitems"): + self.add_data_item("$" + item) def on_introdialog_destroy(self, widget, data=None): self.introdialog.hide() diff -Nru wakeup-1.1/data/wakeup/alarm.py wakeup-1.2/data/wakeup/alarm.py --- wakeup-1.1/data/wakeup/alarm.py 2011-05-19 00:00:26.000000000 +0200 +++ wakeup-1.2/data/wakeup/alarm.py 2011-12-27 23:29:26.000000000 +0100 @@ -25,6 +25,7 @@ self.otherspeechtool = "none" self.wakecomputer = True self.activeplugins = list() + self.Commands_dataitems = list() # for dynamic dataitems from Commands plugin def set_property(self, property_name, value): exec("self." + property_name + " = value") @@ -40,6 +41,12 @@ data_items.extend(plugins[key]['data_items']) for item in plugins[key]['data_items']: itemsToPlugin[item] = key + # Add in dynamic dataitems from Commands plugin + if "Commands" in self.activeplugins: + data_items.extend(self.Commands_dataitems) + for item in self.Commands_dataitems: + itemsToPlugin[item] = "Commands" + usedDataByPlugin = dict() for name in self.activeplugins: usedDataByPlugin[name] = list() @@ -63,6 +70,9 @@ for j in data_used: if j in data_items and itemsToPlugin[j] in self.activeplugins: usedDataByPlugin[itemsToPlugin[j]].append(j) + else: + i = re.sub('\$'+j,'\\\$'+j,i) + del data_used[data_used.index(j)] for name in usedDataByPlugin.keys(): if plugins[name]['text_output'] and not len(usedDataByPlugin[name]) == 0: itemsstring = "".join([k + " " for k in usedDataByPlugin[name]]) @@ -150,7 +160,7 @@ + alarmnum + ".*$/d\" $tmpfile\n" \ + "echo \"" + str(minute) + " " + str(hour) + " " \ + str(dom) + " " + str(mon) + " " + str(dow) + " " \ - + "DISPLAY=:0 " + wakeup_script + " $USER " \ + + wakeup_script + " $USER " \ + alarmnum + " >/dev/null 2>&1\" >> $tmpfile\n" \ + "crontab $tmpfile\n" \ + "rm $tmpfile" diff -Nru wakeup-1.1/data/wakeup/default_plugin_confs/Commands/Commands.config wakeup-1.2/data/wakeup/default_plugin_confs/Commands/Commands.config --- wakeup-1.1/data/wakeup/default_plugin_confs/Commands/Commands.config 1970-01-01 01:00:00.000000000 +0100 +++ wakeup-1.2/data/wakeup/default_plugin_confs/Commands/Commands.config 2011-12-27 05:08:14.000000000 +0100 @@ -0,0 +1,2 @@ +dataitems= +scripts= diff -Nru wakeup-1.1/data/wakeup/location.py wakeup-1.2/data/wakeup/location.py --- wakeup-1.1/data/wakeup/location.py 1970-01-01 01:00:00.000000000 +0100 +++ wakeup-1.2/data/wakeup/location.py 2011-12-27 19:57:07.000000000 +0100 @@ -0,0 +1,50 @@ +#!/usr/bin/env python +# get location for Weather +# Copyright (C) 2011 David Glass +# Copyright is GPLv3 or later, see /usr/share/common-licenses/GPL-3 + +# Note this function can be imported, and gives a dictionary output of location data +# as follows: {country_code, country, state, city, postcode, latitude, longitude}. +# If any of the values are not available, they default to an empty string (''). +# Data is taken from ip-address.org. + +import urllib2 +import re + +def get_location(): + # Grab information about location based on IP + url = 'http://www.ip-address.org' + headers = {'User-Agent' : 'Dummy/0.0'} + req = urllib2.Request(url, '', headers) + response = urllib2.urlopen(req,'',5) + page = response.read() + data = re.search("Browser Language.*IP Language",page).group(0) + try: + country = re.search("Country:(.*)  ", data).group(1) + except: + country = '' + try: + country_code = re.search("img src.*\((.*)\).*State:", data).group(1) + except: + country_code = '' + try: + state = re.search("State:(.*).*City:", data).group(1) + except: + state = '' + try: + city = re.search("City:(.*).*Postal:", data).group(1) + except: + city = '' + try: + postcode = re.search("Postal:.*'lookup'>(.*).*ISP:", data).group(1) + except: + postcode = '' + try: + latlon = re.search("City Lat/Lon:.*'lookup'> \((.*)\) / \((.*)\)", data) + latitude = latlon.group(1) + longitude = latlon.group(2) + except: + longitude = '' + longitude = '' + + return {'country_code':country_code, 'country':country, 'state':state, 'city':city, 'postcode':postcode, 'latitude':latitude, 'longitude':longitude} diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/Commands/Commands.glade wakeup-1.2/data/wakeup/plugin_scripts/Commands/Commands.glade --- wakeup-1.1/data/wakeup/plugin_scripts/Commands/Commands.glade 1970-01-01 01:00:00.000000000 +0100 +++ wakeup-1.2/data/wakeup/plugin_scripts/Commands/Commands.glade 2011-12-27 05:08:14.000000000 +0100 @@ -0,0 +1,253 @@ + + + + + + + + + + + + + True + False + 6 + User Commands + center + dialog + False + + + + 400 + 200 + True + False + + + True + False + 2 + 3 + 2 + 3 + + + True + True + + True + + + + 1 + 2 + + + + + True + True + + True + + + + 1 + 3 + 1 + 2 + + + + + True + False + 1 + Data item: $ + + + + + True + False + 1 + Command: + + + 1 + 2 + + + + + 42 + True + False + + + 2 + 3 + + + + + False + True + 0 + + + + + True + False + + + True + True + in + + + True + True + liststore1 + False + 0 + + + + + + + + Data item + True + + + + 0 + + + + + + + Command + True + + + + 1 + + + + + + + + + True + True + 0 + + + + + True + False + vertical + icons + False + + + True + False + False + True + gtk-add + + + + False + True + + + + + True + False + False + True + gtk-remove + + + + False + True + + + + + False + False + end + 1 + + + + + True + True + 1 + + + + + True + False + 3 + + + gtk-ok + True + True + True + False + True + + + + True + True + 0 + + + + + gtk-cancel + True + True + True + False + True + + + + True + True + 1 + + + + + False + True + 2 + 2 + + + + + + diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/Commands/Commands.py wakeup-1.2/data/wakeup/plugin_scripts/Commands/Commands.py --- wakeup-1.1/data/wakeup/plugin_scripts/Commands/Commands.py 1970-01-01 01:00:00.000000000 +0100 +++ wakeup-1.2/data/wakeup/plugin_scripts/Commands/Commands.py 2011-12-27 19:46:55.000000000 +0100 @@ -0,0 +1,137 @@ +#!/usr/bin/env python +# plugin GUI preferences class for Commands +# Copyright (C) 2011 David Glass +# Copyright is GPLv3 or later, see /usr/share/common-licenses/GPL-3 + +import pygtk +pygtk.require('2.0') +import gtk +import gtk.glade +import os +import re + + +class Commands: + + def __init__(self, pluginfolder): + self.wTree = gtk.Builder() + self.wTree.add_from_file("Commands.glade") + self.wTree.connect_signals(self) + self.window = self.wTree.get_object("window1") + self.item_entry = self.wTree.get_object("entry1") + self.command_entry = self.wTree.get_object("entry2") + self.command_list = self.wTree.get_object("liststore1") + self.selection = self.wTree.get_object("treeview-selection1") + self.remove_button = self.wTree.get_object("toolbutton2") + self.plugin_file = os.path.join(pluginfolder, "Commands.config") + c_file = open(self.plugin_file, "r") + self.lines = ''.join(c_file.readlines()) + c_file.close() + old_items = re.search("dataitems=(.*)", self.lines).group(1).split(",") + old_commands = re.search("scripts=(.*)", self.lines).group(1).split(",") + for i in xrange(len(old_items)): + myiter = self.command_list.insert_after(None, None) + self.command_list.set_value(myiter, 0, '$'+old_items[i]) + self.command_list.set_value(myiter, 1, old_commands[i]) + # Select first item in list + self.selection.select_path(self.command_list.get_path(self.command_list.get_iter_first())) + if old_items == ['']: + old_items = [] + old_command = [] + self.on_remove_clicked(self.remove_button) + + '''On Clicking Ok''' + def on_ok_clicked(self, widget, data=None): + new_item_list = '' + new_command_list = '' + item = self.command_list.get_iter_first() + dataitems = {} + if item: + while item: + if self.command_list.get_value(item, 0)[1:] in dataitems: + self.selection.select_path(self.command_list.get_path(item)) + self.item_entry.set_text(self.item_entry.get_text() + 'NamesMustBeUnique') + return + else: + dataitems[self.command_list.get_value(item, 0)[1:]]=True + comma = ',' + if new_item_list == '': + comma = '' + new_item_list = self.command_list.get_value(item, 0)[1:] + comma + new_item_list + new_command_list = self.command_list.get_value(item, 1) + comma + new_command_list + item = self.command_list.iter_next(item) + self.lines = "dataitems=" + new_item_list + "\nscripts=" + new_command_list + c_file = open(self.plugin_file, "w") + c_file.write(self.lines) + c_file.close() + self.on_window_destroy(self) + + '''On Clicking Add''' + def on_add_clicked(self, widget, data=None): + myiter = self.command_list.append() + self.command_list.set_value(myiter, 0, '$newitem') + self.command_list.set_value(myiter, 1, 'echo "newitem"') + self.selection.select_path(self.command_list.get_path(myiter)) + self.item_entry.set_sensitive(True) + self.command_entry.set_sensitive(True) + self.remove_button.set_sensitive(True) + + '''On pressing delete in the list''' + def on_remove_clicked(self, widget, data=None): + model, paths = self.selection.get_selected_rows() + position_selected = self.command_list.get_iter_from_string(str(paths[0][0])) + pos = self.command_list.get_path(position_selected)[0] + if pos == 0: + newpos = (1,) + else: + newpos = (pos-1,) + self.selection.select_path(newpos) + self.command_list.remove(position_selected) + + '''On Changing the item entry''' + def on_itementry_changed(self, widget, data=None): + model, paths = self.selection.get_selected_rows() + try: + position_selected = self.command_list.get_iter_from_string(str(paths[0][0])) + except: # setting to blank in exception in on_selection_changed + return + self.command_list.set_value(position_selected, 0, '$'+widget.get_text()) + + '''On Changing the command entry''' + def on_commandentry_changed(self, widget, data=None): + model, paths = self.selection.get_selected_rows() + try: + position_selected = self.command_list.get_iter_from_string(str(paths[0][0])) + except: # setting to blank in exception in on_selection_changed + return + self.command_list.set_value(position_selected, 1, widget.get_text()) + + '''On changing selection in command list''' + def on_selection_changed(self, widget, data=None): + model, paths = self.selection.get_selected_rows() + try: + position_selected = self.command_list.get_iter_from_string(str(paths[0][0])) + except: # empty list + self.item_entry.set_text("") + self.command_entry.set_text("") + self.item_entry.set_sensitive(False) + self.command_entry.set_sensitive(False) + self.remove_button.set_sensitive(False) + return + dataitem = self.command_list.get_value(position_selected, 0) + command = self.command_list.get_value(position_selected, 1) + self.item_entry.set_text(dataitem[1:]) + self.command_entry.set_text(command) + + '''On Clicking Cancel''' + def on_cancel_clicked(self, widget, data=None): + self.on_window_destroy(self) + + '''Exit''' + def on_window_destroy(self, widget, data=None): + self.window.destroy() + gtk.main_quit() + + '''Run the GUI''' + def main(self): + gtk.main() diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/Commands/run_commands.sh wakeup-1.2/data/wakeup/plugin_scripts/Commands/run_commands.sh --- wakeup-1.1/data/wakeup/plugin_scripts/Commands/run_commands.sh 1970-01-01 01:00:00.000000000 +0100 +++ wakeup-1.2/data/wakeup/plugin_scripts/Commands/run_commands.sh 2011-12-27 05:08:14.000000000 +0100 @@ -0,0 +1,20 @@ +#!/bin/bash +# Run user-defined commands +# Copyright (C) 2011 David Glass +# Copyright is GPLv3 or later, see /usr/share/common-licenses/GPL-3 + +IFS=, +plugin_file=/home/$1/.wakeup/$ALARM/plugins/Commands/Commands.config +dataitems=($(sed -rn 's/dataitems\s*=\s*(.*)\s*$/\1/p' $plugin_file)) +scripts=($(sed -rn 's/scripts\s*=\s*(.*)\s*$/\1/p' $plugin_file)) + +# Make hash of dataitems->scripts +declare -A itemscripts +for (( i = 0; i < ${#dataitems[@]}; i++ )); do + itemscripts[${dataitems[$i]}]=${scripts[$i]} +done + +# Execute scripts and output any text output properly +for item in ${*:2}; do + eval ${itemscripts[$item]} 2>/dev/null; echo "" +done diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/HebrewCalendar/check_hebcal.py wakeup-1.2/data/wakeup/plugin_scripts/HebrewCalendar/check_hebcal.py --- wakeup-1.1/data/wakeup/plugin_scripts/HebrewCalendar/check_hebcal.py 1970-01-01 01:00:00.000000000 +0100 +++ wakeup-1.2/data/wakeup/plugin_scripts/HebrewCalendar/check_hebcal.py 2011-12-27 05:08:14.000000000 +0100 @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# get hebcal data +# Copyright (C) 2011 David Glass +# Copyright is GPLv3 or later, see /usr/share/common-licenses/GPL-3 + +import re +import sys, os +from commands import getoutput + + +# Get preferences +plugin_file = open('/home/' + sys.argv[1] + '/.wakeup/' + os.environ['ALARM'] + '/plugins/HebrewCalendar/HebrewCalendar.config', 'r') +plugin_text = ''.join(plugin_file.readlines()) +plugin_file.close() +latitude = re.search("latitude=(.*)", plugin_text).group(1) +longitude = re.search("longitude=(.*)", plugin_text).group(1) +manual_location = re.search("manual_location=(.*)", plugin_text).group(1) + +# Output +for out in sys.argv[2:len(sys.argv)]: + if (out == "hebdate"): + date = getoutput('echo $(hebcal -Th)') + print date + '\n' + if (out == "hebcalevents"): + if (manual_location == "false"): + # Get location + sys.path.append('/usr/share/wakeup') + import location + loc = location.get_location() + latitude = loc['latitude'] + longitude = loc['longitude'] + # Convert to hebcal +/-deg,min + lat_deg = int(abs(latitude)) + lat_min = int(60 * (abs(latitude) - lat_deg)) + lat_deg = int(latitude/abs(latitude)) * lat_deg + lon_deg = int(abs(longitude)) + lon_min = int(60 * (abs(longitude) - lon_deg)) + lon_deg = -1 * int(longitude/abs(longitude)) * lon_deg + latitude = str(lat_deg) + ',' + str(lat_min) + longitude = str(lon_deg) + ',' + str(lon_min) + events = getoutput('echo $(hebcal -Toc -l ' + latitude + ' -L ' + longitude + ' -z $(date +%:::z) | sed /^[0-9].*/d)') + print events + '\n' + diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/HebrewCalendar/check_hebcal.sh wakeup-1.2/data/wakeup/plugin_scripts/HebrewCalendar/check_hebcal.sh --- wakeup-1.1/data/wakeup/plugin_scripts/HebrewCalendar/check_hebcal.sh 2011-10-16 19:46:25.000000000 +0200 +++ wakeup-1.2/data/wakeup/plugin_scripts/HebrewCalendar/check_hebcal.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,25 +0,0 @@ -#!/bin/bash -# plugin script for HebrewCalendar outputting Hebrew date and/or events -# Copyright (C) 2011 David Glass -# Copyright is GPLv3 or later, see /usr/share/common-licenses/GPL-3 - -plugin_file="/home/$1/.wakeup/$ALARM/plugins/HebrewCalendar/HebrewCalendar.config" -manual_location=$(sed -rn 's/manual_location\s*=\s*(.*)\s*/\1/p' $plugin_file) -lat=$(sed -rn 's/latitude\s*=\s*(.*)\s*/\1/p' $plugin_file) -long=$(sed -rn 's/longitude\s*=\s*(.*)\s*/\1/p' $plugin_file) -for i in ${*:2}; do - if [[ $i == hebdate ]]; then - echo $(hebcal -Th); echo "" - fi - if [[ $i == hebcalevents ]]; then - if [[ $manual_location == "false" ]]; then - latln=$(wget -q -U DummyBrowser/1.0 -O - www.ip-adress.com/ip_tracer | grep GLatLng) - lat=$(echo $latln | grep -oP "\([0-9\-\.]+" | sed 's/(//') - long=$(echo $latln | grep -oP "[0-9\-\.]+\)" | sed 's/)//') - fi - # put longitude and latitude in deg,min format. Hebcal requires that longitude sign is switched - lat=$(echo $lat | perl -ne '$lat = abs($_); $deg = int($lat); $min = int(60 * ($lat - $deg)); print "$deg,$min"') - long=$(echo $long | perl -ne '$long = abs($_); $deg = int($long); $min = int(60 * ($long - $deg)); $deg *= -1 if not /-/; print "$deg,$min"') - echo $(hebcal -Toc -l $lat -L $long -z $(date +%:::z) | sed /^[0-9].*/d); echo "" - fi -done diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/HebrewCalendar/HebrewCalendar.glade wakeup-1.2/data/wakeup/plugin_scripts/HebrewCalendar/HebrewCalendar.glade --- wakeup-1.1/data/wakeup/plugin_scripts/HebrewCalendar/HebrewCalendar.glade 2011-05-22 19:43:25.000000000 +0200 +++ wakeup-1.2/data/wakeup/plugin_scripts/HebrewCalendar/HebrewCalendar.glade 2011-12-27 05:08:14.000000000 +0100 @@ -1,7 +1,6 @@ - True False @@ -17,7 +16,7 @@ False - Manually set longitude, latitude: + Manually set decimal longitude, latitude: True True False @@ -42,8 +41,6 @@ False False - True - True True @@ -70,8 +67,6 @@ False False - True - True True diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/HebrewCalendar/HebrewCalendar.py wakeup-1.2/data/wakeup/plugin_scripts/HebrewCalendar/HebrewCalendar.py --- wakeup-1.1/data/wakeup/plugin_scripts/HebrewCalendar/HebrewCalendar.py 2011-05-24 20:02:12.000000000 +0200 +++ wakeup-1.2/data/wakeup/plugin_scripts/HebrewCalendar/HebrewCalendar.py 2011-12-27 19:46:55.000000000 +0100 @@ -49,11 +49,10 @@ self.window = parent threading.Thread.__init__(self) def run(self): - self.window.LonLat = commands.getoutput('wget -q -U DummyBrowser/1.0 -O - www.ip-adress.com/ip_tracer | grep GLatLng | grep -oP "[0-9\.\-, ]{2,}"') - lon = re.search("^[0-9\.\-]+", self.window.LonLat).group(0) - lat = re.search("[0-9\.\-]+$", self.window.LonLat).group(0) - self.window.longitude.set_text(lon) - self.window.latitude.set_text(lat) + import location + loc = location.get_location() + self.window.longitude.set_text(loc['longitude']) + self.window.latitude.set_text(loc['latitude']) '''On Checking to set weather ID manually''' diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/MusicPlayer/play_music.sh wakeup-1.2/data/wakeup/plugin_scripts/MusicPlayer/play_music.sh --- wakeup-1.1/data/wakeup/plugin_scripts/MusicPlayer/play_music.sh 2011-05-23 15:09:28.000000000 +0200 +++ wakeup-1.2/data/wakeup/plugin_scripts/MusicPlayer/play_music.sh 2011-12-27 05:08:14.000000000 +0100 @@ -6,7 +6,6 @@ plugin_file=/home/$1/.wakeup/$ALARM/plugins/MusicPlayer/MusicPlayer.config MUSIC=$(sed -rn 's/music_file\s*=\s*(.*)\s*$/\1/p' $plugin_file) ENDPOS=$(sed -rn 's/time\s*=\s*(.*)\s*$/\1/p' $plugin_file) -echo "hello: $ENDPOS" # note making volume 3/4 is a hack to make the music volume equal the # low festival volume. It only needs to be done when not logged in. if [[ `who` == "" ]]; then diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/Weather/format_weather.pl wakeup-1.2/data/wakeup/plugin_scripts/Weather/format_weather.pl --- wakeup-1.1/data/wakeup/plugin_scripts/Weather/format_weather.pl 2011-05-19 00:00:26.000000000 +0200 +++ wakeup-1.2/data/wakeup/plugin_scripts/Weather/format_weather.pl 1970-01-01 01:00:00.000000000 +0100 @@ -1,62 +0,0 @@ -#!/usr/bin/perl -# helper script for get_weather.sh that formats weather from weather-util -# Copyright (C) 2011 David Glass -# Copyright is GPLv3 or later, see /usr/share/common-licenses/GPL-3 - -my $plugin_file = "/home/$ARGV[1]/.wakeup/$ARGV[2]/plugins/Weather/Weather.config"; -open(my $file, $plugin_file); -my @lines = <$file>; -my @temp_line = grep(/^temperature_units/, @lines); -my @wind_line = grep(/^wind_units/, @lines); -(my $blank, my $temp_units) = split(/\s*=\s*/, $temp_line[0]); -$temp_units =~ s/\s*$//; -(my $blank, my $wind_units) = split(/\s*=\s*/, $wind_line[0]); -$wind_units =~ s/\s*$//; -close($file); - -my $weather = `weather -qi $ARGV[0]`; -$_ = $weather; -s/\n/.\n/g; # put periods to distinguish sentences -s/;/ and /g; # ; is used as an "and" -s/SE / south east /g; # directions, including NNE, SSW, etc. -s/NE / north east /g; -s/NW / north west /g; -s/SW / south west /g; -s/N /north /g; -s/E /east /g; -s/W /west /g; -s/S /south /g; -s/\(.*? degrees\)//g; # remove exact direction -if ($wind_units eq "mph") { -s/MPH \(.*? KT\)/miles per hour/g; # write out MPH, remove KT -} -else { -s/[0-9\.\-]*? MPH \((.*?) KT\)/\1 knots/g; # write out KT, remove MPH -} -if ($temp_units eq "F") { -s/F \(.*? C\)/degrees/g; # remove C, only prints degrees -} -else { -s/[0-9\.\-]*? F \((.*?) C\)/\1 degrees/g; # remove F, only prints degrees -} -s/ / /g; # clean up spaces - -# set up for splitting into array -s/.\n/|/g; -s/: /|/g; - -my $bl = "", $temperature = "", $humidity = "", $weather = "", $sky = ""; -if (/Weather/) { - ($bl,$temp,$bl, $hum,$bl, $wind,$bl, $weather,$bl, $sky) = split(/\|/, $_); -} -else { - ($bl,$temp,$bl, $hum,$bl, $wind, $bl, $sky) = split(/\|/, $_); -} - -for my $to_output (@ARGV[3..$#ARGV]) { - if ($to_output eq "temperature") {print "$temp\n\n";} - if ($to_output eq "skyconditions") {print "$sky\n\n";} - if ($to_output eq "humidity") {print "$hum\n\n";} - if ($to_output eq "windconditions") {print "$wind\n\n";} - if ($to_output eq "weatherconditions") {print "$weather\n\n";} -} diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/Weather/get_weather.py wakeup-1.2/data/wakeup/plugin_scripts/Weather/get_weather.py --- wakeup-1.1/data/wakeup/plugin_scripts/Weather/get_weather.py 1970-01-01 01:00:00.000000000 +0100 +++ wakeup-1.2/data/wakeup/plugin_scripts/Weather/get_weather.py 2011-12-27 05:40:35.000000000 +0100 @@ -0,0 +1,66 @@ +#!/usr/bin/env python +# get weather for Weather +# Copyright (C) 2011 David Glass +# Copyright is GPLv3 or later, see /usr/share/common-licenses/GPL-3 + +import re +import pywapi +import sys, os + +# Get unit preferences +plugin_file = open('/home/' + sys.argv[1] + '/.wakeup/' + os.environ['ALARM'] + '/plugins/Weather/Weather.config', 'r') +plugin_text = ''.join(plugin_file.readlines()) +plugin_file.close() +temp_unit = re.search("temperature_units=(.*)", plugin_text).group(1) +wind_unit = re.search("wind_units=(.*)", plugin_text).group(1) +if (wind_unit == "mph"): + wind_unit = "miles per hour" +manual_location = re.search("location=(.*)", plugin_text).group(1) + +if (manual_location != 'none'): + # Using manual location + weather = pywapi.get_weather_from_google(manual_location) +else: + # Get location + sys.path.append('/usr/share/wakeup') + import location + loc = location.get_location() + weather = pywapi.get_weather_from_google(loc['city']+','+loc['state']+','+loc['country']) + + +# Output the weather +for out in sys.argv[2:len(sys.argv)]: + if (out == "temperature"): + if temp_unit == "C": + print weather['current_conditions']['temp_c'] + '\n' + else: + print weather['current_conditions']['temp_f'] + '\n' + if (out == "skyconditions"): + print weather['current_conditions']['condition'] + '\n' + if (out == "humidity"): + print weather['current_conditions']['humidity'] + '\n' + if (out == "windconditions"): + winds = weather['current_conditions']['wind_condition'] + magnitude = re.search("at (.*) mph", winds).group(1) + direction = re.search("Wind: (.*) at", winds).group(1) + direction = re.sub("N", "north ", direction) + direction = re.sub("E", "east ", direction) + direction = re.sub("S", "south ", direction) + direction = re.sub("W", "west ", direction) + if wind_unit == "knots": + magnitude = int(round(float(magnitude) * 0.868976242)) + print direction + " at " + str(magnitude) + " " + wind_unit + '\n' + if (out == "high"): + high = int(weather['forecasts'][0]['high']) + if temp_unit == "C": + print str(int(round((high - 32)*5/9))) + '\n' + else: + print str(high) + '\n' + if (out == "low"): + low = int(weather['forecasts'][0]['low']) + if temp_unit == "C": + print str(int(round((low - 32)*5/9))) + '\n' + else: + print str(low) + '\n' + if (out == "todays_forecast"): + print weather['forecasts'][0]['condition'] + '\n' diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/Weather/get_weather.sh wakeup-1.2/data/wakeup/plugin_scripts/Weather/get_weather.sh --- wakeup-1.1/data/wakeup/plugin_scripts/Weather/get_weather.sh 2011-05-20 17:05:47.000000000 +0200 +++ wakeup-1.2/data/wakeup/plugin_scripts/Weather/get_weather.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,12 +0,0 @@ -#!/bin/bash -# plugin script for Weather outputting various weather conditions -# Copyright (C) 2011 David Glass -# Copyright is GPLv3 or later, see /usr/share/common-licenses/GPL-3 - -plugin_file="/home/$1/.wakeup/$ALARM/plugins/Weather/Weather.config" -manual_location=$(sed -rn 's/location\s*=\s*(.*)\s*/\1/p' $plugin_file) -if [[ $manual_location == "none" ]]; then - $(dirname $0)/format_weather.pl $($(dirname $0)/id_by_ip.sh) $1 $ALARM ${*:2} -else - $(dirname $0)/format_weather.pl $manual_location $1 $ALARM ${*:2} -fi diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/Weather/id_by_ip.sh wakeup-1.2/data/wakeup/plugin_scripts/Weather/id_by_ip.sh --- wakeup-1.1/data/wakeup/plugin_scripts/Weather/id_by_ip.sh 2011-09-23 17:34:07.000000000 +0200 +++ wakeup-1.2/data/wakeup/plugin_scripts/Weather/id_by_ip.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,66 +0,0 @@ -#!/bin/bash -# plugin script for Weather to get closest metar station based on ip geolocation -# Copyright (C) 2011 David Glass -# Copyright is GPLv3 or later, see /usr/share/common-licenses/GPL-3 - -# Get ISP longitude and latitude, as well as country code and state -wget -q -U DummyBrowser/1.0 -O /tmp/ip_tracer www.ip-adress.com/ip_tracer -latln=$(grep GLatLng /tmp/ip_tracer) -my_lat=$(echo $latln | grep -oP "\([0-9\-\.]+" | sed 's/(//') -my_lon=$(echo $latln | grep -oP "[0-9\-\.]+\)" | sed 's/)//') -countrycode=$(grep -A 2 "country code" /tmp/ip_tracer | grep -oP "[A-Z]{2}" | sed '/IP/d') -state=$(grep -A 2 "state" /tmp/ip_tracer | tr '\n' ' ' | grep -oP ".*" | sed -r 's/\s*<\/?td>\s*//g') -rm /tmp/ip_tracer - -# filter metar stations by country, or by state if in United States or Canada -wget -q http://aviationweather.gov/adds/metars/stations.txt -O /tmp/metar_stations -if [[ $countrycode == "US" || $countrycode == "CA" ]]; then - statecode=$(grep -i -A 2 "$state" /tmp/metar_stations | grep -P "US$|CA$" | grep -oP "^[A-Z]{2}") - grep "^$statecode" /tmp/metar_stations > /tmp/Stations -else - grep "$countrycode$" /tmp/metar_stations > /tmp/Stations -fi -rm /tmp/metar_stations - -# find closest metar station -distance=40000.0 # km, approximate circumference of the earth (starting minimum dist) -my_metar="" -while IFS='' read line; do - # skip useless lines - if [[ $line =~ ^!.* || $line =~ ^$ ]]; then flag=1; continue - elif [[ $flag == 1 ]]; then flag=0; continue - elif [[ $line =~ " ICAO " ]]; then continue - fi - - # get metar ID and skip metar stations without ID - id=${line:20:4} - if [[ $id == " " ]]; then continue; fi - # convert longitude and latitude to decimal format - lat=${line:39:6} - lon=${line:47:7} - lat_deg=$(echo "${lat:0:2}" | sed 's/^0//') - lat_min=$(echo "${lat:3:2}" | sed 's/^0//') - lat_sign=$(if [[ ${lat:5:1} == "S" ]]; then echo "-"; fi) - lon_deg=$(echo "${lon:0:3}" | sed 's/^0//') - lon_min=$(echo "${lon:4:2}" | sed 's/^0//') - lon_sign=$(if [[ ${lon:6:1} == "W" ]]; then echo "-"; fi) - lat_dec="$lat_sign$lat_deg.$(( 10000 * lat_min / 60 ))" - lon_dec="$lon_sign$lon_deg.$(( 10000 * lon_min / 60 ))" - - # find shortest distance - d=$($(dirname $0)/sphereDist.pl $my_lat $my_lon $lat_dec $lon_dec) - d_whole=$(echo $d | grep -oP "^[0-9]+") - d_dec=$(echo $d | grep -oP "[0-9]+$") - dist_whole=$(echo $distance | grep -oP "^[0-9]+") - dist_dec=$(echo $distance | grep -oP "[0-9]+$") - if [[ $d_whole -lt $dist_whole - || ($d_whole -eq $dist_whole && ${d_dec:1:4} < ${dist_dec:1:4}) ]]; then - distance=$d - my_metar=$id - min_lat=$lat_dec - min_lon=$lon_dec - fi -done < /tmp/Stations -# output closest metar station -echo "$my_metar" -rm /tmp/Stations diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/Weather/sphereDist.pl wakeup-1.2/data/wakeup/plugin_scripts/Weather/sphereDist.pl --- wakeup-1.1/data/wakeup/plugin_scripts/Weather/sphereDist.pl 2011-05-20 16:21:12.000000000 +0200 +++ wakeup-1.2/data/wakeup/plugin_scripts/Weather/sphereDist.pl 1970-01-01 01:00:00.000000000 +0100 @@ -1,26 +0,0 @@ -#!/usr/bin/perl -# plugin script for determining closest metar station. This finds distance -# between two latitude, longitude points (+/- decimal format) -# Copyright (C) 2011 David Glass -# Copyright is GPLv3 or later, see /usr/share/common-licenses/GPL-3 -# See http://en.wikipedia.org/wiki/Haversine_formula - -use Math::Trig; - -$lat1 = $ARGV[0]; -$lon1 = $ARGV[1]; -$lat2 = $ARGV[2]; -$lon2 = $ARGV[3]; -$R = 6378; # km, earth's radius assuming perfect sphere -$havdoverR = &haversin($lat2 - $lat1) + cos($lat1)*cos($lat2)*&haversin($lon2-$lon1); -$distance = $R * &archaversin($havdoverR) * 3.14/180; - - -sub haversin { - return (1 - cos(@_[0]))/2; -} -sub archaversin { - return acos(1 - 2 * @_[0]); -} - -print $distance; diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/Weather/Weather.glade wakeup-1.2/data/wakeup/plugin_scripts/Weather/Weather.glade --- wakeup-1.1/data/wakeup/plugin_scripts/Weather/Weather.glade 2011-05-22 19:44:07.000000000 +0200 +++ wakeup-1.2/data/wakeup/plugin_scripts/Weather/Weather.glade 2011-12-27 05:08:14.000000000 +0100 @@ -1,7 +1,6 @@ - @@ -52,7 +51,7 @@ 3 - Manually set location ID: + Manually set location (e.g.: city,state): True True False @@ -69,8 +68,6 @@ False False - True - True 1 diff -Nru wakeup-1.1/data/wakeup/plugin_scripts/Weather/Weather.py wakeup-1.2/data/wakeup/plugin_scripts/Weather/Weather.py --- wakeup-1.1/data/wakeup/plugin_scripts/Weather/Weather.py 2011-05-23 21:10:54.000000000 +0200 +++ wakeup-1.2/data/wakeup/plugin_scripts/Weather/Weather.py 2011-12-27 19:46:55.000000000 +0100 @@ -47,9 +47,9 @@ self.location = manual_id threading.Thread.__init__(self) def run(self): - ip_script = '/usr/share/wakeup/plugin_scripts/Weather/id_by_ip.sh' - ip_process = subprocess.Popen(ip_script, stdout=subprocess.PIPE) - self.location.set_text(ip_process.communicate()[0][:-1]) + import location + loc = location.get_location() + self.location.set_text(loc['city']+','+loc['state']+','+loc['country']) '''On Checking to set weather ID manually''' diff -Nru wakeup-1.1/data/wakeup/plugin_settings/Commands.plugin wakeup-1.2/data/wakeup/plugin_settings/Commands.plugin --- wakeup-1.1/data/wakeup/plugin_settings/Commands.plugin 1970-01-01 01:00:00.000000000 +0100 +++ wakeup-1.2/data/wakeup/plugin_settings/Commands.plugin 2011-12-27 05:08:14.000000000 +0100 @@ -0,0 +1,23 @@ +(dp0 +S'description' +p1 +S'Run arbitrary command' +p2 +sS'script' +p3 +S'Commands/run_commands.sh' +p4 +sS'text_output' +p5 +I01 +sS'data_items' +p6 +(lp7 +sS'has_preferences' +p8 +I01 +sS'name' +p9 +S'Commands' +p10 +s. \ No newline at end of file diff -Nru wakeup-1.1/data/wakeup/plugin_settings/HebrewCalendar.plugin wakeup-1.2/data/wakeup/plugin_settings/HebrewCalendar.plugin --- wakeup-1.1/data/wakeup/plugin_settings/HebrewCalendar.plugin 2011-05-22 19:13:32.000000000 +0200 +++ wakeup-1.2/data/wakeup/plugin_settings/HebrewCalendar.plugin 2011-12-27 05:08:14.000000000 +0100 @@ -5,7 +5,7 @@ p2 sS'script' p3 -S'HebrewCalendar/check_hebcal.sh' +S'HebrewCalendar/check_hebcal.py' p4 sS'text_output' p5 diff -Nru wakeup-1.1/data/wakeup/plugin_settings/Weather.plugin wakeup-1.2/data/wakeup/plugin_settings/Weather.plugin --- wakeup-1.1/data/wakeup/plugin_settings/Weather.plugin 2011-05-19 00:00:26.000000000 +0200 +++ wakeup-1.2/data/wakeup/plugin_settings/Weather.plugin 2011-12-27 05:08:14.000000000 +0100 @@ -5,7 +5,7 @@ p2 sS'script' p3 -S'Weather/get_weather.sh' +S'Weather/get_weather.py' p4 sS'text_output' p5 @@ -19,15 +19,19 @@ p9 aS'skyconditions' p10 -aS'weatherconditions' -p11 aS'windconditions' +p11 +aS'high' p12 -asS'has_preferences' +aS'low' p13 +aS'todays_forecast' +p14 +asS'has_preferences' +p15 I01 sS'name' -p14 +p16 S'Weather' -p15 +p17 s. \ No newline at end of file diff -Nru wakeup-1.1/data/wakeup/setnextalarm.py wakeup-1.2/data/wakeup/setnextalarm.py --- wakeup-1.1/data/wakeup/setnextalarm.py 2011-05-19 00:00:26.000000000 +0200 +++ wakeup-1.2/data/wakeup/setnextalarm.py 2011-12-27 23:30:23.000000000 +0100 @@ -65,14 +65,14 @@ command = 'tmpfile=/tmp/setnextalarm_tmp.txt\n' + \ 'sudo crontab -l > $tmpfile\n' + \ 'sed -i /^.*setnextalarm.*$/d $tmpfile\n' + \ - 'echo \'' + mincron + ' DISPLAY=:0 ' + thisscript + \ + 'echo \'' + mincron + ' ' + thisscript + \ ' >/dev/null 2>&1\' >> $tmpfile\n' + \ - 'echo \'@reboot DISPLAY=:0 ' + thisscript + \ + 'echo \'@reboot ' + thisscript + \ ' >/dev/null 2>&1\' >> $tmpfile\n' for i in range(0, len(alarmtimes)): if alarmtimes[i] == minalarm: alarmnum = re.search("\d+$", alarmfolders[i]).group(0) - command += 'echo \'' + mincron + ' DISPLAY=:0 ' + \ + command += 'echo \'' + mincron + ' ' + \ wakeup_script + " " + sys.argv[1] + " " + alarmnum + \ ' >/dev/null 2>&1 #entered by setnextalarm\' >> $tmpfile\n' command += 'sudo crontab $tmpfile\n' + \ diff -Nru wakeup-1.1/data/wakeup/stopalarm.glade wakeup-1.2/data/wakeup/stopalarm.glade --- wakeup-1.1/data/wakeup/stopalarm.glade 2011-05-19 00:00:26.000000000 +0200 +++ wakeup-1.2/data/wakeup/stopalarm.glade 2011-12-27 20:00:54.000000000 +0100 @@ -1,38 +1,102 @@ - + - + + 100 + 1 + 5 + + + 59 + 5 + 1 + 10 + + False 5 + Stop Alarm False center appointment-new normal - False - + - + True + False 2 + + + True + False + end + + + Snooze + True + True + True + False + + + + False + False + 0 + + + + + gtk-stop + True + True + True + True + False + True + + + + False + False + 1 + + + + + False + True + 5 + end + 0 + + True + False True + False True + False 49 appointment-new + True + True 0 True + False Wakeup: press "stop" to end alarm or "snooze" to postpone. True @@ -53,13 +117,17 @@ True + False True + False 1 Snooze time: + True + True 5 0 @@ -68,7 +136,7 @@ True True - + adjustment1 True @@ -81,6 +149,7 @@ True + False hours @@ -94,7 +163,7 @@ True True - + adjustment2 True @@ -107,6 +176,7 @@ True + False minutes @@ -131,48 +201,6 @@ 1 - - - True - end - - - Snooze - True - True - True - - - - False - False - 0 - - - - - gtk-stop - True - True - True - True - True - - - - False - False - 1 - - - - - False - 5 - end - 0 - - @@ -180,15 +208,4 @@ button1 - - 100 - 1 - 5 - - - 5 - 59 - 1 - 10 - diff -Nru wakeup-1.1/data/wakeup/wakeup.glade wakeup-1.2/data/wakeup/wakeup.glade --- wakeup-1.1/data/wakeup/wakeup.glade 2011-11-10 07:29:43.000000000 +0100 +++ wakeup-1.2/data/wakeup/wakeup.glade 2011-12-27 19:46:55.000000000 +0100 @@ -1,502 +1,360 @@ - + - - - - - - + + 110 + 5 + 10 + 10 - - - - - - - - - + + 23 + 8 + 1 + 5 - - - - - - - - Minute - - - Hour - - - Day - - - Week - - - Month - - + + 59 + 30 + 1 + 10 - - - - - - - - - - - + + 1 + 31 + 1 + 1 + 10 - - - - - - - - - + + 100 + 1 + 10 + 10 - - True - Wakeup Settings Configuration - center - 605 - 440 - appointment-new - - - + + False + 5 + Wakeup + True + center-on-parent + dialog + True + + + True - - + False + immediate + 2 + + True + False + center - - True - _File - True - - - True - - - gtk-new - True - True - True - - - - - - gtk-apply - True - True - True - - - - - - True - - - - - gtk-quit - True - True - True - - - - - - - - - - True - _Edit - True - - - True - - - gtk-preferences - True - True - True - - - - - - gtk-media-play - True - True - True - - - - - - gtk-remove - True - True - True - - - - - - - - - + + gtk-ok True - _Help - True - - - True - - - True - _Usage - True - - - - - - gtk-about - True - True - True - - - - - + True + True + False + True + + + False + False + 0 + False - False + True + end 0 - + True - 7 - 5 - - - True - 3 - 6 - True - - - True - True - automatic - automatic - etched-in - - - True - True - liststore1 - False - False - 0 - - - - dataitems - - - - 0 - - - - - - - - - 2 - 3 - - - - - True - True - automatic - automatic - etched-in - - - True - True - immediate - word-char - 6 - 6 - textbuffer1 - - - - - 2 - - - - - 0 - - + False + label13 + True + center + + + False + True + 1 + + + + + + button13 + + + + False + 5 + Wakeup Introduction + center-on-parent + True + dialog + True + + + + True + False + 2 + + + True + False + end - - True - True - - - - True - - - True - True - automatic - automatic - etched-in - - - True - True - liststore5 - False - 0 - - - Text - True - - - 7 - - - 0 - - - - - - - Time - 0.5 - - - - 1 - - - - - - - Recurrence - 0.5 - - - - 2 - - - - - - - Boot - 0.5 - - - - 3 - - - - - - - - - 0 - - - - - True - vertical - icons - False - - - True - Add alarm - toolbutton1 - True - gtk-add - - - - False - True - - - - - True - Remove alarm - toolbutton2 - True - gtk-remove - - - - False - True - - - - - False - False - end - 1 - - - - - - - True - Edit multiple alarms... - - + + gtk-ok + True + True + True + False + True + + + + False + False + 0 + + + + + False + True + end + 0 + + + + + True + False + + + True + False + 0 + 0 + Welcome to Wakeup! Wakeup is a talking alarm clock which will set your computer to wake itself up - from shutdown if your bios allows. +The alarm is spoken from the text in the text box on the left. A list of available data items, which allow the alarm to tell you useful information, is available from installed plugins in the list on the right. Simply type them into the alarm text or double click them. To set the alarm or plugin settings, click "Preferences." For more detailed instruction, click "Help." + +Note that for any part of the alarm which depends on information from the web to work when you are not logged in, you will need to set the wireless network(s) you connect to so that they connect before you log in. This can be done through NetworkManager, by selecting a connection, clicking "Edit..." and checking "Available to all users." + fill + True + 54 + + + + False + True + 0 + + + + + Always show this message at startup + True + True + False + False + True + True False False + 4 1 + + + False + True + 1 + + + + + + button16 + + + + 450 + 400 + False + GDK_KEY_PRESS_MASK | GDK_STRUCTURE_MASK + Help + False + mouse + True + appointment-new + dialog + window + + + + + True + True + + + True + False + 6 - + True - 5 - True - start - - - gtk-preferences - True - True - True - True - - - - False - False - 0 - True - - - - - gtk-media-play - True - True - True - True - - - - False - False - 1 - True - - + True - - gtk-apply + True - True - True - True - + False + queue + adjustment6 + + + True + False + 10 + <b>Alarm Text</b> +In the main text window, simply type the text that you want to have spoken when the alarm runs. +<b>Hot Text</b> +Available hot-text items are listed in the list at the right in the main window. These can be inserted into the text by double-clicking on them or simply typing them into your alarm text. A blank line signifies a new paragraph. Each paragraph's hot-text items are updated immediately before the text is spoken, so if you want the $time, for instance, to reflect the current time somewhere in the middle of your text, leave a blank line before the sentence in which it occurs. +<b>Note</b> that for hot-text items dependent on data from the web to work when not logged in (see Computer Wakeup below), you need to set the wireless network(s) you connect to so that they also connect before you log in. This can be done through NetworkManager, by selecting a connection, clicking "Edit..." and checking "Available to all users." +<b>Plugins</b> +Available plugins are listed in the "Plugins" tab under "Preferences." Each plugin adds hot-text items to the list in the main window. A plugin's hot-text items are only interpreted if the plugin is active. +<b>Alarm Settings</b> +The alarm time and recurrence settings can be set under the "General" tab of "Preferences." The volume of the alarm and preferences for all hot-text items can be set as well. +<b>Computer Wakeup</b> +In the general preferences, there is a default option to wake the computer for alarms. With this checked, your computer will be set to wake up - from shutdown if your computer allows - five minutes prior to the set alarm time. The alarm will run even if you are not logged in. Note that this option requires administrative (root) permission. +<b>Multiple Alarms</b> +Each alarm's settings are completely independent. Click "Edit multiple alarms..." to create and delete alarms. + True + fill + True + + - - False - False - 2 - True - + + + True + True + 0 + + + + + True + False - - gtk-close + + gtk-ok True True True + False True - + False False - 3 - True + 3 + end + 0 + + + False + False + 3 + 1 + + + + + + + True + False + Usage + + + False + + + + + True + False + + + True + False + 1 + 1 + <big><big><big><b>Wakeup 1.2</b></big></big></big> + +Copyright (c) David Glass 2011 +&lt;dsglass@gmail.com&gt; + +Copyright is GPLv3 or later +(/usr/share/common-licenses/GPL-3) + True + center + + + True + True + 0 + + + + + True + False - - gtk-help + + gtk-ok True True True + False True - + False False - 4 + 3 + end + 0 False False - end - 2 + 3 + 1 @@ -504,10 +362,83 @@ 1 + + + True + False + About + + + 1 + False + + + + + + + + + + + + + + + + + + + + + + + + + + Minute + + + Hour + + + Day + + + Week + + + Month + + + + + + + + + + + + + + + + + + + + + + + + + + False 5 Plugins mouse @@ -515,8 +446,8 @@ 300 appointment-new dialog - - + + True @@ -524,29 +455,36 @@ True + False 5 True + False 8 True + False True + False 0.059999998658895493 True + False 12 True + False 6 True + False Time: @@ -573,6 +511,7 @@ True + False : @@ -603,6 +542,7 @@ True + False 0 0 6 @@ -614,34 +554,40 @@ False + True 0 True + False 0.070000000298023224 True + False 12 True False + False True True + False Every: True True False + False True True - + False @@ -652,9 +598,10 @@ True + False liststore3 1 - + @@ -672,6 +619,7 @@ True False + False Day of month: @@ -685,7 +633,7 @@ True False True - + adjustment4 @@ -696,12 +644,15 @@ + True + True 0 True + False Sun @@ -709,9 +660,12 @@ False True False + False True + True + True 0 @@ -722,9 +676,12 @@ False True False + False True + True + True 1 @@ -735,9 +692,12 @@ False True False + False True + True + True 2 @@ -748,9 +708,12 @@ False True False + False True + True + True 3 @@ -761,9 +724,12 @@ False True False + False True + True + True 4 @@ -774,9 +740,12 @@ False True False + False True + True + True 5 @@ -787,32 +756,41 @@ False True False + False True + True + True 6 + True + True 1 True + False Cron format (m h dom mon dow): True True False + False True True radiobutton1 - + + True + True 0 @@ -821,15 +799,19 @@ True False True - + + True + True 3 1 + True + True 2 @@ -843,17 +825,22 @@ True True False + False True - + + True + True 1 + True + True 3 0 @@ -861,9 +848,11 @@ True + False True + False 3 Volume center @@ -883,78 +872,64 @@ 0 + True + True 1 False + True 6 1 + True + True 0 - - True - - - Set computer to wake up for alarm (requires root permission) - True - True - False - True - True - - - 10 - 0 - - - - - 2 - - - True + False 6 - - gtk-ok + + gtk-cancel True True True + False True - + False False + 4 end - 1 + 0 - - gtk-cancel + + gtk-ok True True True + False True - + False False - 4 end - 0 + 1 @@ -966,11 +941,40 @@ 1 + + + True + False + + + Set computer to wake up for alarm (requires root permission) + True + True + False + False + True + True + + + True + True + 10 + 0 + + + + + True + True + 2 + + True + False General @@ -980,12 +984,15 @@ True + False True + False True + False 0 9 5 @@ -1001,8 +1008,6 @@ True True - automatic - automatic etched-in @@ -1012,6 +1017,9 @@ False False 0 + + + fixed @@ -1029,7 +1037,7 @@ column - + 1 @@ -1053,20 +1061,24 @@ + True + True 1 True + False Use other speech tool: True True False + False True - + False @@ -1080,9 +1092,11 @@ True False True - + + True + True 5 1 @@ -1097,37 +1111,219 @@ - 0 + True + True + 0 + + + + + True + False + 6 + + + gtk-cancel + True + True + True + False + True + + + + False + False + 4 + end + 0 + + + + + More Voices... + True + True + True + False + none + http://ubuntuforums.org/showthread.php?t=751169 + + + False + False + end + 1 + + + + + gtk-ok + True + True + True + False + True + + + + False + False + end + 2 + + + + + False + False + 6 + end + 1 + + + + + 1 + + + + + True + False + Voices + + + 1 + False + + + + + True + False + 4 + + + True + False + + + True + False + 9 + 5 + Available Plugins: + + + False + True + 0 + + + + + False + False + 0 + + + + + True + True + etched-in + + + True + True + liststore2 + False + 0 + + + + + + + Active + 1 + + + + + + 2 + + + + + + + Plugin + True + + + + 0 + + + + + + + Description + True + + + + 1 + + + + + + + + + True + True + 1 - + True + False 6 - - gtk-ok + + gtk-cancel True True True + False True - + False False + 4 end - 2 + 0 - - More Voices... + + gtk-preferences True + False True True - none - http://ubuntuforums.org/showthread.php?t=751169 + False + True + False @@ -1137,20 +1333,20 @@ - - gtk-cancel + + gtk-ok True True True + False True - + False False - 4 end - 0 + 2 @@ -1159,554 +1355,541 @@ False 6 end - 1 + 2 - 1 + 2 - + True - Voices + False + Plugins - 1 + 2 False + True + + + + + Type your alarm text here, inserting hot text items from the list at the right as desired. For example: + +Good morning. Today is $date. The time is $time. It is $temperature degrees outside with $skyconditions skies, and winds $windconditions. Expect $todays_forecast, with a high of $high and low of $low. + +Note that hot text items are loaded at the beginning of each paragraph (a new paragraph is specified by leaving one or more blank lines). Hence the time is now $time, whereas in the previous paragraph it might have been a minute earlier. + + + Alarm Text +In the main text window, simply type the text that you want to have spoken when the alarm runs. +Hot Text +Available hot-text items are listed in the list at the right in the main window. These can be inserted into the text by double-clicking on them or simply typing them into your alarm text. A blank line signifies a new paragraph. Each paragraph's hot-text items are updated immediately before the text is spoken, so if you want the $time, for instance, to reflect the current time somewhere in the middle of your text, leave a blank line before the sentence in which it occurs. +Note that for hot-text items dependent on data from the web to work when not logged in (see Computer Wakeup below), you need to set the wireless network(s) you connect to so that they also connect before you log in. This can be done through NetworkManager, by selecting a connection, clicking "Edit..." and checking "Available to all users." +Plugins +Available plugins are listed in the "Plugins" tab under "Preferences." Each plugin adds hot-text items to the list in the main window. A plugin's hot-text items are only interpreted if the plugin is active. +Alarm Settings +The alarm time and recurrence settings can be set under the "General" tab of "Preferences." The volume of the alarm and preferences for all hot-text items can be set as well. +Computer Wakeup +In the general preferences, there is a default option to wake the computer for alarms. With this checked, your computer will be set to wake up - from shutdown if your computer allows - five minutes prior to the set alarm time. The alarm will run even if you are not logged in. Note that this option requires administrative (root) permission. + + + True + False + Wakeup Settings Configuration + center + 605 + 440 + appointment-new + + + + True + False - + True - 4 + False - + + True + False + False + _File + True + + + True + False + + + gtk-new + True + False + False + True + True + + + + + + gtk-apply + True + False + False + True + True + + + + + + True + False + + + + + gtk-quit + True + False + False + True + True + + + + + + + + + + True + False + False + _Edit + True + + + True + False + + + gtk-preferences + True + False + False + True + True + + + + + + gtk-media-play + True + False + False + True + True + + + + + + gtk-remove + True + False + False + True + True + + + + + + + + + + True + False + False + _Help + True + + + True + False + + + True + False + False + _Usage + True + + + + + + gtk-about + True + False + False + True + True + + + + + + + + + + False + False + 0 + + + + + True + False + 7 + 5 + + True + False + 3 + 6 + True - + True - 9 - 5 - Available Plugins: + True + etched-in + + + True + True + liststore1 + False + False + 0 + + + + + + + dataitems + + + + 0 + + + + + + - False - 0 + 2 + 3 + + + + + True + True + etched-in + + + True + True + immediate + word-char + 6 + 6 + textbuffer1 + + + + + 2 - False - False + True + True 0 - + True True - automatic - automatic - etched-in + - + True - True - liststore2 - False - 0 - + False - - Active - 1 + + True + True + etched-in - - + + True + True + liststore5 + False + 0 + + + + + + Text + True + + + 7 + + + 0 + + + + + + + Time + 0.5 + + + + 1 + + + + + + + Recurrence + 0.5 + + + + 2 + + + + + + + Boot + 0.5 + + + + 3 + + + + - - 2 - + + True + True + 0 + - - Plugin - True + + True + False + vertical + icons + False - - - 0 - + + True + False + Add alarm + False + toolbutton1 + True + gtk-add + + + + False + True + - - - - - Description - True - - - 1 - + + True + False + Remove alarm + False + toolbutton2 + True + gtk-remove + + + + False + True + + + False + False + end + 1 + + + + True + False + Edit multiple alarms... + + + False + False 1 - + True - 6 + False + 5 + True + start - - gtk-ok + + gtk-preferences True True True + False True - + False False - end - 2 + 1 + True - - gtk-preferences + + gtk-media-play True - False True True + False True - + False False - end - 1 + 3 + True - - gtk-cancel + + gtk-help True True True + False True - + False False - 4 - end - 0 + 4 - - - False - False - 6 - end - 2 - - - - - 2 - - - - - True - Plugins - - - 2 - False - True - - - - - - - 450 - 400 - GDK_KEY_PRESS_MASK | GDK_STRUCTURE_MASK - Help - False - mouse - True - appointment-new - dialog - window - - - - - True - True - - - True - 6 - - - True - True - automatic - automatic - - - True - queue - adjustment6 - - - True - 10 - <b>Alarm Text</b> -In the main text window, simply type the text that you want to have spoken when the alarm runs. -<b>Hot Text</b> -Available hot-text items are listed in the list at the right in the main window. These can be inserted into the text by double-clicking on them or simply typing them into your alarm text. A blank line signifies a new paragraph. Each paragraph's hot-text items are updated immediately before the text is spoken, so if you want the $time, for instance, to reflect the current time somewhere in the middle of your text, leave a blank line before the sentence in which it occurs. -<b>Note</b> that for hot-text items dependent on data from the web to work when not logged in (see Computer Wakeup below), you need to set the wireless network(s) you connect to so that they also connect before you log in. This can be done through NetworkManager, by selecting a connection, clicking "Edit..." and checking "Available to all users." -<b>Plugins</b> -Available plugins are listed in the "Plugins" tab under "Preferences." Each plugin adds hot-text items to the list in the main window. A plugin's hot-text items are only interpreted if the plugin is active. -<b>Alarm Settings</b> -The alarm time and recurrence settings can be set under the "General" tab of "Preferences." The volume of the alarm and preferences for all hot-text items can be set as well. -<b>Computer Wakeup</b> -In the general preferences, there is a default option to wake the computer for alarms. With this checked, your computer will be set to wake up - from shutdown if your computer allows - five minutes prior to the set alarm time. The alarm will run even if you are not logged in. Note that this option requires administrative (root) permission. -<b>Multiple Alarms</b> -Each alarm's settings are completely independent. Click "Edit multiple alarms..." to create and delete alarms. - True - fill - True - - - - - - - 0 - - - - - True - - gtk-ok + + gtk-apply True True True + False True - + False False - 3 - end - 0 + 4 + True - - - False - False - 3 - 1 - - - - - - - True - Usage - - - False - - - - - True - - - True - 1 - 1 - <big><big><big><b>Wakeup 1.1</b></big></big></big> - -Copyright (c) David Glass 2011 -&lt;dsglass@gmail.com&gt; - -Copyright is GPLv3 or later -(/usr/share/common-licenses/GPL-3) - True - center - - - 0 - - - - - True - - gtk-ok + + gtk-close True True True + False True - + False False - 3 - end - 0 + 5 + True False False - 3 - 1 - - - - - 1 - - - - - True - About - - - 1 - False - - - - - - - Type your alarm text here, inserting hot text items from the list at the right as desired. For example: - -Good morning. Today is $date. The time is $time. It is $temperature outside with $skyconditions skies, $weatherconditions, and winds $windconditions. - -Note that hot text items are loaded at the beginning of each paragraph (a new paragraph is specified by leaving one or more blank lines). Hence the time is now $time, whereas in the previous paragraph it might have been a minute earlier. - - - 110 - 5 - 10 - 10 - - - 1 - 1 - 31 - 1 - 10 - - - 30 - 59 - 1 - 10 - - - 8 - 23 - 1 - 5 - - - 5 - Wakeup - True - center-on-parent - dialog - True - False - - - - True - immediate - 2 - - - True - label13 - True - center - - - 1 - - - - - True - center - - - gtk-ok - True - True - True - True - - - - False - False - 0 - - - - - False - end - 0 - - - - - - button13 - - - - 5 - Wakeup Introduction - center-on-parent - True - dialog - True - False - - - - True - 2 - - - True - - - True - 0 - 0 - Welcome to Wakeup! Wakeup is a talking alarm clock which will set your computer to wake itself up - from shutdown if your bios allows. -The alarm is spoken from the text in the text box on the left. A list of available data items, which allow the alarm to tell you useful information, is available from installed plugins in the list on the right. Simply type them into the alarm text or double click them. To set the alarm or plugin settings, click "Preferences." For more detailed instruction, click "Help." - -Note that for any part of the alarm which depends on information from the web to work when you are not logged in, you will need to set the wireless network(s) you connect to so that they connect before you log in. This can be done through NetworkManager, by selecting a connection, clicking "Edit..." and checking "Available to all users." - fill - True - 54 - - - - False - 0 - - - - - Always show this message at startup - True - True - False - True - True - - - False - False - 4 - 1 + end + 2 + True + True 1 - - - True - end - - - gtk-ok - True - True - True - True - - - - False - False - 0 - - - - - False - end - 0 - - - - button16 - - - - Alarm Text -In the main text window, simply type the text that you want to have spoken when the alarm runs. -Hot Text -Available hot-text items are listed in the list at the right in the main window. These can be inserted into the text by double-clicking on them or simply typing them into your alarm text. A blank line signifies a new paragraph. Each paragraph's hot-text items are updated immediately before the text is spoken, so if you want the $time, for instance, to reflect the current time somewhere in the middle of your text, leave a blank line before the sentence in which it occurs. -Note that for hot-text items dependent on data from the web to work when not logged in (see Computer Wakeup below), you need to set the wireless network(s) you connect to so that they also connect before you log in. This can be done through NetworkManager, by selecting a connection, clicking "Edit..." and checking "Available to all users." -Plugins -Available plugins are listed in the "Plugins" tab under "Preferences." Each plugin adds hot-text items to the list in the main window. A plugin's hot-text items are only interpreted if the plugin is active. -Alarm Settings -The alarm time and recurrence settings can be set under the "General" tab of "Preferences." The volume of the alarm and preferences for all hot-text items can be set as well. -Computer Wakeup -In the general preferences, there is a default option to wake the computer for alarms. With this checked, your computer will be set to wake up - from shutdown if your computer allows - five minutes prior to the set alarm time. The alarm will run even if you are not logged in. Note that this option requires administrative (root) permission. - - - 100 - 1 - 10 - 10 diff -Nru wakeup-1.1/data/wakeup/wakeup.glade~ wakeup-1.2/data/wakeup/wakeup.glade~ --- wakeup-1.1/data/wakeup/wakeup.glade~ 2011-09-23 19:16:06.000000000 +0200 +++ wakeup-1.2/data/wakeup/wakeup.glade~ 1970-01-01 01:00:00.000000000 +0100 @@ -1,1712 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - Minute - - - Hour - - - Day - - - Week - - - Month - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Wakeup Settings Configuration - center - 605 - 440 - appointment-new - - - - True - - - True - - - True - _File - True - - - True - - - gtk-new - True - True - True - - - - - - gtk-apply - True - True - True - - - - - - True - - - - - gtk-quit - True - True - True - - - - - - - - - - True - _Edit - True - - - True - - - gtk-preferences - True - True - True - - - - - - gtk-media-play - True - True - True - - - - - - gtk-remove - True - True - True - - - - - - - - - - True - _Help - True - - - True - - - True - _Usage - True - - - - - - gtk-about - True - True - True - - - - - - - - - - False - False - 0 - - - - - True - 7 - 5 - - - True - 3 - 6 - True - - - True - True - automatic - automatic - etched-in - - - True - True - liststore1 - False - False - 0 - - - - dataitems - - - - 0 - - - - - - - - - 2 - 3 - - - - - True - True - automatic - automatic - etched-in - - - True - True - immediate - word-char - 6 - 6 - textbuffer1 - - - - - 2 - - - - - 0 - - - - - True - True - - - - True - - - True - True - automatic - automatic - etched-in - - - True - True - liststore5 - False - 0 - - - Text - True - - - 7 - - - 0 - - - - - - - Time - 0.5 - - - - 1 - - - - - - - Recurrence - 0.5 - - - - 2 - - - - - - - Boot - 0.5 - - - - 3 - - - - - - - - - 0 - - - - - True - vertical - icons - False - - - True - Add alarm - toolbutton1 - True - gtk-add - - - - False - True - - - - - True - Remove alarm - toolbutton2 - True - gtk-remove - - - - False - True - - - - - False - False - end - 1 - - - - - - - True - Edit multiple alarms... - - - - - False - False - 1 - - - - - True - 5 - True - start - - - gtk-preferences - True - True - True - True - - - - False - False - 0 - True - - - - - gtk-media-play - True - True - True - True - - - - False - False - 1 - True - - - - - gtk-apply - True - True - True - True - - - - False - False - 2 - True - - - - - gtk-close - True - True - True - True - - - - False - False - 3 - True - - - - - gtk-help - True - True - True - True - - - - False - False - 4 - - - - - False - False - end - 2 - - - - - 1 - - - - - - - 5 - Plugins - mouse - 500 - 300 - appointment-new - dialog - - - - - True - True - - - True - 5 - - - True - 8 - - - True - - - True - 0.059999998658895493 - - - True - 12 - - - True - 6 - - - True - Time: - - - False - False - 0 - - - - - True - True - 2 - 0 - adjustment2 - 1 - - - False - False - 1 - - - - - True - : - - - False - False - 2 - - - - - True - True - 2 - 0 - adjustment3 - 1 - - - False - False - 3 - - - - - - - - - True - 0 - 0 - 6 - 6 - Alarm time - True - - - - - False - 0 - - - - - True - 0.070000000298023224 - - - True - 12 - - - True - False - True - - - True - - - Every: - True - True - False - True - True - - - - False - False - 0 - - - - - True - liststore3 - 1 - - - - - 0 - - - - - False - False - 1 - - - - - True - False - Day of month: - - - False - False - 2 - - - - - True - False - True - - adjustment4 - - - False - False - 3 - - - - - 0 - - - - - True - - - Sun - True - False - True - False - True - - - 0 - - - - - Mon - True - False - True - False - True - - - 1 - - - - - Tue - True - False - True - False - True - - - 2 - - - - - Wed - True - False - True - False - True - - - 3 - - - - - Thu - True - False - True - False - True - - - 4 - - - - - Fri - True - False - True - False - True - - - 5 - - - - - Sat - True - False - True - False - True - - - 6 - - - - - 1 - - - - - True - - - Cron format (m h dom mon dow): - True - True - False - True - True - radiobutton1 - - - - 0 - - - - - True - False - True - - - - 3 - 1 - - - - - 2 - - - - - - - - - Recurrs - True - True - False - True - - - - - - 1 - - - - - 3 - 0 - - - - - True - - - True - 3 - Volume - center - - - False - False - 0 - - - - - True - True - adjustment1 - True - 0 - - - 1 - - - - - False - 6 - 1 - - - - - 0 - - - - - True - - - Set computer to wake up for alarm (requires root permission) - True - True - False - True - True - - - 10 - 0 - - - - - 2 - - - - - True - 6 - - - gtk-ok - True - True - True - True - - - - False - False - end - 1 - - - - - gtk-cancel - True - True - True - True - - - - False - False - 4 - end - 0 - - - - - False - False - 6 - end - 1 - - - - - - - True - General - - - False - - - - - True - - - True - - - True - 0 - 9 - 5 - Choose voice (using festival speech tool): - - - False - False - 0 - - - - - True - True - automatic - automatic - etched-in - - - True - True - liststore4 - False - False - 0 - - - fixed - 1 - 0 - column - - - - - - - - 40 - column - - - - - - 1 - - - - - - - 400 - column - - - - 0 - - - - - - - - - 1 - - - - - True - - - Use other speech tool: - True - True - False - True - - - - False - False - 5 - 0 - - - - - True - False - True - - - - 5 - 1 - - - - - False - False - 4 - 2 - - - - - 0 - - - - - True - 6 - - - gtk-ok - True - True - True - True - - - - False - False - end - 2 - - - - - More Voices... - True - True - True - none - http://ubuntuforums.org/showthread.php?t=751169 - - - False - False - end - 1 - - - - - gtk-cancel - True - True - True - True - - - - False - False - 4 - end - 0 - - - - - False - False - 6 - end - 1 - - - - - 1 - - - - - True - Voices - - - 1 - False - - - - - True - 4 - - - True - - - True - 9 - 5 - Available Plugins: - - - False - 0 - - - - - False - False - 0 - - - - - True - True - automatic - automatic - etched-in - - - True - True - liststore2 - False - 0 - - - - Active - 1 - - - - - - 2 - - - - - - - Plugin - True - - - - 0 - - - - - - - Description - True - - - - 1 - - - - - - - - - 1 - - - - - True - 6 - - - gtk-ok - True - True - True - True - - - - False - False - end - 2 - - - - - gtk-preferences - True - False - True - True - True - - - - False - False - end - 1 - - - - - gtk-cancel - True - True - True - True - - - - False - False - 4 - end - 0 - - - - - False - False - 6 - end - 2 - - - - - 2 - - - - - True - Plugins - - - 2 - False - True - - - - - - - 450 - 400 - GDK_KEY_PRESS_MASK | GDK_STRUCTURE_MASK - Help - False - mouse - True - appointment-new - dialog - window - - - - - True - True - - - True - 6 - - - True - True - automatic - automatic - - - True - queue - adjustment6 - - - True - 10 - <b>Alarm Text</b> -In the main text window, simply type the text that you want to have spoken when the alarm runs. -<b>Hot Text</b> -Available hot-text items are listed in the list at the right in the main window. These can be inserted into the text by double-clicking on them or simply typing them into your alarm text. A blank line signifies a new paragraph. Each paragraph's hot-text items are updated immediately before the text is spoken, so if you want the $time, for instance, to reflect the current time somewhere in the middle of your text, leave a blank line before the sentence in which it occurs. -<b>Note</b> that for hot-text items dependent on data from the web to work when not logged in (see Computer Wakeup below), you need to set the wireless network(s) you connect to so that they also connect before you log in. This can be done through NetworkManager, by selecting a connection, clicking "Edit..." and checking "Available to all users." -<b>Plugins</b> -Available plugins are listed in the "Plugins" tab under "Preferences." Each plugin adds hot-text items to the list in the main window. A plugin's hot-text items are only interpreted if the plugin is active. -<b>Alarm Settings</b> -The alarm time and recurrence settings can be set under the "General" tab of "Preferences." The volume of the alarm and preferences for all hot-text items can be set as well. -<b>Computer Wakeup</b> -In the general preferences, there is a default option to wake the computer for alarms. With this checked, your computer will be set to wake up - from shutdown if your computer allows - five minutes prior to the set alarm time. The alarm will run even if you are not logged in. Note that this option requires administrative (root) permission. -<b>Multiple Alarms</b> -Each alarm's settings are completely independent. Click "Edit multiple alarms..." to create and delete alarms. - True - fill - True - - - - - - - 0 - - - - - True - - - gtk-ok - True - True - True - True - - - - False - False - 3 - end - 0 - - - - - False - False - 3 - 1 - - - - - - - True - Usage - - - False - - - - - True - - - True - 1 - 1 - <big><big><big><b>Wakeup 1.0</b></big></big></big> - -Copyright (c) David Glass 2011 -&lt;dsglass@gmail.com&gt; - -Copyright is GPLv3 or later -(/usr/share/common-licenses/GPL-3) - True - center - - - 0 - - - - - True - - - gtk-ok - True - True - True - True - - - - False - False - 3 - end - 0 - - - - - False - False - 3 - 1 - - - - - 1 - - - - - True - About - - - 1 - False - - - - - - - Type your alarm text here, inserting hot text items from the list at the right as desired. For example: - -Good morning. Today is $date. The time is $time. It is $temperature outside with $skyconditions skies, $weatherconditions, and winds $windconditions. - -Note that hot text items are loaded at the beginning of each paragraph (a new paragraph is specified by leaving one or more blank lines). Hence the time is now $time, whereas in the previous paragraph it might have been a minute earlier. - - - 110 - 5 - 10 - 10 - - - 1 - 1 - 31 - 1 - 10 - - - 30 - 59 - 1 - 10 - - - 8 - 23 - 1 - 5 - - - 5 - Wakeup - True - center-on-parent - dialog - True - False - - - - True - immediate - 2 - - - True - label13 - True - center - - - 1 - - - - - True - center - - - gtk-ok - True - True - True - True - - - - False - False - 0 - - - - - False - end - 0 - - - - - - button13 - - - - 5 - Wakeup Introduction - center-on-parent - True - dialog - True - False - - - - True - 2 - - - True - - - True - 0 - 0 - Welcome to Wakeup! Wakeup is a talking alarm clock which will set your computer to wake itself up - from shutdown if your bios allows. -The alarm is spoken from the text in the text box on the left. A list of available data items, which allow the alarm to tell you useful information, is available from installed plugins in the list on the right. Simply type them into the alarm text or double click them. To set the alarm or plugin settings, click "Preferences." For more detailed instruction, click "Help." - -Note that for any part of the alarm which depends on information from the web to work when you are not logged in, you will need to set the wireless network(s) you connect to so that they connect before you log in. This can be done through NetworkManager, by selecting a connection, clicking "Edit..." and checking "Available to all users." - fill - True - 54 - - - - False - 0 - - - - - Always show this message at startup - True - True - False - True - True - - - False - False - 4 - 1 - - - - - 1 - - - - - True - end - - - gtk-ok - True - True - True - True - - - - False - False - 0 - - - - - False - end - 0 - - - - - - button16 - - - - Alarm Text -In the main text window, simply type the text that you want to have spoken when the alarm runs. -Hot Text -Available hot-text items are listed in the list at the right in the main window. These can be inserted into the text by double-clicking on them or simply typing them into your alarm text. A blank line signifies a new paragraph. Each paragraph's hot-text items are updated immediately before the text is spoken, so if you want the $time, for instance, to reflect the current time somewhere in the middle of your text, leave a blank line before the sentence in which it occurs. -Note that for hot-text items dependent on data from the web to work when not logged in (see Computer Wakeup below), you need to set the wireless network(s) you connect to so that they also connect before you log in. This can be done through NetworkManager, by selecting a connection, clicking "Edit..." and checking "Available to all users." -Plugins -Available plugins are listed in the "Plugins" tab under "Preferences." Each plugin adds hot-text items to the list in the main window. A plugin's hot-text items are only interpreted if the plugin is active. -Alarm Settings -The alarm time and recurrence settings can be set under the "General" tab of "Preferences." The volume of the alarm and preferences for all hot-text items can be set as well. -Computer Wakeup -In the general preferences, there is a default option to wake the computer for alarms. With this checked, your computer will be set to wake up - from shutdown if your computer allows - five minutes prior to the set alarm time. The alarm will run even if you are not logged in. Note that this option requires administrative (root) permission. - - - 100 - 1 - 10 - 10 - - diff -Nru wakeup-1.1/debian/changelog wakeup-1.2/debian/changelog --- wakeup-1.1/debian/changelog 2011-11-23 03:15:10.000000000 +0100 +++ wakeup-1.2/debian/changelog 2011-12-29 18:04:54.000000000 +0100 @@ -1,3 +1,22 @@ +wakeup (1.2-0ubuntu1) precise; urgency=low + + [ David Glass ] + * New upstream release (LP: #909189). + - Changed weather source to google using python-pywapi + - Added location.py in wakeup directory as plugin helper + - Added plugin "Commands" which allows arbitrary user dataitems + - Changed HebrewCalendar to use location from location.py + - fixed problems to do with hard-coded DISPLAY variable + - Small bug fixes + * Removed all perl dependencies + + [ Julian Taylor ] + * wrap-and-sort debian/ + * convert copyright to dep5 format + * use dh_python2 instead of pysupport + + -- Julian Taylor Thu, 29 Dec 2011 18:00:04 +0100 + wakeup (1.1-0ubuntu1) precise; urgency=low * New upstream release (LP: #876649). diff -Nru wakeup-1.1/debian/control wakeup-1.2/debian/control --- wakeup-1.1/debian/control 2011-05-23 15:50:56.000000000 +0200 +++ wakeup-1.2/debian/control 2011-12-29 17:49:19.000000000 +0100 @@ -3,13 +3,28 @@ Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: David Glass -Build-Depends: cdbs (>= 0.4.62), debhelper (>= 7), python (>=2.4), python-support +Build-Depends: cdbs (>= 0.4.62), + debhelper (>= 7), + python (>= 2.6.6-3~) Standards-Version: 3.9.2 Homepage: https://launchpad.net/wakeup Package: wakeup Architecture: all -Depends: ${misc:Depends}, ${python:Depends}, weather-util, python-evolution, python-dateutil, python-vobject, python-feedparser, python-glade2, festival, perl, curl, gksu, shell-fm, mpg123 +Depends: curl, + festival, + gksu, + mpg123, + python-dateutil, + python-evolution, + python-feedparser, + python-glade2, + python-pywapi, + python-vobject, + shell-fm, + weather-util, + ${misc:Depends}, + ${python:Depends} Suggests: hebcal Description: Fully customizable and extensible talking alarm clock This package has a complete graphical front end with which a user can set an diff -Nru wakeup-1.1/debian/copyright wakeup-1.2/debian/copyright --- wakeup-1.1/debian/copyright 2011-05-19 00:00:26.000000000 +0200 +++ wakeup-1.2/debian/copyright 2011-12-29 17:47:00.000000000 +0100 @@ -1,36 +1,24 @@ -This work was created by: - - David Glass on Sun, 04 Jul 2011 15:34:46 -0400 - -Upstream Author(s): - - David Glass - -Copyright: - - - -License: - - This program, including all source files and - documentation, is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -On Debian systems, the complete text of the GNU General -Public License version 3 can be found in `/usr/share/common-licenses/GPL-3'. - -The Debian packaging is: - - Copyright (C) 2011 David Glass - -and is licensed under the GPL version 3, see above. +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Wakeup +Upstream-Contact: David Glass +Source: https://launchpad.net/wakeup/ + +Files: * +Copyright: 2011 ,David Glass +License: GPL-3+ + This program, including all source files and + documentation, is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . + . + On Debian systems, the complete text of the GNU General + Public License version 3 can be found in `/usr/share/common-licenses/GPL-3'. diff -Nru wakeup-1.1/debian/pyversions wakeup-1.2/debian/pyversions --- wakeup-1.1/debian/pyversions 2011-05-19 00:00:26.000000000 +0200 +++ wakeup-1.2/debian/pyversions 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -2.4- diff -Nru wakeup-1.1/debian/rules wakeup-1.2/debian/rules --- wakeup-1.1/debian/rules 2011-05-29 07:06:30.000000000 +0200 +++ wakeup-1.2/debian/rules 2011-12-29 17:49:51.000000000 +0100 @@ -1,6 +1,6 @@ #!/usr/bin/make -f -DEB_PYTHON_SYSTEM=pysupport +DEB_PYTHON2_MODULE_PACKAGES=wakeup include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/python-distutils.mk diff -Nru wakeup-1.1/doc/setalarm.1 wakeup-1.2/doc/setalarm.1 --- wakeup-1.1/doc/setalarm.1 2011-11-10 07:28:43.000000000 +0100 +++ wakeup-1.2/doc/setalarm.1 2011-12-27 19:48:22.000000000 +0100 @@ -1,4 +1,4 @@ -.TH setalarm 1 "Version 1.1" "Nov 2011" +.TH setalarm 1 "Version 1.2" "Dec 2011" .SH NAME setalarm \- sets the system to start and run a script at specified times. diff -Nru wakeup-1.1/doc/setalarm.1~ wakeup-1.2/doc/setalarm.1~ --- wakeup-1.1/doc/setalarm.1~ 2011-05-19 00:02:08.000000000 +0200 +++ wakeup-1.2/doc/setalarm.1~ 1970-01-01 01:00:00.000000000 +0100 @@ -1,72 +0,0 @@ -.TH setalarm 1 "Version 1.0.0" "May 2011" -.SH NAME -setalarm -\- sets the system to start and run a script at specified times. -.SH SYNOPSIS -.B setalarm -[ \-p ] [ [h]h:mm ] [ \-o offset ] [ command ] - -.B setalarm -[ \-p ] [ \-c m h dom mon dow ] [ \-o offset ] [ command ] - -.B setalarm -[ \-p ] [ \-u utc ] [ \-o offset ] [ command ] - -.B setalarm -\-d -.SH DESCRIPTION -This should be run as root, unless using the -.B \-p -option. The time to wake the computer can be given in three possible formats. -The simplest is just a time, written hh:mm or h:mm. This time is -interpreted as the earliest time in the future when that time occurs. -If the -.B \-c -option is provided, a cron\-formatted recurrence (minute hour day_of_month month -day_of_week) may follow. Special times such as "@hourly" are not accepted. -With the -.B \-u -option, the time to wake the computer should be provided in UTC format. -.P -.B command -is run at the closest time in the future that matches the recurrence rules or at -the time specified using an exact hh:mm or UTC time. For this to occur, the -computer is woken up several minutes in advance to allow for boot time. By -default, this "offset" is 5 minutes, but can be changed with the -.B \-o -option, in which case the computer is woken up -.B offset -minutes in advance. To ensure that the computer will wake given the -.B \-c -option, crontab entries are made in root's crontab to rerun -.B setalarm -as necessary. -.P -With the -.B \-p -option, -.B setalarm -will not make any changes to the system wake time or to root's crontab. Instead, -.B -setalarm -just prints the time, in UTC, at which the computer would be set to wake up with -the given input. -.P -Given the -.B \-d -option, -.B setalarm -removes all alarms. -.SH "NOTES" -.B setalarm -was created for use with -\fBwakeup\fR, a fully customizable and extensible talking alarm clock. However, it is -generally usable as a convenient wrapper for setting the system wakeup (see -http://www.mythtv.org/wiki/ACPI_Wakeup for details about ACPI wakeup) -.SH "SEE ALSO" -\fBwakeup\fR(1), \fBwakeup\-settings\fR(1), \fBcron\fR, \fBcrontab\fR -.SH AUTHOR -The program and its documentation are copyrighted (c) 2011 by David Glass -. All rights reserved. They are distributed under the terms -of the GNU General Public License version 3 or later. - diff -Nru wakeup-1.1/doc/wakeup.1 wakeup-1.2/doc/wakeup.1 --- wakeup-1.1/doc/wakeup.1 2011-11-10 07:28:49.000000000 +0100 +++ wakeup-1.2/doc/wakeup.1 2011-12-27 19:48:22.000000000 +0100 @@ -1,4 +1,4 @@ -.TH wakeup 1 "Version 1.1" "Nov 2011" +.TH wakeup 1 "Version 1.2" "Dec 2011" .SH NAME wakeup \- A talking and fully customizable alarm clock diff -Nru wakeup-1.1/doc/wakeup.1~ wakeup-1.2/doc/wakeup.1~ --- wakeup-1.1/doc/wakeup.1~ 2011-05-24 21:25:37.000000000 +0200 +++ wakeup-1.2/doc/wakeup.1~ 1970-01-01 01:00:00.000000000 +0100 @@ -1,42 +0,0 @@ -.TH wakeup 1 "Version 1.0.0" "May 2011" -.SH NAME -wakeup -\- A talking and fully customizable alarm clock -.SH SYNOPSIS -.B wakeup -username alarmID -.SH DESCRIPTION -.B wakeup -plays an alarm for the given username, whose settings for the alarm can be -modified using the -.B wakeup\-settings -utility. The user's alarm that is run is specified by alarmID, which corresponds -to the folder number in the user's wakeup settings folder ~/.wakeup. Alarm text -and all associated options should be defined by running -.B wakeup\-settings -as -\fBusername\fR. Although it is possible to modify the settings directly by -editing the files in ~/.wakeup/, this is not recommended and make cause you to -lose alarm settings. -.P -An option in -.B wakeup\-settings -allows the alarm to wake the computer (from poweroff if the bios -allows). In this case, -.B wakeup -is set by -to run from root's cron, and the alarm will run in this case even if no user is -logged in. One must log in or be logged in to stop the alarm. -.P -Note that for any part of the alarm which depends on information from the web to -work when you are not logged in, you will need to set the wireless network(s) -you connect to so that they connect before you log in. This can be done through -NetworkManager, by selecting a connection, clicking "Edit..." and checking -"Available to all users." -.SH "SEE ALSO" -\fBsetalarm\fR(1), \fBwakeup\-settings\fR(1), \fBcron\fR, \fBcrontab\fR -.SH AUTHOR -The program and its documentation are copyrighted (c) 2011 by David Glass -. All rights reserved. They are distributed under the terms -of the GNU General Public License version 3 or later. - diff -Nru wakeup-1.1/doc/wakeup-settings.1 wakeup-1.2/doc/wakeup-settings.1 --- wakeup-1.1/doc/wakeup-settings.1 2011-11-10 07:28:57.000000000 +0100 +++ wakeup-1.2/doc/wakeup-settings.1 2011-12-27 19:48:22.000000000 +0100 @@ -1,4 +1,4 @@ -.TH wakeup\-settings 1 "Version 1.1" "Nov 2011" +.TH wakeup\-settings 1 "Version 1.2" "Dec 2011" .SH NAME wakeup\-settings \- GUI frontend to configure \fBwakeup\fR, a talking and fully customizable diff -Nru wakeup-1.1/doc/wakeup-settings.1~ wakeup-1.2/doc/wakeup-settings.1~ --- wakeup-1.1/doc/wakeup-settings.1~ 2011-05-19 00:02:01.000000000 +0200 +++ wakeup-1.2/doc/wakeup-settings.1~ 1970-01-01 01:00:00.000000000 +0100 @@ -1,32 +0,0 @@ -.TH wakeup\-settings 1 "Version 1.0.0" "May 2011" -.SH NAME -wakeup\-settings -\- GUI frontend to configure \fBwakeup\fR, a talking and fully customizable -alarm clock -.SH SYNOPSIS -.B wakeup\-settings -.SH DESCRIPTION -This runs a graphical setting in which to edit the alarms run by -.B wakeup. -The time, volume, plugin settings, etc. for all alarms can be set through this -GUI. Given the "set computer to wake up for alarm" option, -.B wakeup -is set by -.B wakeup\-settings -to run from root's cron, and the alarms will run in this case even if no user is -logged in. One must log in or be logged in to stop the alarm. -Settings only pertain to the user who is running -.B wakeup\-settings. -.P -Note that for any part of the alarm which depends on information from the web to -work when you are not logged in, you will need to set the wireless network(s) -you connect to so that they connect before you log in. This can be done through -NetworkManager, by selecting a connection, clicking "Edit..." and checking -"Available to all users." -.SH "SEE ALSO" -\fBsetalarm\fR(1), \fBwakeup\fR(1), \fBcron\fR, \fBcrontab\fR -.SH AUTHOR -The program and its documentation are copyrighted (c) 2011 by David Glass -. All rights reserved. They are distributed under the terms -of the GNU General Public License version 3 or later. -