This removes the need to have multiple downloads in the stdenv
bootstrap process (like a separate busybox binary for Linux, or
curl/mkdir/sh/bzip2 for Darwin). Now all those files can be combined
into a single NAR.
* exwm-core.el (exwm-mode): Use the return value of
exwm-manage--close-window.
* exwm-manage.el (exwm-manage--close-window): Kill empty buffers; Handle X
windows that does not support _NET_WM_PING.
(exwm-manage--kill-client): Kill X windows supporting _NET_WM_PID with
both SIGKILL and KillClient.
* exwm-floating.el (exwm-floating--set-floating): Reparent floating frames
as late as possible.
* exwm-manage.el (exwm-manage--unmanage-window): Hide floating frames first
on unmanagement.
* exwm-workspace.el (exwm-workspace-switch, exwm-workspace--on-focus-in):
Delay closing minibuffer until Emacs is idle. This prevent nonlocal exits
from interrupting remaining code.
* exwm-workspace.el (exwm-workspace-switch, exwm-workspace--on-focus-in):
Use handle-switch-frame instead of exwm-workspace--switch-count to filter
out events.
* exwm-workspace.el (exwm-workspace--init): Delay making workspaces
fullscreen.
* exwm-workspace.el (exwm-workspace-move-window):
* exwm-floating.el (exwm-floating--set-floating):
* exwm-layout.el (exwm-layout--refresh):
`set-buffer-major-mode` does not accept buffer names.
* exwm-core.el (exwm--make-emacs-idle-for): Removed.
* exwm-workspace.el (exwm-workspace--switch-count): New variable.
(exwm-workspace-switch): Increase exwm-workspace--switch-count when
necessary; Remove the call to exwm--make-emacs-idle-for.
(exwm-workspace--on-focus-in): Consume exwm-workspace--switch-count.
* exwm-workspace.el (exwm-workspace--on-focus-in): Close active minibuffer.
This makes it consistent with the Nixpkgs fetchurl and makes it work
in chroots. We don't need verification because the hash of the result
is checked anyway.
The stack allocated for the builder was way too small (32 KB). This is
sufficient for normal derivations, because they just do some setup and
then exec() the actual builder. But for the fetchurl builtin
derivation it's not enough. Also, allocating the stack on the caller's
stack was fishy business.
* exwm-workspace.el (exwm-workspace-switch): An active minibuffer on another
workspace might cause problems for input. Closing it should be
sufficient.
* exwm-input.el (exwm-input-command-whitelist): New variable.
(exwm-input--on-KeyPress-line-mode): Allow certain commands which receive
inputs without using the minibuffer to work in line-mode.
If keywords are matched on the start/end of words then
keywords are also matched if they are surrounded by dashes
or underscores. For example the keyword with is highlighted
in geany-with-vte. When matching on the start/end of symbols
the keyword is only highlighted if it is not part of an other
identifier.
* exwm-manage.el (exwm-manage--manage-window): Restrict the check of
_MOTIF_WM_HINTS to only Java applications (since some other applications
like Evince would also set it).