about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
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.
2018-10-08 Support binding mouse events in line-modeAdrián Medraño Calvo1-24/+61
* exwm-input.el (exwm-input--event-passthrough-p): Predicate checking whether an event should be forwarded to Emacs. (exwm-input--on-KeyPress-line-mode): Use it. * exwm-input.el (exwm-input--cache-event): Protect against translations swallow the event. * exwm-input.el (exwm-input--on-ButtonPress-line-mode) (exwm-input--on-ButtonPress-char-mode): New functions. (exwm-input--on-ButtonPress): Forward bound mouse events to Emacs when in line-mode.
2018-10-08 Fix focus jumps with minibuffer-only framesAdrián Medraño Calvo1-11/+1
* exwm-input.el (exwm-input--update-focus): Focus the minibuffer's frame, which is different than that of the `minibuffer-selected-window' on minibuffer-only frames. (exwm-input--on-minibuffer-setup, exwm-input--init) (exwm-input-exit): Remove unneeded function.
2018-10-08 Simplify input handlingAdrián Medraño Calvo3-26/+33
No functional change. * exwm-input.el (exwm-input--current-input-mode): New function indicating keyboard input mode. (exwm-input--on-KeyPress, exwm-input--update-mode-line): Use `exwm-input--current-input-mode'. (exwm-input-grab-keyboard, exwm-input-release-keyboard) (exwm-input--update-mode-line): Simplify. * exwh-core.el (exwm--on-KeyPress): Remove variable, use `exwm--keyboard-grabbed' and `exwm-input--current-input-mode' instead.
2018-09-16 Simplify debugging and fix dynamic-scoping `eval'Chris Feng2-15/+7
* exwm-core.el (exwm-debug): New global minor mode to replace `exwm-debug-on' and `exwm-debug-toggle'. * exwm-manage.el (exwm-manage--get-configurations): Use lexical-scoping `eval'.
2018-09-09 Merge branch 'medranocalvo/restack-after-map' into externals/exwmChris Feng1-0/+17
2018-09-09 Merge branch 'medranocalvo/xcb-logging' into externals/exwmChris Feng2-129/+25
2018-09-09 ; Minor fixes for Calvo's patch set.Chris Feng1-8/+5
2018-09-04 Restack X-Windows after being mapped to ensure EnterNotify events fireAdrián Medraño Calvo1-0/+17
* exwm-manage.el (exwm-manage--on-MapNotify, exwm-manage--init): Restack X windows after being mapped in order to ensure they receive an EnterNotify event (does not happen under XQuartz).
2018-09-04 Command for toggling debugging outputAdrián Medraño Calvo1-1/+12
* exwm-core.el (exwm-debug-toggle): New function for toggling debugging output. (exwm-mode-map): Use it.
2018-09-04 Substitute overlapping keybindingsAdrián Medraño Calvo1-2/+2
* exwm-core.el (exwm-mode-map): Change keybindings to avoid overlap.
2018-09-04 Use XELB's debugging facilitiesAdrián Medraño Calvo2-126/+14
* exwm-debug.el: Move to XELB as `xcb-debug'. * exwm-core.el (exwm--log): Use it. (exwm--log): Support switching debugging output at runtime.
2018-09-02 Explicitly specify frame for cursor warping conditionalJames Ferguson1-1/+1
2018-09-02 Fix cursor warping conditional for cursor left of frameJames Ferguson1-1/+3