nog icon indicating copy to clipboard operation
nog copied to clipboard

Event system

Open TimUntersberger opened this issue 3 years ago • 2 comments

What if we replace rules with an event handler system.

So instead of writing the following

nog.config.rules = {
  ["notepad.exe"] = {
    ignore: true
  }
}

we could do this

nog.events.on("win_detected", function (event)
  -- event has the settings as payload so it would look like this:
  -- {
  --   type: "win_detected",
  --   payload: {
  --     ignore: false,
  --     workspace: nil,
  --     ...
  --   }
  -- }
  event.payload.ignore = true
end)

I am not too sure about how we could implement rules with such a system. The things I mentioned above are my first ideas.

We could then have more events for different things. A few examples:

  • win_unmanaged
  • win_managed
  • error (This could be interesting?)

Maybe a plugin could even emit custom events through here? Not too sure about this one as they could provide their own event management (Having one central place for events could be cleaner I guess)

TimUntersberger avatar Apr 02 '21 14:04 TimUntersberger

This could also be useful for installers. Not sure if you guys have this issue as well, but anytime I run an installer most of the time it is jumping all over the place. Not sure if there would be a way to detect this, but would be nice if possible.

keepitsane avatar Apr 04 '21 20:04 keepitsane

This could also be useful for installers. Not sure if you guys have this issue as well, but anytime I run an installer most of the time it is jumping all over the place. Not sure if there would be a way to detect this, but would be nice if possible.

Yeah, I had a similar problem and added the minHeight/minWidth settings here https://timuntersberger.github.io/nog/configuration/settings.html to handle that. It's not a perfect solution but it helps.

I'm not sure how we could detect an installer but an event system would totally help attack issues like that.

ramirezmike avatar Apr 04 '21 22:04 ramirezmike