ch11ng / exwm

Emacs X Window Manager
2.86k stars 137 forks source link

Passthrough input when explicitly reading events and keys #938

Closed Stebalien closed 6 months ago

Stebalien commented 6 months ago

When any of these functions are called, Emacs expects to receive all input events until they return. Unfortunately, there doesn't appear to be a reliable way to detect that these functions are currently running other than advising them, so that's what I did.

These functions are:

In terms of downsides... I've been advising these functions (well, most of them) in my config for years now and haven't had any issues.

Fixes #921, #570 (and probably others)

medranocalvo commented 6 months ago

This is great, thank you. We already advise when there's no other way. (Ideally, we should report Emacs bugs for stuff we advise, in case a mechanism exists or can be made for us...)

I'll merge and I'd propose leaving this some time in master for people to try it out. Does that sound OK?

minad commented 6 months ago

medranocalvo @.***> writes:

This is great, thank you. We already advise when there's no other way. (Ideally, we should report Emacs bugs for stuff we advise, in case a mechanism exists or can be made for us...)

Yes, we should do that - at least for the cases we consider particularly intrusive/problematic. Personally I am not fond of the indirection via the server for blocking GUI features.

I'll merge and I'd propose leaving this some time in master for people to try it out. Does that sound OK?

Sounds good. I am installing EXWM from GNU ELPA-devel. If this is not yet the case we should document this installation method, such that more users can beta test new functionality.

medranocalvo commented 6 months ago

medranocalvo @.***> writes: This is great, thank you. We already advise when there's no other way. (Ideally, we should report Emacs bugs for stuff we advise, in case a mechanism exists or can be made for us...) Yes, we should do that - at least for the cases we consider particularly intrusive/problematic. Personally I am not fond of the indirection via the server for blocking GUI features.

I opened to track that https://github.com/ch11ng/exwm/issues/943 (we should do the migration and avoid opening more tickets over here. I'll look into working on that on the following days, though you two are welcome push forward).

I'll merge and I'd propose leaving this some time in master for people to try it out. Does that sound OK? Sounds good. I am installing EXWM from GNU ELPA-devel. If this is not yet the case we should document this installation method, such that more users can beta test new functionality.

There's many users that track the master branch here on GitHub. I think elpa-devel is less well known and we should encourage it. In https://github.com/ch11ng/exwm/wiki/Maintenance there's also two ideas I planned but never actually brought into action: EXWM Testing Team, people who opt in to test particular features (think systemtray or XRandr, which I don't use); and Call For Testing, kind of a release candidate announcement where the testing team members would be @tagged.

medranocalvo commented 6 months ago

I merged this to master and pushed to externals/exwm as well. Congrats! (Soon you'll merge yourself :-)).