emacs: centaur-tabs, fix some gptel stuff
This commit is contained in:
parent
a5a40d6636
commit
6511ef9860
@ -1071,6 +1071,78 @@ Harpoon lets you quickly switch between bookmarked buffers
|
|||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
*** Centaur Tabs
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
;; (require 'centaur-tabs)
|
||||||
|
(setq centaur-tabs-set-bar 'under)
|
||||||
|
(setq x-underline-at-descent-line t)
|
||||||
|
(setq centaur-tabs-set-close-button nil)
|
||||||
|
(setq centaur-tabs-set-icons t)
|
||||||
|
(setq centaur-tabs-show-navigation-buttons nil)
|
||||||
|
(setq centaur-tabs-set-modified-marker nil)
|
||||||
|
(setq centaur-tabs-show-new-tab-button nil)
|
||||||
|
(setq centaur-tabs-label-fixed-length 0)
|
||||||
|
|
||||||
|
(setq centaur-tabs-label-rename-function
|
||||||
|
(lambda (buf) (if (> (length (buffer-name buf)) 20)
|
||||||
|
(concat (substring (buffer-name buf) 0 17) "...")
|
||||||
|
(buffer-name buf))))
|
||||||
|
|
||||||
|
(global-set-key (kbd "s-n") #'centaur-tabs-forward-tab)
|
||||||
|
(global-set-key (kbd "s-p") #'centaur-tabs-backward-tab)
|
||||||
|
(global-set-key (kbd "C-s-p") #'centaur-tabs-forward-group)
|
||||||
|
(global-set-key (kbd "C-s-n") #'centaur-tabs-backward-group)
|
||||||
|
(global-set-key (kbd "s-P") #'centaur-tabs-move-current-tab-to-left)
|
||||||
|
(global-set-key (kbd "s-N") #'centaur-tabs-move-current-tab-to-right)
|
||||||
|
|
||||||
|
(let ((modes '(magit-status-mode
|
||||||
|
dired-mode
|
||||||
|
mu4e-main-mode
|
||||||
|
mu4e-headers-mode
|
||||||
|
mu4e-view-mode)))
|
||||||
|
(dolist (mode modes)
|
||||||
|
(add-hook (intern (concat (symbol-name mode) "-hook"))
|
||||||
|
(lambda () (centaur-tabs-local-mode -1)))))
|
||||||
|
|
||||||
|
(with-eval-after-load 'centaur-tabs
|
||||||
|
(defun joe/fix-centaur-tabs (THEME)
|
||||||
|
(centaur-tabs-mode -1)
|
||||||
|
(centaur-tabs-mode))
|
||||||
|
|
||||||
|
(advice-add 'consult-theme :after #'joe/fix-centaur-tabs)
|
||||||
|
(defun centaur-tabs-buffer-groups ()
|
||||||
|
(list
|
||||||
|
(cond
|
||||||
|
;; Work buffers: REPLs, Claude, Chat, eww, cider-repl
|
||||||
|
((or (derived-mode-p 'comint-mode)
|
||||||
|
(derived-mode-p 'sql-interactive-mode)
|
||||||
|
(derived-mode-p 'compilation-mode)
|
||||||
|
(derived-mode-p 'compilation-mode)
|
||||||
|
(string-match "^\\*HTTP" (buffer-name))
|
||||||
|
(string-match "^\\*cider-repl" (buffer-name))
|
||||||
|
(bound-and-true-p gptel-mode)
|
||||||
|
(derived-mode-p 'eww-mode))
|
||||||
|
"Work")
|
||||||
|
;; Special *buffers* (scratch, Messages, etc.)
|
||||||
|
((and (string-equal "*" (substring (buffer-name) 0 1))
|
||||||
|
(not (string-match "^\\*Org Src" (buffer-name))))
|
||||||
|
"*Buffers*")
|
||||||
|
;; Everything else in one group
|
||||||
|
(t
|
||||||
|
"Emacs")))))
|
||||||
|
|
||||||
|
(global-set-key (kbd "M-1") 'centaur-tabs-select-visible-tab)
|
||||||
|
(global-set-key (kbd "M-2") 'centaur-tabs-select-visible-tab)
|
||||||
|
(global-set-key (kbd "M-3") 'centaur-tabs-select-visible-tab)
|
||||||
|
(global-set-key (kbd "M-4") 'centaur-tabs-select-visible-tab)
|
||||||
|
(global-set-key (kbd "M-5") 'centaur-tabs-select-visible-tab)
|
||||||
|
(global-set-key (kbd "M-6") 'centaur-tabs-select-visible-tab)
|
||||||
|
(global-set-key (kbd "M-7") 'centaur-tabs-select-visible-tab)
|
||||||
|
(global-set-key (kbd "M-8") 'centaur-tabs-select-visible-tab)
|
||||||
|
(global-set-key (kbd "M-9") 'centaur-tabs-select-visible-tab)
|
||||||
|
|
||||||
|
(centaur-tabs-mode +1)
|
||||||
|
#+end_src
|
||||||
*** Window Management
|
*** Window Management
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
@ -2114,6 +2186,9 @@ start it, so go through all existing buffers that match the mode and belong to t
|
|||||||
(gptel-make-anthropic "Claude" :stream t :key (with-temp-buffer
|
(gptel-make-anthropic "Claude" :stream t :key (with-temp-buffer
|
||||||
(insert-file-contents (expand-file-name "gptel-key" user-emacs-directory))
|
(insert-file-contents (expand-file-name "gptel-key" user-emacs-directory))
|
||||||
(buffer-string)))
|
(buffer-string)))
|
||||||
|
(gptel-make-openai "ChatGPT" :stream t :key (with-temp-buffer
|
||||||
|
(insert-file-contents (expand-file-name "gptel-gpt-key" user-emacs-directory))
|
||||||
|
(buffer-string)))
|
||||||
|
|
||||||
(setq gptel-model 'claude-sonnet-4-6)
|
(setq gptel-model 'claude-sonnet-4-6)
|
||||||
(setq gptel-backend (gptel-get-backend "Claude"))
|
(setq gptel-backend (gptel-get-backend "Claude"))
|
||||||
@ -2121,17 +2196,30 @@ start it, so go through all existing buffers that match the mode and belong to t
|
|||||||
(setq gptel-prompt-prefix-alist '((markdown-mode . "### ")
|
(setq gptel-prompt-prefix-alist '((markdown-mode . "### ")
|
||||||
(org-mode . "* ")
|
(org-mode . "* ")
|
||||||
(text-mode . "### ")))
|
(text-mode . "### ")))
|
||||||
|
(setq gptel-cache '(system message))
|
||||||
|
;; (setq gptel-log-level 'debug)
|
||||||
|
|
||||||
(define-prefix-command 'joe/gptel-map)
|
(define-prefix-command 'joe/gptel-map)
|
||||||
(global-set-key (kbd "C-c a") 'joe/gptel-map)
|
(global-set-key (kbd "C-c a") 'joe/gptel-map)
|
||||||
|
|
||||||
(define-key joe/gptel-map (kbd "a") #'gptel)
|
(define-key joe/gptel-map (kbd "a") #'gptel)
|
||||||
(define-key joe/gptel-map (kbd "RET") #'gptel-ask)
|
;; (define-key joe/gptel-map (kbd "RET") #'gptel-ask)
|
||||||
(define-key joe/gptel-map (kbd "m") #'gptel-mode)
|
(define-key joe/gptel-map (kbd "m") #'gptel-mode)
|
||||||
(define-key joe/gptel-map (kbd "c") #'gptel-add)
|
(define-key joe/gptel-map (kbd "RET") #'gptel-add)
|
||||||
(define-key joe/gptel-map (kbd "q") #'gptel-abort)
|
(define-key joe/gptel-map (kbd "q") #'gptel-abort)
|
||||||
(define-key joe/gptel-map (kbd "<backspace>") #'joe/gptel-context-remove-all)
|
(define-key joe/gptel-map (kbd "<backspace>") #'joe/gptel-context-remove-all)
|
||||||
(define-key joe/gptel-map (kbd "r") #'gptel-rewrite)
|
(define-key joe/gptel-map (kbd "r") #'gptel-rewrite)
|
||||||
|
|
||||||
|
(defun gptel-mark-region-role (start end role)
|
||||||
|
"Mark region from START to END with the llm or user role."
|
||||||
|
(interactive (list (region-beginning) (region-end)
|
||||||
|
(completing-read "Mark region role as: " '(response prompt))))
|
||||||
|
(if (or (not transient-mark-mode)
|
||||||
|
(use-region-p))
|
||||||
|
(with-silent-modifications
|
||||||
|
(put-text-property start end 'gptel (and (equal role "response") 'response))
|
||||||
|
(message "Region marked as %s" role))
|
||||||
|
(message "No region specified, action canceled")))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
gptel-context-remove-all without confirmation
|
gptel-context-remove-all without confirmation
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user