about summary refs log tree commit diff
path: root/exwm.el
AgeCommit message (Collapse)AuthorFilesLines
2021-10-29 Update copyright year to 2021Adrián Medraño Calvo1-1/+1
2021-10-29 New maintainerAdrián Medraño Calvo1-1/+1
2020-05-24 Bump version to 0.24Chris Feng1-1/+1
2020-05-10 Clarify the use of `exwm-config-default'Chris Feng1-1/+1
* exwm-config.el (exwm-config-example): Renamed from `exwm-config-default' to make it clear it's just an example.
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-03-29 Add support for _NET_WM_STATE_HIDDENChris Feng1-1/+1
* 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-02-02 Update copyright year to 2020Chris Feng1-1/+1
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-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-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-08 ; Autoload `exwm-enable'Chris Feng1-0/+1
2019-08-25 Fix a lock issue with _NET_CLOSE_WINDOW and WM_DELETE_WINDOWChris Feng1-2/+3
* 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.
2019-06-30 Fix 'Attempt to delete a surrogate minibuffer frame' errorChris Feng1-1/+3
* exwm-workspace.el (exwm-workspace--get-remove-frame-next-workspace): New function automatically moves X window elsewhere before removing a workspace; also returns the destination workspace. (exwm-workspace--prompt-delete, exwm-workspace-delete) (exwm-workspace--remove-frame-as-workspace): Use it. * exwm.el (exwm--on-ClientMessage): Use it.
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-03-10 Make replacing existing WM optionalChris Feng1-2/+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-10 Bump version to 0.22Chris Feng1-1/+1
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 Update copyright year to 2019Chris Feng1-1/+1
2018-12-02 ; Improve debug logs.Chris Feng1-5/+31
2018-12-01 Bump version to 0.21Chris Feng1-1/+1
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-10-14 Bump version to 0.20Chris Feng1-2/+2
2018-08-19 Merge branch 'medranocalvo/exwm-log-buffer' into externals/exwmChris Feng1-0/+2
2018-08-19 Consistently name helper windowsAdrián Medraño Calvo1-6/+6
* exwm.el (exwm--init-icccm-ewmh): Avoid naming the root window. (exwm--wmsn-acquire): Use the symbol name in the window name. * exwm-systemtray.el (exwm-systemtray--embedder-window): Rename `exwm-systemtray--embedder' consistency. (exwm-systemtray--init): Use symbol names in the window name.
2018-08-13 Trace more functionsAdrián Medraño Calvo1-0/+2
2018-07-18 Bump version to 0.19Chris Feng1-2/+2
2018-07-15 ; Use `derived-mode-p'.Chris Feng1-1/+1
2018-04-15 Port to 32-bit Emacs on master branchPaul Eggert1-1/+1
2018-03-14 Bump version to 0.18Chris Feng1-2/+2
2018-03-10 Fix regressionsChris Feng1-4/+6
(exwm-init): Do not signal an error on startup. * exwm-floating.el (exwm-floating-toggle-floating): * exwm-input (exwm-input-send-next-key) (exwm-input-send-simulation-key): * exwm-layout (exwm-layout-set-fullscreen) (exwm-layout-unset-fullscreen, exwm-layout-toggle-fullscreen): Fix incorrect use of `cl-return-from'.
2018-03-09 Minor fixesChris Feng1-9/+7
2018-03-06 Support replacing and being replaced by other window managersAdrián Medraño Calvo1-3/+94
* exwm.el (exwm--on-SelectionClear, exwm--init-icccm-ewmh) (exwm--exit-icccm-ewmh, exwm--wmsn-acquire, exwm--wmsn-release): Get the window manager selection; die when it is cleared.
2018-03-06 Clean up when failing to startAdrián Medraño Calvo1-45/+28
* exwm.el (exwm-init, exwm-exit): Clean up when failing to start. (exwm--exit-icccm-ewmh): Stop deleting root window properties on exit: delete function.
2018-03-06 Add interactive commands for starting and stopping EXWMAdrián Medraño Calvo1-3/+6
* exwm.el (exwm-reset): Remove autoload cookie. (exwm-init, exwm-exit): Add autoload cookie and interactive declaration.
2018-03-06 Disconnect on `exwm--exit'Adrián Medraño Calvo1-3/+41
* exwm.el (exwm-exit): Disconnect `exwm-connection'. * exwm.el (exwm-init, exwm-exit, exwm--confirm-kill-emacs) * exwm-workspace.el (exwm-workspace--set-desktop-geometry) (exwm-workspace--init, exwm-workspace--exit): Move `confirm-kill-emacs' to this exwm.el`. Delegate disconnection of `exwm--connection' to `exwm-exit'.
2018-03-06 * exwm.el (exwm--exit): Drop SubstructureRedirect on root window.Adrián Medraño Calvo1-1/+5
2018-03-06 Cleanup exwm-manage on exitAdrián Medraño Calvo1-1/+1
* exwm-manage.el (exwm-manage--unmanage-window): Map windows when quitting. (exwm-manage--exit): Remap all windows. * exwm.el (exwm--exit): Reorder deinitialization sequence so that windows are reparented before the workspaces are removed.
2018-03-04 Fix fullscreen mode after switching workspace and backChris Feng1-9/+5
* exwm-layout.el (exwm-layout--show): Always set an X window in fullscreen mode the size in fullscreen. (exwm-layout-unset-fullscreen): Leave the fullscreen mode first. * exwm-layout.el (exwm-layout--fullscreen-p): New function telling whether the current buffer is in fullscreen mode. (exwm-layout-set-fullscreen, exwm-layout-unset-fullscreen) (exwm-layout-toggle-fullscreen): * exwm-manage.el (exwm-manage--manage-window) (exwm-manage--on-ConfigureRequest): * exwm-workspace.el (exwm-workspace-switch, exwm-workspace-swap) (exwm-workspace-move): * exwm.el (exwm-reset, exwm--on-ClientMessage): Use it.
2018-02-24 Bump version to 0.17Chris Feng1-2/+2
2018-02-20 Remove redundant code for fullscreen modeChris Feng1-10/+7
* exwm-manage.el (exwm-manage--unmanage-window) (exwm--on-ClientMessage): No need to modify workspace when an X window enters/leaves fullscreen mode.
2018-02-19 Support displaying floating X windows on all workspacesChris Feng1-0/+26
; Setting _NET_WM_DESKTOP to 0xffffffff makes an X windows appearing ; on all desktops (EWMH). It's tricky to do it for tiling X windows ; so it's not implemented. * exwm-core.el (exwm--desktop): New buffer-local variable recording the value of _NET_WM_DESKTOP. * exwm-layout.el (exwm-layout--hide): Do not hide X windows with this property set to 0xffffffff. * exwm.el (exwm--update-desktop): New function for fetching the value of _NET_WM_DESKTOP and setting `exwm--desktop'. * exwm-manage.el (exwm-manage--manage-window): Use it. * exwm-workspace.el (exwm-workspace--set-desktop): Also update `exwm--desktop'.
2018-02-19 Add customization settingsChris Feng1-26/+33
; Also fix documentations.
2018-02-18 Make X windows container-lessChris Feng1-5/+5
; This is an attempt to make (managed) X windows container-less, i.e. direct children of the root window. This is mainly to make EXWM compatible with third-party compositors. Other issues like wrong absolute position should also get resolved by the way. The workspace containers ("virtual roots") are also removed. However Emacs frames are still wrapped in containers to avoid unexpected stack reordering. * exwm-cm.el: Make this module obsolete as EXWM supports third-party compositors now. * exwm-core.el (exwm--container): * exwm-floating.el (exwm-floating--set-floating) (exwm-floating--unset-floating, exwm-floating-hide) (exwm-floating--start-moveresize, exwm-floating--stop-moveresize) (exwm-floating--do-moveresize, exwm-floating-move): * exwm-input.el (exwm-input--update-focus): * exwm-layout.el (exwm-layout--show, exwm-layout--hide) (exwm-layout-set-fullscreen, exwm-layout-unset-fullscreen): * exwm-manage.el (exwm-manage--manage-window, exwm-manage--unmanage-window) (exwm-manage--kill-buffer-query-function, exwm-manage--kill-client): * exwm-workspace.el (exwm-workspace--set-fullscreen, exwm-workspace-switch) (exwm-workspace-move-window, exwm-workspace--add-frame-as-workspace) (exwm-workspace--remove-frame-as-workspace): Make adaptions for container-less X windows. * exwm-workspace.el (exwm-workspace--update-ewmh-props): * exwm.el (exwm--init-icccm-ewmh, exwm--exit-icccm-ewmh): No longer use virtual roots. * exwm-input.el (exwm-input--on-workspace-list-change) (exwm-input--update-global-prefix-keys, exwm-input--init, exwm-input--exit): From now on global key bindings are grabbed on the root window so it's no long required to re-grab them each time the workspace list changes. As a result `exwm-input--on-workspace-list-change' and its corresponding references are discarded. It remains to be seen if this change will raise input focus issues. * exwm-manage.el (exwm-manage--manage-window): Explicitly set the workspace for newly managed X windows. * exwm-floating.el (exwm-floating--set-floating): Avoid implicit reference to the current workspace. * exwm-core.el (exwm--set-geometry): New function for setting the geometry of an X window. * exwm-layout.el (exwm-layout--resize-container): Replaced by `exwm-layout--resize-container'. * exwm-core.el (exwm--guide-window): New global variable recording the guide X window. * exwm.el (exwm--init-icccm-ewmh): Set it. * exwm-input.el (exwm-input--post-init): New function containing staffs for initialization but should better get called after the event loop starts. * exwm.el (exwm-init): Use it.
2017-12-31 Update copyright year to 2018Chris Feng1-1/+1
2017-11-26 Bump version to 0.16Chris Feng1-1/+1
2017-11-19 Correct the detection of emacsclientChris Feng1-5/+4
* exwm.el (exwm-enable): Use `daemonp' instead of `display-graphic-p'.
2017-11-09 Be more precise when choosing the init hookChris Feng1-2/+5
* exwm.el (exwm-enable): Run `exwm-init' in `after-make-frame-functions' only for emacsclient and `window-setup-hook' only for ordinary sessions.
2017-08-02 Bump version to 0,15Chris Feng1-1/+1