diff --git a/cmd/hyprpanel-client/idle_inhibitor.go b/cmd/hyprpanel-client/idle_inhibitor.go new file mode 100644 index 0000000..55e337b --- /dev/null +++ b/cmd/hyprpanel-client/idle_inhibitor.go @@ -0,0 +1,364 @@ +package main + +import ( + "encoding/xml" + "errors" + + "github.com/jwijenbergh/puregotk/v4/gdk" + "github.com/jwijenbergh/puregotk/v4/gio" + "github.com/jwijenbergh/puregotk/v4/glib" + "github.com/jwijenbergh/puregotk/v4/gtk" + configv1 "github.com/pdf/hyprpanel/proto/hyprpanel/config/v1" + eventv1 "github.com/pdf/hyprpanel/proto/hyprpanel/event/v1" + modulev1 "github.com/pdf/hyprpanel/proto/hyprpanel/module/v1" + "github.com/pdf/hyprpanel/style" +) + +const ( + inhibitTargetIdleLabel = `Lock` + inhibitTargetSleepLabel = `Suspend` + inhibitTargetShutdownLabel = `Shutdown` + idleInhibitorActionNamespace = `idleinhibitor` +) + +type idleInhibitor struct { + *refTracker + *api + cfg *modulev1.IdleInhibitor + eventCh chan *eventv1.Event + quitCh chan struct{} + + actions map[eventv1.InhibitTarget]*gio.SimpleAction + active bool + icon *gtk.Image + iconContainer *gtk.CenterBox + container *gtk.Box + menuRefs *refTracker + wrapper *gtk.Overlay + actionGroup *gio.SimpleActionGroup + menu *gtk.PopoverMenu +} + +func (i *idleInhibitor) build(container *gtk.Box) error { + i.wrapper = gtk.NewOverlay() + i.AddRef(i.wrapper.Unref) + i.wrapper.SetHalign(gtk.AlignCenterValue) + i.wrapper.SetValign(gtk.AlignCenterValue) + i.wrapper.SetCanFocus(false) + i.wrapper.SetFocusOnClick(false) + + i.container = gtk.NewBox(i.orientation, 0) + i.AddRef(i.container.Unref) + i.container.SetName(style.IdleInhibitorID) + i.container.AddCssClass(style.ModuleClass) + + container.Append(&i.wrapper.Widget) + + icon, err := createIcon( + `inhibit`, + int(i.cfg.IconSize), + i.cfg.IconSymbolic, + nil, + ) + if err != nil { + return err + } + i.icon = icon + i.iconContainer = gtk.NewCenterBox() + i.AddRef(i.iconContainer.Unref) + i.iconContainer.SetCenterWidget(&i.icon.Widget) + i.container.SetTooltipMarkup(`Idle inhibitor is inactive`) + i.container.Append(&i.iconContainer.Widget) + i.wrapper.SetChild(&i.container.Widget) + + if err := i.buildMenu(); err != nil { + return err + } + + clickCb := func(ctrl gtk.GestureClick, nPress int, x, y float64) { + switch ctrl.GetCurrentButton() { + case uint(gdk.BUTTON_PRIMARY): + defaultTarget := eventv1.InhibitTarget_INHIBIT_TARGET_IDLE + if v := i.cfg.DefaultTarget; v > 1 { + defaultTarget = eventv1.InhibitTarget(v) + } + if !i.active { + if err := i.host.IdleInhibitorInhibit(defaultTarget); err != nil { + log.Warn(`error uninhibiting target`, defaultTarget, err) + } + return + } + for t, a := range i.actions { + if a.GetState().GetBoolean() { + if err := i.host.IdleInhibitorUninhibit(t); err != nil { + log.Warn(`error uninhibiting target`, t, err) + } + } + } + case uint(gdk.BUTTON_SECONDARY): + if i.menu != nil { + i.menu.SetPointingTo(nil) + i.menu.Popup() + } + } + } + + i.AddRef(func() { + unrefCallback(&clickCb) + }) + clickController := gtk.NewGestureClick() + i.AddRef(clickController.Unref) + clickController.SetButton(0) + clickController.ConnectReleased(&clickCb) + i.container.AddController(&clickController.EventController) + + go i.watch() + + return nil +} + +func (i *idleInhibitor) events() chan<- *eventv1.Event { + return i.eventCh +} + +func (i *idleInhibitor) close(container *gtk.Box) { + defer i.Unref() + container.Remove(&i.container.Widget) + if i.icon != nil { + i.icon.Unref() + } +} + +func (i *idleInhibitor) watch() { + for { + select { + case <-i.quitCh: + return + default: + select { + case <-i.quitCh: + return + case evt := <-i.eventCh: + switch evt.Kind { + case eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT, eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT: + data := &eventv1.IdleInhibitorValue{} + if !evt.Data.MessageIs(data) { + log.Warn(`Invalid event`, `module`, style.AudioID, `evt`, evt) + continue + } + if err := evt.Data.UnmarshalTo(data); err != nil { + log.Warn(`Invalid event`, `module`, style.AudioID, `err`, err, `evt`, evt) + continue + } + var cb glib.SourceFunc + cb = func(uintptr) bool { + defer unrefCallback(&cb) + if evt.Kind == eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT { + if err := i.inhibit(data.Target); err != nil { + log.Warn(`Failed to toggle idle inhibitor`, `err`, err) + } + } else { + if err := i.uninhibit(data.Target); err != nil { + log.Warn(`Failed to toggle idle inhibitor`, `err`, err) + } + } + return false + } + glib.IdleAdd(&cb, 0) + } + } + } + } + +} + +func (i *idleInhibitor) inhibit(target eventv1.InhibitTarget) error { + if i.icon != nil { + old := i.icon + defer old.Unref() + i.icon = nil + } + + icon, err := createIcon( + `inhibit-active`, + int(i.cfg.IconSize), + i.cfg.IconSymbolic, + nil, + ) + if err != nil { + return err + } + i.container.SetTooltipMarkup(`Idle inhibitor is active`) + i.icon = icon + i.iconContainer.SetCenterWidget(&i.icon.Widget) + i.actions[target].SetState(glib.NewVariantBoolean(true)) + i.active = true + return nil +} + +func (i *idleInhibitor) uninhibit(target eventv1.InhibitTarget) error { + toggleIcon := true + for t, a := range i.actions { + active := a.GetState().GetBoolean() + if t == target && active { + a.SetState(glib.NewVariantBoolean(false)) + } else if active { + toggleIcon = false + } + } + + if !toggleIcon { + return nil + } + + if i.icon != nil { + old := i.icon + defer old.Unref() + i.icon = nil + } + icon, err := createIcon( + `inhibit`, + int(i.cfg.IconSize), + i.cfg.IconSymbolic, + nil, + ) + if err != nil { + return err + } + i.container.SetTooltipMarkup(`Idle inhibitor is inactive`) + i.icon = icon + i.iconContainer.SetCenterWidget(&i.icon.Widget) + i.actions[target].SetState(glib.NewVariantBoolean(false)) + i.active = false + return nil +} + +func (i *idleInhibitor) buildMenu() error { + i.actionGroup = gio.NewSimpleActionGroup() + i.AddRef(i.actionGroup.Unref) + id, menuXML, err := i.buildMenuXML() + if err != nil { + return err + } + + builder := gtk.NewBuilderFromString(string(menuXML), len(menuXML)) + defer builder.Unref() + menuObj := builder.GetObject(id) + if menuObj == nil { + return errors.New(`menu object not found`) + } + defer menuObj.Unref() + if menuObj != nil { + menuModel := &gio.MenuModel{} + menuObj.Cast(menuModel) + i.menu = gtk.NewPopoverMenuFromModel(menuModel) + i.AddRef(i.menu.Unref) + switch i.panelCfg.Edge { + case configv1.Edge_EDGE_TOP: + i.menu.SetPosition(gtk.PosBottomValue) + case configv1.Edge_EDGE_RIGHT: + i.menu.SetPosition(gtk.PosLeftValue) + case configv1.Edge_EDGE_BOTTOM: + i.menu.SetPosition(gtk.PosTopValue) + case configv1.Edge_EDGE_LEFT: + i.menu.SetPosition(gtk.PosRightValue) + } + } + + i.menu.SetHasArrow(true) + i.menu.SetAutohide(true) + i.menu.SetParent(&i.container.Widget) + i.container.InsertActionGroup(idleInhibitorActionNamespace, i.actionGroup) + + return nil +} + +func (i *idleInhibitor) buildMenuXML() (string, []byte, error) { + x := menuXMLInterface{ + Menu: &menuXMLMenu{ + ID: `idle-inhibitor-menu`, + }, + } + section := new(menuXMLMenuSection) + targets := []struct { + value eventv1.InhibitTarget + label string + }{ + { + value: eventv1.InhibitTarget_INHIBIT_TARGET_IDLE, + label: `Lock`, + }, + { + value: eventv1.InhibitTarget_INHIBIT_TARGET_SLEEP, + label: `Suspend`, + }, + { + value: eventv1.InhibitTarget_INHIBIT_TARGET_SHUTDOWN, + label: `Shutdown`, + }, + } + for _, t := range targets { + section.Items = append(section.Items, &menuXMLItem{ + Attributes: []*menuXMLAttribute{ + { + Name: `label`, + Value: t.label, + }, + { + Name: `action`, + Value: idleInhibitorActionNamespace + `.` + t.label, + }, + }, + }) + cb := func(a gio.SimpleAction, param uintptr) { + enabled := a.GetState().GetBoolean() + if enabled { + if err := i.host.IdleInhibitorUninhibit(t.value); err != nil { + log.Warn(`Failed toggling idle inhibitor`, `target`, t, `err`, err) + return + } + } else { + if err := i.host.IdleInhibitorInhibit(t.value); err != nil { + log.Warn(`Failed toggling idle inhibitor`, `target`, t, `err`, err) + return + } + } + } + act := gio.NewSimpleActionStateful(t.label, nil, glib.NewVariantBoolean(false)) + act.ConnectActivate(&cb) + i.actionGroup.AddAction(act) + i.actions[t.value] = act + i.menuRefs.AddRef(func() { + unrefCallback(&cb) + }) + } + + x.Menu.Sections = append(x.Menu.Sections, section) + + if len(x.Menu.Sections) == 0 { + return ``, nil, errors.New(`empty menu`) + } + + b, err := xml.Marshal(x) + return x.Menu.ID, b, err +} + +func newIdleInhibitor(cfg *modulev1.IdleInhibitor, a *api) *idleInhibitor { + i := &idleInhibitor{ + cfg: cfg, + refTracker: newRefTracker(), + api: a, + eventCh: make(chan *eventv1.Event), + quitCh: make(chan struct{}), + menuRefs: newRefTracker(), + actions: make(map[eventv1.InhibitTarget]*gio.SimpleAction), + } + i.AddRef(func() { + close(i.quitCh) + close(i.eventCh) + if i.menuRefs != nil { + i.menuRefs.Unref() + } + }) + return i +} diff --git a/cmd/hyprpanel-client/panel.go b/cmd/hyprpanel-client/panel.go index 42f19e3..3d92629 100644 --- a/cmd/hyprpanel-client/panel.go +++ b/cmd/hyprpanel-client/panel.go @@ -218,6 +218,10 @@ func (p *panel) build() error { for _, modCfg := range p.panelCfg.Modules { modCfg := modCfg switch modCfg.Kind.(type) { + case *modulev1.Module_IdleInhibitor: + cfg := modCfg.GetIdleInhibitor() + mod := newIdleInhibitor(cfg, p.api) + p.modules = append(p.modules, mod) case *modulev1.Module_Pager: cfg := modCfg.GetPager() mod := newPager(cfg, p.api) diff --git a/cmd/hyprpanel-client/taskbar_item.go b/cmd/hyprpanel-client/taskbar_item.go index 5197d87..237ba28 100644 --- a/cmd/hyprpanel-client/taskbar_item.go +++ b/cmd/hyprpanel-client/taskbar_item.go @@ -333,7 +333,7 @@ func (i *taskbarItem) launchIndicator() { spinner.Start() i.indicator.Append(&spinner.Widget) go func() { - <-time.After(7 * time.Second) + <-time.After(3 * time.Second) var cb glib.SourceFunc cb = func(uintptr) bool { @@ -347,13 +347,13 @@ func (i *taskbarItem) launchIndicator() { } func (i *taskbarItem) updateIndicator() { - if i.cfg.HideIndicators { - return - } for c := i.indicator.GetLastChild(); c != nil; c = i.indicator.GetFirstChild() { i.indicator.Remove(c) c.Unref() } + if i.cfg.HideIndicators { + return + } for n := range i.sortedClients { c := gtk.NewBox(i.orientation, 0) diff --git a/cmd/hyprpanel/host.go b/cmd/hyprpanel/host.go index 8ec4814..cb7f46b 100644 --- a/cmd/hyprpanel/host.go +++ b/cmd/hyprpanel/host.go @@ -176,6 +176,23 @@ func (h *host) BrightnessAdjust(devName string, direction eventv1.Direction) err return h.dbus.Brightness().Adjust(devName, direction) } +func (h *host) IdleInhibitorInhibit(target eventv1.InhibitTarget) error { + if h.cfg.Dbus == nil || !h.cfg.Dbus.Enabled || h.cfg.Dbus.IdleInhibitor == nil || !h.cfg.Dbus.IdleInhibitor.Enabled { + return errDisabled + } + + return h.dbus.IdleInhibitor().Inhibit(target) +} + +func (h *host) IdleInhibitorUninhibit(target eventv1.InhibitTarget) error { + if h.cfg.Dbus == nil || !h.cfg.Dbus.Enabled || h.cfg.Dbus.IdleInhibitor == nil || !h.cfg.Dbus.IdleInhibitor.Enabled { + return errDisabled + } + + h.dbus.IdleInhibitor().Uninhibit(target) + return nil +} + func (h *host) CaptureFrame(address uint64, width, height int32) (*hyprpanelv1.ImageNRGBA, error) { if h.wl == nil { return nil, fmt.Errorf(`wl app not available`) diff --git a/config/default.json b/config/default.json index c2af22e..49c3aa9 100644 --- a/config/default.json +++ b/config/default.json @@ -27,6 +27,9 @@ "low_command": "", "critical_command": "", "hud_notifications": true + }, + "idle_inhibitor": { + "enabled": true } }, "audio": { @@ -137,6 +140,19 @@ "expand": false } }, + { + "idle_inhibitor": { + "icon_size": 24, + "icon_symbolic": true, + "default_target": 1 + } + }, + { + "spacer": { + "size": 16, + "expand": false + } + }, { "audio": { "icon_size": 32, diff --git a/go.mod b/go.mod index d348444..cc5919f 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( golang.org/x/sync v0.16.0 golang.org/x/sys v0.35.0 google.golang.org/grpc v1.75.0 - google.golang.org/protobuf v1.36.8 + google.golang.org/protobuf v1.36.10 ) require ( diff --git a/go.sum b/go.sum index 2d2a93f..b57f907 100644 --- a/go.sum +++ b/go.sum @@ -116,8 +116,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 h1: google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1/go.mod h1:GmFNa4BdJZ2a8G+wCe9Bg3wwThLrJun751XstdJt5Og= google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= -google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= -google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= diff --git a/internal/dbus/dbus.go b/internal/dbus/dbus.go index 584debc..1243323 100644 --- a/internal/dbus/dbus.go +++ b/internal/dbus/dbus.go @@ -43,6 +43,12 @@ type Brightness interface { Adjust(devName string, direction eventv1.Direction) error } +// IdleInhibitor DBUS API, may return nil if IdleInhibitor is disabled. +type IdleInhibitor interface { + Inhibit(target eventv1.InhibitTarget) error + Uninhibit(target eventv1.InhibitTarget) error +} + // Client for DBUS. type Client struct { cfg *configv1.Config_DBUS @@ -56,6 +62,7 @@ type Client struct { notifications *notifications brightness *brightness power *power + idleInhibitor *idleInhibitor } // Systray API. @@ -73,6 +80,11 @@ func (c *Client) Brightness() Brightness { return c.brightness } +// IdleInhibitor API. +func (c *Client) IdleInhibitor() IdleInhibitor { + return c.idleInhibitor +} + // Events channel will deliver events from DBUS. func (c *Client) Events() <-chan *eventv1.Event { return c.eventCh @@ -86,6 +98,11 @@ func (c *Client) Close() error { c.log.Warn(`Failed closing SNW session`, `err`, err) } } + if c.idleInhibitor != nil { + if err := c.idleInhibitor.close(); err != nil { + c.log.Warn(`Failed closing IdleInhibitor session`, `err`, err) + } + } if c.notifications != nil { if err := c.notifications.close(); err != nil { c.log.Warn(`Failed closing Notifications session`, `err`, err) @@ -155,6 +172,12 @@ func New(cfg *configv1.Config_DBUS, logger hclog.Logger) (*Client, <-chan *event } } + if cfg.IdleInhibitor.Enabled { + if c.idleInhibitor, err = newIdleInhibitor(systemConn, logger, c.eventCh, cfg.IdleInhibitor); err != nil { + return nil, nil, err + } + } + if err := c.init(); err != nil { return nil, nil, err } diff --git a/internal/dbus/fdo.go b/internal/dbus/fdo.go index 8482922..fb65dfa 100644 --- a/internal/dbus/fdo.go +++ b/internal/dbus/fdo.go @@ -18,9 +18,14 @@ const ( fdoPropertiesMemberPropertiesChanged = `PropertiesChanged` fdoPropertiesSignalPropertiesChanged = fdoPropertiesName + `.` + fdoPropertiesMemberPropertiesChanged - fdoLogindName = `org.freedesktop.login1` + fdoLogindName = `org.freedesktop.login1` + fdoLogindPath = `/org/freedesktop/login1` + + fdoLogindManagerName = fdoLogindName + `.Manager` + fdoLogindManagerMethodInhibit = fdoLogindManagerName + `.Inhibit` + fdoLogindSessionName = fdoLogindName + `.Session` - fdoLogindSessionPath = `/org/freedesktop/login1/session/auto` + fdoLogindSessionPath = fdoLogindPath + `/session/auto` fdoLogindSessionMethodSetBrightness = fdoLogindSessionName + `.SetBrightness` fdoSystemdName = `org.freedesktop.systemd1` @@ -46,6 +51,10 @@ const ( fdoUPowerDevicePropertyEnergy = `Energy` fdoUPowerDevicePropertyEnergyEmpty = `EnergyEmpty` fdoUPowerDevicePropertyEnergyFull = `EnergyFull` + + fdoIdleInhibitorPropertyShutdown = `shutdown` + fdoIdleInhibitorPropertySleep = `sleep` + fdoIdleInhibitorPropertyIdle = `idle` ) func systemdUnitToObjectPath(unitName string) (dbus.ObjectPath, error) { diff --git a/internal/dbus/idle_inhibitor.go b/internal/dbus/idle_inhibitor.go new file mode 100644 index 0000000..bf2618b --- /dev/null +++ b/internal/dbus/idle_inhibitor.go @@ -0,0 +1,229 @@ +package dbus + +import ( + "fmt" + "strings" + "sync" + "syscall" + + "github.com/godbus/dbus/v5" + "github.com/hashicorp/go-hclog" + configv1 "github.com/pdf/hyprpanel/proto/hyprpanel/config/v1" + eventv1 "github.com/pdf/hyprpanel/proto/hyprpanel/event/v1" + "google.golang.org/protobuf/types/known/anypb" +) + +type idleInhibitor struct { + conn *dbus.Conn + log hclog.Logger + cfg *configv1.Config_DBUS_IdleInhibitor + + mu sync.RWMutex + targets map[eventv1.InhibitTarget]dbus.UnixFD + eventCh chan *eventv1.Event + signals chan *dbus.Signal + readyCh chan struct{} + quitCh chan struct{} +} + +func (i *idleInhibitor) init() error { + go i.watch() + i.readyCh <- struct{}{} + return nil +} + +func (i *idleInhibitor) Inhibit(target eventv1.InhibitTarget) error { + var what string + switch target { + case eventv1.InhibitTarget_INHIBIT_TARGET_SHUTDOWN: + what = fdoIdleInhibitorPropertyShutdown + case eventv1.InhibitTarget_INHIBIT_TARGET_SLEEP: + what = fdoIdleInhibitorPropertySleep + case eventv1.InhibitTarget_INHIBIT_TARGET_IDLE: + what = fdoIdleInhibitorPropertyIdle + default: + return fmt.Errorf(`invalid inhibit target: %v`, target) + } + var fd dbus.UnixFD + obj := i.conn.Object(fdoLogindName, fdoLogindPath) + if err := obj.Call( + fdoLogindManagerMethodInhibit, + 0, + what, + `hyprpanel`, + `user request`, + `block`, + ).Store(&fd); err != nil { + return err + } + i.mu.Lock() + defer i.mu.Unlock() + i.targets[target] = fd + return nil +} + +func (i *idleInhibitor) Uninhibit(t eventv1.InhibitTarget) error { + i.mu.Lock() + defer i.mu.Unlock() + if i.targets[t] == 0 { + return nil + } else if fd, ok := i.targets[t]; ok { + if err := syscall.Close(int(fd)); err != nil { + return err + } + i.targets[t] = 0 + return nil + } + return fmt.Errorf(`could not find file descriptior for target: %d`, t) +} + +func (i *idleInhibitor) watch() { + select { + case <-i.quitCh: + return + default: + } + for { + select { + case <-i.readyCh: + close(i.readyCh) + i.readyCh = nil + continue + case <-i.quitCh: + return + case sig, ok := <-i.signals: + if !ok { + return + } + switch sig.Name { + case fdoPropertiesSignalPropertiesChanged: + kind, ok := sig.Body[0].(string) + if !ok { + i.log.Warn(`Failed asserting DBUS PropertiesChanged body kind`, `kind`, sig.Body[0]) + continue + } + if kind != fdoLogindManagerName { + continue + } + + properties, ok := sig.Body[1].(map[string]dbus.Variant) + if !ok { + i.log.Warn(`Failed asserting DBUS PropertiesChanged body properties`, `properties`, sig.Body[1]) + continue + } + if len(properties) == 0 { + continue + } + pathVar, ok := properties[`BlockInhibited`] + if !ok { + continue + } + var targets string + if err := pathVar.Store(&targets); err != nil { + i.log.Warn(`Failed parsing SysFSPath`, `pathVar`, pathVar, `err`, err) + continue + } + + if err := i.updateTargets(targets); err != nil { + i.log.Warn(`error updating targets: %v`, err) + } + } + } + } +} + +func (i *idleInhibitor) updateTargets(raw string) error { + active := map[eventv1.InhibitTarget]bool{} + for _, part := range strings.Split(raw, ":") { + switch part { + case fdoIdleInhibitorPropertyShutdown: + active[eventv1.InhibitTarget_INHIBIT_TARGET_SHUTDOWN] = true + case fdoIdleInhibitorPropertySleep: + active[eventv1.InhibitTarget_INHIBIT_TARGET_SLEEP] = true + case fdoIdleInhibitorPropertyIdle: + active[eventv1.InhibitTarget_INHIBIT_TARGET_IDLE] = true + } + } + + i.mu.RLock() + defer i.mu.RUnlock() + for t := range i.targets { + if active[t] { + i.eventCh <- i.mustEvent(t, true) + } else { + i.eventCh <- i.mustEvent(t, false) + } + } + + return nil +} + +func (i *idleInhibitor) mustEvent(t eventv1.InhibitTarget, enable bool) *eventv1.Event { + v := &eventv1.IdleInhibitorValue{ + Target: t, + } + data, err := anypb.New(v) + if err != nil { + i.log.Error(`error creating event`, err) + return nil + } + kind := eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT + if enable { + kind = eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT + } + return &eventv1.Event{ + Kind: kind, + Data: data, + } +} + +func newIdleInhibitor(conn *dbus.Conn, logger hclog.Logger, eventCh chan *eventv1.Event, cfg *configv1.Config_DBUS_IdleInhibitor) (*idleInhibitor, error) { + i := &idleInhibitor{ + conn: conn, + log: logger, + cfg: cfg, + eventCh: eventCh, + signals: make(chan *dbus.Signal), + readyCh: make(chan struct{}), + quitCh: make(chan struct{}), + mu: sync.RWMutex{}, + targets: map[eventv1.InhibitTarget]dbus.UnixFD{ + eventv1.InhibitTarget_INHIBIT_TARGET_IDLE: 0, + eventv1.InhibitTarget_INHIBIT_TARGET_SLEEP: 0, + eventv1.InhibitTarget_INHIBIT_TARGET_SHUTDOWN: 0, + }, + } + + if err := i.conn.AddMatchSignal( + dbus.WithMatchInterface(fdoPropertiesName), + dbus.WithMatchObjectPath(fdoLogindPath), + ); err != nil { + return nil, err + } + + i.conn.Signal(i.signals) + if err := i.init(); err != nil { + return nil, err + } + return i, nil +} + +func (i *idleInhibitor) close() error { + select { + case <-i.quitCh: + default: + } + close(i.quitCh) + + i.mu.Lock() + defer i.mu.Unlock() + + for t, fd := range i.targets { + if fd != 0 { + _ = syscall.Close(int(fd)) + i.targets[t] = 0 + } + } + + return nil +} diff --git a/internal/panelplugin/grpc.go b/internal/panelplugin/grpc.go index 5893af3..9dc3074 100644 --- a/internal/panelplugin/grpc.go +++ b/internal/panelplugin/grpc.go @@ -108,6 +108,24 @@ type HostGRPCClient struct { client hyprpanelv1.HostServiceClient } +func (c *HostGRPCClient) IdleInhibitorInhibit(target eventv1.InhibitTarget) error { + if _, err := c.client.IdleInhibitorInhibit(context.Background(), &hyprpanelv1.HostServiceIdleInhibitorRequest{ + Target: target, + }); err != nil { + return err + } + return nil +} + +func (c *HostGRPCClient) IdleInhibitorUninhibit(target eventv1.InhibitTarget) error { + if _, err := c.client.IdleInhibitorUninhibit(context.Background(), &hyprpanelv1.HostServiceIdleInhibitorRequest{ + Target: target, + }); err != nil { + return err + } + return nil +} + // Exec implmenetation. func (c *HostGRPCClient) Exec(action *hyprpanelv1.AppInfo_Action) error { _, err := c.client.Exec(context.Background(), &hyprpanelv1.HostServiceExecRequest{ @@ -269,6 +287,22 @@ type HostGRPCServer struct { Impl Host } +func (s *HostGRPCServer) IdleInhibitorInhibit(ctx context.Context, req *hyprpanelv1.HostServiceIdleInhibitorRequest) (*hyprpanelv1.HostServiceIdleInhibitorResponse, error) { + err := s.Impl.IdleInhibitorInhibit(req.Target) + if err != nil { + return &hyprpanelv1.HostServiceIdleInhibitorResponse{}, err + } + return &hyprpanelv1.HostServiceIdleInhibitorResponse{}, nil +} + +func (s *HostGRPCServer) IdleInhibitorUninhibit(ctx context.Context, req *hyprpanelv1.HostServiceIdleInhibitorRequest) (*hyprpanelv1.HostServiceIdleInhibitorResponse, error) { + err := s.Impl.IdleInhibitorUninhibit(req.Target) + if err != nil { + return &hyprpanelv1.HostServiceIdleInhibitorResponse{}, err + } + return &hyprpanelv1.HostServiceIdleInhibitorResponse{}, nil +} + // Exec implementation. func (s *HostGRPCServer) Exec(_ context.Context, req *hyprpanelv1.HostServiceExecRequest) (*hyprpanelv1.HostServiceExecResponse, error) { err := s.Impl.Exec(req.Action) diff --git a/internal/panelplugin/interface.go b/internal/panelplugin/interface.go index dceec6b..f1b9c69 100644 --- a/internal/panelplugin/interface.go +++ b/internal/panelplugin/interface.go @@ -49,6 +49,8 @@ type Host interface { AudioSourceMuteToggle(id string) error BrightnessAdjust(devName string, direction eventv1.Direction) error CaptureFrame(address uint64, width, height int32) (*hyprpanelv1.ImageNRGBA, error) + IdleInhibitorInhibit(target eventv1.InhibitTarget) error + IdleInhibitorUninhibit(target eventv1.InhibitTarget) error } // Panel interface. diff --git a/proto/doc/hyprpanel/config/v1/doc.md b/proto/doc/hyprpanel/config/v1/doc.md index 3fafdfa..227e2e5 100644 --- a/proto/doc/hyprpanel/config/v1/doc.md +++ b/proto/doc/hyprpanel/config/v1/doc.md @@ -8,6 +8,7 @@ - [Config.Audio](#hyprpanel-config-v1-Config-Audio) - [Config.DBUS](#hyprpanel-config-v1-Config-DBUS) - [Config.DBUS.Brightness](#hyprpanel-config-v1-Config-DBUS-Brightness) + - [Config.DBUS.IdleInhibitor](#hyprpanel-config-v1-Config-DBUS-IdleInhibitor) - [Config.DBUS.Notifications](#hyprpanel-config-v1-Config-DBUS-Notifications) - [Config.DBUS.Power](#hyprpanel-config-v1-Config-DBUS-Power) - [Config.DBUS.Shortcuts](#hyprpanel-config-v1-Config-DBUS-Shortcuts) @@ -84,6 +85,7 @@ | shortcuts | [Config.DBUS.Shortcuts](#hyprpanel-config-v1-Config-DBUS-Shortcuts) | | shortcuts configuration. | | brightness | [Config.DBUS.Brightness](#hyprpanel-config-v1-Config-DBUS-Brightness) | | brightness configuration. | | power | [Config.DBUS.Power](#hyprpanel-config-v1-Config-DBUS-Power) | | power configuration. | +| idle_inhibitor | [Config.DBUS.IdleInhibitor](#hyprpanel-config-v1-Config-DBUS-IdleInhibitor) | | idle inhibitor configuration. | @@ -109,6 +111,21 @@ + + +### Config.DBUS.IdleInhibitor + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| enabled | [bool](#bool) | | toggles the idle inhibitor functionality, required for "idle_inhibitor" module. | + + + + + + ### Config.DBUS.Notifications diff --git a/proto/doc/hyprpanel/event/v1/doc.md b/proto/doc/hyprpanel/event/v1/doc.md index b0c936a..14969c9 100644 --- a/proto/doc/hyprpanel/event/v1/doc.md +++ b/proto/doc/hyprpanel/event/v1/doc.md @@ -24,6 +24,7 @@ - [HyprOpenWindowValue](#hyprpanel-event-v1-HyprOpenWindowValue) - [HyprRenameWorkspaceValue](#hyprpanel-event-v1-HyprRenameWorkspaceValue) - [HyprWorkspaceV2Value](#hyprpanel-event-v1-HyprWorkspaceV2Value) + - [IdleInhibitorValue](#hyprpanel-event-v1-IdleInhibitorValue) - [NotificationValue](#hyprpanel-event-v1-NotificationValue) - [NotificationValue.Action](#hyprpanel-event-v1-NotificationValue-Action) - [NotificationValue.Hint](#hyprpanel-event-v1-NotificationValue-Hint) @@ -43,6 +44,7 @@ - [Direction](#hyprpanel-event-v1-Direction) - [EventKind](#hyprpanel-event-v1-EventKind) + - [InhibitTarget](#hyprpanel-event-v1-InhibitTarget) - [PowerState](#hyprpanel-event-v1-PowerState) - [PowerType](#hyprpanel-event-v1-PowerType) @@ -396,6 +398,21 @@ + + +### IdleInhibitorValue + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| target | [InhibitTarget](#hyprpanel-event-v1-InhibitTarget) | | | + + + + + + ### NotificationValue @@ -777,6 +794,22 @@ | EVENT_KIND_HYPR_DESTROYWORKSPACEV2 | 57 | | | EVENT_KIND_HYPR_WORKSPACEV2 | 58 | | | EVENT_KIND_EXEC | 59 | | +| EVENT_KIND_IDLE_INHIBITOR_INHIBIT | 60 | | +| EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT | 61 | | + + + + + +### InhibitTarget + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| INHIBIT_TARGET_UNSPECIFIED | 0 | | +| INHIBIT_TARGET_IDLE | 1 | | +| INHIBIT_TARGET_SLEEP | 2 | | +| INHIBIT_TARGET_SHUTDOWN | 3 | | diff --git a/proto/doc/hyprpanel/module/v1/doc.md b/proto/doc/hyprpanel/module/v1/doc.md index 3c0a821..af926bb 100644 --- a/proto/doc/hyprpanel/module/v1/doc.md +++ b/proto/doc/hyprpanel/module/v1/doc.md @@ -7,6 +7,7 @@ - [Audio](#hyprpanel-module-v1-Audio) - [Clock](#hyprpanel-module-v1-Clock) - [Hud](#hyprpanel-module-v1-Hud) + - [IdleInhibitor](#hyprpanel-module-v1-IdleInhibitor) - [Module](#hyprpanel-module-v1-Module) - [Notifications](#hyprpanel-module-v1-Notifications) - [Pager](#hyprpanel-module-v1-Pager) @@ -17,6 +18,7 @@ - [SystrayModule](#hyprpanel-module-v1-SystrayModule) - [Taskbar](#hyprpanel-module-v1-Taskbar) + - [IdleInhibitor.DefaultTarget](#hyprpanel-module-v1-IdleInhibitor-DefaultTarget) - [Position](#hyprpanel-module-v1-Position) - [Systray.Status](#hyprpanel-module-v1-Systray-Status) @@ -86,6 +88,23 @@ + + +### IdleInhibitor + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| icon_size | [uint32](#uint32) | | size in pixels for panel icon. | +| icon_symbolic | [bool](#bool) | | display symbolic or coloured icon in panel. | +| default_target | [IdleInhibitor.DefaultTarget](#hyprpanel-module-v1-IdleInhibitor-DefaultTarget) | | default inhibit target for left click action. | + + + + + + ### Module @@ -104,6 +123,7 @@ | clock | [Clock](#hyprpanel-module-v1-Clock) | | | | session | [Session](#hyprpanel-module-v1-Session) | | | | spacer | [Spacer](#hyprpanel-module-v1-Spacer) | | | +| idle_inhibitor | [IdleInhibitor](#hyprpanel-module-v1-IdleInhibitor) | | | @@ -268,6 +288,20 @@ + + +### IdleInhibitor.DefaultTarget + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| DEFAULT_TARGET_UNSPECIFIED | 0 | | +| DEFAULT_TARGET_LOCK | 1 | | +| DEFAULT_TARGET_SUSPEND | 2 | | +| DEFAULT_TARGET_SHUTDOWN | 3 | | + + + ### Position diff --git a/proto/doc/hyprpanel/v1/doc.md b/proto/doc/hyprpanel/v1/doc.md index dbef9f6..62a0315 100644 --- a/proto/doc/hyprpanel/v1/doc.md +++ b/proto/doc/hyprpanel/v1/doc.md @@ -22,6 +22,8 @@ - [HostServiceExecResponse](#hyprpanel-v1-HostServiceExecResponse) - [HostServiceFindApplicationRequest](#hyprpanel-v1-HostServiceFindApplicationRequest) - [HostServiceFindApplicationResponse](#hyprpanel-v1-HostServiceFindApplicationResponse) + - [HostServiceIdleInhibitorRequest](#hyprpanel-v1-HostServiceIdleInhibitorRequest) + - [HostServiceIdleInhibitorResponse](#hyprpanel-v1-HostServiceIdleInhibitorResponse) - [HostServiceNotificationActionRequest](#hyprpanel-v1-HostServiceNotificationActionRequest) - [HostServiceNotificationActionResponse](#hyprpanel-v1-HostServiceNotificationActionResponse) - [HostServiceNotificationClosedRequest](#hyprpanel-v1-HostServiceNotificationClosedRequest) @@ -323,6 +325,31 @@ + + +### HostServiceIdleInhibitorRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| target | [hyprpanel.event.v1.InhibitTarget](#hyprpanel-event-v1-InhibitTarget) | | | + + + + + + + + +### HostServiceIdleInhibitorResponse + + + + + + + ### HostServiceNotificationActionRequest @@ -724,6 +751,8 @@ | AudioSourceMuteToggle | [HostServiceAudioSourceMuteToggleRequest](#hyprpanel-v1-HostServiceAudioSourceMuteToggleRequest) | [HostServiceAudioSourceMuteToggleResponse](#hyprpanel-v1-HostServiceAudioSourceMuteToggleResponse) | | | BrightnessAdjust | [HostServiceBrightnessAdjustRequest](#hyprpanel-v1-HostServiceBrightnessAdjustRequest) | [HostServiceBrightnessAdjustResponse](#hyprpanel-v1-HostServiceBrightnessAdjustResponse) | | | CaptureFrame | [HostServiceCaptureFrameRequest](#hyprpanel-v1-HostServiceCaptureFrameRequest) | [HostServiceCaptureFrameResponse](#hyprpanel-v1-HostServiceCaptureFrameResponse) | | +| IdleInhibitorInhibit | [HostServiceIdleInhibitorRequest](#hyprpanel-v1-HostServiceIdleInhibitorRequest) | [HostServiceIdleInhibitorResponse](#hyprpanel-v1-HostServiceIdleInhibitorResponse) | | +| IdleInhibitorUninhibit | [HostServiceIdleInhibitorRequest](#hyprpanel-v1-HostServiceIdleInhibitorRequest) | [HostServiceIdleInhibitorResponse](#hyprpanel-v1-HostServiceIdleInhibitorResponse) | | diff --git a/proto/hyprpanel/config/v1/config.pb.go b/proto/hyprpanel/config/v1/config.pb.go index 26d03f0..8917869 100644 --- a/proto/hyprpanel/config/v1/config.pb.go +++ b/proto/hyprpanel/config/v1/config.pb.go @@ -382,6 +382,7 @@ type Config_DBUS struct { Shortcuts *Config_DBUS_Shortcuts `protobuf:"bytes,6,opt,name=shortcuts,proto3" json:"shortcuts,omitempty"` // shortcuts configuration. Brightness *Config_DBUS_Brightness `protobuf:"bytes,7,opt,name=brightness,proto3" json:"brightness,omitempty"` // brightness configuration. Power *Config_DBUS_Power `protobuf:"bytes,8,opt,name=power,proto3" json:"power,omitempty"` // power configuration. + IdleInhibitor *Config_DBUS_IdleInhibitor `protobuf:"bytes,9,opt,name=idle_inhibitor,json=idleInhibitor,proto3" json:"idle_inhibitor,omitempty"` // idle inhibitor configuration. } func (x *Config_DBUS) Reset() { @@ -472,6 +473,13 @@ func (x *Config_DBUS) GetPower() *Config_DBUS_Power { return nil } +func (x *Config_DBUS) GetIdleInhibitor() *Config_DBUS_IdleInhibitor { + if x != nil { + return x.IdleInhibitor + } + return nil +} + type Config_Audio struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -850,6 +858,53 @@ func (x *Config_DBUS_Power) GetHudNotifications() bool { return false } +type Config_DBUS_IdleInhibitor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // toggles the idle inhibitor functionality, required for "idle_inhibitor" module. +} + +func (x *Config_DBUS_IdleInhibitor) Reset() { + *x = Config_DBUS_IdleInhibitor{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_config_v1_config_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Config_DBUS_IdleInhibitor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Config_DBUS_IdleInhibitor) ProtoMessage() {} + +func (x *Config_DBUS_IdleInhibitor) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_config_v1_config_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Config_DBUS_IdleInhibitor.ProtoReflect.Descriptor instead. +func (*Config_DBUS_IdleInhibitor) Descriptor() ([]byte, []int) { + return file_hyprpanel_config_v1_config_proto_rawDescGZIP(), []int{2, 0, 5} +} + +func (x *Config_DBUS_IdleInhibitor) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + var File_hyprpanel_config_v1_config_proto protoreflect.FileDescriptor var file_hyprpanel_config_v1_config_proto_rawDesc = []byte{ @@ -875,8 +930,8 @@ var file_hyprpanel_config_v1_config_proto_rawDesc = []byte{ 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x9e, - 0x0d, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x09, 0x6c, 0x6f, 0x67, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0xa0, + 0x0e, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, @@ -901,7 +956,7 @@ var file_hyprpanel_config_v1_config_proto_rawDesc = []byte{ 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x0d, 0x69, 0x63, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6c, - 0x61, 0x75, 0x6e, 0x63, 0x68, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x1a, 0xcb, 0x08, 0x0a, + 0x61, 0x75, 0x6e, 0x63, 0x68, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x1a, 0xcd, 0x09, 0x0a, 0x04, 0x44, 0x42, 0x55, 0x53, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, @@ -935,83 +990,91 @@ var file_hyprpanel_config_v1_config_proto_rawDesc = []byte{ 0x77, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x42, 0x55, 0x53, 0x2e, 0x50, 0x6f, 0x77, 0x65, - 0x72, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x1a, 0x29, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x1a, 0x23, 0x0a, 0x07, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x18, - 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x25, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x72, - 0x74, 0x63, 0x75, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, - 0xcf, 0x01, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x64, 0x6a, 0x75, - 0x73, 0x74, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x74, 0x65, - 0x70, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, - 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, - 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, - 0x67, 0x69, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x72, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0e, 0x69, 0x64, 0x6c, 0x65, + 0x5f, 0x69, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x42, + 0x55, 0x53, 0x2e, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, + 0x52, 0x0d, 0x69, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x1a, + 0x29, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x23, 0x0a, 0x07, 0x53, 0x79, + 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, + 0x25, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0xcf, 0x01, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x2e, 0x0a, 0x13, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x70, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x64, + 0x6a, 0x75, 0x73, 0x74, 0x53, 0x74, 0x65, 0x70, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, + 0x25, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x42, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x68, + 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xe6, 0x01, 0x0a, 0x05, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, + 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, + 0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, + 0x6f, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x69, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x1a, 0xe6, 0x01, 0x0a, 0x05, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x65, 0x72, - 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x50, - 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, - 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2b, 0x0a, - 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb2, 0x01, 0x0a, 0x05, 0x41, - 0x75, 0x64, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, - 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x70, 0x65, - 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x53, 0x74, 0x65, 0x70, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x32, - 0x0a, 0x15, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x5f, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x68, - 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, - 0x5a, 0x0a, 0x04, 0x45, 0x64, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x44, 0x47, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x45, - 0x44, 0x47, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x45, - 0x44, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x45, 0x44, 0x47, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x04, 0x2a, 0x9f, 0x01, 0x0a, 0x08, - 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, - 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, - 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x02, 0x12, 0x12, 0x0a, - 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, - 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, - 0x41, 0x52, 0x4e, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, - 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f, - 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x06, 0x42, 0xd1, 0x01, - 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x48, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x48, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x1a, 0x29, 0x0a, 0x0d, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0xb2, 0x01, 0x0a, + 0x05, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x65, 0x70, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x12, 0x32, 0x0a, 0x15, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x65, + 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, 0x4d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2a, 0x5a, 0x0a, 0x04, 0x45, 0x64, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x44, 0x47, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, + 0x0a, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x12, 0x0f, 0x0a, + 0x0b, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x04, 0x2a, 0x9f, 0x01, + 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, + 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, + 0x45, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, + 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x02, 0x12, + 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x46, + 0x4f, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, + 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, + 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, + 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x06, 0x42, + 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x58, 0xaa, 0x02, 0x13, + 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x48, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x48, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1027,7 +1090,7 @@ func file_hyprpanel_config_v1_config_proto_rawDescGZIP() []byte { } var file_hyprpanel_config_v1_config_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_hyprpanel_config_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_hyprpanel_config_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 11) var file_hyprpanel_config_v1_config_proto_goTypes = []interface{}{ (Edge)(0), // 0: hyprpanel.config.v1.Edge (LogLevel)(0), // 1: hyprpanel.config.v1.LogLevel @@ -1041,29 +1104,31 @@ var file_hyprpanel_config_v1_config_proto_goTypes = []interface{}{ (*Config_DBUS_Shortcuts)(nil), // 9: hyprpanel.config.v1.Config.DBUS.Shortcuts (*Config_DBUS_Brightness)(nil), // 10: hyprpanel.config.v1.Config.DBUS.Brightness (*Config_DBUS_Power)(nil), // 11: hyprpanel.config.v1.Config.DBUS.Power - (*v1.Module)(nil), // 12: hyprpanel.module.v1.Module - (*durationpb.Duration)(nil), // 13: google.protobuf.Duration + (*Config_DBUS_IdleInhibitor)(nil), // 12: hyprpanel.config.v1.Config.DBUS.IdleInhibitor + (*v1.Module)(nil), // 13: hyprpanel.module.v1.Module + (*durationpb.Duration)(nil), // 14: google.protobuf.Duration } var file_hyprpanel_config_v1_config_proto_depIdxs = []int32{ 0, // 0: hyprpanel.config.v1.Panel.edge:type_name -> hyprpanel.config.v1.Edge - 12, // 1: hyprpanel.config.v1.Panel.modules:type_name -> hyprpanel.module.v1.Module + 13, // 1: hyprpanel.config.v1.Panel.modules:type_name -> hyprpanel.module.v1.Module 1, // 2: hyprpanel.config.v1.Config.log_level:type_name -> hyprpanel.config.v1.LogLevel 5, // 3: hyprpanel.config.v1.Config.dbus:type_name -> hyprpanel.config.v1.Config.DBUS 6, // 4: hyprpanel.config.v1.Config.audio:type_name -> hyprpanel.config.v1.Config.Audio 2, // 5: hyprpanel.config.v1.Config.panels:type_name -> hyprpanel.config.v1.Panel 3, // 6: hyprpanel.config.v1.Config.icon_overrides:type_name -> hyprpanel.config.v1.IconOverride - 13, // 7: hyprpanel.config.v1.Config.DBUS.connect_timeout:type_name -> google.protobuf.Duration - 13, // 8: hyprpanel.config.v1.Config.DBUS.connect_interval:type_name -> google.protobuf.Duration + 14, // 7: hyprpanel.config.v1.Config.DBUS.connect_timeout:type_name -> google.protobuf.Duration + 14, // 8: hyprpanel.config.v1.Config.DBUS.connect_interval:type_name -> google.protobuf.Duration 7, // 9: hyprpanel.config.v1.Config.DBUS.notifications:type_name -> hyprpanel.config.v1.Config.DBUS.Notifications 8, // 10: hyprpanel.config.v1.Config.DBUS.systray:type_name -> hyprpanel.config.v1.Config.DBUS.Systray 9, // 11: hyprpanel.config.v1.Config.DBUS.shortcuts:type_name -> hyprpanel.config.v1.Config.DBUS.Shortcuts 10, // 12: hyprpanel.config.v1.Config.DBUS.brightness:type_name -> hyprpanel.config.v1.Config.DBUS.Brightness 11, // 13: hyprpanel.config.v1.Config.DBUS.power:type_name -> hyprpanel.config.v1.Config.DBUS.Power - 14, // [14:14] is the sub-list for method output_type - 14, // [14:14] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 12, // 14: hyprpanel.config.v1.Config.DBUS.idle_inhibitor:type_name -> hyprpanel.config.v1.Config.DBUS.IdleInhibitor + 15, // [15:15] is the sub-list for method output_type + 15, // [15:15] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_hyprpanel_config_v1_config_proto_init() } @@ -1192,6 +1257,18 @@ func file_hyprpanel_config_v1_config_proto_init() { return nil } } + file_hyprpanel_config_v1_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Config_DBUS_IdleInhibitor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1199,7 +1276,7 @@ func file_hyprpanel_config_v1_config_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_config_v1_config_proto_rawDesc, NumEnums: 2, - NumMessages: 10, + NumMessages: 11, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/hyprpanel/config/v1/config.proto b/proto/hyprpanel/config/v1/config.proto index 8185d37..1aae95c 100644 --- a/proto/hyprpanel/config/v1/config.proto +++ b/proto/hyprpanel/config/v1/config.proto @@ -67,6 +67,10 @@ message Config { bool hud_notifications = 6; // display HUD notifications on power state change or low power. } + message IdleInhibitor { + bool enabled = 1; // toggles the idle inhibitor functionality, required for "idle_inhibitor" module. + } + bool enabled = 1; // if false, no DBUS functionality is available. google.protobuf.Duration connect_timeout = 2; // specifies the maximum time we will attempt to connect to the bus before failing (format: "20s"). google.protobuf.Duration connect_interval = 3; // specifies the interval that we will attempt to connect to the session bus on startup (format: "0.200s"). @@ -76,6 +80,7 @@ message Config { Shortcuts shortcuts = 6; // shortcuts configuration. Brightness brightness = 7; // brightness configuration. Power power = 8; // power configuration. + IdleInhibitor idle_inhibitor = 9; // idle inhibitor configuration. } message Audio { diff --git a/proto/hyprpanel/event/v1/event.pb.go b/proto/hyprpanel/event/v1/event.pb.go index 769bbf1..059b803 100644 --- a/proto/hyprpanel/event/v1/event.pb.go +++ b/proto/hyprpanel/event/v1/event.pb.go @@ -200,6 +200,58 @@ func (PowerState) EnumDescriptor() ([]byte, []int) { return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{2} } +type InhibitTarget int32 + +const ( + InhibitTarget_INHIBIT_TARGET_UNSPECIFIED InhibitTarget = 0 + InhibitTarget_INHIBIT_TARGET_IDLE InhibitTarget = 1 + InhibitTarget_INHIBIT_TARGET_SLEEP InhibitTarget = 2 + InhibitTarget_INHIBIT_TARGET_SHUTDOWN InhibitTarget = 3 +) + +// Enum value maps for InhibitTarget. +var ( + InhibitTarget_name = map[int32]string{ + 0: "INHIBIT_TARGET_UNSPECIFIED", + 1: "INHIBIT_TARGET_IDLE", + 2: "INHIBIT_TARGET_SLEEP", + 3: "INHIBIT_TARGET_SHUTDOWN", + } + InhibitTarget_value = map[string]int32{ + "INHIBIT_TARGET_UNSPECIFIED": 0, + "INHIBIT_TARGET_IDLE": 1, + "INHIBIT_TARGET_SLEEP": 2, + "INHIBIT_TARGET_SHUTDOWN": 3, + } +) + +func (x InhibitTarget) Enum() *InhibitTarget { + p := new(InhibitTarget) + *p = x + return p +} + +func (x InhibitTarget) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (InhibitTarget) Descriptor() protoreflect.EnumDescriptor { + return file_hyprpanel_event_v1_event_proto_enumTypes[3].Descriptor() +} + +func (InhibitTarget) Type() protoreflect.EnumType { + return &file_hyprpanel_event_v1_event_proto_enumTypes[3] +} + +func (x InhibitTarget) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use InhibitTarget.Descriptor instead. +func (InhibitTarget) EnumDescriptor() ([]byte, []int) { + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{3} +} + type EventKind int32 const ( @@ -262,6 +314,8 @@ const ( EventKind_EVENT_KIND_HYPR_DESTROYWORKSPACEV2 EventKind = 57 EventKind_EVENT_KIND_HYPR_WORKSPACEV2 EventKind = 58 EventKind_EVENT_KIND_EXEC EventKind = 59 + EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT EventKind = 60 + EventKind_EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT EventKind = 61 ) // Enum value maps for EventKind. @@ -326,6 +380,8 @@ var ( 57: "EVENT_KIND_HYPR_DESTROYWORKSPACEV2", 58: "EVENT_KIND_HYPR_WORKSPACEV2", 59: "EVENT_KIND_EXEC", + 60: "EVENT_KIND_IDLE_INHIBITOR_INHIBIT", + 61: "EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT", } EventKind_value = map[string]int32{ "EVENT_KIND_UNSPECIFIED": 0, @@ -387,6 +443,8 @@ var ( "EVENT_KIND_HYPR_DESTROYWORKSPACEV2": 57, "EVENT_KIND_HYPR_WORKSPACEV2": 58, "EVENT_KIND_EXEC": 59, + "EVENT_KIND_IDLE_INHIBITOR_INHIBIT": 60, + "EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT": 61, } ) @@ -401,11 +459,11 @@ func (x EventKind) String() string { } func (EventKind) Descriptor() protoreflect.EnumDescriptor { - return file_hyprpanel_event_v1_event_proto_enumTypes[3].Descriptor() + return file_hyprpanel_event_v1_event_proto_enumTypes[4].Descriptor() } func (EventKind) Type() protoreflect.EnumType { - return &file_hyprpanel_event_v1_event_proto_enumTypes[3] + return &file_hyprpanel_event_v1_event_proto_enumTypes[4] } func (x EventKind) Number() protoreflect.EnumNumber { @@ -414,7 +472,7 @@ func (x EventKind) Number() protoreflect.EnumNumber { // Deprecated: Use EventKind.Descriptor instead. func (EventKind) EnumDescriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{3} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{4} } type HyprWorkspaceV2Value struct { @@ -2262,6 +2320,53 @@ func (x *PowerChangeValue) GetEnergyFull() float64 { return 0 } +type IdleInhibitorValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Target InhibitTarget `protobuf:"varint,1,opt,name=target,proto3,enum=hyprpanel.event.v1.InhibitTarget" json:"target,omitempty"` +} + +func (x *IdleInhibitorValue) Reset() { + *x = IdleInhibitorValue{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdleInhibitorValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdleInhibitorValue) ProtoMessage() {} + +func (x *IdleInhibitorValue) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdleInhibitorValue.ProtoReflect.Descriptor instead. +func (*IdleInhibitorValue) Descriptor() ([]byte, []int) { + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{27} +} + +func (x *IdleInhibitorValue) GetTarget() InhibitTarget { + if x != nil { + return x.Target + } + return InhibitTarget_INHIBIT_TARGET_UNSPECIFIED +} + type Event struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2274,7 +2379,7 @@ type Event struct { func (x *Event) Reset() { *x = Event{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[27] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2287,7 +2392,7 @@ func (x *Event) String() string { func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[27] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2300,7 +2405,7 @@ func (x *Event) ProtoReflect() protoreflect.Message { // Deprecated: Use Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{27} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{28} } func (x *Event) GetKind() EventKind { @@ -2330,7 +2435,7 @@ type StatusNotifierValue_Pixmap struct { func (x *StatusNotifierValue_Pixmap) Reset() { *x = StatusNotifierValue_Pixmap{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[28] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2343,7 +2448,7 @@ func (x *StatusNotifierValue_Pixmap) String() string { func (*StatusNotifierValue_Pixmap) ProtoMessage() {} func (x *StatusNotifierValue_Pixmap) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[28] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2394,7 +2499,7 @@ type StatusNotifierValue_Tooltip struct { func (x *StatusNotifierValue_Tooltip) Reset() { *x = StatusNotifierValue_Tooltip{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[29] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2407,7 +2512,7 @@ func (x *StatusNotifierValue_Tooltip) String() string { func (*StatusNotifierValue_Tooltip) ProtoMessage() {} func (x *StatusNotifierValue_Tooltip) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[29] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2464,7 +2569,7 @@ type StatusNotifierValue_Icon struct { func (x *StatusNotifierValue_Icon) Reset() { *x = StatusNotifierValue_Icon{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[30] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2477,7 +2582,7 @@ func (x *StatusNotifierValue_Icon) String() string { func (*StatusNotifierValue_Icon) ProtoMessage() {} func (x *StatusNotifierValue_Icon) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[30] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2527,7 +2632,7 @@ type StatusNotifierValue_Menu struct { func (x *StatusNotifierValue_Menu) Reset() { *x = StatusNotifierValue_Menu{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[31] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2540,7 +2645,7 @@ func (x *StatusNotifierValue_Menu) String() string { func (*StatusNotifierValue_Menu) ProtoMessage() {} func (x *StatusNotifierValue_Menu) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[31] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2597,7 +2702,7 @@ type StatusNotifierValue_Menu_Properties struct { func (x *StatusNotifierValue_Menu_Properties) Reset() { *x = StatusNotifierValue_Menu_Properties{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[32] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2610,7 +2715,7 @@ func (x *StatusNotifierValue_Menu_Properties) String() string { func (*StatusNotifierValue_Menu_Properties) ProtoMessage() {} func (x *StatusNotifierValue_Menu_Properties) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[32] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2708,7 +2813,7 @@ type NotificationValue_Hint struct { func (x *NotificationValue_Hint) Reset() { *x = NotificationValue_Hint{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[33] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2721,7 +2826,7 @@ func (x *NotificationValue_Hint) String() string { func (*NotificationValue_Hint) ProtoMessage() {} func (x *NotificationValue_Hint) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[33] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2763,7 +2868,7 @@ type NotificationValue_Action struct { func (x *NotificationValue_Action) Reset() { *x = NotificationValue_Action{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[34] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2776,7 +2881,7 @@ func (x *NotificationValue_Action) String() string { func (*NotificationValue_Action) ProtoMessage() {} func (x *NotificationValue_Action) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[34] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2823,7 +2928,7 @@ type NotificationValue_Pixmap struct { func (x *NotificationValue_Pixmap) Reset() { *x = NotificationValue_Pixmap{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[35] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2836,7 +2941,7 @@ func (x *NotificationValue_Pixmap) String() string { func (*NotificationValue_Pixmap) ProtoMessage() {} func (x *NotificationValue_Pixmap) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[35] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3225,188 +3330,206 @@ var file_hyprpanel_event_v1_event_proto_rawDesc = []byte{ 0x65, 0x72, 0x67, 0x79, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x0a, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x46, 0x75, 0x6c, 0x6c, 0x22, 0x64, - 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x2a, 0x4c, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, - 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, 0x12, - 0x0a, 0x0e, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, 0x4e, - 0x10, 0x02, 0x2a, 0xdf, 0x01, 0x0a, 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, - 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x5f, - 0x50, 0x4f, 0x57, 0x45, 0x52, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x57, 0x45, 0x52, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x45, 0x52, 0x59, 0x10, 0x02, 0x12, - 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x50, - 0x53, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x50, - 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x10, - 0x05, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4b, 0x45, 0x59, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, - 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x44, 0x41, 0x10, 0x07, 0x12, 0x14, - 0x0a, 0x10, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, 0x4f, - 0x4e, 0x45, 0x10, 0x08, 0x2a, 0xd9, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, - 0x43, 0x48, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, - 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x48, 0x41, - 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x4f, 0x57, 0x45, 0x52, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x03, 0x12, 0x1d, - 0x0a, 0x19, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x55, - 0x4c, 0x4c, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1e, 0x0a, - 0x1a, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, - 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x05, 0x12, 0x21, 0x0a, - 0x1d, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, - 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x06, - 0x2a, 0x86, 0x10, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1a, - 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, 0x4f, - 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x46, 0x4f, 0x43, - 0x55, 0x53, 0x45, 0x44, 0x4d, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x45, + 0x28, 0x01, 0x52, 0x0a, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x46, 0x75, 0x6c, 0x6c, 0x22, 0x4f, + 0x0a, 0x12, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, + 0x64, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x4c, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, + 0x0c, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, + 0x12, 0x0a, 0x0e, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, + 0x4e, 0x10, 0x02, 0x2a, 0xdf, 0x01, 0x0a, 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, + 0x15, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x45, + 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x57, 0x45, + 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x45, 0x52, 0x59, 0x10, 0x02, + 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x50, 0x53, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, + 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x55, 0x53, 0x45, + 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4b, 0x45, 0x59, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x50, + 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x44, 0x41, 0x10, 0x07, 0x12, + 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, + 0x4f, 0x4e, 0x45, 0x10, 0x08, 0x2a, 0xd9, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x50, + 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x48, + 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x4f, 0x57, 0x45, + 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x03, 0x12, + 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, + 0x55, 0x4c, 0x4c, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1e, + 0x0a, 0x1a, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x05, 0x12, 0x21, + 0x0a, 0x1d, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, + 0x06, 0x2a, 0x7f, 0x0a, 0x0d, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, + 0x52, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, + 0x52, 0x47, 0x45, 0x54, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x49, + 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x4c, + 0x45, 0x45, 0x50, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, + 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, + 0x10, 0x03, 0x2a, 0xd6, 0x10, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, + 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, + 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x46, + 0x4f, 0x43, 0x55, 0x53, 0x45, 0x44, 0x4d, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x56, 0x32, 0x10, 0x05, 0x12, + 0x43, 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x22, 0x0a, + 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x56, 0x32, 0x10, + 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x48, 0x59, 0x50, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x10, + 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x52, 0x45, 0x4d, 0x4f, + 0x56, 0x45, 0x44, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, + 0x41, 0x44, 0x44, 0x45, 0x44, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, + 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, + 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, + 0x10, 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, + 0x41, 0x43, 0x45, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x52, 0x45, 0x4e, 0x41, 0x4d, 0x45, 0x57, + 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x0c, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x10, 0x0d, 0x12, 0x20, 0x0a, + 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x4c, 0x41, 0x59, 0x4f, 0x55, 0x54, 0x10, 0x0e, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, - 0x50, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x06, 0x12, - 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, - 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, - 0x44, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x41, 0x44, - 0x44, 0x45, 0x44, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x57, - 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x44, 0x45, - 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x0a, - 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, - 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, - 0x45, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x52, 0x45, 0x4e, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, - 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x0c, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x56, 0x45, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x10, 0x0d, 0x12, 0x20, 0x0a, 0x1c, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x56, 0x45, 0x4c, 0x41, 0x59, 0x4f, 0x55, 0x54, 0x10, 0x0e, 0x12, 0x1e, 0x0a, + 0x50, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x0f, 0x12, + 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, + 0x50, 0x52, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x10, + 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, + 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x11, + 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, + 0x59, 0x50, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x12, 0x12, + 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, + 0x50, 0x52, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x13, 0x12, + 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, + 0x50, 0x52, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x41, 0x50, 0x10, 0x14, 0x12, 0x26, 0x0a, 0x22, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, + 0x48, 0x41, 0x4e, 0x47, 0x45, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x4d, 0x4f, 0x44, + 0x45, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x55, 0x52, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x16, 0x12, + 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, + 0x50, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x17, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x0f, 0x12, 0x1f, 0x0a, + 0x5f, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x43, 0x41, 0x53, 0x54, 0x10, 0x18, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x10, 0x12, 0x1e, - 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, - 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x11, 0x12, 0x1d, - 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, - 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x12, 0x12, 0x1e, 0x0a, - 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x13, 0x12, 0x1a, 0x0a, - 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x41, 0x50, 0x10, 0x14, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x48, 0x41, - 0x4e, 0x47, 0x45, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x4d, 0x4f, 0x44, 0x45, 0x10, - 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x48, 0x59, 0x50, 0x52, 0x5f, 0x55, 0x52, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x16, 0x12, 0x1c, 0x0a, - 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x17, 0x12, 0x1e, 0x0a, 0x1a, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x53, - 0x43, 0x52, 0x45, 0x45, 0x4e, 0x43, 0x41, 0x53, 0x54, 0x10, 0x18, 0x12, 0x1f, 0x0a, 0x1b, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, - 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x19, 0x12, 0x23, 0x0a, 0x1f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, - 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x4c, 0x4f, 0x43, 0x4b, 0x10, - 0x1a, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x48, 0x59, 0x50, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x4c, 0x4f, 0x43, 0x4b, 0x47, 0x52, - 0x4f, 0x55, 0x50, 0x53, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, + 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x19, 0x12, 0x23, + 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, + 0x52, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x4c, 0x4f, 0x43, + 0x4b, 0x10, 0x1a, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x4c, 0x4f, 0x43, 0x4b, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x53, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x47, 0x49, + 0x53, 0x54, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, + 0x45, 0x52, 0x10, 0x1c, 0x12, 0x2c, 0x0a, 0x28, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, - 0x10, 0x1c, 0x12, 0x2c, 0x0a, 0x28, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, 0x1d, - 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, - 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, - 0x1e, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x4f, 0x4f, 0x4c, 0x54, - 0x49, 0x50, 0x10, 0x1f, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x49, 0x43, - 0x4f, 0x4e, 0x10, 0x20, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x4d, 0x45, - 0x4e, 0x55, 0x10, 0x21, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x10, 0x22, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, - 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x43, 0x4c, 0x4f, 0x53, - 0x45, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x24, 0x12, - 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, - 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x43, 0x48, - 0x41, 0x4e, 0x47, 0x45, 0x10, 0x25, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, - 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x26, 0x12, 0x1d, 0x0a, - 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, - 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x27, 0x12, 0x20, 0x0a, 0x1c, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, - 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x28, 0x12, 0x20, + 0x10, 0x1d, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x54, 0x4c, + 0x45, 0x10, 0x1e, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x4f, 0x4f, + 0x4c, 0x54, 0x49, 0x50, 0x10, 0x1f, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, + 0x49, 0x43, 0x4f, 0x4e, 0x10, 0x20, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, + 0x4d, 0x45, 0x4e, 0x55, 0x10, 0x21, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x22, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x49, + 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x43, 0x4c, + 0x4f, 0x53, 0x45, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x24, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x44, 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x25, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, + 0x48, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x26, 0x12, + 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, + 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x27, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, - 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x29, - 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, - 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x10, - 0x2a, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x43, 0x48, 0x41, - 0x4e, 0x47, 0x45, 0x10, 0x2b, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2c, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, 0x41, - 0x52, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x2d, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, 0x41, 0x52, - 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, + 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x28, + 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, + 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, + 0x10, 0x29, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4e, 0x45, + 0x57, 0x10, 0x2a, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x43, + 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2b, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2c, 0x12, 0x1d, 0x0a, 0x19, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, + 0x43, 0x41, 0x52, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x2d, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, - 0x41, 0x52, 0x44, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2f, 0x12, 0x27, 0x0a, 0x23, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, - 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x4a, - 0x55, 0x53, 0x54, 0x10, 0x30, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x4d, - 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, 0x31, 0x12, 0x29, 0x0a, 0x25, + 0x41, 0x52, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, - 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, - 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, - 0x43, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, 0x33, - 0x12, 0x19, 0x0a, 0x15, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, - 0x55, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x34, 0x12, 0x20, 0x0a, 0x1c, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x50, - 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x35, 0x12, 0x23, 0x0a, - 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, 0x32, - 0x10, 0x36, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, - 0x56, 0x32, 0x10, 0x37, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x57, 0x4f, - 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, 0x32, 0x10, 0x38, 0x12, 0x26, 0x0a, 0x22, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x44, - 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, - 0x32, 0x10, 0x39, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, - 0x56, 0x32, 0x10, 0x3a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x10, 0x3b, 0x42, 0xc9, 0x01, 0x0a, 0x16, 0x63, 0x6f, - 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, - 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x48, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, - 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5c, - 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x14, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2f, 0x12, 0x27, + 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, + 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, + 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x30, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, + 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, 0x31, 0x12, 0x29, + 0x0a, 0x25, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, + 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, + 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, + 0x10, 0x33, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x48, 0x55, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x34, 0x12, 0x20, 0x0a, + 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, + 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x35, 0x12, + 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, + 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, + 0x56, 0x32, 0x10, 0x36, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, + 0x4f, 0x57, 0x56, 0x32, 0x10, 0x37, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, 0x32, 0x10, 0x38, 0x12, 0x26, 0x0a, + 0x22, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, + 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, + 0x45, 0x56, 0x32, 0x10, 0x39, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, + 0x43, 0x45, 0x56, 0x32, 0x10, 0x3a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x10, 0x3b, 0x12, 0x25, 0x0a, 0x21, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x49, + 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, + 0x10, 0x3c, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x4f, 0x52, 0x5f, + 0x55, 0x4e, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x10, 0x3d, 0x42, 0xc9, 0x01, 0x0a, 0x16, + 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x48, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x48, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0xe2, + 0x02, 0x1e, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x14, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3421,84 +3544,87 @@ func file_hyprpanel_event_v1_event_proto_rawDescGZIP() []byte { return file_hyprpanel_event_v1_event_proto_rawDescData } -var file_hyprpanel_event_v1_event_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_hyprpanel_event_v1_event_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_hyprpanel_event_v1_event_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_hyprpanel_event_v1_event_proto_msgTypes = make([]protoimpl.MessageInfo, 37) var file_hyprpanel_event_v1_event_proto_goTypes = []interface{}{ (Direction)(0), // 0: hyprpanel.event.v1.Direction (PowerType)(0), // 1: hyprpanel.event.v1.PowerType (PowerState)(0), // 2: hyprpanel.event.v1.PowerState - (EventKind)(0), // 3: hyprpanel.event.v1.EventKind - (*HyprWorkspaceV2Value)(nil), // 4: hyprpanel.event.v1.HyprWorkspaceV2Value - (*HyprDestroyWorkspaceV2Value)(nil), // 5: hyprpanel.event.v1.HyprDestroyWorkspaceV2Value - (*HyprCreateWorkspaceV2Value)(nil), // 6: hyprpanel.event.v1.HyprCreateWorkspaceV2Value - (*HyprMoveWindowValue)(nil), // 7: hyprpanel.event.v1.HyprMoveWindowValue - (*HyprMoveWindowV2Value)(nil), // 8: hyprpanel.event.v1.HyprMoveWindowV2Value - (*HyprMoveWorkspaceValue)(nil), // 9: hyprpanel.event.v1.HyprMoveWorkspaceValue - (*HyprMoveWorkspaceV2Value)(nil), // 10: hyprpanel.event.v1.HyprMoveWorkspaceV2Value - (*HyprRenameWorkspaceValue)(nil), // 11: hyprpanel.event.v1.HyprRenameWorkspaceValue - (*HyprActiveWindowValue)(nil), // 12: hyprpanel.event.v1.HyprActiveWindowValue - (*HyprOpenWindowValue)(nil), // 13: hyprpanel.event.v1.HyprOpenWindowValue - (*StatusNotifierValue)(nil), // 14: hyprpanel.event.v1.StatusNotifierValue - (*UpdateTitleValue)(nil), // 15: hyprpanel.event.v1.UpdateTitleValue - (*UpdateTooltipValue)(nil), // 16: hyprpanel.event.v1.UpdateTooltipValue - (*UpdateIconValue)(nil), // 17: hyprpanel.event.v1.UpdateIconValue - (*UpdateStatusValue)(nil), // 18: hyprpanel.event.v1.UpdateStatusValue - (*UpdateMenuValue)(nil), // 19: hyprpanel.event.v1.UpdateMenuValue - (*NotificationValue)(nil), // 20: hyprpanel.event.v1.NotificationValue - (*HudNotificationValue)(nil), // 21: hyprpanel.event.v1.HudNotificationValue - (*AudioSinkChangeValue)(nil), // 22: hyprpanel.event.v1.AudioSinkChangeValue - (*AudioSourceChangeValue)(nil), // 23: hyprpanel.event.v1.AudioSourceChangeValue - (*AudioSinkVolumeAdjust)(nil), // 24: hyprpanel.event.v1.AudioSinkVolumeAdjust - (*AudioSinkMuteToggle)(nil), // 25: hyprpanel.event.v1.AudioSinkMuteToggle - (*AudioSourceVolumeAdjust)(nil), // 26: hyprpanel.event.v1.AudioSourceVolumeAdjust - (*AudioSourceMuteToggle)(nil), // 27: hyprpanel.event.v1.AudioSourceMuteToggle - (*BrightnessChangeValue)(nil), // 28: hyprpanel.event.v1.BrightnessChangeValue - (*BrightnessAdjustValue)(nil), // 29: hyprpanel.event.v1.BrightnessAdjustValue - (*PowerChangeValue)(nil), // 30: hyprpanel.event.v1.PowerChangeValue - (*Event)(nil), // 31: hyprpanel.event.v1.Event - (*StatusNotifierValue_Pixmap)(nil), // 32: hyprpanel.event.v1.StatusNotifierValue.Pixmap - (*StatusNotifierValue_Tooltip)(nil), // 33: hyprpanel.event.v1.StatusNotifierValue.Tooltip - (*StatusNotifierValue_Icon)(nil), // 34: hyprpanel.event.v1.StatusNotifierValue.Icon - (*StatusNotifierValue_Menu)(nil), // 35: hyprpanel.event.v1.StatusNotifierValue.Menu - (*StatusNotifierValue_Menu_Properties)(nil), // 36: hyprpanel.event.v1.StatusNotifierValue.Menu.Properties - (*NotificationValue_Hint)(nil), // 37: hyprpanel.event.v1.NotificationValue.Hint - (*NotificationValue_Action)(nil), // 38: hyprpanel.event.v1.NotificationValue.Action - (*NotificationValue_Pixmap)(nil), // 39: hyprpanel.event.v1.NotificationValue.Pixmap - (v1.Systray_Status)(0), // 40: hyprpanel.module.v1.Systray.Status - (*durationpb.Duration)(nil), // 41: google.protobuf.Duration - (*anypb.Any)(nil), // 42: google.protobuf.Any + (InhibitTarget)(0), // 3: hyprpanel.event.v1.InhibitTarget + (EventKind)(0), // 4: hyprpanel.event.v1.EventKind + (*HyprWorkspaceV2Value)(nil), // 5: hyprpanel.event.v1.HyprWorkspaceV2Value + (*HyprDestroyWorkspaceV2Value)(nil), // 6: hyprpanel.event.v1.HyprDestroyWorkspaceV2Value + (*HyprCreateWorkspaceV2Value)(nil), // 7: hyprpanel.event.v1.HyprCreateWorkspaceV2Value + (*HyprMoveWindowValue)(nil), // 8: hyprpanel.event.v1.HyprMoveWindowValue + (*HyprMoveWindowV2Value)(nil), // 9: hyprpanel.event.v1.HyprMoveWindowV2Value + (*HyprMoveWorkspaceValue)(nil), // 10: hyprpanel.event.v1.HyprMoveWorkspaceValue + (*HyprMoveWorkspaceV2Value)(nil), // 11: hyprpanel.event.v1.HyprMoveWorkspaceV2Value + (*HyprRenameWorkspaceValue)(nil), // 12: hyprpanel.event.v1.HyprRenameWorkspaceValue + (*HyprActiveWindowValue)(nil), // 13: hyprpanel.event.v1.HyprActiveWindowValue + (*HyprOpenWindowValue)(nil), // 14: hyprpanel.event.v1.HyprOpenWindowValue + (*StatusNotifierValue)(nil), // 15: hyprpanel.event.v1.StatusNotifierValue + (*UpdateTitleValue)(nil), // 16: hyprpanel.event.v1.UpdateTitleValue + (*UpdateTooltipValue)(nil), // 17: hyprpanel.event.v1.UpdateTooltipValue + (*UpdateIconValue)(nil), // 18: hyprpanel.event.v1.UpdateIconValue + (*UpdateStatusValue)(nil), // 19: hyprpanel.event.v1.UpdateStatusValue + (*UpdateMenuValue)(nil), // 20: hyprpanel.event.v1.UpdateMenuValue + (*NotificationValue)(nil), // 21: hyprpanel.event.v1.NotificationValue + (*HudNotificationValue)(nil), // 22: hyprpanel.event.v1.HudNotificationValue + (*AudioSinkChangeValue)(nil), // 23: hyprpanel.event.v1.AudioSinkChangeValue + (*AudioSourceChangeValue)(nil), // 24: hyprpanel.event.v1.AudioSourceChangeValue + (*AudioSinkVolumeAdjust)(nil), // 25: hyprpanel.event.v1.AudioSinkVolumeAdjust + (*AudioSinkMuteToggle)(nil), // 26: hyprpanel.event.v1.AudioSinkMuteToggle + (*AudioSourceVolumeAdjust)(nil), // 27: hyprpanel.event.v1.AudioSourceVolumeAdjust + (*AudioSourceMuteToggle)(nil), // 28: hyprpanel.event.v1.AudioSourceMuteToggle + (*BrightnessChangeValue)(nil), // 29: hyprpanel.event.v1.BrightnessChangeValue + (*BrightnessAdjustValue)(nil), // 30: hyprpanel.event.v1.BrightnessAdjustValue + (*PowerChangeValue)(nil), // 31: hyprpanel.event.v1.PowerChangeValue + (*IdleInhibitorValue)(nil), // 32: hyprpanel.event.v1.IdleInhibitorValue + (*Event)(nil), // 33: hyprpanel.event.v1.Event + (*StatusNotifierValue_Pixmap)(nil), // 34: hyprpanel.event.v1.StatusNotifierValue.Pixmap + (*StatusNotifierValue_Tooltip)(nil), // 35: hyprpanel.event.v1.StatusNotifierValue.Tooltip + (*StatusNotifierValue_Icon)(nil), // 36: hyprpanel.event.v1.StatusNotifierValue.Icon + (*StatusNotifierValue_Menu)(nil), // 37: hyprpanel.event.v1.StatusNotifierValue.Menu + (*StatusNotifierValue_Menu_Properties)(nil), // 38: hyprpanel.event.v1.StatusNotifierValue.Menu.Properties + (*NotificationValue_Hint)(nil), // 39: hyprpanel.event.v1.NotificationValue.Hint + (*NotificationValue_Action)(nil), // 40: hyprpanel.event.v1.NotificationValue.Action + (*NotificationValue_Pixmap)(nil), // 41: hyprpanel.event.v1.NotificationValue.Pixmap + (v1.Systray_Status)(0), // 42: hyprpanel.module.v1.Systray.Status + (*durationpb.Duration)(nil), // 43: google.protobuf.Duration + (*anypb.Any)(nil), // 44: google.protobuf.Any } var file_hyprpanel_event_v1_event_proto_depIdxs = []int32{ - 40, // 0: hyprpanel.event.v1.StatusNotifierValue.status:type_name -> hyprpanel.module.v1.Systray.Status - 33, // 1: hyprpanel.event.v1.StatusNotifierValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip - 34, // 2: hyprpanel.event.v1.StatusNotifierValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon - 35, // 3: hyprpanel.event.v1.StatusNotifierValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu - 33, // 4: hyprpanel.event.v1.UpdateTooltipValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip - 34, // 5: hyprpanel.event.v1.UpdateIconValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon - 40, // 6: hyprpanel.event.v1.UpdateStatusValue.status:type_name -> hyprpanel.module.v1.Systray.Status - 35, // 7: hyprpanel.event.v1.UpdateMenuValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu - 38, // 8: hyprpanel.event.v1.NotificationValue.actions:type_name -> hyprpanel.event.v1.NotificationValue.Action - 37, // 9: hyprpanel.event.v1.NotificationValue.hints:type_name -> hyprpanel.event.v1.NotificationValue.Hint - 41, // 10: hyprpanel.event.v1.NotificationValue.timeout:type_name -> google.protobuf.Duration + 42, // 0: hyprpanel.event.v1.StatusNotifierValue.status:type_name -> hyprpanel.module.v1.Systray.Status + 35, // 1: hyprpanel.event.v1.StatusNotifierValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip + 36, // 2: hyprpanel.event.v1.StatusNotifierValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon + 37, // 3: hyprpanel.event.v1.StatusNotifierValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu + 35, // 4: hyprpanel.event.v1.UpdateTooltipValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip + 36, // 5: hyprpanel.event.v1.UpdateIconValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon + 42, // 6: hyprpanel.event.v1.UpdateStatusValue.status:type_name -> hyprpanel.module.v1.Systray.Status + 37, // 7: hyprpanel.event.v1.UpdateMenuValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu + 40, // 8: hyprpanel.event.v1.NotificationValue.actions:type_name -> hyprpanel.event.v1.NotificationValue.Action + 39, // 9: hyprpanel.event.v1.NotificationValue.hints:type_name -> hyprpanel.event.v1.NotificationValue.Hint + 43, // 10: hyprpanel.event.v1.NotificationValue.timeout:type_name -> google.protobuf.Duration 0, // 11: hyprpanel.event.v1.AudioSinkVolumeAdjust.direction:type_name -> hyprpanel.event.v1.Direction 0, // 12: hyprpanel.event.v1.AudioSourceVolumeAdjust.direction:type_name -> hyprpanel.event.v1.Direction 0, // 13: hyprpanel.event.v1.BrightnessAdjustValue.direction:type_name -> hyprpanel.event.v1.Direction 1, // 14: hyprpanel.event.v1.PowerChangeValue.type:type_name -> hyprpanel.event.v1.PowerType - 41, // 15: hyprpanel.event.v1.PowerChangeValue.time_to_empty:type_name -> google.protobuf.Duration - 41, // 16: hyprpanel.event.v1.PowerChangeValue.time_to_full:type_name -> google.protobuf.Duration + 43, // 15: hyprpanel.event.v1.PowerChangeValue.time_to_empty:type_name -> google.protobuf.Duration + 43, // 16: hyprpanel.event.v1.PowerChangeValue.time_to_full:type_name -> google.protobuf.Duration 2, // 17: hyprpanel.event.v1.PowerChangeValue.state:type_name -> hyprpanel.event.v1.PowerState - 3, // 18: hyprpanel.event.v1.Event.kind:type_name -> hyprpanel.event.v1.EventKind - 42, // 19: hyprpanel.event.v1.Event.data:type_name -> google.protobuf.Any - 32, // 20: hyprpanel.event.v1.StatusNotifierValue.Tooltip.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap - 32, // 21: hyprpanel.event.v1.StatusNotifierValue.Icon.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap - 36, // 22: hyprpanel.event.v1.StatusNotifierValue.Menu.properties:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu.Properties - 35, // 23: hyprpanel.event.v1.StatusNotifierValue.Menu.children:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu - 42, // 24: hyprpanel.event.v1.NotificationValue.Hint.value:type_name -> google.protobuf.Any - 25, // [25:25] is the sub-list for method output_type - 25, // [25:25] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 3, // 18: hyprpanel.event.v1.IdleInhibitorValue.target:type_name -> hyprpanel.event.v1.InhibitTarget + 4, // 19: hyprpanel.event.v1.Event.kind:type_name -> hyprpanel.event.v1.EventKind + 44, // 20: hyprpanel.event.v1.Event.data:type_name -> google.protobuf.Any + 34, // 21: hyprpanel.event.v1.StatusNotifierValue.Tooltip.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap + 34, // 22: hyprpanel.event.v1.StatusNotifierValue.Icon.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap + 38, // 23: hyprpanel.event.v1.StatusNotifierValue.Menu.properties:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu.Properties + 37, // 24: hyprpanel.event.v1.StatusNotifierValue.Menu.children:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu + 44, // 25: hyprpanel.event.v1.NotificationValue.Hint.value:type_name -> google.protobuf.Any + 26, // [26:26] is the sub-list for method output_type + 26, // [26:26] is the sub-list for method input_type + 26, // [26:26] is the sub-list for extension type_name + 26, // [26:26] is the sub-list for extension extendee + 0, // [0:26] is the sub-list for field type_name } func init() { file_hyprpanel_event_v1_event_proto_init() } @@ -3832,7 +3958,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Event); i { + switch v := v.(*IdleInhibitorValue); i { case 0: return &v.state case 1: @@ -3844,7 +3970,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Pixmap); i { + switch v := v.(*Event); i { case 0: return &v.state case 1: @@ -3856,7 +3982,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Tooltip); i { + switch v := v.(*StatusNotifierValue_Pixmap); i { case 0: return &v.state case 1: @@ -3868,7 +3994,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Icon); i { + switch v := v.(*StatusNotifierValue_Tooltip); i { case 0: return &v.state case 1: @@ -3880,7 +4006,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Menu); i { + switch v := v.(*StatusNotifierValue_Icon); i { case 0: return &v.state case 1: @@ -3892,7 +4018,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Menu_Properties); i { + switch v := v.(*StatusNotifierValue_Menu); i { case 0: return &v.state case 1: @@ -3904,7 +4030,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotificationValue_Hint); i { + switch v := v.(*StatusNotifierValue_Menu_Properties); i { case 0: return &v.state case 1: @@ -3916,7 +4042,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotificationValue_Action); i { + switch v := v.(*NotificationValue_Hint); i { case 0: return &v.state case 1: @@ -3928,6 +4054,18 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotificationValue_Action); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_event_v1_event_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotificationValue_Pixmap); i { case 0: return &v.state @@ -3945,8 +4083,8 @@ func file_hyprpanel_event_v1_event_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_event_v1_event_proto_rawDesc, - NumEnums: 4, - NumMessages: 36, + NumEnums: 5, + NumMessages: 37, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/hyprpanel/event/v1/event.proto b/proto/hyprpanel/event/v1/event.proto index ebe7412..9fa9655 100644 --- a/proto/hyprpanel/event/v1/event.proto +++ b/proto/hyprpanel/event/v1/event.proto @@ -34,6 +34,13 @@ enum PowerState { POWER_STATE_PENDING_DISCHARGE = 6; } +enum InhibitTarget { + INHIBIT_TARGET_UNSPECIFIED = 0; + INHIBIT_TARGET_IDLE = 1; + INHIBIT_TARGET_SLEEP = 2; + INHIBIT_TARGET_SHUTDOWN = 3; +} + enum EventKind { EVENT_KIND_UNSPECIFIED = 0; EVENT_KIND_HYPR_WORKSPACE = 1; @@ -94,6 +101,8 @@ enum EventKind { EVENT_KIND_HYPR_DESTROYWORKSPACEV2 = 57; EVENT_KIND_HYPR_WORKSPACEV2 = 58; EVENT_KIND_EXEC = 59; + EVENT_KIND_IDLE_INHIBITOR_INHIBIT = 60; + EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT = 61; } message HyprWorkspaceV2Value { @@ -333,6 +342,10 @@ message PowerChangeValue { double energy_full = 14; } +message IdleInhibitorValue { + InhibitTarget target = 1; +} + message Event { EventKind kind = 1; google.protobuf.Any data = 2; diff --git a/proto/hyprpanel/module/v1/module.pb.go b/proto/hyprpanel/module/v1/module.pb.go index 584ce44..8c9cad1 100644 --- a/proto/hyprpanel/module/v1/module.pb.go +++ b/proto/hyprpanel/module/v1/module.pb.go @@ -143,6 +143,58 @@ func (Systray_Status) EnumDescriptor() ([]byte, []int) { return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{2, 0} } +type IdleInhibitor_DefaultTarget int32 + +const ( + IdleInhibitor_DEFAULT_TARGET_UNSPECIFIED IdleInhibitor_DefaultTarget = 0 + IdleInhibitor_DEFAULT_TARGET_LOCK IdleInhibitor_DefaultTarget = 1 + IdleInhibitor_DEFAULT_TARGET_SUSPEND IdleInhibitor_DefaultTarget = 2 + IdleInhibitor_DEFAULT_TARGET_SHUTDOWN IdleInhibitor_DefaultTarget = 3 +) + +// Enum value maps for IdleInhibitor_DefaultTarget. +var ( + IdleInhibitor_DefaultTarget_name = map[int32]string{ + 0: "DEFAULT_TARGET_UNSPECIFIED", + 1: "DEFAULT_TARGET_LOCK", + 2: "DEFAULT_TARGET_SUSPEND", + 3: "DEFAULT_TARGET_SHUTDOWN", + } + IdleInhibitor_DefaultTarget_value = map[string]int32{ + "DEFAULT_TARGET_UNSPECIFIED": 0, + "DEFAULT_TARGET_LOCK": 1, + "DEFAULT_TARGET_SUSPEND": 2, + "DEFAULT_TARGET_SHUTDOWN": 3, + } +) + +func (x IdleInhibitor_DefaultTarget) Enum() *IdleInhibitor_DefaultTarget { + p := new(IdleInhibitor_DefaultTarget) + *p = x + return p +} + +func (x IdleInhibitor_DefaultTarget) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IdleInhibitor_DefaultTarget) Descriptor() protoreflect.EnumDescriptor { + return file_hyprpanel_module_v1_module_proto_enumTypes[2].Descriptor() +} + +func (IdleInhibitor_DefaultTarget) Type() protoreflect.EnumType { + return &file_hyprpanel_module_v1_module_proto_enumTypes[2] +} + +func (x IdleInhibitor_DefaultTarget) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdleInhibitor_DefaultTarget.Descriptor instead. +func (IdleInhibitor_DefaultTarget) EnumDescriptor() ([]byte, []int) { + return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{11, 0} +} + type Pager struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1054,6 +1106,69 @@ func (*SystrayModule_Audio) isSystrayModule_Kind() {} func (*SystrayModule_Power) isSystrayModule_Kind() {} +type IdleInhibitor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IconSize uint32 `protobuf:"varint,1,opt,name=icon_size,json=iconSize,proto3" json:"icon_size,omitempty"` // size in pixels for panel icon. + IconSymbolic bool `protobuf:"varint,2,opt,name=icon_symbolic,json=iconSymbolic,proto3" json:"icon_symbolic,omitempty"` // display symbolic or coloured icon in panel. + DefaultTarget IdleInhibitor_DefaultTarget `protobuf:"varint,3,opt,name=default_target,json=defaultTarget,proto3,enum=hyprpanel.module.v1.IdleInhibitor_DefaultTarget" json:"default_target,omitempty"` // default inhibit target for left click action. +} + +func (x *IdleInhibitor) Reset() { + *x = IdleInhibitor{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_module_v1_module_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdleInhibitor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdleInhibitor) ProtoMessage() {} + +func (x *IdleInhibitor) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_module_v1_module_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdleInhibitor.ProtoReflect.Descriptor instead. +func (*IdleInhibitor) Descriptor() ([]byte, []int) { + return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{11} +} + +func (x *IdleInhibitor) GetIconSize() uint32 { + if x != nil { + return x.IconSize + } + return 0 +} + +func (x *IdleInhibitor) GetIconSymbolic() bool { + if x != nil { + return x.IconSymbolic + } + return false +} + +func (x *IdleInhibitor) GetDefaultTarget() IdleInhibitor_DefaultTarget { + if x != nil { + return x.DefaultTarget + } + return IdleInhibitor_DEFAULT_TARGET_UNSPECIFIED +} + type Module struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1071,13 +1186,14 @@ type Module struct { // *Module_Clock // *Module_Session // *Module_Spacer + // *Module_IdleInhibitor Kind isModule_Kind `protobuf_oneof:"kind"` } func (x *Module) Reset() { *x = Module{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_module_v1_module_proto_msgTypes[11] + mi := &file_hyprpanel_module_v1_module_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1090,7 +1206,7 @@ func (x *Module) String() string { func (*Module) ProtoMessage() {} func (x *Module) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_module_v1_module_proto_msgTypes[11] + mi := &file_hyprpanel_module_v1_module_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1103,7 +1219,7 @@ func (x *Module) ProtoReflect() protoreflect.Message { // Deprecated: Use Module.ProtoReflect.Descriptor instead. func (*Module) Descriptor() ([]byte, []int) { - return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{11} + return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{12} } func (m *Module) GetKind() isModule_Kind { @@ -1183,6 +1299,13 @@ func (x *Module) GetSpacer() *Spacer { return nil } +func (x *Module) GetIdleInhibitor() *IdleInhibitor { + if x, ok := x.GetKind().(*Module_IdleInhibitor); ok { + return x.IdleInhibitor + } + return nil +} + type isModule_Kind interface { isModule_Kind() } @@ -1227,6 +1350,10 @@ type Module_Spacer struct { Spacer *Spacer `protobuf:"bytes,10,opt,name=spacer,proto3,oneof"` } +type Module_IdleInhibitor struct { + IdleInhibitor *IdleInhibitor `protobuf:"bytes,11,opt,name=idle_inhibitor,json=idleInhibitor,proto3,oneof"` +} + func (*Module_Pager) isModule_Kind() {} func (*Module_Taskbar) isModule_Kind() {} @@ -1247,6 +1374,8 @@ func (*Module_Session) isModule_Kind() {} func (*Module_Spacer) isModule_Kind() {} +func (*Module_IdleInhibitor) isModule_Kind() {} + var File_hyprpanel_module_v1_module_proto protoreflect.FileDescriptor var file_hyprpanel_module_v1_module_proto_rawDesc = []byte{ @@ -1417,72 +1546,95 @@ var file_hyprpanel_module_v1_module_proto_rawDesc = []byte{ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x06, 0x0a, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xbf, 0x04, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x12, 0x32, 0x0a, 0x05, 0x70, 0x61, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, - 0x61, 0x67, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, - 0x62, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, 0x12, 0x38, - 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, - 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x68, 0x75, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x75, 0x64, 0x48, 0x00, 0x52, 0x03, 0x68, - 0x75, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x48, 0x00, 0x52, - 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x77, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xae, 0x02, 0x0a, 0x0d, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6f, 0x6e, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x63, 0x6f, 0x6e, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6d, + 0x62, 0x6f, 0x6c, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x63, 0x6f, + 0x6e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63, 0x12, 0x57, 0x0a, 0x0e, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, + 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, + 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x1a, 0x0a, + 0x16, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, + 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x45, 0x46, + 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x55, 0x54, + 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x22, 0x8c, 0x05, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x61, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, + 0x70, 0x61, 0x67, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, + 0x6b, 0x62, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, 0x12, + 0x38, 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x48, 0x00, + 0x52, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x68, 0x75, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x75, 0x64, 0x48, 0x00, 0x52, 0x03, + 0x68, 0x75, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x48, 0x00, + 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, + 0x38, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x38, - 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x70, 0x61, 0x63, 0x65, 0x72, 0x42, - 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x2a, 0xeb, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, - 0x0a, 0x11, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x4c, - 0x45, 0x46, 0x54, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x53, 0x49, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x03, 0x12, - 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, - 0x54, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x05, 0x12, 0x13, - 0x0a, 0x0f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, - 0x4d, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x07, 0x12, 0x11, 0x0a, - 0x0d, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x08, - 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x45, 0x4e, - 0x54, 0x45, 0x52, 0x10, 0x09, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, - 0x31, 0x42, 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, - 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x48, 0x4d, 0x58, 0xaa, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2, - 0x02, 0x1f, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x15, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x4d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x70, 0x61, 0x63, 0x65, 0x72, + 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0d, + 0x69, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x42, 0x06, 0x0a, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x2a, 0xeb, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x4c, 0x45, 0x46, + 0x54, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x4f, 0x50, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x03, 0x12, 0x12, 0x0a, + 0x0e, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, + 0x04, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, + 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, + 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, + 0x06, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, + 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x50, + 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x08, 0x12, 0x13, + 0x0a, 0x0f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x45, 0x4e, 0x54, 0x45, + 0x52, 0x10, 0x09, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x42, + 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, + 0x76, 0x31, 0x3b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x4d, + 0x58, 0xaa, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, + 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x15, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1497,50 +1649,54 @@ func file_hyprpanel_module_v1_module_proto_rawDescGZIP() []byte { return file_hyprpanel_module_v1_module_proto_rawDescData } -var file_hyprpanel_module_v1_module_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_hyprpanel_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_hyprpanel_module_v1_module_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_hyprpanel_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_hyprpanel_module_v1_module_proto_goTypes = []interface{}{ - (Position)(0), // 0: hyprpanel.module.v1.Position - (Systray_Status)(0), // 1: hyprpanel.module.v1.Systray.Status - (*Pager)(nil), // 2: hyprpanel.module.v1.Pager - (*Taskbar)(nil), // 3: hyprpanel.module.v1.Taskbar - (*Systray)(nil), // 4: hyprpanel.module.v1.Systray - (*Notifications)(nil), // 5: hyprpanel.module.v1.Notifications - (*Hud)(nil), // 6: hyprpanel.module.v1.Hud - (*Clock)(nil), // 7: hyprpanel.module.v1.Clock - (*Audio)(nil), // 8: hyprpanel.module.v1.Audio - (*Power)(nil), // 9: hyprpanel.module.v1.Power - (*Session)(nil), // 10: hyprpanel.module.v1.Session - (*Spacer)(nil), // 11: hyprpanel.module.v1.Spacer - (*SystrayModule)(nil), // 12: hyprpanel.module.v1.SystrayModule - (*Module)(nil), // 13: hyprpanel.module.v1.Module - (*durationpb.Duration)(nil), // 14: google.protobuf.Duration + (Position)(0), // 0: hyprpanel.module.v1.Position + (Systray_Status)(0), // 1: hyprpanel.module.v1.Systray.Status + (IdleInhibitor_DefaultTarget)(0), // 2: hyprpanel.module.v1.IdleInhibitor.DefaultTarget + (*Pager)(nil), // 3: hyprpanel.module.v1.Pager + (*Taskbar)(nil), // 4: hyprpanel.module.v1.Taskbar + (*Systray)(nil), // 5: hyprpanel.module.v1.Systray + (*Notifications)(nil), // 6: hyprpanel.module.v1.Notifications + (*Hud)(nil), // 7: hyprpanel.module.v1.Hud + (*Clock)(nil), // 8: hyprpanel.module.v1.Clock + (*Audio)(nil), // 9: hyprpanel.module.v1.Audio + (*Power)(nil), // 10: hyprpanel.module.v1.Power + (*Session)(nil), // 11: hyprpanel.module.v1.Session + (*Spacer)(nil), // 12: hyprpanel.module.v1.Spacer + (*SystrayModule)(nil), // 13: hyprpanel.module.v1.SystrayModule + (*IdleInhibitor)(nil), // 14: hyprpanel.module.v1.IdleInhibitor + (*Module)(nil), // 15: hyprpanel.module.v1.Module + (*durationpb.Duration)(nil), // 16: google.protobuf.Duration } var file_hyprpanel_module_v1_module_proto_depIdxs = []int32{ 1, // 0: hyprpanel.module.v1.Systray.auto_hide_statuses:type_name -> hyprpanel.module.v1.Systray.Status - 14, // 1: hyprpanel.module.v1.Systray.auto_hide_delay:type_name -> google.protobuf.Duration - 12, // 2: hyprpanel.module.v1.Systray.modules:type_name -> hyprpanel.module.v1.SystrayModule - 14, // 3: hyprpanel.module.v1.Notifications.default_timeout:type_name -> google.protobuf.Duration + 16, // 1: hyprpanel.module.v1.Systray.auto_hide_delay:type_name -> google.protobuf.Duration + 13, // 2: hyprpanel.module.v1.Systray.modules:type_name -> hyprpanel.module.v1.SystrayModule + 16, // 3: hyprpanel.module.v1.Notifications.default_timeout:type_name -> google.protobuf.Duration 0, // 4: hyprpanel.module.v1.Notifications.position:type_name -> hyprpanel.module.v1.Position - 14, // 5: hyprpanel.module.v1.Hud.timeout:type_name -> google.protobuf.Duration + 16, // 5: hyprpanel.module.v1.Hud.timeout:type_name -> google.protobuf.Duration 0, // 6: hyprpanel.module.v1.Hud.position:type_name -> hyprpanel.module.v1.Position - 8, // 7: hyprpanel.module.v1.SystrayModule.audio:type_name -> hyprpanel.module.v1.Audio - 9, // 8: hyprpanel.module.v1.SystrayModule.power:type_name -> hyprpanel.module.v1.Power - 2, // 9: hyprpanel.module.v1.Module.pager:type_name -> hyprpanel.module.v1.Pager - 3, // 10: hyprpanel.module.v1.Module.taskbar:type_name -> hyprpanel.module.v1.Taskbar - 4, // 11: hyprpanel.module.v1.Module.systray:type_name -> hyprpanel.module.v1.Systray - 5, // 12: hyprpanel.module.v1.Module.notifications:type_name -> hyprpanel.module.v1.Notifications - 6, // 13: hyprpanel.module.v1.Module.hud:type_name -> hyprpanel.module.v1.Hud - 8, // 14: hyprpanel.module.v1.Module.audio:type_name -> hyprpanel.module.v1.Audio - 9, // 15: hyprpanel.module.v1.Module.power:type_name -> hyprpanel.module.v1.Power - 7, // 16: hyprpanel.module.v1.Module.clock:type_name -> hyprpanel.module.v1.Clock - 10, // 17: hyprpanel.module.v1.Module.session:type_name -> hyprpanel.module.v1.Session - 11, // 18: hyprpanel.module.v1.Module.spacer:type_name -> hyprpanel.module.v1.Spacer - 19, // [19:19] is the sub-list for method output_type - 19, // [19:19] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 9, // 7: hyprpanel.module.v1.SystrayModule.audio:type_name -> hyprpanel.module.v1.Audio + 10, // 8: hyprpanel.module.v1.SystrayModule.power:type_name -> hyprpanel.module.v1.Power + 2, // 9: hyprpanel.module.v1.IdleInhibitor.default_target:type_name -> hyprpanel.module.v1.IdleInhibitor.DefaultTarget + 3, // 10: hyprpanel.module.v1.Module.pager:type_name -> hyprpanel.module.v1.Pager + 4, // 11: hyprpanel.module.v1.Module.taskbar:type_name -> hyprpanel.module.v1.Taskbar + 5, // 12: hyprpanel.module.v1.Module.systray:type_name -> hyprpanel.module.v1.Systray + 6, // 13: hyprpanel.module.v1.Module.notifications:type_name -> hyprpanel.module.v1.Notifications + 7, // 14: hyprpanel.module.v1.Module.hud:type_name -> hyprpanel.module.v1.Hud + 9, // 15: hyprpanel.module.v1.Module.audio:type_name -> hyprpanel.module.v1.Audio + 10, // 16: hyprpanel.module.v1.Module.power:type_name -> hyprpanel.module.v1.Power + 8, // 17: hyprpanel.module.v1.Module.clock:type_name -> hyprpanel.module.v1.Clock + 11, // 18: hyprpanel.module.v1.Module.session:type_name -> hyprpanel.module.v1.Session + 12, // 19: hyprpanel.module.v1.Module.spacer:type_name -> hyprpanel.module.v1.Spacer + 14, // 20: hyprpanel.module.v1.Module.idle_inhibitor:type_name -> hyprpanel.module.v1.IdleInhibitor + 21, // [21:21] is the sub-list for method output_type + 21, // [21:21] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_hyprpanel_module_v1_module_proto_init() } @@ -1682,6 +1838,18 @@ func file_hyprpanel_module_v1_module_proto_init() { } } file_hyprpanel_module_v1_module_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdleInhibitor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_module_v1_module_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Module); i { case 0: return &v.state @@ -1698,7 +1866,7 @@ func file_hyprpanel_module_v1_module_proto_init() { (*SystrayModule_Audio)(nil), (*SystrayModule_Power)(nil), } - file_hyprpanel_module_v1_module_proto_msgTypes[11].OneofWrappers = []interface{}{ + file_hyprpanel_module_v1_module_proto_msgTypes[12].OneofWrappers = []interface{}{ (*Module_Pager)(nil), (*Module_Taskbar)(nil), (*Module_Systray)(nil), @@ -1709,14 +1877,15 @@ func file_hyprpanel_module_v1_module_proto_init() { (*Module_Clock)(nil), (*Module_Session)(nil), (*Module_Spacer)(nil), + (*Module_IdleInhibitor)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_module_v1_module_proto_rawDesc, - NumEnums: 2, - NumMessages: 12, + NumEnums: 3, + NumMessages: 13, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/hyprpanel/module/v1/module.proto b/proto/hyprpanel/module/v1/module.proto index d92ca34..3a13444 100644 --- a/proto/hyprpanel/module/v1/module.proto +++ b/proto/hyprpanel/module/v1/module.proto @@ -116,6 +116,19 @@ message SystrayModule { } } +message IdleInhibitor { + enum DefaultTarget { + DEFAULT_TARGET_UNSPECIFIED = 0; + DEFAULT_TARGET_LOCK = 1; + DEFAULT_TARGET_SUSPEND = 2; + DEFAULT_TARGET_SHUTDOWN = 3; + } + + uint32 icon_size = 1; // size in pixels for panel icon. + bool icon_symbolic = 2; // display symbolic or coloured icon in panel. + DefaultTarget default_target = 3; // default inhibit target for left click action. +} + message Module { oneof kind { Pager pager = 1; @@ -128,5 +141,6 @@ message Module { Clock clock = 8; Session session = 9; Spacer spacer = 10; + IdleInhibitor idle_inhibitor = 11; } } diff --git a/proto/hyprpanel/v1/hyprpanel.pb.go b/proto/hyprpanel/v1/hyprpanel.pb.go index 94e3c09..f481824 100644 --- a/proto/hyprpanel/v1/hyprpanel.pb.go +++ b/proto/hyprpanel/v1/hyprpanel.pb.go @@ -2217,6 +2217,91 @@ func (x *HostServiceCaptureFrameRequest) GetHeight() int32 { return 0 } +type HostServiceIdleInhibitorRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Target v11.InhibitTarget `protobuf:"varint,1,opt,name=target,proto3,enum=hyprpanel.event.v1.InhibitTarget" json:"target,omitempty"` +} + +func (x *HostServiceIdleInhibitorRequest) Reset() { + *x = HostServiceIdleInhibitorRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HostServiceIdleInhibitorRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HostServiceIdleInhibitorRequest) ProtoMessage() {} + +func (x *HostServiceIdleInhibitorRequest) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HostServiceIdleInhibitorRequest.ProtoReflect.Descriptor instead. +func (*HostServiceIdleInhibitorRequest) Descriptor() ([]byte, []int) { + return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{41} +} + +func (x *HostServiceIdleInhibitorRequest) GetTarget() v11.InhibitTarget { + if x != nil { + return x.Target + } + return v11.InhibitTarget(0) +} + +type HostServiceIdleInhibitorResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *HostServiceIdleInhibitorResponse) Reset() { + *x = HostServiceIdleInhibitorResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HostServiceIdleInhibitorResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HostServiceIdleInhibitorResponse) ProtoMessage() {} + +func (x *HostServiceIdleInhibitorResponse) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HostServiceIdleInhibitorResponse.ProtoReflect.Descriptor instead. +func (*HostServiceIdleInhibitorResponse) Descriptor() ([]byte, []int) { + return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{42} +} + type HostServiceCaptureFrameResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2228,7 +2313,7 @@ type HostServiceCaptureFrameResponse struct { func (x *HostServiceCaptureFrameResponse) Reset() { *x = HostServiceCaptureFrameResponse{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[41] + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2241,7 +2326,7 @@ func (x *HostServiceCaptureFrameResponse) String() string { func (*HostServiceCaptureFrameResponse) ProtoMessage() {} func (x *HostServiceCaptureFrameResponse) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[41] + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2254,7 +2339,7 @@ func (x *HostServiceCaptureFrameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use HostServiceCaptureFrameResponse.ProtoReflect.Descriptor instead. func (*HostServiceCaptureFrameResponse) Descriptor() ([]byte, []int) { - return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{41} + return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{43} } func (x *HostServiceCaptureFrameResponse) GetImage() *ImageNRGBA { @@ -2278,7 +2363,7 @@ type AppInfo_Action struct { func (x *AppInfo_Action) Reset() { *x = AppInfo_Action{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[42] + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2291,7 +2376,7 @@ func (x *AppInfo_Action) String() string { func (*AppInfo_Action) ProtoMessage() {} func (x *AppInfo_Action) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[42] + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2558,198 +2643,221 @@ var file_hyprpanel_v1_hyprpanel_proto_rawDesc = []byte{ 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x51, 0x0a, 0x1f, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x52, 0x47, 0x42, 0x41, 0x52, 0x05, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2a, 0x9a, 0x01, 0x0a, 0x18, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, - 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, - 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, - 0x0a, 0x23, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, - 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x45, 0x52, - 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x59, 0x53, 0x54, 0x52, - 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x54, 0x41, 0x4c, - 0x10, 0x02, 0x2a, 0x76, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, - 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, - 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x59, - 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x59, - 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x48, 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xbf, 0x01, 0x0a, 0x18, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, - 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x4e, 0x4f, 0x54, 0x49, 0x46, - 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, - 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x4e, - 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, - 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x4d, 0x49, 0x53, - 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, + 0x68, 0x74, 0x22, 0x5c, 0x0a, 0x1f, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x22, 0x22, 0x0a, 0x20, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x1f, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x52, 0x47, 0x42, 0x41, + 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2a, 0x9a, 0x01, 0x0a, 0x18, 0x53, 0x79, 0x73, 0x74, + 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, + 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x27, 0x0a, 0x23, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, + 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, + 0x45, 0x52, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x59, 0x53, + 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, + 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x54, + 0x41, 0x4c, 0x10, 0x02, 0x2a, 0x76, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, + 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x59, 0x53, 0x54, + 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, + 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, + 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x48, 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xbf, 0x01, 0x0a, + 0x18, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, + 0x73, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x4e, 0x4f, 0x54, + 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x32, 0x9c, 0x02, 0x0a, - 0x0c, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, - 0x04, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x68, - 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, - 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x27, - 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, - 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, + 0x24, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, + 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x4d, + 0x49, 0x53, 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x54, 0x49, 0x46, + 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x32, 0x9c, + 0x02, 0x0a, 0x0c, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x55, 0x0a, 0x04, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x58, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x26, 0x2e, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, - 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf5, 0x0f, 0x0a, 0x0b, - 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x04, 0x45, - 0x78, 0x65, 0x63, 0x12, 0x24, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, - 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x74, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, - 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, - 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, - 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, - 0x18, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, - 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, - 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, - 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x12, - 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, - 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, - 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, - 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, - 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x95, - 0x01, 0x0a, 0x1a, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x2e, - 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, - 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x53, 0x79, 0x73, 0x74, 0x72, - 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, - 0x77, 0x12, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, - 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, - 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, - 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, - 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, + 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, + 0x12, 0x27, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x68, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x26, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xe5, 0x11, + 0x0a, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, + 0x04, 0x45, 0x78, 0x65, 0x63, 0x12, 0x24, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x65, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, + 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, + 0x01, 0x0a, 0x18, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x6e, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, + 0x6c, 0x12, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, + 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, + 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x95, 0x01, 0x0a, 0x1a, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, + 0x3a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, + 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, + 0x75, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x53, 0x79, 0x73, + 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, + 0x68, 0x6f, 0x77, 0x12, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, + 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, + 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, + 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, + 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, - 0x64, 0x12, 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, - 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, - 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x12, 0x35, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, - 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, - 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, - 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x34, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, - 0x69, 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x17, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x12, 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, + 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, + 0x73, 0x65, 0x64, 0x12, 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, + 0x6f, 0x73, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, + 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, + 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x35, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, + 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, + 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, + 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x34, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, + 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x17, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x35, - 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, - 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, - 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, - 0x10, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x75, 0x73, 0x74, 0x12, 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, + 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, + 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, 0x6f, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x12, 0x35, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, + 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x77, 0x0a, 0x10, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, + 0x75, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0xac, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x48, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x48, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x0d, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, - 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x14, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x12, 0x2d, 0x2e, + 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x16, + 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x55, 0x6e, 0x69, + 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x12, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xac, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x48, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x48, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x48, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x48, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2765,7 +2873,7 @@ func file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP() []byte { } var file_hyprpanel_v1_hyprpanel_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_hyprpanel_v1_hyprpanel_proto_msgTypes = make([]protoimpl.MessageInfo, 43) +var file_hyprpanel_v1_hyprpanel_proto_msgTypes = make([]protoimpl.MessageInfo, 45) var file_hyprpanel_v1_hyprpanel_proto_goTypes = []interface{}{ (SystrayScrollOrientation)(0), // 0: hyprpanel.v1.SystrayScrollOrientation (SystrayMenuEvent)(0), // 1: hyprpanel.v1.SystrayMenuEvent @@ -2811,72 +2919,80 @@ var file_hyprpanel_v1_hyprpanel_proto_goTypes = []interface{}{ (*HostServiceBrightnessAdjustRequest)(nil), // 41: hyprpanel.v1.HostServiceBrightnessAdjustRequest (*HostServiceBrightnessAdjustResponse)(nil), // 42: hyprpanel.v1.HostServiceBrightnessAdjustResponse (*HostServiceCaptureFrameRequest)(nil), // 43: hyprpanel.v1.HostServiceCaptureFrameRequest - (*HostServiceCaptureFrameResponse)(nil), // 44: hyprpanel.v1.HostServiceCaptureFrameResponse - (*AppInfo_Action)(nil), // 45: hyprpanel.v1.AppInfo.Action - (v1.LogLevel)(0), // 46: hyprpanel.config.v1.LogLevel - (*v1.Panel)(nil), // 47: hyprpanel.config.v1.Panel - (*v11.Event)(nil), // 48: hyprpanel.event.v1.Event - (*anypb.Any)(nil), // 49: google.protobuf.Any - (v11.Direction)(0), // 50: hyprpanel.event.v1.Direction + (*HostServiceIdleInhibitorRequest)(nil), // 44: hyprpanel.v1.HostServiceIdleInhibitorRequest + (*HostServiceIdleInhibitorResponse)(nil), // 45: hyprpanel.v1.HostServiceIdleInhibitorResponse + (*HostServiceCaptureFrameResponse)(nil), // 46: hyprpanel.v1.HostServiceCaptureFrameResponse + (*AppInfo_Action)(nil), // 47: hyprpanel.v1.AppInfo.Action + (v1.LogLevel)(0), // 48: hyprpanel.config.v1.LogLevel + (*v1.Panel)(nil), // 49: hyprpanel.config.v1.Panel + (*v11.Event)(nil), // 50: hyprpanel.event.v1.Event + (*anypb.Any)(nil), // 51: google.protobuf.Any + (v11.Direction)(0), // 52: hyprpanel.event.v1.Direction + (v11.InhibitTarget)(0), // 53: hyprpanel.event.v1.InhibitTarget } var file_hyprpanel_v1_hyprpanel_proto_depIdxs = []int32{ - 45, // 0: hyprpanel.v1.AppInfo.actions:type_name -> hyprpanel.v1.AppInfo.Action - 46, // 1: hyprpanel.v1.PanelServiceInitRequest.log_level:type_name -> hyprpanel.config.v1.LogLevel - 47, // 2: hyprpanel.v1.PanelServiceInitRequest.config:type_name -> hyprpanel.config.v1.Panel - 48, // 3: hyprpanel.v1.PanelServiceNotifyRequest.event:type_name -> hyprpanel.event.v1.Event - 45, // 4: hyprpanel.v1.HostServiceExecRequest.action:type_name -> hyprpanel.v1.AppInfo.Action + 47, // 0: hyprpanel.v1.AppInfo.actions:type_name -> hyprpanel.v1.AppInfo.Action + 48, // 1: hyprpanel.v1.PanelServiceInitRequest.log_level:type_name -> hyprpanel.config.v1.LogLevel + 49, // 2: hyprpanel.v1.PanelServiceInitRequest.config:type_name -> hyprpanel.config.v1.Panel + 50, // 3: hyprpanel.v1.PanelServiceNotifyRequest.event:type_name -> hyprpanel.event.v1.Event + 47, // 4: hyprpanel.v1.HostServiceExecRequest.action:type_name -> hyprpanel.v1.AppInfo.Action 4, // 5: hyprpanel.v1.HostServiceFindApplicationResponse.app_info:type_name -> hyprpanel.v1.AppInfo 0, // 6: hyprpanel.v1.HostServiceSystrayScrollRequest.orientation:type_name -> hyprpanel.v1.SystrayScrollOrientation 1, // 7: hyprpanel.v1.HostServiceSystrayMenuEventRequest.event_id:type_name -> hyprpanel.v1.SystrayMenuEvent - 49, // 8: hyprpanel.v1.HostServiceSystrayMenuEventRequest.data:type_name -> google.protobuf.Any + 51, // 8: hyprpanel.v1.HostServiceSystrayMenuEventRequest.data:type_name -> google.protobuf.Any 2, // 9: hyprpanel.v1.HostServiceNotificationClosedRequest.reason:type_name -> hyprpanel.v1.NotificationClosedReason - 50, // 10: hyprpanel.v1.HostServiceAudioSinkVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction - 50, // 11: hyprpanel.v1.HostServiceAudioSourceVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction - 50, // 12: hyprpanel.v1.HostServiceBrightnessAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction - 3, // 13: hyprpanel.v1.HostServiceCaptureFrameResponse.image:type_name -> hyprpanel.v1.ImageNRGBA - 5, // 14: hyprpanel.v1.PanelService.Init:input_type -> hyprpanel.v1.PanelServiceInitRequest - 7, // 15: hyprpanel.v1.PanelService.Notify:input_type -> hyprpanel.v1.PanelServiceNotifyRequest - 11, // 16: hyprpanel.v1.PanelService.Close:input_type -> hyprpanel.v1.PanelServiceCloseRequest - 13, // 17: hyprpanel.v1.HostService.Exec:input_type -> hyprpanel.v1.HostServiceExecRequest - 15, // 18: hyprpanel.v1.HostService.FindApplication:input_type -> hyprpanel.v1.HostServiceFindApplicationRequest - 17, // 19: hyprpanel.v1.HostService.SystrayActivate:input_type -> hyprpanel.v1.HostServiceSystrayActivateRequest - 19, // 20: hyprpanel.v1.HostService.SystraySecondaryActivate:input_type -> hyprpanel.v1.HostServiceSystraySecondaryActivateRequest - 21, // 21: hyprpanel.v1.HostService.SystrayScroll:input_type -> hyprpanel.v1.HostServiceSystrayScrollRequest - 23, // 22: hyprpanel.v1.HostService.SystrayMenuContextActivate:input_type -> hyprpanel.v1.HostServiceSystrayMenuContextActivateRequest - 25, // 23: hyprpanel.v1.HostService.SystrayMenuAboutToShow:input_type -> hyprpanel.v1.HostServiceSystrayMenuAboutToShowRequest - 27, // 24: hyprpanel.v1.HostService.SystrayMenuEvent:input_type -> hyprpanel.v1.HostServiceSystrayMenuEventRequest - 29, // 25: hyprpanel.v1.HostService.NotificationClosed:input_type -> hyprpanel.v1.HostServiceNotificationClosedRequest - 31, // 26: hyprpanel.v1.HostService.NotificationAction:input_type -> hyprpanel.v1.HostServiceNotificationActionRequest - 33, // 27: hyprpanel.v1.HostService.AudioSinkVolumeAdjust:input_type -> hyprpanel.v1.HostServiceAudioSinkVolumeAdjustRequest - 35, // 28: hyprpanel.v1.HostService.AudioSinkMuteToggle:input_type -> hyprpanel.v1.HostServiceAudioSinkMuteToggleRequest - 37, // 29: hyprpanel.v1.HostService.AudioSourceVolumeAdjust:input_type -> hyprpanel.v1.HostServiceAudioSourceVolumeAdjustRequest - 39, // 30: hyprpanel.v1.HostService.AudioSourceMuteToggle:input_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleRequest - 41, // 31: hyprpanel.v1.HostService.BrightnessAdjust:input_type -> hyprpanel.v1.HostServiceBrightnessAdjustRequest - 43, // 32: hyprpanel.v1.HostService.CaptureFrame:input_type -> hyprpanel.v1.HostServiceCaptureFrameRequest - 6, // 33: hyprpanel.v1.PanelService.Init:output_type -> hyprpanel.v1.PanelServiceInitResponse - 8, // 34: hyprpanel.v1.PanelService.Notify:output_type -> hyprpanel.v1.PanelServiceNotifyResponse - 12, // 35: hyprpanel.v1.PanelService.Close:output_type -> hyprpanel.v1.PanelServiceCloseResponse - 14, // 36: hyprpanel.v1.HostService.Exec:output_type -> hyprpanel.v1.HostServiceExecResponse - 16, // 37: hyprpanel.v1.HostService.FindApplication:output_type -> hyprpanel.v1.HostServiceFindApplicationResponse - 18, // 38: hyprpanel.v1.HostService.SystrayActivate:output_type -> hyprpanel.v1.HostServiceSystrayActivateResponse - 20, // 39: hyprpanel.v1.HostService.SystraySecondaryActivate:output_type -> hyprpanel.v1.HostServiceSystraySecondaryActivateResponse - 22, // 40: hyprpanel.v1.HostService.SystrayScroll:output_type -> hyprpanel.v1.HostServiceSystrayScrollResponse - 24, // 41: hyprpanel.v1.HostService.SystrayMenuContextActivate:output_type -> hyprpanel.v1.HostServiceSystrayMenuContextActivateResponse - 26, // 42: hyprpanel.v1.HostService.SystrayMenuAboutToShow:output_type -> hyprpanel.v1.HostServiceSystrayMenuAboutToShowResponse - 28, // 43: hyprpanel.v1.HostService.SystrayMenuEvent:output_type -> hyprpanel.v1.HostServiceSystrayMenuEventResponse - 30, // 44: hyprpanel.v1.HostService.NotificationClosed:output_type -> hyprpanel.v1.HostServiceNotificationClosedResponse - 32, // 45: hyprpanel.v1.HostService.NotificationAction:output_type -> hyprpanel.v1.HostServiceNotificationActionResponse - 34, // 46: hyprpanel.v1.HostService.AudioSinkVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSinkVolumeAdjustResponse - 36, // 47: hyprpanel.v1.HostService.AudioSinkMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSinkMuteToggleResponse - 38, // 48: hyprpanel.v1.HostService.AudioSourceVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSourceVolumeAdjustResponse - 40, // 49: hyprpanel.v1.HostService.AudioSourceMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleResponse - 42, // 50: hyprpanel.v1.HostService.BrightnessAdjust:output_type -> hyprpanel.v1.HostServiceBrightnessAdjustResponse - 44, // 51: hyprpanel.v1.HostService.CaptureFrame:output_type -> hyprpanel.v1.HostServiceCaptureFrameResponse - 33, // [33:52] is the sub-list for method output_type - 14, // [14:33] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 52, // 10: hyprpanel.v1.HostServiceAudioSinkVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction + 52, // 11: hyprpanel.v1.HostServiceAudioSourceVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction + 52, // 12: hyprpanel.v1.HostServiceBrightnessAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction + 53, // 13: hyprpanel.v1.HostServiceIdleInhibitorRequest.target:type_name -> hyprpanel.event.v1.InhibitTarget + 3, // 14: hyprpanel.v1.HostServiceCaptureFrameResponse.image:type_name -> hyprpanel.v1.ImageNRGBA + 5, // 15: hyprpanel.v1.PanelService.Init:input_type -> hyprpanel.v1.PanelServiceInitRequest + 7, // 16: hyprpanel.v1.PanelService.Notify:input_type -> hyprpanel.v1.PanelServiceNotifyRequest + 11, // 17: hyprpanel.v1.PanelService.Close:input_type -> hyprpanel.v1.PanelServiceCloseRequest + 13, // 18: hyprpanel.v1.HostService.Exec:input_type -> hyprpanel.v1.HostServiceExecRequest + 15, // 19: hyprpanel.v1.HostService.FindApplication:input_type -> hyprpanel.v1.HostServiceFindApplicationRequest + 17, // 20: hyprpanel.v1.HostService.SystrayActivate:input_type -> hyprpanel.v1.HostServiceSystrayActivateRequest + 19, // 21: hyprpanel.v1.HostService.SystraySecondaryActivate:input_type -> hyprpanel.v1.HostServiceSystraySecondaryActivateRequest + 21, // 22: hyprpanel.v1.HostService.SystrayScroll:input_type -> hyprpanel.v1.HostServiceSystrayScrollRequest + 23, // 23: hyprpanel.v1.HostService.SystrayMenuContextActivate:input_type -> hyprpanel.v1.HostServiceSystrayMenuContextActivateRequest + 25, // 24: hyprpanel.v1.HostService.SystrayMenuAboutToShow:input_type -> hyprpanel.v1.HostServiceSystrayMenuAboutToShowRequest + 27, // 25: hyprpanel.v1.HostService.SystrayMenuEvent:input_type -> hyprpanel.v1.HostServiceSystrayMenuEventRequest + 29, // 26: hyprpanel.v1.HostService.NotificationClosed:input_type -> hyprpanel.v1.HostServiceNotificationClosedRequest + 31, // 27: hyprpanel.v1.HostService.NotificationAction:input_type -> hyprpanel.v1.HostServiceNotificationActionRequest + 33, // 28: hyprpanel.v1.HostService.AudioSinkVolumeAdjust:input_type -> hyprpanel.v1.HostServiceAudioSinkVolumeAdjustRequest + 35, // 29: hyprpanel.v1.HostService.AudioSinkMuteToggle:input_type -> hyprpanel.v1.HostServiceAudioSinkMuteToggleRequest + 37, // 30: hyprpanel.v1.HostService.AudioSourceVolumeAdjust:input_type -> hyprpanel.v1.HostServiceAudioSourceVolumeAdjustRequest + 39, // 31: hyprpanel.v1.HostService.AudioSourceMuteToggle:input_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleRequest + 41, // 32: hyprpanel.v1.HostService.BrightnessAdjust:input_type -> hyprpanel.v1.HostServiceBrightnessAdjustRequest + 43, // 33: hyprpanel.v1.HostService.CaptureFrame:input_type -> hyprpanel.v1.HostServiceCaptureFrameRequest + 44, // 34: hyprpanel.v1.HostService.IdleInhibitorInhibit:input_type -> hyprpanel.v1.HostServiceIdleInhibitorRequest + 44, // 35: hyprpanel.v1.HostService.IdleInhibitorUninhibit:input_type -> hyprpanel.v1.HostServiceIdleInhibitorRequest + 6, // 36: hyprpanel.v1.PanelService.Init:output_type -> hyprpanel.v1.PanelServiceInitResponse + 8, // 37: hyprpanel.v1.PanelService.Notify:output_type -> hyprpanel.v1.PanelServiceNotifyResponse + 12, // 38: hyprpanel.v1.PanelService.Close:output_type -> hyprpanel.v1.PanelServiceCloseResponse + 14, // 39: hyprpanel.v1.HostService.Exec:output_type -> hyprpanel.v1.HostServiceExecResponse + 16, // 40: hyprpanel.v1.HostService.FindApplication:output_type -> hyprpanel.v1.HostServiceFindApplicationResponse + 18, // 41: hyprpanel.v1.HostService.SystrayActivate:output_type -> hyprpanel.v1.HostServiceSystrayActivateResponse + 20, // 42: hyprpanel.v1.HostService.SystraySecondaryActivate:output_type -> hyprpanel.v1.HostServiceSystraySecondaryActivateResponse + 22, // 43: hyprpanel.v1.HostService.SystrayScroll:output_type -> hyprpanel.v1.HostServiceSystrayScrollResponse + 24, // 44: hyprpanel.v1.HostService.SystrayMenuContextActivate:output_type -> hyprpanel.v1.HostServiceSystrayMenuContextActivateResponse + 26, // 45: hyprpanel.v1.HostService.SystrayMenuAboutToShow:output_type -> hyprpanel.v1.HostServiceSystrayMenuAboutToShowResponse + 28, // 46: hyprpanel.v1.HostService.SystrayMenuEvent:output_type -> hyprpanel.v1.HostServiceSystrayMenuEventResponse + 30, // 47: hyprpanel.v1.HostService.NotificationClosed:output_type -> hyprpanel.v1.HostServiceNotificationClosedResponse + 32, // 48: hyprpanel.v1.HostService.NotificationAction:output_type -> hyprpanel.v1.HostServiceNotificationActionResponse + 34, // 49: hyprpanel.v1.HostService.AudioSinkVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSinkVolumeAdjustResponse + 36, // 50: hyprpanel.v1.HostService.AudioSinkMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSinkMuteToggleResponse + 38, // 51: hyprpanel.v1.HostService.AudioSourceVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSourceVolumeAdjustResponse + 40, // 52: hyprpanel.v1.HostService.AudioSourceMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleResponse + 42, // 53: hyprpanel.v1.HostService.BrightnessAdjust:output_type -> hyprpanel.v1.HostServiceBrightnessAdjustResponse + 46, // 54: hyprpanel.v1.HostService.CaptureFrame:output_type -> hyprpanel.v1.HostServiceCaptureFrameResponse + 45, // 55: hyprpanel.v1.HostService.IdleInhibitorInhibit:output_type -> hyprpanel.v1.HostServiceIdleInhibitorResponse + 45, // 56: hyprpanel.v1.HostService.IdleInhibitorUninhibit:output_type -> hyprpanel.v1.HostServiceIdleInhibitorResponse + 36, // [36:57] is the sub-list for method output_type + 15, // [15:36] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_hyprpanel_v1_hyprpanel_proto_init() } @@ -3378,7 +3494,7 @@ func file_hyprpanel_v1_hyprpanel_proto_init() { } } file_hyprpanel_v1_hyprpanel_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HostServiceCaptureFrameResponse); i { + switch v := v.(*HostServiceIdleInhibitorRequest); i { case 0: return &v.state case 1: @@ -3390,6 +3506,30 @@ func file_hyprpanel_v1_hyprpanel_proto_init() { } } file_hyprpanel_v1_hyprpanel_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostServiceIdleInhibitorResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_v1_hyprpanel_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostServiceCaptureFrameResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_v1_hyprpanel_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AppInfo_Action); i { case 0: return &v.state @@ -3408,7 +3548,7 @@ func file_hyprpanel_v1_hyprpanel_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_v1_hyprpanel_proto_rawDesc, NumEnums: 3, - NumMessages: 43, + NumMessages: 45, NumExtensions: 0, NumServices: 2, }, diff --git a/proto/hyprpanel/v1/hyprpanel.proto b/proto/hyprpanel/v1/hyprpanel.proto index 5362c14..d285369 100644 --- a/proto/hyprpanel/v1/hyprpanel.proto +++ b/proto/hyprpanel/v1/hyprpanel.proto @@ -181,6 +181,12 @@ message HostServiceCaptureFrameRequest { int32 height = 3; } +message HostServiceIdleInhibitorRequest { + hyprpanel.event.v1.InhibitTarget target = 1; +} + +message HostServiceIdleInhibitorResponse {} + message HostServiceCaptureFrameResponse { ImageNRGBA image = 1; } @@ -202,4 +208,6 @@ service HostService { rpc AudioSourceMuteToggle(HostServiceAudioSourceMuteToggleRequest) returns (HostServiceAudioSourceMuteToggleResponse); rpc BrightnessAdjust(HostServiceBrightnessAdjustRequest) returns (HostServiceBrightnessAdjustResponse); rpc CaptureFrame(HostServiceCaptureFrameRequest) returns (HostServiceCaptureFrameResponse); + rpc IdleInhibitorInhibit(HostServiceIdleInhibitorRequest) returns (HostServiceIdleInhibitorResponse); + rpc IdleInhibitorUninhibit(HostServiceIdleInhibitorRequest) returns (HostServiceIdleInhibitorResponse); } diff --git a/proto/hyprpanel/v1/hyprpanel_grpc.pb.go b/proto/hyprpanel/v1/hyprpanel_grpc.pb.go index dd5efe8..83fe347 100644 --- a/proto/hyprpanel/v1/hyprpanel_grpc.pb.go +++ b/proto/hyprpanel/v1/hyprpanel_grpc.pb.go @@ -199,6 +199,8 @@ const ( HostService_AudioSourceMuteToggle_FullMethodName = "/hyprpanel.v1.HostService/AudioSourceMuteToggle" HostService_BrightnessAdjust_FullMethodName = "/hyprpanel.v1.HostService/BrightnessAdjust" HostService_CaptureFrame_FullMethodName = "/hyprpanel.v1.HostService/CaptureFrame" + HostService_IdleInhibitorInhibit_FullMethodName = "/hyprpanel.v1.HostService/IdleInhibitorInhibit" + HostService_IdleInhibitorUninhibit_FullMethodName = "/hyprpanel.v1.HostService/IdleInhibitorUninhibit" ) // HostServiceClient is the client API for HostService service. @@ -221,6 +223,8 @@ type HostServiceClient interface { AudioSourceMuteToggle(ctx context.Context, in *HostServiceAudioSourceMuteToggleRequest, opts ...grpc.CallOption) (*HostServiceAudioSourceMuteToggleResponse, error) BrightnessAdjust(ctx context.Context, in *HostServiceBrightnessAdjustRequest, opts ...grpc.CallOption) (*HostServiceBrightnessAdjustResponse, error) CaptureFrame(ctx context.Context, in *HostServiceCaptureFrameRequest, opts ...grpc.CallOption) (*HostServiceCaptureFrameResponse, error) + IdleInhibitorInhibit(ctx context.Context, in *HostServiceIdleInhibitorRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorResponse, error) + IdleInhibitorUninhibit(ctx context.Context, in *HostServiceIdleInhibitorRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorResponse, error) } type hostServiceClient struct { @@ -375,6 +379,24 @@ func (c *hostServiceClient) CaptureFrame(ctx context.Context, in *HostServiceCap return out, nil } +func (c *hostServiceClient) IdleInhibitorInhibit(ctx context.Context, in *HostServiceIdleInhibitorRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorResponse, error) { + out := new(HostServiceIdleInhibitorResponse) + err := c.cc.Invoke(ctx, HostService_IdleInhibitorInhibit_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostServiceClient) IdleInhibitorUninhibit(ctx context.Context, in *HostServiceIdleInhibitorRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorResponse, error) { + out := new(HostServiceIdleInhibitorResponse) + err := c.cc.Invoke(ctx, HostService_IdleInhibitorUninhibit_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // HostServiceServer is the server API for HostService service. // All implementations must embed UnimplementedHostServiceServer // for forward compatibility @@ -395,6 +417,8 @@ type HostServiceServer interface { AudioSourceMuteToggle(context.Context, *HostServiceAudioSourceMuteToggleRequest) (*HostServiceAudioSourceMuteToggleResponse, error) BrightnessAdjust(context.Context, *HostServiceBrightnessAdjustRequest) (*HostServiceBrightnessAdjustResponse, error) CaptureFrame(context.Context, *HostServiceCaptureFrameRequest) (*HostServiceCaptureFrameResponse, error) + IdleInhibitorInhibit(context.Context, *HostServiceIdleInhibitorRequest) (*HostServiceIdleInhibitorResponse, error) + IdleInhibitorUninhibit(context.Context, *HostServiceIdleInhibitorRequest) (*HostServiceIdleInhibitorResponse, error) mustEmbedUnimplementedHostServiceServer() } @@ -450,6 +474,12 @@ func (UnimplementedHostServiceServer) BrightnessAdjust(context.Context, *HostSer func (UnimplementedHostServiceServer) CaptureFrame(context.Context, *HostServiceCaptureFrameRequest) (*HostServiceCaptureFrameResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CaptureFrame not implemented") } +func (UnimplementedHostServiceServer) IdleInhibitorInhibit(context.Context, *HostServiceIdleInhibitorRequest) (*HostServiceIdleInhibitorResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method IdleInhibitorInhibit not implemented") +} +func (UnimplementedHostServiceServer) IdleInhibitorUninhibit(context.Context, *HostServiceIdleInhibitorRequest) (*HostServiceIdleInhibitorResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method IdleInhibitorUninhibit not implemented") +} func (UnimplementedHostServiceServer) mustEmbedUnimplementedHostServiceServer() {} // UnsafeHostServiceServer may be embedded to opt out of forward compatibility for this service. @@ -751,6 +781,42 @@ func _HostService_CaptureFrame_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _HostService_IdleInhibitorInhibit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceIdleInhibitorRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostServiceServer).IdleInhibitorInhibit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HostService_IdleInhibitorInhibit_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostServiceServer).IdleInhibitorInhibit(ctx, req.(*HostServiceIdleInhibitorRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostService_IdleInhibitorUninhibit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceIdleInhibitorRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostServiceServer).IdleInhibitorUninhibit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HostService_IdleInhibitorUninhibit_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostServiceServer).IdleInhibitorUninhibit(ctx, req.(*HostServiceIdleInhibitorRequest)) + } + return interceptor(ctx, in, info, handler) +} + // HostService_ServiceDesc is the grpc.ServiceDesc for HostService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -822,6 +888,14 @@ var HostService_ServiceDesc = grpc.ServiceDesc{ MethodName: "CaptureFrame", Handler: _HostService_CaptureFrame_Handler, }, + { + MethodName: "IdleInhibitorInhibit", + Handler: _HostService_IdleInhibitorInhibit_Handler, + }, + { + MethodName: "IdleInhibitorUninhibit", + Handler: _HostService_IdleInhibitorUninhibit_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "hyprpanel/v1/hyprpanel.proto", diff --git a/style/style.go b/style/style.go index 0ca6c31..7e314be 100644 --- a/style/style.go +++ b/style/style.go @@ -41,6 +41,8 @@ const ( HudID = `hud` // HudOverlayID element identifier. HudOverlayID = `hudOverlay` + // IdleID element identifier. + IdleInhibitorID = `idleInhibitor` // ModuleClass class name. ModuleClass = `module`