Add header-line format support in per-application configurations

* exwm-manage.el (exwm-manage-configurations):
* exwm-floating.el (exwm-floating--set-floating)
(exwm-floating--unset-floating): Allow customizing header-line format
for floating/tiling X windows.
This commit is contained in:
Chris Feng 2018-03-04 01:39:12 +08:00
parent cc974555db
commit 7013b0122a
2 changed files with 21 additions and 2 deletions

View file

@ -216,7 +216,9 @@ This is also used by X window containers.")
(frame-height (+ height (- (frame-pixel-height frame) (frame-height (+ height (- (frame-pixel-height frame)
(- (elt edges 3) (elt edges 1))))) (- (elt edges 3) (elt edges 1)))))
(floating-mode-line (plist-get exwm--configurations (floating-mode-line (plist-get exwm--configurations
'floating-mode-line))) 'floating-mode-line))
(floating-header-line (plist-get exwm--configurations
'floating-header-line)))
(if floating-mode-line (if floating-mode-line
(setq exwm--mode-line-format (or exwm--mode-line-format (setq exwm--mode-line-format (or exwm--mode-line-format
mode-line-format) mode-line-format)
@ -231,6 +233,16 @@ This is also used by X window containers.")
exwm--mode-line-format (or exwm--mode-line-format exwm--mode-line-format (or exwm--mode-line-format
mode-line-format) mode-line-format)
mode-line-format nil))) mode-line-format nil)))
(if floating-header-line
(setq header-line-format floating-header-line)
(if (and (not (plist-member exwm--configurations
'floating-header-line))
exwm--mwm-hints-decorations)
(setq header-line-format nil)
;; The header-line need to be hidden in floating header.
(setq frame-height (- frame-height (window-header-line-height
(frame-root-window frame)))
header-line-format nil)))
(set-frame-size frame frame-width frame-height t) (set-frame-size frame frame-width frame-height t)
;; Create the frame container as the parent of the frame. ;; Create the frame container as the parent of the frame.
(xcb:+request exwm--connection (xcb:+request exwm--connection
@ -375,7 +387,11 @@ This is also used by X window containers.")
(setq exwm--mode-line-format (or exwm--mode-line-format (setq exwm--mode-line-format (or exwm--mode-line-format
mode-line-format) mode-line-format)
mode-line-format (plist-get exwm--configurations mode-line-format (plist-get exwm--configurations
'tiling-mode-line)))) 'tiling-mode-line)))
(if (not (plist-member exwm--configurations 'tiling-header-line))
(setq header-line-format nil)
(setq header-line-format (plist-get exwm--configurations
'tiling-header-line))))
;; Only show X windows in normal state. ;; Only show X windows in normal state.
(unless (exwm-layout--iconic-state-p) (unless (exwm-layout--iconic-state-p)
(pop-to-buffer-same-window buffer))) (pop-to-buffer-same-window buffer)))

View file

@ -63,6 +63,9 @@ You can still make the X windows floating afterwards."
(const :tag "Fullscreen" fullscreen) (const :tag "Fullscreen" fullscreen)
(const :tag "Floating mode-line" floating-mode-line) (const :tag "Floating mode-line" floating-mode-line)
(const :tag "Tiling mode-line" tiling-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 "Char-mode" char-mode)
(const :tag "Prefix keys" prefix-keys) (const :tag "Prefix keys" prefix-keys)
(const :tag "Simulation keys" simulation-keys) (const :tag "Simulation keys" simulation-keys)