var AppIndicator3 = GNode.importNS('AppIndicator3');
var CronJob = require('cron').CronJob;
var LunarCalendar = require('lunar-calendar-zh');
+var DBus = require('dbus-native');
/* setup indicator object */
GNode.startLoop();
Gtk.init(null);
var indicator = AppIndicator3.Indicator.new(
"lunar-indicator",
- __dirname + '/鼠.svg',
+ __dirname + '/icons/鼠.svg',
AppIndicator3.IndicatorCategory.APPLICATION_STATUS
);
indicator.set_status(AppIndicator3.IndicatorStatus.ACTIVE);
long_date += '\n' + lunar.hour + '時';
/* output to indicator */
- indicator.set_icon(__dirname + '/' + lunar.zodiac + '.svg');
+ indicator.set_icon(__dirname + '/icons/' + lunar.zodiac + '.svg');
indicator.set_label(compact_date, '');
item.set_label(long_date);
}
});
update_indicator();
+
+/* Detect resume from suspend and update date/time */
+var bus = DBus.systemBus();
+var service = bus.getService('org.freedesktop.login1');
+service.getInterface(
+ '/org/freedesktop/login1',
+ 'org.freedesktop.login1.Manager',
+ function(err, nm) {
+ nm.addListener('PrepareForSleep', function(arg) {
+ // PrepareForSleep returns false when resuming from suspend
+ if(!arg) {
+ job.stop(); // force cronjob to recalculate time
+ job.start();
+ update_indicator();
+ }
+ });
+ }
+);
+
Gtk.main();