;; -*- lexical-binding: t; -*- ;;;; turn tabs on, undo/redo mode (setq tab-bar-show 1) (tab-bar-history-mode) ;;;; remove useless gui elements (setopt tab-bar-format '(tab-bar-format-tabs) tab-bar-close-button-show nil) ;;;; bind tabs to 'Meta' like other applications (mapcar (lambda (i) (keymap-global-set (format "M-%d" i) (lambda () (interactive) (tab-bar-select-tab i)))) (number-sequence 0 9)) ;;;; use project name if it exists (defun bd/tab-bar-name-function () (let ((project (project-current))) (if project (car (last (file-name-split (directory-file-name (project-root project))))) (tab-bar-tab-name-current)))) (setopt project-switch-commands '((project-find-file "Find file") (project-find-regexp "Find regexp") (project-find-dir "Find directory") (magit-project-status "Magit") (project-shell "Shell"))) (keymap-global-set "C-x p v" 'magit-project-status) (setq tab-bar-tab-name-function #'bd/tab-bar-name-function) ;;;; less tabbing; more hacking (desktop-save-mode 1) (provide 'bd--tabs)