Commit graph

544 commits

Author SHA1 Message Date
Adrián Medraño Calvo
feebdf827b Merge branch 'mgi.github.com/mgi/fix' into externals/exwm 2022-10-29 00:00:00 +00:00
Adrián Medraño Calvo
4c0b9bb5c2 Merge branch 'stebalien.github.com/fix/hide-floating-tabs' into externals/exwm 2022-10-29 00:00:00 +00:00
Manuel Giraud
ce2191c444 Focus workspace frames upon _NET_ACTIVE_WINDOW
* exwm.el (exwm--on-ClientMessage): Take care of focusing
workspace frames when a _NET_ACTIVE_WINDOW message is received for
a workspace frame.  This is responsibility of the window manager
when it advertises _NET_ACTIVE_WINDOW support, which we do.
Emacs versions before 29 took care of setting the input focus to
the frame.

Thanks-to: Po Lu for the work on Emacs and assistance with this
           issue.
2022-10-29 00:00:00 +00:00
Steven Allen
e042832b2b
Hide tab-bar on floating windows
Floating windows are dedicated to a specific buffer anyways.

* exwm-floating.el (exwm-floating--set-floating): Hide the tab bar.
2022-07-26 07:39:37 -07:00
Adrián Medraño Calvo
e43bd78258 Use 32-bit visual for frame containers
* exwm-core.el (exwm--get-visual-depth-colormap): New function.
* exwm-workspace.el (exwm-workspace--add-frame-as-workspace): Use
Emacs' frame's visual, depth and colormap. Reset all attributes
that refer (also by default) to the parent window (the root
window), as it might have a different visual, depth or colormap.

Special-thanks-to: Elijah Malaby <qwe12345678910@gmail.com> for figuring out the
  changes needed to suport 32-bit visuals and proposing the initial
  version of this improvement.
2022-03-24 00:00:00 +00:00
Elijah Malaby
563cba2abc Set WM_STATE on emacs frames
* exwm-workspace.el (exwm-workspace--add-frame-as-workspace): Set
WM_STATE.

Copyright-paperwork-exempt: yes
2022-02-10 00:00:00 +00:00
Adrián Medraño Calvo
445e94189c Add license file
* LICENSE: Add file.
2022-02-10 00:00:00 +00:00
Adrián Medraño Calvo
10bd12234e Bump version to 0.26 2021-11-10 00:00:00 +00:00
Adrián Medraño Calvo
08f20ea0b9 Fix previous commit "Remove duplicate code"
* exwm-layout.el (exwm-layout-unset-fullscreen):
`xcb:Atom:_NET_WM_STATE_FULLSCREEN' must be excised before
invoking `exwm-layout--show'.
2021-11-10 00:00:00 +00:00
Adrián Medraño Calvo
5098708c92 Correct wrong variable name
* exwm-workspace.el (exwm-workspace--on-delete-frame): Correct
misstyped name of variable `exwm-workspace--client-p-hash-table'.
2021-11-02 00:00:00 +00:00
Adrián Medraño Calvo
571ca227e7 Remove duplicate code
* exwm-layout.el (exwm-layout-unset-fullscreen): Remove double
removal of `xcb:Atom:_NET_WM_STATE_FULLSCREEN' from
`exwm--ewmh-state'.
2021-10-30 00:00:00 +00:00
Adrián Medraño Calvo
1bc66b6438 Merge branch 'mattbeshara.github.com/less-consy-workspace--client-p' into externals/exwm 2021-10-30 00:00:00 +00:00
Adrián Medraño Calvo
52a0b1c556 Merge branch 'tumashu.github.com/master' into externals/exwm 2021-10-30 00:00:00 +00:00
Adrián Medraño Calvo
deabe9c2df Bump version to 0.25 2021-10-30 00:00:00 +00:00
Adrián Medraño Calvo
c1206ac665 Update copyright year to 2021 2021-10-29 00:00:00 +00:00
Adrián Medraño Calvo
835a7add7c New maintainer 2021-10-29 00:00:00 +00:00
Matt Beshara
d0b0b38c87 Explicitly remove workspace frames from client-p cache when deleted
* exwm-workspace.el (exwm-workspace--on-delete-frame): Clean up
hash table entries upon removing a workspace.
2021-10-25 12:05:09 -04:00
Matt Beshara
8905e85d34 Rename variable using ‘exwm-workspace’ package prefix; add docstring
* exwm-workspace.el (exwm-workspace--client-p-hash-table): Rename
`exwm--client-p-hash-table'.
2021-10-25 12:05:09 -04:00
Matt Beshara
182ffbed6c Use a hash table to cache result of ‘exwm-workspace--client-p’
* exwm-workspace.el (exwm--client-p-hash-table): New variable.
(exwm-workspace--client-p): Use `exwm--client-p-hash-table' to
store which workspace frames are client frames instead of
frequently invoking `frame-parameter'.
2021-10-25 12:05:09 -04:00
Adrián Medraño Calvo
1863361674 Merge branch 'tumashu.github.com/master' into externals/exwm 2021-10-25 11:51:15 -04:00
Feng Shu
3d648ef1c4 Add variable indicating XIM buffers
* exwm-xim.el (exwm-xim-buffer-p): New variable.
(exwm-xim--handle-forward-event-request): Add exwm-xim-buffer-p
2021-10-25 11:42:33 -04:00
Chris Feng
0368127976 Make button events working with winner-mode
* exwm-input.el (exwm-input--fake-last-command): Extracted for reuse.
(exwm-input--on-ButtonPress, exwm-input--on-KeyPress-line-mode): Use
it.
2020-07-12 00:00:00 +00:00
Chris Feng
edb930005b Fix fullscreen states
* exwm-layout.el (exwm-layout-set-fullscreen,
exwm-layout-unset-fullscreen): Use `exwm--id' for interactive use.
(exwm-layout-unset-fullscreen): Mandatorily clear fullscreen states.
2020-06-14 00:00:00 +00:00
Chris Feng
9f28621277 Bump version to 0.24 2020-05-24 00:00:00 +00:00
Chris Feng
624a30212c Clarify the use of `exwm-config-default'
* exwm-config.el (exwm-config-example): Renamed from
`exwm-config-default' to make it clear it's just an example.
2020-05-10 00:00:00 +00:00
Chris Feng
7f4b9cdb0f Make return key work in exwm-xim
* 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 00:00:00 +00:00
Chris Feng
921b0e3efe Merge branch 'medranocalvo/upcase-menu-item' into externals/exwm 2020-05-10 00:00:00 +00:00
Chris Feng
ab1d02af53 Merge branch 'medranocalvo/prevent-jump-back-workspace' into externals/exwm 2020-05-10 00:00:00 +00:00
Chris Feng
c0931b5c66 Merge branch 'medranocalvo/input-mode-change-hook' into externals/exwm 2020-05-10 00:00:00 +00:00
Adrián Medraño Calvo
1d0df9144e ; Upcase menu item 2020-05-06 00:00:00 +00:00
Adrián Medraño Calvo
c7c42582b7 Prevent jumping back to previous workspace
* 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 00:00:00 +00:00
Adrián Medraño Calvo
ce2625d050 Run hook upon input mode change
* 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-06 00:00:00 +00:00
Chris Feng
21a7341972 Merge branch 'medranocalvo/abort-recursive-edit-on-workspace-switch' into externals/exwm 2020-05-05 00:00:00 +00:00
Adrián Medraño Calvo
007916c647 Fix window manager name
* 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 00:00:00 +00:00
Adrián Medraño Calvo
373eda99bd Stop aborting recursive edit upon switching workspaces.
* 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 00:00:00 +00:00
Adrián Medraño Calvo
cddb3429d2 Abort recursive edit before switching workspaces
* 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-04-15 00:00:00 +00:00
Chris Feng
95d6aa96cf Merge branch 'Curiosidad-Racional/patch-1' into externals/exwm 2020-03-29 00:00:00 +00:00
Chris Feng
3dbf1b1bed Add support for _NET_WM_STATE_HIDDEN
* 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 00:00:00 +00:00
Chris Feng
5f9ba9772f Additional fix for winner-mode
* 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-29 00:00:00 +00:00
Curiosidad-Racional
dc5cc1dead
Fixed fail update when current buffer differs from window
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-21 13:51:09 +01:00
Chris Feng
ed0f63327d Make exwm-mode buffers work with winner-mode
* 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-03-01 00:00:00 +00:00
Chris Feng
48db94f48b Add solid background support to systemtray
* 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 00:00:00 +00:00
Chris Feng
36d2f0056e Refactor color-related code
* 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 00:00:00 +00:00
Chris Feng
27a884e947 Update copyright year to 2020 2020-02-02 00:00:00 +00:00
Chris Feng
65ec749bb0 Fix moving Emacs frames
* exwm.el (exwm--on-ClientMessage): Avoid moving workspace frames;
Move floating X window when trying to move the floating frame.
2019-12-15 00:00:00 +00:00
Chris Feng
8b05c2a30d Eliminate a compile warning
* exwm-workspace.el (exwm-workspace-move-window): Replace the
obsolete `run-window-configuration-change-hook'.
2019-12-08 00:00:00 +00:00
Chris Feng
6a3e9b2c64 Avoid redundant input focus transfer
* 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-12-01 00:00:00 +00:00
Chris Feng
3420cd24d1 Add support for accessing keymaps in char-mode
* exwm-input.el (exwm-input-invoke-factory): New macro for generating
new commands that invoke corresponding prefix keys.
2019-11-03 00:00:00 +00:00
Chris Feng
1772b98452 Loosen the requirements for input focus update
* 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-27 00:00:00 +00:00
Chris Feng
3c8b395058 Fix `exwm-input-set-simulation-key'
* 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-13 00:00:00 +00:00