about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2019-06-16 Allow panel to hide floating X windowsChris Feng1-1/+3
* exwm.el (exwm--on-ClientMessage): Use `exwm-floating-hide' to hide X windows on receiving `WM_CHANGE_STATE' events.
2019-06-16 Avoid workspace switch loop with `mouse-autoselect-window' enabledChris Feng1-2/+7
* exwm-input.el (exwm-input--last-enter-notify-position): New variable storing last mouse position. (exwm-input--on-EnterNotify): Avoid switching workspace when mouse position is not changed (the event is a result of a workspace switch).
2019-06-09 Handle (t . EVENT) format events in exwm-ximChris Feng1-1/+5
* exwm-xim.el (exwm-xim--handle-forward-event-request): Ditto.
2019-06-09 Fix character loss with exwm-ximChris Feng1-50/+57
* exwm-xim.el (exwm-xim--handle-forward-event-request): Events unread can either be reused by input methods or forwarded to X windows as is.
2019-06-02 Fix unreading 'return eventChris Feng1-43/+38
* exwm-xim.el (exwm-xim--event-pending): Drop unused variable. (exwm-xim--handle-forward-event-request): Convert 'return back to ?\n to avoid error.
2019-06-02 Fix auto commit issue with input methodsChris Feng1-64/+74
* exwm-xim.el (exwm-xim--handle-forward-event-request): Factored out from `exwm-xim--on-request' to make auto commit work. With input methods providing candidates the first candidate can be implicitly selected if no further matching is possible. The last event would be stored in `unread-command-events' (at least for `quail-input-method') and should be reused by the input method. (exwm-xim--on-request): Use it.
2019-04-14 Add compatibility mode for legacy serversChris Feng1-36/+96
* exwm-randr.el (exwm-randr--compatibility-mode): Indicating whether RandR 1.5 is supported by the server. (exwm-randr--init): Set it. (exwm-randr--get-monitor-alias): Split out from exwm-randr--get-monitors for reuse. (exwm-randr--get-outputs): New function for retrieving RandR 1.2 outputs when RandR 1.5 is not supported. (exwm-randr-refresh): Call `exwm-randr--get-outputs' in compatibility mode.
2019-04-14 Clarify the usage of `exwm-manage-configurations'Chris Feng1-1/+23
2019-03-24 Support monitor mirroringChris Feng1-8/+36
* exwm-randr.el (exwm-randr--get-monitors): Also return an alist of monitor name aliases. (exwm-randr-refresh): Unify mirrored monitor names.
2019-03-24 ; Follows upChris Feng3-69/+69
2019-03-17 * exwm-workspace.el: Use closures rather than `(lambda ...)Stefan Monnier1-9/+9
2019-03-17 Remove loading order dependency on `mouse-autoselect-window'Chris Feng4-9/+10
* exwm-core.el (exwm--get-client-event-mask): Renamed from `exwm--client-event-mask' and used as a function. * exwm-floating.el (exwm-floating--unset-floating): * exwm-layout.el (exwm-layout--hide): * exwm-manage.el (exwm-manage--manage-window): Use it.
2019-03-17 Add extra keys for selecting workspaceChris Feng1-3/+17
* exwm-workspace.el (exwm-workspace--switch-map) (exwm-workspace--init): Avoid initializing the keymap when loading. (exwm-workspace--init-switch-map): Initialize `exwm-workspace--switch-map' and also add extra keybindings when `exwm-workspace-index-map' has been customized.
2019-03-10 Make replacing existing WM optionalChris Feng2-5/+9
* exwm.el (exwm-replace): New user option for specifying whether to replace existing WM. (exwm-init): Use it. (exwm--wmsn-acquire, exwm-init): Do not print warning message when user gives up replacing. * exwm-core.el (exwm--wmsn-replace): Remove dead code.
2019-02-16 Bump version to 0.22.1Chris Feng1-1/+1
2019-02-11 Fix compatibility issue with Emacs 25Chris Feng1-1/+3
* exwm-input.el (exwm-input--unread-event): `string-version-lessp' is not available on Emacs 25.
2019-02-10 Bump version to 0.22Chris Feng1-1/+1
2019-02-06 Merge branch 'retain-echo-area-until-input' of ↵Chris Feng2-3/+26
https://github.com/medranocalvo/exwm into medranocalvo/retain-echo-area-until-input
2019-02-06 Merge branch 'ieure/default-simulation-keys' into externals/exwmChris Feng2-31/+37
2019-02-06 Add input method supportChris Feng8-42/+812
; The code is basically refactored from ; https://github.com/ch11ng/exim to get better maintenance. * exwm-xim.el: New module making Emacs's builtin input methods usable for interacting with X windows. * exwm-core.el (exwm--intern-atom): New function for intern X11 atoms. * exwm-input.el (exwm-input--init): * exwm-manage.el (exwm-manage--init): Use it.
2019-02-06 Do the same for `exwm-input-global-keys'Chris Feng1-15/+19
2019-02-06 Cleanup simulation key config issuesIan Eure2-16/+18
* exwm-input.el (exwm-input-simulation-keys): Original key only has one option, so probably shouldn’t be a `choice` type; Move the "User-defined" key value to the top, since that’s the one someone is most likely to want). * exwm-config.el (exwm-config-default): Only set custom vars if there isn’t a saved value for them.
2019-02-05 Scan for existing X windows only after running `exwm-init-hook'Chris Feng1-2/+2
* exwm.el (exwm-init): Delay the call to `exwm-manage--scan' since managing existing X windows too early may result in issues like losing input focus.
2019-02-01 Fetch necessary properties before checking per-app configurationsChris Feng1-2/+2
* exwm-manage.el (exwm-manage--manage-window): Fetch X window title & protocols so they can be available when checking per-application configurations.
2019-02-01 Update copyright year to 2019Chris Feng11-11/+11
2019-01-20 Fix issue with managed tray iconsChris Feng1-3/+10
* exwm-input.el (exwm-input--on-ButtonPress): Replay button events destined for managed tray icons.
2018-12-30 Automatically iconify floating X windowsChris Feng1-1/+21
* exwm-layout.el (exwm-layout-auto-iconify): New user option to specify whether to automatically iconify X windows. (exwm-layout--auto-iconify): Automatically iconify floating X windows when its main X window (if any) is iconified. (exwm-layout--show, exwm-layout--hide): Use it.
2018-12-16 Avoid unnecessary focus changes when creating/killing buffersChris Feng2-2/+9
* exwm-input.el (exwm-input--skip-buffer-list-update): New internal variable for skipping the next 'buffer-list-update'. (exwm-input--on-buffer-list-update): Skip when `exwm-input--skip-buffer-list-update` is set. * exwm-manage.el (exwm-manage--manage-window): Set `exwm-input--skip-buffer-list-update` when creating/killing buffers.
2018-12-05 Only call exwm-randr-screen-change-hook on new event sequence numberJames Ferguson1-2/+9
Multiple event callbacks are triggered per physical monitor plug event. This de-duplicates the events triggering the running of the hook.
2018-12-02 ; Improve debug logs.Chris Feng8-20/+116
2018-12-01 Bump version to 0.21Chris Feng1-1/+1
2018-11-25 Avoid unnecessary keyboard grab/ungrab in char-modeChris Feng1-7/+8
* exwm-input.el (exwm-input--cache-event): Optimize the handling of single event global key by not grabbing/ungrabbing the keyboard.
2018-11-18 Fallback to the first monitor as the primary oneChris Feng1-2/+3
* exwm-randr.el (exwm-randr--get-monitors): When no primary monitor is specified, pick the first one.
2018-11-18 Add support for 'managed' per-application configurationChris Feng1-17/+26
* exwm-manage.el (exwm-manage-configurations): Add a new value type 'managed' to allow users to specify whether a certain X window should be managed or not. (exwm-manage--manage-window): Use it.
2018-11-18 Automatically refresh RandR settingsChris Feng1-7/+54
* exwm-randr.el (exwm-randr--last-timestamp): New variable recording last seen timestamp after requesting `GetMonitors'. (exwm-randr--get-monitors): Use it. (exwm-randr--on-ScreenChangeNotify): Do not refresh any more. (exwm-randr--on-Notify): New function for handling `CrtcChangeNotify' and `OutputChangeNotify' events. (exwm-randr--on-ConfigureNotify): New function for handling `ConfigureNotify' event. (exwm-randr--init): Add listeners for additional events.
2018-11-18 Avoid activating already active X windowsChris Feng1-3/+8
* exwm.el (exwm--on-ClientMessage): On receiving `_NET_ACTIVE_WINDOW' events, check if the requested X windows are already active.
2018-11-11 Fix wrong stacking order of tiling X windowsChris Feng1-5/+14
* exwm-manage.el (exwm-manage--on-MapNotify): Avoid restacking tiling X windows on the top when force triggering hierarchy change events.
2018-11-11 Expose `exwm-randr-refresh' public interfaceChris Feng1-1/+6
* exwm-randr.el (exwm-randr-refresh): New public interface allowing users to manually refresh when RandR settings are changed output EXWM. (exwm-randr--refresh): Made obsolete.
2018-11-04 Add support for RandR 1.5 monitorChris Feng2-82/+81
* exwm-randr.el (exwm-randr-workspace-monitor-plist): New user option for specifying which monitor each workspace should be displayed on. (exwm-randr-workspace-monitor-plist): Made obsolete. (exwm-randr--get-monitors): New function for fetching active monitors. (exwm-randr--refresh): Adapted to use monitor. (exwm-randr--init): Now requires RandR 1.5. * exwm-randr.el: * exwm-workspace.el: Rename `output' to `monitor'.
2018-11-04 Select more sensible buffers after creating new windowsChris Feng1-3/+9
* exwm-layout.el (exwm-layout--refresh-other) (exwm-layout--refresh-workspace): When filling vacated windows select more sensible buffer by calling `switch-to-next-buffer' for newly created windows.
2018-11-03 Hide minibuffer upon receiving any eventAdrián Medraño Calvo2-2/+14
* exwm-input.el (exwm-input--event-hook): New variable. (exwm-input--on-ButtonPress, exwm-input--on-KeyPress): Run `exwm-input--event-hook'. * exwm-workspace.el (exwm-workspace--init, exwm-workspace--exit): Hide minibuffer upon noticing an event.
2018-11-03 Stop hiding the minibuffer when a message is being displayedAdrián Medraño Calvo1-1/+12
* exwm-workspace.el (exwm-workspace--echo-area-maybe-clear): New function that postpones hiding the minibuffer when it's displaying a message. (exwm-workspace--on-echo-area-dirty): Use it.
2018-10-24 Merge branch 'medranocalvo/fix-input-mode-after-fullscreen' into externals/exwmAdrián Medraño Calvo3-14/+12
2018-10-21 Restore keyboard grabbing after exiting fullscreenAdrián Medraño Calvo3-2/+8
Recover the difference between the input mode selected by the user and actual one, which might be transient. This was inadvertently removed in recent changes. * exwm-core.el (exwm--selected-input-mode): New variable. * exwm-input.el (exwm-input-grab-keyboard) (exwm-input-release-keyboard): Use it. * exwm-layout.el (exwm-layout-unset-fullscreen): Return to the selected input mode.
2018-10-21 Do away with `exwm-input--input-mode'Adrián Medraño Calvo2-13/+5
* exwm-input.el (exwm-input--update-mode-line): Remove. (exwm-input--on-ButtonPress, exwm-input--on-KeyPress) (exwm-input--update-mode-line, exwm-input-toggle-keyboard): Use `exwm--input-mode' variable directly.
2018-10-21 Fix single workspace invisible problem with XephyrChris Feng1-3/+5
* exwm-workspace.el (exwm-workspace-switch): On startup EXWM switches to workspace 0 by force so the rest code can not assume the frames before and after a switch different.
2018-10-14 Bump version to 0.20Chris Feng1-2/+2
2018-10-14 Merge branch 'medranocalvo/reduce-workspace-switch-flicker' into externals/exwmChris Feng1-1/+1
2018-10-14 Merge branch 'medranocalvo/fix-minibuffer-only-focus-jump' into externals/exwmChris Feng1-11/+1
2018-10-08 Reduce flicker when switching workspacesAdrián Medraño Calvo1-1/+1
* exwm-workspace.el (exwm-workspace-switch): Hide the old workspace after having shown the new one when switching to avoid flicker.