(global-set-key (kbd "C-") 'tab-bar-switch-to-next-tab) (global-set-key (kbd "C-") 'tab-bar-switch-to-prev-tab) (defun my/tab-bar-tab-name-function () "Return project name if in a project, or default tab-bar name if not. The default tab-bar name uses the buffer name." (let ((project-name (projectile-project-name))) (if (string= "-" project-name) (tab-bar-tab-name-current) (projectile-project-name)))) (setq tab-bar-tab-name-function #'my/tab-bar-tab-name-function) ;; Only show the tab bar if there are 2 or more tabs (setq tab-bar-show 1) (defun my/project-create-tab () (interactive) (tab-bar-new-tab) (magit-status)) (setq project-switch-commands #'my/project-create-tab) (defun my/switch-to-tab-buffer () (interactive) (if (project-current) (call-interactively #'projectile-switch-to-buffer) (call-interactively #'switch-to-buffer))) (global-set-key (kbd "C-x b") #'my/switch-to-tab-buffer) ;; Turn on tab bar mode after startup (tab-bar-mode 1) ;; Save the desktop session (desktop-save-mode 1) (setq tab-bar-new-tab-choice "*dashboard*")