diff --git a/src/adormit/adormit.go b/src/adormit/adormit.go index 760f9c0fdc21d0c788e7697e1674cb41d92a3c71..5224658d68a96d15a184c99a07e53132283800ce 100644 --- a/src/adormit/adormit.go +++ b/src/adormit/adormit.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/godbus/dbus" "github.com/gotk3/gotk3/glib" + "os/exec" "reflect" "time" ) @@ -21,6 +22,23 @@ type Timer struct { start time.Time duration time.Duration end time.Time + command string + args []string +} + +func (t Timer) Countdown() { + timer1 := time.NewTimer(t.duration) + <-timer1.C + fmt.Println("Timer completed") + t.end = time.Now() + cmd := exec.Command(t.command, t.args...) + cmd.Run() +} + +func DemoTimer() { + args := []string{"-i", "clock", "Timer over!", "adormit"} + t := Timer{duration: time.Second * 1, command: "notify-send", args: args} + t.Countdown() } func MakeAlarm() { @@ -29,20 +47,18 @@ func MakeAlarm() { } func SetAlarm(alarm Alarm) { - var insert []map[string]interface{} - // insert := make(map[string]dbus.Variant) - a := make(map[string]interface{}) - a["name"] = alarm.name - a["active"] = alarm.active - // existing_alarms := GetGnomeAlarms() - // total_update := make([]map[string]dbus.Variant, 10) - // total_update = append(total_update, insert) - // total_update = append(total_update, existing_alarms) - // total_update[2] = insert + var insert []map[string]dbus.Variant + a := make(map[string]dbus.Variant) + a["name"] = dbus.MakeVariant(alarm.name) + a["active"] = dbus.MakeVariant(alarm.active) + existing_alarms := GetGnomeAlarms() insert = append(insert, a) + for _, v := range existing_alarms { + insert = append(insert, v) + } + // insert = append(insert, get_v().([]interface{})[0].(map[string]interface{})) sig, _ := dbus.ParseSignature("aa{sv}") existing_alarms_var := dbus.MakeVariantWithSignature(insert, sig) - fmt.Println(existing_alarms_var) } @@ -55,6 +71,14 @@ func debug(ty interface{}) { } } +func get_v() interface{} { + settings := glib.SettingsNew("org.gnome.clocks") + alarms := settings.GetValue("alarms") + sig, _ := dbus.ParseSignature("aa{sv}") + v, _ := dbus.ParseVariant(alarms.String(), sig) + return v.Value() +} + func GetGnomeAlarms() []map[string]dbus.Variant { //gsettings get org.gnome.clocks alarms settings := glib.SettingsNew("org.gnome.clocks") diff --git a/src/cmd/root.go b/src/cmd/root.go index 7296819be743526e062e1d538afc1b2e7d610c02..3c035d4109d2b5a952e0689b256ad328b7923737 100644 --- a/src/cmd/root.go +++ b/src/cmd/root.go @@ -12,6 +12,7 @@ var RootCmd = &cobra.Command{ // cmd.Help() adormit.GetGnomeAlarms() adormit.MakeAlarm() + adormit.DemoTimer() }, }