Fix system tray issues after updating workspaces
* exwm-workspace.el (exwm-workspace-switch-hook): New hook run by `exwm-workspace-switch'. * exwm-randr.el (exwm-randr-refresh-hook): New hook run by `exwm-randr--refresh'. * exwm-systemtray.el (exwm-systemtray--on-randr-refresh) (exwm-systemtray--on-workspace-switch, exwm-systemtray--init): Update the system tray in `exwm-randr-refresh-hook' and `exwm-workspace-switch-hook'. * exwm-layout.el (exwm-layout--set-frame-fullscreen): * exwm-workspace.el (exwm-workspace--post-init): Wait until all workspace frames are set fullscreen. * exwm-workspace.el (exwm-workspace--current-width) (exwm-workspace--current-height): New functions for retrieving the width and height of the current workspace. * exwm-layout.el (exwm-layout-set-fullscreen): * exwm-manage.el (exwm-manage--manage-window) (exwm-manage--on-ConfigureRequest): * exwm-systemtray.el (exwm-systemtray--refresh, exwm-systemtray--init): * exwm-workspace.le (exwm-workspace--resize-minibuffer-frame) (exwm-workspace--on-ConfigureNotify): Switch to `exwm-workspace--current-width' and `exwm-workspace--current-height'. * exwm-core.el: * exwm-floating.el: * exwm-floating.el: * exwm-input.el: * exwm-layout.el: * exwm-manage.el: * exwm-randr.el: * exwm-systemtray.el: * exwm-workspace.el: * exwm.el: Clean up loading file. Set/Unset some functions as commands. * README.md: Add intro to system tray.
This commit is contained in:
parent
bfd43feb49
commit
fc589b899b
10 changed files with 160 additions and 91 deletions
16
exwm.el
16
exwm.el
|
|
@ -30,11 +30,12 @@
|
|||
;; --------
|
||||
;; EXWM (Emacs X Window Manager) is a full-featured tiling X window manager for
|
||||
;; Emacs built on top of XELB. It features:
|
||||
;; + Fully keyboard-driven operation
|
||||
;; + Fully keyboard-driven operations
|
||||
;; + Hybrid layout modes (tiling & stacking)
|
||||
;; + Workspace support
|
||||
;; + ICCCM/EWMH compliance
|
||||
;; + Basic RandR support (optional)
|
||||
;; ++ (Optional) RandR (multi-monitor) support
|
||||
;; ++ (Optional) system tray
|
||||
|
||||
;; Installation & configuration
|
||||
;; ----------------------------
|
||||
|
|
@ -70,6 +71,7 @@
|
|||
(require 'exwm-manage)
|
||||
(require 'exwm-input)
|
||||
|
||||
;;;###autoload
|
||||
(defun exwm-reset ()
|
||||
"Reset window to standard state: non-fullscreen, line-mode."
|
||||
(interactive)
|
||||
|
|
@ -80,7 +82,6 @@
|
|||
(exwm-layout--refresh)
|
||||
(exwm-input-grab-keyboard))))
|
||||
|
||||
;;;###autoload
|
||||
(defun exwm--update-window-type (id &optional force)
|
||||
"Update _NET_WM_WINDOW_TYPE."
|
||||
(with-current-buffer (exwm--id->buffer id)
|
||||
|
|
@ -94,7 +95,6 @@
|
|||
(defvar exwm-update-class-hook nil
|
||||
"Normal hook run when window class is updated.")
|
||||
|
||||
;;;###autoload
|
||||
(defun exwm--update-class (id &optional force)
|
||||
"Update WM_CLASS."
|
||||
(with-current-buffer (exwm--id->buffer id)
|
||||
|
|
@ -110,7 +110,6 @@
|
|||
(defvar exwm-update-title-hook nil
|
||||
"Normal hook run when window title is updated.")
|
||||
|
||||
;;;###autoload
|
||||
(defun exwm--update-utf8-title (id &optional force)
|
||||
"Update _NET_WM_NAME."
|
||||
(with-current-buffer (exwm--id->buffer id)
|
||||
|
|
@ -123,7 +122,6 @@
|
|||
(setq exwm--title-is-utf8 t)
|
||||
(run-hooks 'exwm-update-title-hook)))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun exwm--update-ctext-title (id &optional force)
|
||||
"Update WM_NAME."
|
||||
(with-current-buffer (exwm--id->buffer id)
|
||||
|
|
@ -136,13 +134,11 @@
|
|||
(when exwm-title
|
||||
(run-hooks 'exwm-update-title-hook)))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun exwm--update-title (id)
|
||||
"Update _NET_WM_NAME or WM_NAME."
|
||||
(exwm--update-utf8-title id)
|
||||
(exwm--update-ctext-title id))
|
||||
|
||||
;;;###autoload
|
||||
(defun exwm--update-transient-for (id &optional force)
|
||||
"Update WM_TRANSIENT_FOR."
|
||||
(with-current-buffer (exwm--id->buffer id)
|
||||
|
|
@ -153,7 +149,6 @@
|
|||
(when reply ;nil when destroyed
|
||||
(setq exwm-transient-for (slot-value reply 'value)))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun exwm--update-normal-hints (id &optional force)
|
||||
"Update WM_NORMAL_HINTS."
|
||||
(with-current-buffer (exwm--id->buffer id)
|
||||
|
|
@ -201,7 +196,6 @@
|
|||
(= exwm--normal-hints-min-height
|
||||
exwm--normal-hints-max-height)))))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun exwm--update-hints (id &optional force)
|
||||
"Update WM_HINTS."
|
||||
(with-current-buffer (exwm--id->buffer id)
|
||||
|
|
@ -221,7 +215,6 @@
|
|||
(set-frame-parameter exwm--frame 'exwm--urgency t)
|
||||
(setq exwm-workspace--switch-history-outdated t))))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun exwm--update-protocols (id &optional force)
|
||||
"Update WM_PROTOCOLS."
|
||||
(with-current-buffer (exwm--id->buffer id)
|
||||
|
|
@ -232,7 +225,6 @@
|
|||
(when reply ;nil when destroyed
|
||||
(setq exwm--protocols (append (slot-value reply 'value) nil)))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun exwm--update-state (id &optional force)
|
||||
"Update WM_STATE."
|
||||
(with-current-buffer (exwm--id->buffer id)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue