[elpa] externals/exwm dd6f5c3 1/4: Inform user about making a frame a workspace
branch: externals/exwm commit dd6f5c36edf62f8c9d3c98a77b0d22b141663f6c Author: Chris Feng Commit: Chris Feng Inform user about making a frame a workspace * exwm-workspace.el (exwm-workspace--add-frame-as-workspace): Add a message. (exwm-workspace--init): Exclude initial workspaces. --- exwm-workspace.el | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/exwm-workspace.el b/exwm-workspace.el index a4ccc2f..f536bc5 100644 --- a/exwm-workspace.el +++ b/exwm-workspace.el @@ -1337,6 +1337,7 @@ Please check `exwm-workspace--minibuffer-own-frame-p' first." (if exwm-workspace--create-silently (setq exwm-workspace--switch-history-outdated t) (exwm-workspace-switch frame t) +(message "Added %s as workspace %d" frame exwm-workspace-current-index) (run-hooks 'exwm-workspace-list-change-hook))) (defun exwm-workspace--get-remove-frame-next-workspace (frame) @@ -1629,8 +1630,9 @@ applied to all subsequently created X frames." (nconc initial-workspaces (list (make-frame '((window-system . x) (client . nil)) ;; Configure workspaces -(dolist (i initial-workspaces) - (exwm-workspace--add-frame-as-workspace i))) +(let ((exwm-workspace--create-silently t)) + (dolist (i initial-workspaces) +(exwm-workspace--add-frame-as-workspace i (xcb:flush exwm--connection) ;; We have to advice `x-create-frame' or every call to it would hang EXWM (advice-add 'x-create-frame :around #'exwm-workspace--x-create-frame)
[elpa] externals/exwm a1cf0d9 3/4: Avoid checking `*temp*' buffers
branch: externals/exwm commit a1cf0d9b85e1d1d4f3b50a9d51980688b7b816df Author: Chris Feng Commit: Chris Feng Avoid checking `*temp*' buffers * exwm-input.el (exwm-input--on-buffer-list-update): The way of detecting a switch from a `*temp*' buffer does not always work. Disable it until we find a better way. --- exwm-input.el | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/exwm-input.el b/exwm-input.el index ababbb6..2b421d0 100644 --- a/exwm-input.el +++ b/exwm-input.el @@ -277,11 +277,7 @@ ARGS are additional arguments to CALLBACK." (when (and (not (eq this-command #'handle-switch-frame)) (not exwm-input--skip-buffer-list-update) (not (exwm-workspace--client-p)) - ;; The following conditions filter out events relating to temp - ;; buffers. - (eq (current-buffer) (window-buffer)) - (not (string-prefix-p " *temp*" - (buffer-name (car (last (buffer-list))) + (eq (current-buffer) (window-buffer))) (exwm--log "current-buffer=%S selected-window=%S" (current-buffer) (selected-window)) (redirect-frame-focus (selected-frame) nil)
[elpa] externals/exwm d78c562 4/4: Make `exwm-manage-configurations' more user friendly
branch: externals/exwm commit d78c562f9a90055b595cb783928af43597b5ca6c Author: Chris Feng Commit: Chris Feng Make `exwm-manage-configurations' more user friendly * exwm-manage.el (exwm-manage-configurations): Specify type for each configuration option. --- exwm-manage.el | 78 ++ 1 file changed, 57 insertions(+), 21 deletions(-) diff --git a/exwm-manage.el b/exwm-manage.el index 6f89fff..797fc15 100644 --- a/exwm-manage.el +++ b/exwm-manage.el @@ -74,28 +74,64 @@ criterion would be applied." :type '(alist :key-type (sexp :tag "Matching criterion" nil) :value-type (plist :tag "Configurations" - :key-type - (choice -(const :tag "Floating" floating) -(const :tag "X" x) -(const :tag "Y" y) -(const :tag "Width" width) -(const :tag "Height" height) -(const :tag "Border width" border-width) -(const :tag "Fullscreen" fullscreen) -(const :tag "Floating mode-line" floating-mode-line) -(const :tag "Tiling mode-line" tiling-mode-line) -(const :tag "Floating header-line" - floating-header-line) -(const :tag "Tiling header-line" tiling-header-line) -(const :tag "Char-mode" char-mode) -(const :tag "Prefix keys" prefix-keys) -(const :tag "Simulation keys" simulation-keys) -(const :tag "Workspace" workspace) -(const :tag "Managed" managed) + :options + (((const :tag "Floating" floating) boolean) +((const :tag "X" x) number) +((const :tag "Y" y) number) +((const :tag "Width" width) number) +((const :tag "Height" height) number) +((const :tag "Border width" border-width) integer) +((const :tag "Fullscreen" fullscreen) boolean) +((const :tag "Floating mode-line" floating-mode-line) + sexp) +((const :tag "Tiling mode-line" tiling-mode-line) sexp) +((const :tag "Floating header-line" +floating-header-line) + sexp) +((const :tag "Tiling header-line" tiling-header-line) + sexp) +((const :tag "Char-mode" char-mode) boolean) +((const :tag "Prefix keys" prefix-keys) + (repeat key-sequence)) +((const :tag "Simulation keys" simulation-keys) + (alist :key-type (key-sequence :tag "From") +:value-type (key-sequence :tag "To"))) +((const :tag "Workspace" workspace) integer) +((const :tag "Managed" managed) boolean) ;; For forward compatibility. -(other)) - :value-type (sexp :tag "Value" nil +((other) sexp + ;; TODO: This is admittedly ugly. We'd be better off with an event type. + :get (lambda (symbol) + (mapcar (lambda (pair) + (let* ((match (car pair)) + (config (cdr pair)) + (prefix-keys (plist-get config 'prefix-keys))) + (when prefix-keys + (setq config (copy-tree config) + config (plist-put config 'prefix-keys + (mapcar (lambda (i) + (if (sequencep i) + i + (vector i))) + prefix-keys + (cons match config))) + (default-value symbol))) + :set (lambda (symbol value) + (set symbol + (mapcar (lambda (pair) +(let* ((match (car pair)) + (config (cdr pair)) + (prefix-keys (plist-get config 'prefix-keys))) + (when prefix-keys +(setq config (copy-tree config) + config (plist-put config 'prefix-keys +(mapcar (lambda (i) + (if (sequencep i) +
[elpa] externals/exwm 1f2bd54 2/4: Fix a regression with systemtray
branch: externals/exwm commit 1f2bd54c117b3eeb88b6af1e8627030f00e37898 Author: Chris Feng Commit: Chris Feng Fix a regression with systemtray * exwm-systemtray.el (exwm-systemtray--on-workspace-switch) (exwm-systemtray--on-randr-refresh): Instead of retrieving the real frame height, manually calculate it with workarea height and menu-bar/tool-bar size. --- exwm-systemtray.el | 40 +--- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/exwm-systemtray.el b/exwm-systemtray.el index 80505c2..a095bfa 100644 --- a/exwm-systemtray.el +++ b/exwm-systemtray.el @@ -331,27 +331,37 @@ You shall use the default value if using auto-hide minibuffer." "Reparent/Refresh the system tray in `exwm-workspace-switch-hook'." (exwm--log) (unless (exwm-workspace--minibuffer-own-frame-p) -(xcb:+request exwm-systemtray--connection -(make-instance 'xcb:ReparentWindow - :window exwm-systemtray--embedder-window - :parent (string-to-number -(frame-parameter exwm-workspace--current - 'window-id)) - :x 0 - :y (- (frame-pixel-height exwm-workspace--current) - exwm-systemtray-height +(let ((geometry (frame-geometry exwm-workspace--current))) + (xcb:+request exwm-systemtray--connection + (make-instance 'xcb:ReparentWindow + :window exwm-systemtray--embedder-window + :parent (string-to-number + (frame-parameter exwm-workspace--current + 'window-id)) + :x 0 + :y (- (elt (elt exwm-workspace--workareas + exwm-workspace-current-index) +3) + (or (cddr (assq 'menu-bar-size geometry)) 0) + (or (cddr (assq 'tool-bar-size geometry)) 0) + exwm-systemtray-height) (exwm-systemtray--refresh)) (defun exwm-systemtray--on-randr-refresh () "Reposition/Refresh the system tray in `exwm-randr-refresh-hook'." (exwm--log) (unless (exwm-workspace--minibuffer-own-frame-p) -(xcb:+request exwm-systemtray--connection -(make-instance 'xcb:ConfigureWindow - :window exwm-systemtray--embedder-window - :value-mask xcb:ConfigWindow:Y - :y (- (frame-pixel-height exwm-workspace--current) - exwm-systemtray-height +(let ((geometry (frame-geometry exwm-workspace--current))) + (xcb:+request exwm-systemtray--connection + (make-instance 'xcb:ConfigureWindow + :window exwm-systemtray--embedder-window + :value-mask xcb:ConfigWindow:Y + :y (- (elt (elt exwm-workspace--workareas + exwm-workspace-current-index) +3) + (or (cddr (assq 'menu-bar-size geometry)) 0) + (or (cddr (assq 'tool-bar-size geometry)) 0) + exwm-systemtray-height) (exwm-systemtray--refresh)) (defalias 'exwm-systemtray--on-struts-update
[elpa] externals/exwm updated (37098a4 -> d78c562)
ch11ng pushed a change to branch externals/exwm. from 37098a4 Fix detection of modifier keys in Emacs events new dd6f5c3 Inform user about making a frame a workspace new 1f2bd54 Fix a regression with systemtray new a1cf0d9 Avoid checking `*temp*' buffers new d78c562 Make `exwm-manage-configurations' more user friendly Summary of changes: exwm-input.el | 6 + exwm-manage.el | 78 +++--- exwm-systemtray.el | 40 +--- exwm-workspace.el | 6 +++-- 4 files changed, 87 insertions(+), 43 deletions(-)