subtree(3p/exwm): update to EXWM 0.30
Merge commit '3e6bfe36af' into HEAD
Change-Id: Ieebca600b409765d9109fd2b718bd74e533c12e1
This commit is contained in:
commit
179a4e36d7
8 changed files with 60 additions and 73 deletions
70
third_party/exwm/exwm-core.el
vendored
70
third_party/exwm/exwm-core.el
vendored
|
|
@ -82,6 +82,7 @@ Here are some predefined candidates:
|
|||
(defvar exwm-input--simulation-keys)
|
||||
(defvar exwm-input-line-mode-passthrough)
|
||||
(defvar exwm-input-prefix-keys)
|
||||
(defvar exwm-workspace--list)
|
||||
(declare-function exwm-input--fake-key "exwm-input.el" (event))
|
||||
(declare-function exwm-input--on-KeyPress-line-mode "exwm-input.el"
|
||||
(key-press raw-data))
|
||||
|
|
@ -94,6 +95,8 @@ Here are some predefined candidates:
|
|||
(declare-function exwm-manage--kill-buffer-query-function "exwm-manage.el")
|
||||
(declare-function exwm-workspace-move-window "exwm-workspace.el"
|
||||
(frame-or-index &optional id))
|
||||
(declare-function exwm-workspace-switch "exwm-workspace.el"
|
||||
(frame-or-index &optional force))
|
||||
|
||||
(define-minor-mode exwm-debug
|
||||
"Debug-logging enabled if non-nil."
|
||||
|
|
@ -229,6 +232,14 @@ If CONN is non-nil, use it instead of the value of the variable
|
|||
(setq ret-depth depth))
|
||||
(list ret-visual ret-depth ret-colormap)))
|
||||
|
||||
(defun exwm--mode-name ()
|
||||
"Mode name string used in `exwm-mode' buffers."
|
||||
(let ((name "EXWM"))
|
||||
(if (cl-some (lambda (i) (frame-parameter i 'exwm-urgency))
|
||||
exwm-workspace--list)
|
||||
(propertize name 'face 'font-lock-warning-face)
|
||||
name)))
|
||||
|
||||
;; Internal variables
|
||||
(defvar-local exwm--id nil) ;window ID
|
||||
(defvar-local exwm--configurations nil) ;initial configurations.
|
||||
|
|
@ -311,7 +322,7 @@ One of `line-mode' or `char-mode'.")
|
|||
;; Also, inactive entries should be disabled rather than hidden.
|
||||
(easy-menu-define exwm-mode-menu exwm-mode-map
|
||||
"Menu for `exwm-mode'."
|
||||
'("EXWM"
|
||||
`("EXWM"
|
||||
"---"
|
||||
"*General*"
|
||||
"---"
|
||||
|
|
@ -336,22 +347,20 @@ One of `line-mode' or `char-mode'.")
|
|||
["Send key" exwm-input-send-next-key (eq exwm--input-mode 'line-mode)]
|
||||
;; This is merely a reference.
|
||||
("Send simulation key" :filter
|
||||
(lambda (&rest _args)
|
||||
(let (result)
|
||||
(maphash
|
||||
(lambda (key value)
|
||||
(when (sequencep key)
|
||||
(setq result (append result
|
||||
`([
|
||||
,(format "Send '%s'"
|
||||
(key-description value))
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(dolist (i ',value)
|
||||
(exwm-input--fake-key i)))
|
||||
:keys ,(key-description key)])))))
|
||||
exwm-input--simulation-keys)
|
||||
result)))
|
||||
,(lambda (&rest _args)
|
||||
(let (result)
|
||||
(maphash
|
||||
(lambda (key value)
|
||||
(when (sequencep key)
|
||||
(setq result (append result
|
||||
`([,(format "Send '%s'"
|
||||
(key-description value))
|
||||
,(lambda ()
|
||||
(interactive)
|
||||
(mapc #'exwm-input--fake-key value))
|
||||
:keys ,(key-description key)])))))
|
||||
exwm-input--simulation-keys)
|
||||
result)))
|
||||
|
||||
["Define global binding" exwm-input-set-key]
|
||||
|
||||
|
|
@ -368,26 +377,20 @@ One of `line-mode' or `char-mode'.")
|
|||
["Switch workspace" exwm-workspace-switch]
|
||||
;; Place this entry at bottom to avoid selecting others by accident.
|
||||
("Switch to" :filter
|
||||
(lambda (&rest _args)
|
||||
(mapcar (lambda (i)
|
||||
`[,(format "Workspace %d" i)
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(exwm-workspace-switch ,i))
|
||||
(/= ,i exwm-workspace-current-index)])
|
||||
(number-sequence 0 (1- (exwm-workspace--count))))))))
|
||||
,(lambda (&rest _args)
|
||||
(mapcar (lambda (i)
|
||||
`[,(format "Workspace %d" i)
|
||||
,(lambda ()
|
||||
(interactive)
|
||||
(exwm-workspace-switch i))
|
||||
(/= ,i exwm-workspace-current-index)])
|
||||
(number-sequence 0 (1- (length exwm-workspace--list))))))))
|
||||
|
||||
(define-derived-mode exwm-mode nil "EXWM"
|
||||
"Major mode for managing X windows.
|
||||
|
||||
\\{exwm-mode-map}"
|
||||
;;
|
||||
(setq mode-name
|
||||
'(:eval (propertize "EXWM" 'face
|
||||
(when (cl-some (lambda (i)
|
||||
(frame-parameter i 'exwm-urgency))
|
||||
exwm-workspace--list)
|
||||
'font-lock-warning-face))))
|
||||
:interactive nil :abbrev-table nil :syntax-table nil
|
||||
;; Change major-mode is not allowed
|
||||
(add-hook 'change-major-mode-hook #'kill-buffer nil t)
|
||||
;; Kill buffer -> close window
|
||||
|
|
@ -396,7 +399,8 @@ One of `line-mode' or `char-mode'.")
|
|||
;; Redirect events when executing keyboard macros.
|
||||
(push `(executing-kbd-macro . ,exwm--kmacro-map)
|
||||
minor-mode-overriding-map-alist)
|
||||
(setq buffer-read-only t
|
||||
(setq mode-name '(:eval (exwm--mode-name))
|
||||
buffer-read-only t
|
||||
cursor-type nil
|
||||
left-margin-width nil
|
||||
right-margin-width nil
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue