This one actually has the patch attached ;)
Index: data/themes/default.edc
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/data/themes/default.edc,v
retrieving revision 1.21
diff -r1.21 default.edc
5403c5403
< state: "faded" 0.0;
---
> state: "faded" 0.5;
5405a5406,5413
> description {
> state: "faded" 1.0;
> color: 255 255 255 255;
> }
> description {
> state: "faded" 0.0;
> color: 255 255 255 0;
> }
5443a5452,5475
> program {
> name: "pulse";
> signal: "pulse";
> source: "";
> action: STATE_SET "faded" 0.0;
> transition: LINEAR 0.5;
> after: "pulse2";
> target: "fade_clip";
> }
> program {
> name: "pulse2";
> signal: "pulse2";
> source: "";
> action: STATE_SET "faded" 1.0;
> transition: LINEAR 0.5;
> target: "fade_clip";
> }
> program {
> name: "pulsestop";
> signal: "pulsestop";
> source: "";
> action: STATE_SET "default" 0.0;
> target: "fade_clip";
> }
Index: src/modules/battery/e_mod_main.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/battery/e_mod_main.c,v
retrieving revision 1.8
diff -r1.8 e_mod_main.c
60a61
> _battery_config_menu_del(e, e->config_menu_alarm);
119a121
> E_CONFIG_VAL(D, T, alarm, INT);
128c130,131
< e->conf->poll_time = 30.0;
---
> e->conf->poll_time = 30.0;
> e->conf->alarm = 30;
133a137
> E_CONFIG_LIMIT(e->conf->alarm, 0, 60);
157a162
> /* e->alarm_triggered = 0;*/
171a177,239
> _battery_menu_alarm_10(void *data, E_Menu *m, E_Menu_Item *mi)
> {
> Battery *e;
>
> e = data;
> e->conf->alarm = 10;
> }
>
> static void
> _battery_menu_alarm_20(void *data, E_Menu *m, E_Menu_Item *mi)
> {
> Battery *e;
>
> e = data;
> e->conf->alarm = 20;
> }
>
> static void
> _battery_menu_alarm_30(void *data, E_Menu *m, E_Menu_Item *mi)
> {
> Battery *e;
>
> e = data;
> e->conf->alarm = 30;
> }
>
> static void
> _battery_menu_alarm_40(void *data, E_Menu *m, E_Menu_Item *mi)
> {
> Battery *e;
>
> e = data;
> e->conf->alarm = 40;
> }
>
> static void
> _battery_menu_alarm_50(void *data, E_Menu *m, E_Menu_Item *mi)
> {
> Battery *e;
>
> e = data;
> e->conf->alarm = 50;
> }
>
> static void
> _battery_menu_alarm_60(void *data, E_Menu *m, E_Menu_Item *mi)
> {
> Battery *e;
>
> e = data;
> e->conf->alarm = 60;
> }
>
> static void
> _battery_menu_alarm_disable(void *data, E_Menu *m, E_Menu_Item *mi)
> {
> Battery *e;
>
> e = data;
> e->conf->alarm = 0;
> }
>
> static void
239a308,360
> e_menu_item_label_set(mi, "Disable");
> e_menu_item_radio_set(mi, 1);
> e_menu_item_radio_group_set(mi, 1);
> if (e->conf->alarm == 0) e_menu_item_toggle_set(mi, 1);
> e_menu_item_callback_set(mi, _battery_menu_alarm_disable, e);
>
> mi = e_menu_item_new(mn);
> e_menu_item_label_set(mi, "10 mins");
> e_menu_item_radio_set(mi, 1);
> e_menu_item_radio_group_set(mi, 1);
> if (e->conf->alarm == 10) e_menu_item_toggle_set(mi, 1);
> e_menu_item_callback_set(mi, _battery_menu_alarm_10, e);
>
> mi = e_menu_item_new(mn);
> e_menu_item_label_set(mi, "20 mins");
> e_menu_item_radio_set(mi, 1);
> e_menu_item_radio_group_set(mi, 1);
> if (e->conf->alarm == 20) e_menu_item_toggle_set(mi, 1);
> e_menu_item_callback_set(mi, _battery_menu_alarm_20, e);
>
> mi = e_menu_item_new(mn);
> e_menu_item_label_set(mi, "30 mins");
> e_menu_item_radio_set(mi, 1);
> e_menu_item_radio_group_set(mi, 1);
> if (e->conf->alarm == 30) e_menu_item_toggle_set(mi, 1);
> e_menu_item_callback_set(mi, _battery_menu_alarm_30, e);
>
> mi = e_menu_item_new(mn);
> e_menu_item_label_set(mi, "40 mins");
> e_menu_item_radio_set(mi, 1);
> e_menu_item_radio_group_set(mi, 1);
> if (e->conf->alarm == 40) e_menu_item_toggle_set(mi, 1);
> e_menu_item_callback_set(mi, _battery_menu_alarm_40, e);
>
> mi = e_menu_item_new(mn);
> e_menu_item_label_set(mi, "50 mins");
> e_menu_item_radio_set(mi, 1);
> e_menu_item_radio_group_set(mi, 1);
> if (e->conf->alarm == 50) e_menu_item_toggle_set(mi, 1);
> e_menu_item_callback_set(mi, _battery_menu_alarm_50, e);
>
> mi = e_menu_item_new(mn);
> e_menu_item_label_set(mi, "1 hour");
> e_menu_item_radio_set(mi, 1);
> e_menu_item_radio_group_set(mi, 1);
> if (e->conf->alarm == 60) e_menu_item_toggle_set(mi, 1);
> e_menu_item_callback_set(mi, _battery_menu_alarm_60, e);
>
> e->config_menu_alarm = mn;
>
> mn = e_menu_new();
>
> mi = e_menu_item_new(mn);
273a395,398
> mi = e_menu_item_new(mn);
> e_menu_item_label_set(mi, "Set Alarm");
> e_menu_item_submenu_set(mi, e->config_menu_alarm);
>
524a650,651
>
> int alarm_triggered = ef->bat->alarm_triggered;
648a776,792
>
> if(charging)
> {
> edje_object_signal_emit(ef->bat_object, "pulsestop", "");
> ef->bat->alarm_triggered = 0;
> }
> else if(discharging && ((hours*60)+minutes) <= ef->bat->conf->alarm)
> {
> if( !(ef->bat->alarm_triggered))
> {
> e_error_dialog_show("Battery Running Low",
> "Your battery is running low.\n"
> "You may wish to switch to an AC source.");
> }
> edje_object_signal_emit(ef->bat_object, "pulse", "");
> ef->bat->alarm_triggered = 1;
> }
768c912,929
< }
---
>
> if( (hours*60+minutes) <= ef->bat->conf->alarm)
> {
> if( !(ef->bat->alarm_triggered))
> {
> e_error_dialog_show("Battery Running Low",
> "Your battery is running low.\n"
> "You may wish to switch to an AC source.");
> }
> edje_object_signal_emit(ef->bat_object, "pulse", "");
> ef->bat->alarm_triggered = 1;
> }
> else
> {
> edje_object_signal_emit(ef->bat_object, "pulsestop", "");
> ef->bat->alarm_triggered = 0;
> }
> }
Index: src/modules/battery/e_mod_main.h
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/battery/e_mod_main.h,v
retrieving revision 1.3
diff -r1.3 e_mod_main.h
16a17
> int alarm;
21a23
> E_Menu *config_menu_alarm;
25a28
> int alarm_triggered;