about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2020-05-10 Make return key work in exwm-ximChris Feng1-1/+2
* exwm-xim.el (exwm-xim--handle-forward-event-request): Send all key events to Emacs while invoking an input method (don't rely on its keymap definition).
2020-05-10 Merge branch 'medranocalvo/upcase-menu-item' into externals/exwmChris Feng1-1/+1
2020-05-10 Merge branch 'medranocalvo/prevent-jump-back-workspace' into externals/exwmChris Feng1-5/+5
2020-05-10 Merge branch 'medranocalvo/input-mode-change-hook' into externals/exwmChris Feng1-2/+8
2020-05-06 ; Upcase menu itemAdrián Medraño Calvo1-1/+1
2020-05-06 Prevent jumping back to previous workspaceAdrián Medraño Calvo1-5/+5
* exwm-workspace.el (exwm-workspace-switch): Focus out old frame before switching to the new one to prevent jumping back to previous workspace.
2020-05-06 Run hook upon input mode changeAdrián Medraño Calvo1-2/+8
* exwm-input.el (exwm-input-input-mode-change-hook): Add new hook for code to run upon input mode change. (exwm-input--grab-keyboard, exwm-input--release-keyboard): Run it.
2020-05-05 Merge branch 'medranocalvo/abort-recursive-edit-on-workspace-switch' into ↵Chris Feng1-6/+0
externals/exwm
2020-04-15 Fix window manager nameAdrián Medraño Calvo1-2/+3
* exwm.el (exwm--init-icccm-ewmh): Correct _NET_WM_NAME to the name of the window manager on the _NET_SUPPORTING_WM_CHECK.
2020-04-15 Stop aborting recursive edit upon switching workspaces.Adrián Medraño Calvo1-10/+0
* exwm-workspace.el (exwm-workspace-switch): Stop aborting recursive edit upon switching workspaces. Users should handle it just like in regular Emacs (possibly customizing `enable-recursive-minibuffers').
2020-04-15 Abort recursive edit before switching workspacesAdrián Medraño Calvo1-6/+10
* exwm-workspace.el (exwm-workspace-switch): Abort recursive edit before switching to other workspace. This avoids the usual `set-window-configuration' calls (e.g., by `eval-expression') to switch *us back to the previous workspace.
2020-03-29 Merge branch 'Curiosidad-Racional/patch-1' into externals/exwmChris Feng1-13/+13
2020-03-29 Add support for _NET_WM_STATE_HIDDENChris Feng2-8/+17
* exwm-layout.el (exwm-layout--set-ewmh-state): New function for setting _NET_WM_STATE (according to local state). * exwm.el (exwm--init-icccm-ewmh): Declare the support for this atom.
2020-03-29 Additional fix for winner-modeChris Feng1-3/+4
* exwm-input.el (exwm-input--on-KeyPress-line-mode): Check incomplete key presses (which generate no valid events) before running `pre-command-hook' and `post-command-hook'.
2020-03-21 Fixed fail update when current buffer differs from windowCuriosidad-Racional1-13/+13
Local variable `exwm--input-mode' from different buffer when current buffer don't contains #id window. `with-current-buffer' changes buffer after `cl-case' with local `exwm--input-mode'
2020-03-01 Make exwm-mode buffers work with winner-modeChris Feng1-6/+17
* exwm-input.el (exwm-input--noop): New placeholder command. (exwm-input--on-pre-command, exwm-input--on-post-command): Ignore this command. (exwm-input--on-KeyPress-line-mode): Set `last-command' to make winner-undo start over from the newest config; run `post-command-hook' to make winner-mode save configs; run `pre-command-hook' in case required by some other package.
2020-02-02 Add solid background support to systemtrayChris Feng1-3/+39
* exwm-systemtray.el (exwm-systemtray-background-color): New user option for configuring systemtray background color. (exwm-systemtray--init): Configure background color for systemtray.
2020-02-02 Refactor color-related codeChris Feng2-59/+28
* exwm-core.el (exwm--color->pixel): New function for converting color to TrueColor pixel. * exwm-floating.el (exwm-floating--border-pixel) (exwm-floating--border-colormap, exwm-floating--init-border): Removed. (exwm-floating-border-color, exwm-floating--set-floating): Use `exwm--color->pixel' and only support TrueColor.
2020-02-02 Update copyright year to 2020Chris Feng12-12/+12
2019-12-15 Fix moving Emacs framesChris Feng1-1/+27
* exwm.el (exwm--on-ClientMessage): Avoid moving workspace frames; Move floating X window when trying to move the floating frame.
2019-12-08 Eliminate a compile warningChris Feng1-1/+1
* exwm-workspace.el (exwm-workspace-move-window): Replace the obsolete `run-window-configuration-change-hook'.
2019-12-01 Avoid redundant input focus transferChris Feng1-28/+43
* exwm-input.el (exwm-input--set-focus): Check for current focused X window before making an input focus transfer. (exwm-input--on-buffer-list-update): Remove the `this-command' check.
2019-11-03 Add support for accessing keymaps in char-modeChris Feng1-0/+15
* exwm-input.el (exwm-input-invoke-factory): New macro for generating new commands that invoke corresponding prefix keys.
2019-10-27 Loosen the requirements for input focus updateChris Feng1-2/+1
* exwm-input.el (exwm-input--on-buffer-list-update): No more check on current buffer (the check on buffer name was dropped in a1cf0d9b8).
2019-10-13 Fix `exwm-input-set-simulation-key'Chris Feng1-3/+5
* exwm-input.el (exwm-input--read-keys): Return nil on empty input so that `exwm-input-set-simulation-key' can ignore it. (exwm-input-set-simulation-key): Improve prompt.
2019-10-07 Add minibuffer-keyboard-quit to the default pre-post-command-blacklistSteven Allen1-1/+3
* exwm-input.el (exwm-input-pre-post-command-blacklist): Add `minibuffer-keyboard-quit' to the blacklist. This is invoked when the user aborts a the minibuffer with C-g.
2019-10-06 Set the current buffer before handling key eventsSteven Allen1-12/+13
There's no guarantee that the global current buffer matches the selected window's buffer. For example, the following will output "*Messages*" regardless of the actual current buffer: (progn (run-at "1 sec" nil (lambda () (with-current-buffer (get-buffer "*Messages*") (sit-for 5)))) (run-at "2 sec" nil (lambda () (message (buffer-name))))) * exwm-input.el (exwm-input--on-KeyPress): Set the current buffer to selected window's current buffer.
2019-10-02 Fix detection of `exwm-workspace--window-y-offset'Chris Feng1-4/+10
* exwm-workspace.el (exwm-workspace--update-offsets): Explicitly request the geometry of the container for the first workspace as it may not align with the top of the root X window.
2019-10-02 Avoid calling `x-focus-frame' on non-graphical framesChris Feng2-1/+4
* exwm-workspace.el (exwm-workspace--client-p): Also account for non-graphical frames. * exwm-input.el (exwm-input--on-minibuffer-setup) (exwm-input--on-minibuffer-exit): Exclude emacsclient frames.
2019-10-02 Allow customizing undetectable commandsChris Feng1-1/+5
* exwm-input.el (exwm-input-pre-post-command-blacklist): List of commands undetectable with `post-command-hook'. (exwm-input--on-pre-command): Use it.
2019-09-22 Make input focus continue to work after EXWM exitsChris Feng1-1/+8
* exwm-input.el (exwm-input--exit): Set input focus 'revert-to' to 'PointerRoot' so that user can set input focus to X windows with pointer after EXWM exits (and there's no other WM).
2019-09-22 Make _NET_ACTIVE_WINDOW working for floating X windowsChris Feng1-10/+12
* exwm.el (exwm--on-ClientMessage): Select floating frames for floating X windows on receiving _NET_ACTIVE_WINDOW.
2019-09-22 Skip global keys unavailable in X serverChris Feng1-18/+21
* exwm-input.el (exwm-input--grab-global-prefix-keys): Some global keys might not be available in X server (perhaps due to misconfiguration).
2019-09-15 Fix `exwm-layout-enlarge-window' for floating X windowsChris Feng1-1/+1
* exwm-layout.el (exwm-layout-enlarge-window): Correct the height of outer frame.
2019-09-15 Fix timestamp for debug logsChris Feng1-10/+13
* exwm-core.el (exwm-debug-log-time-function): Moved to `exwm-debug' group and set `xcb-debug:log-time-function' automatically. (exwm-debug-log-uptime, exwm-debug-log-time): Reuse the definition from XELB.
2019-09-14 Bump version to 0.23Chris Feng1-2/+2
2019-09-14 Support starting EXWM from Emacs server not in daemon modeChris Feng1-4/+5
* exwm.el (exwm-enable): Start EXWM from `window-setup-hook' or `after-make-frame-functions', whichever comes first.
2019-09-14 Replace `frame-geometry'Chris Feng6-66/+122
* exwm-workspace.el (exwm-workspace--frame-y-offset) exwm-workspace--window-y-offset, exwm-workspace--update-offsets): New variables & function for the calculation of Emacs frame offsets, as `frame-geometry' is not available in Emacs 24. * exwm-floating.el (exwm-floating--set-floating) (exwm-floating--do-moveresize): * exwm-layout.el (exwm-layout--show): * exwm-systemtray.el (exwm-systemtray--on-workspace-switch) (exwm-systemtray--on-randr-refresh, exwm-systemtray--init): Use them. * exwm-systemtray.el (exwm-systemtray--refresh-all): Renamed from `exwm-systemtray--on-randr-refresh'. (exwm-systemtray--init, exwm-systemtray--exit): Use it. * exwm-floating.el (exwm-floating--stop-moveresize): Send a ConfigureNotify event to floating frame to update its position (seems required by Emacs 24).
2019-09-13 Fix hiding floating X windowsChris Feng1-4/+9
* exwm-layout.el (exwm-layout--floating-hidden-position): A place far enough from the origin to actually hide floating X window containers. (exwm-layout--show, exwm-layout--hide): Use it.
2019-09-13 Improve user optionsChris Feng2-28/+87
* exwm-floating.el (exwm-floating-border-color) (exwm-floating-border-width): Make changes take effect w/o restart. (exwm-floating--init-border): Refactored out from `exwm-floating--init'. * exwm-workspace.el (exwm-workspace-minibuffer-position): Clarify a restart is required.
2019-09-08 ; Autoload `exwm-enable'Chris Feng1-0/+1
2019-09-08 ; Improve messages for automatically created workspacesChris Feng1-2/+4
2019-09-08 Fix floating X window size with menu-bar/tool-bar enabledChris Feng2-12/+27
* exwm-floating.el (exwm-floating--set-floating) exwm-floating--do-moveresize) exwm-layout.el (exwm-layout--show): Take menu-bar/tool-bar into consideration.
2019-09-08 ; Improve the docstring of `exwm-manage-configurations'Chris Feng1-1/+3
2019-09-08 Handle and skip problematic per-application configurationsChris Feng1-1/+2
* exwm-manage.el (exwm-manage--get-configurations): Select the first usable configuration.
2019-09-08 Add timestamps to `exwm-debug' logsChris Feng1-1/+25
* exwm-core.el (exwm-debug-log-time-function): New user option for choosing the style of timestamps in debug logs. (exwm-debug-log-uptime, exwm-debug-log-time): Possible candidates for it. (exwm--log): Use it.
2019-08-25 * exwm-core.el (exwm-mode-menu): Clarify simulation keys in menu.Chris Feng1-1/+2
2019-08-25 Ignore non-`exwm-mode' buffers in `exwm-workspace-move-window'Chris Feng1-1/+3
* exwm-workspace.el (exwm-workspace-move-window): Ignore non-`exwm-mode' buffers.
2019-08-25 Clear echo area for input methodsChris Feng1-0/+2
* exwm-xim.el (exwm-xim--handle-forward-event-request): exwm-xim enforces `input-method-use-echo-area' but this breaks some input methods. This change clear garbage printed by such input methods.
2019-08-25 Fix a lock issue with _NET_CLOSE_WINDOW and WM_DELETE_WINDOWChris Feng2-4/+7
* exwm.el (exwm--on-ClientMessage): Calling `kill-buffer' directly from an event context won't work since the DestroyNotify event for a WM_DELETE_WINDOW request won't be handled until the current event context terminates. * exwm-manage.el (exwm-manage--kill-buffer-query-function): Avoid potential side effects with MapWindow.