func NewPower() *Power { p := &Power{} p.coreSettings = gio.NewSettings("com.deepin.daemon.power") p.PowerButtonAction = property.NewGSettingsEnumProperty(p, "PowerButtonAction", p.coreSettings, "button-power") p.LidClosedAction = property.NewGSettingsEnumProperty(p, "LidClosedAction", p.coreSettings, "lid-close") p.LockWhenActive = property.NewGSettingsBoolProperty(p, "LockWhenActive", p.coreSettings, "lock-enabled") var err error if p.screensaver, err = ss.NewScreenSaver("org.freedesktop.ScreenSaver", "/org/freedesktop/ScreenSaver"); err != nil { logger.Warning("Can't build org.freedesktop.ScreenSaver:", err) } p.initPlan() p.initUpower() p.initEventHandle() p.LinePowerPlan = property.NewGSettingsEnumProperty(p, "LinePowerPlan", p.coreSettings, "ac-plan") p.LinePowerPlan.ConnectChanged(func() { p.setLinePowerPlan(p.LinePowerPlan.Get()) }) p.setLinePowerPlan(p.LinePowerPlan.Get()) p.BatteryPlan = property.NewGSettingsEnumProperty(p, "BatteryPlan", p.coreSettings, "battery-plan") p.BatteryPlan.ConnectChanged(func() { p.setBatteryPlan(p.BatteryPlan.Get()) }) p.setBatteryPlan(p.BatteryPlan.Get()) return p }
func (wa *fullScreenWorkaround) inhibit(target, cmdline string) { wa.isHintingTarget = true if ss, err := screensaver.NewScreenSaver("org.freedesktop.ScreenSaver", "/org/freedesktop/ScreenSaver"); err == nil { var hit func() hit = func() { time.AfterFunc(time.Second*2, func() { if wa.isHintingTarget { ss.SimulateUserActivity() hit() } }) } hit() logger.Debug("Inhibit Hight Performance :", "TARGET:", target, "CMDLINE:", cmdline) } else { logger.Error("ERRRR:", err) } }