Move :ui tabbar to :ui tabs
And update its README.org
This commit is contained in:
parent
856a2afe43
commit
702369e888
9 changed files with 75 additions and 63 deletions
|
@ -31,7 +31,8 @@
|
||||||
(term (:term term)))
|
(term (:term term)))
|
||||||
(:ui (doom-modeline (:ui modeline))
|
(:ui (doom-modeline (:ui modeline))
|
||||||
(fci (:ui fill-column))
|
(fci (:ui fill-column))
|
||||||
(evil-goggles (:ui ophints)))
|
(evil-goggles (:ui ophints))
|
||||||
|
(tabbar (:ui tabs)))
|
||||||
(:app (email (:email mu4e))
|
(:app (email (:email mu4e))
|
||||||
(notmuch (:email notmuch))))
|
(notmuch (:email notmuch))))
|
||||||
"A tree alist that maps deprecated modules to their replacement(s).
|
"A tree alist that maps deprecated modules to their replacement(s).
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
+all ; catch all popups that start with an asterix
|
+all ; catch all popups that start with an asterix
|
||||||
+defaults) ; default popup rules
|
+defaults) ; default popup rules
|
||||||
;;pretty-code ; replace bits of code with pretty symbols
|
;;pretty-code ; replace bits of code with pretty symbols
|
||||||
;;tabbar ; FIXME an (incomplete) tab bar for Emacs
|
;;tabs ; an tab bar for Emacs
|
||||||
;;treemacs ; a project drawer, like neotree but cooler
|
;;treemacs ; a project drawer, like neotree but cooler
|
||||||
;;unicode ; extended unicode support for various languages
|
;;unicode ; extended unicode support for various languages
|
||||||
vc-gutter ; vcs diff in the fringe
|
vc-gutter ; vcs diff in the fringe
|
||||||
|
|
|
@ -38,7 +38,7 @@ Aesthetic modules that affect the Emacs interface or user experience.
|
||||||
+ [[file:ui/ophints/README.org][ophints]]:
|
+ [[file:ui/ophints/README.org][ophints]]:
|
||||||
+ [[file:ui/popup/README.org][popup]] =+all +defaults=: Makes temporary/disposable windows less intrusive
|
+ [[file:ui/popup/README.org][popup]] =+all +defaults=: Makes temporary/disposable windows less intrusive
|
||||||
+ pretty-code:
|
+ pretty-code:
|
||||||
+ [[file:ui/tabbar/README.org][tabbar]]:
|
+ [[file:ui/tabs/README.org][tabs]]:
|
||||||
+ treemacs:
|
+ treemacs:
|
||||||
+ [[file:ui/unicode/README.org][unicode]]:
|
+ [[file:ui/unicode/README.org][unicode]]:
|
||||||
+ vc-gutter:
|
+ vc-gutter:
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
#+TITLE: :ui tabbar
|
|
||||||
|
|
||||||
This module adds an Atom-esque tab bar to the Emacs UI.
|
|
||||||
|
|
||||||
I don't recommend you use this module. It is here for reference, is unstable and
|
|
||||||
may be removed some day. I find ivy, helm or even ~buffer-menu~ to be better
|
|
||||||
suited for buffer management.
|
|
|
@ -1,40 +0,0 @@
|
||||||
;;; ui/tabbar/config.el -*- lexical-binding: t; -*-
|
|
||||||
|
|
||||||
(use-package! centaur-tabs
|
|
||||||
:after-call (after-find-file dired-initial-position-hook)
|
|
||||||
:init
|
|
||||||
(setq centaur-tabs-height 28
|
|
||||||
centaur-tabs-set-bar 'left
|
|
||||||
centaur-tabs-set-modified-marker t)
|
|
||||||
|
|
||||||
:config
|
|
||||||
(add-hook! 'centaur-tabs-mode-hook
|
|
||||||
(defun +tabbar-init-frames-h ()
|
|
||||||
(dolist (frame (frame-list))
|
|
||||||
(if (not centaur-tabs-mode)
|
|
||||||
(set-frame-parameter frame 'buffer-predicate (frame-parameter frame 'old-buffer-predicate))
|
|
||||||
(set-frame-parameter frame 'old-buffer-predicate (frame-parameter frame 'buffer-predicate))
|
|
||||||
(set-frame-parameter frame 'buffer-predicate #'+tabbar-buffer-predicate)))))
|
|
||||||
|
|
||||||
(add-to-list 'window-persistent-parameters '(tabbar-buffers . writable))
|
|
||||||
|
|
||||||
(setq centaur-tabs-buffer-list-function #'+tabbar-window-buffer-list-fn
|
|
||||||
centaur-tabs-buffer-groups-function #'+tabbar-buffer-groups-fn)
|
|
||||||
|
|
||||||
(advice-add #'centaur-tabs-buffer-close-tab :override #'+tabbar-kill-tab-maybe-a)
|
|
||||||
(advice-add #'bury-buffer :around #'+tabbar-bury-buffer-a)
|
|
||||||
(advice-add #'kill-current-buffer :before #'+tabbar-kill-current-buffer-a)
|
|
||||||
(add-hook 'doom-switch-buffer-hook #'+tabbar-add-buffer-h)
|
|
||||||
(add-hook 'doom-switch-window-hook #'+tabbar-new-window-h)
|
|
||||||
|
|
||||||
(add-hook '+doom-dashboard-mode-hook #'centaur-tabs-local-mode)
|
|
||||||
|
|
||||||
(map! (:map centaur-tabs-mode-map
|
|
||||||
[remap delete-window] #'+tabbar/close-tab-or-window
|
|
||||||
[remap +workspace/close-window-or-workspace] #'+tabbar/close-tab-or-window)
|
|
||||||
(:after persp-mode
|
|
||||||
:map persp-mode-map
|
|
||||||
[remap delete-window] #'+tabbar/close-tab-or-window
|
|
||||||
[remap +workspace/close-window-or-workspace] #'+tabbar/close-tab-or-window))
|
|
||||||
|
|
||||||
(centaur-tabs-mode +1))
|
|
18
modules/ui/tabs/README.org
Normal file
18
modules/ui/tabs/README.org
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#+TITLE: ui/tabs
|
||||||
|
#+DATE: July 12, 2019
|
||||||
|
#+SINCE: v2.1
|
||||||
|
#+STARTUP: inlineimages
|
||||||
|
|
||||||
|
* Table of Contents :TOC_3:noexport:
|
||||||
|
- [[#description][Description]]
|
||||||
|
- [[#module-flags][Module Flags]]
|
||||||
|
- [[#plugins][Plugins]]
|
||||||
|
|
||||||
|
* Description
|
||||||
|
This module adds an Atom-esque tab bar to the Emacs UI.
|
||||||
|
|
||||||
|
** Module Flags
|
||||||
|
This module provides no flags.
|
||||||
|
|
||||||
|
** Plugins
|
||||||
|
+ [[https://github.com/ema2159/centaur-tabs][centaur-tabs]]
|
|
@ -1,21 +1,21 @@
|
||||||
;;; ui/tabbar/autoload.el -*- lexical-binding: t; -*-
|
;;; ui/tabs/autoload.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +tabbar-buffer-predicate (buffer)
|
(defun +tabs-buffer-predicate (buffer)
|
||||||
"TODO"
|
"TODO"
|
||||||
(or (memq buffer (window-parameter nil 'tabbar-buffers))
|
(or (memq buffer (window-parameter nil 'tabbar-buffers))
|
||||||
(eq buffer (doom-fallback-buffer))))
|
(eq buffer (doom-fallback-buffer))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +tabbar-window-tab-list ()
|
(defun +tabs-window-tab-list ()
|
||||||
(+tabbar-window-buffer-list-fn))
|
(+tabs-window-buffer-list-fn))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +tabbar-window-buffer-list-fn ()
|
(defun +tabs-window-buffer-list-fn ()
|
||||||
(cl-delete-if-not #'buffer-live-p (window-parameter nil 'tabbar-buffers)))
|
(cl-delete-if-not #'buffer-live-p (window-parameter nil 'tabbar-buffers)))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +tabbar-buffer-groups-fn ()
|
(defun +tabs-buffer-groups-fn ()
|
||||||
(list
|
(list
|
||||||
(cond ((or (string-equal "*" (substring (buffer-name) 0 1))
|
(cond ((or (string-equal "*" (substring (buffer-name) 0 1))
|
||||||
(memq major-mode '(magit-process-mode
|
(memq major-mode '(magit-process-mode
|
||||||
|
@ -53,11 +53,11 @@
|
||||||
;;; Advice
|
;;; Advice
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +tabbar-kill-current-buffer-a (&rest _)
|
(defun +tabs-kill-current-buffer-a (&rest _)
|
||||||
(+tabbar|remove-buffer))
|
(+tabbar|remove-buffer))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +tabbar-bury-buffer-a (orig-fn &rest args)
|
(defun +tabs-bury-buffer-a (orig-fn &rest args)
|
||||||
(if centaur-tabs-mode
|
(if centaur-tabs-mode
|
||||||
(let ((b (current-buffer)))
|
(let ((b (current-buffer)))
|
||||||
(apply orig-fn args)
|
(apply orig-fn args)
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
(apply orig-fn args)))
|
(apply orig-fn args)))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +tabbar-kill-tab-maybe-a (tab)
|
(defun +tabs-kill-tab-maybe-a (tab)
|
||||||
(let ((buffer (centaur-tabs-tab-value tab)))
|
(let ((buffer (centaur-tabs-tab-value tab)))
|
||||||
(with-current-buffer buffer
|
(with-current-buffer buffer
|
||||||
;; `kill-current-buffer' is advised not to kill buffers visible in another
|
;; `kill-current-buffer' is advised not to kill buffers visible in another
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
;;; Hooks
|
;;; Hooks
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +tabbar-add-buffer-h ()
|
(defun +tabs-add-buffer-h ()
|
||||||
(when (and centaur-tabs-mode
|
(when (and centaur-tabs-mode
|
||||||
(doom-real-buffer-p (current-buffer)))
|
(doom-real-buffer-p (current-buffer)))
|
||||||
(let* ((this-buf (current-buffer))
|
(let* ((this-buf (current-buffer))
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
'tabbar-buffers (delete (current-buffer) (window-parameter nil 'tabbar-buffers)))))
|
'tabbar-buffers (delete (current-buffer) (window-parameter nil 'tabbar-buffers)))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +tabbar-new-window-h ()
|
(defun +tabs-new-window-h ()
|
||||||
(when centaur-tabs-mode
|
(when centaur-tabs-mode
|
||||||
(unless (window-parameter nil 'tabbar-buffers)
|
(unless (window-parameter nil 'tabbar-buffers)
|
||||||
(+tabbar-add-buffer-h))))
|
(+tabs-add-buffer-h))))
|
40
modules/ui/tabs/config.el
Normal file
40
modules/ui/tabs/config.el
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
;;; ui/tabs/config.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(use-package! centaur-tabs
|
||||||
|
:after-call (after-find-file dired-initial-position-hook)
|
||||||
|
:init
|
||||||
|
(setq centaur-tabs-height 28
|
||||||
|
centaur-tabs-set-bar 'left
|
||||||
|
centaur-tabs-set-modified-marker t)
|
||||||
|
|
||||||
|
:config
|
||||||
|
(add-hook! 'centaur-tabs-mode-hook
|
||||||
|
(defun +tabs-init-frames-h ()
|
||||||
|
(dolist (frame (frame-list))
|
||||||
|
(if (not centaur-tabs-mode)
|
||||||
|
(set-frame-parameter frame 'buffer-predicate (frame-parameter frame 'old-buffer-predicate))
|
||||||
|
(set-frame-parameter frame 'old-buffer-predicate (frame-parameter frame 'buffer-predicate))
|
||||||
|
(set-frame-parameter frame 'buffer-predicate #'+tabs-buffer-predicate)))))
|
||||||
|
|
||||||
|
(add-to-list 'window-persistent-parameters '(tabbar-buffers . writable))
|
||||||
|
|
||||||
|
(setq centaur-tabs-buffer-list-function #'+tabs-window-buffer-list-fn
|
||||||
|
centaur-tabs-buffer-groups-function #'+tabs-buffer-groups-fn)
|
||||||
|
|
||||||
|
(advice-add #'centaur-tabs-buffer-close-tab :override #'+tabs-kill-tab-maybe-a)
|
||||||
|
(advice-add #'bury-buffer :around #'+tabs-bury-buffer-a)
|
||||||
|
(advice-add #'kill-current-buffer :before #'+tabs-kill-current-buffer-a)
|
||||||
|
(add-hook 'doom-switch-buffer-hook #'+tabs-add-buffer-h)
|
||||||
|
(add-hook 'doom-switch-window-hook #'+tabs-new-window-h)
|
||||||
|
|
||||||
|
(add-hook '+doom-dashboard-mode-hook #'centaur-tabs-local-mode)
|
||||||
|
|
||||||
|
(map! (:map centaur-tabs-mode-map
|
||||||
|
[remap delete-window] #'+tabs/close-tab-or-window
|
||||||
|
[remap +workspace/close-window-or-workspace] #'+tabs/close-tab-or-window)
|
||||||
|
(:after persp-mode
|
||||||
|
:map persp-mode-map
|
||||||
|
[remap delete-window] #'+tabs/close-tab-or-window
|
||||||
|
[remap +workspace/close-window-or-workspace] #'+tabs/close-tab-or-window))
|
||||||
|
|
||||||
|
(centaur-tabs-mode +1))
|
|
@ -1,4 +1,4 @@
|
||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; ui/tabbar/packages.el
|
;;; ui/tabs/packages.el
|
||||||
|
|
||||||
(package! centaur-tabs)
|
(package! centaur-tabs)
|
Loading…
Add table
Add a link
Reference in a new issue