feat(ai): add gemini-cli integration with doom leader bindings
This commit is contained in:
@@ -244,6 +244,71 @@
|
|||||||
(when (eq claude-code-terminal-backend 'vterm)
|
(when (eq claude-code-terminal-backend 'vterm)
|
||||||
(setq-local vterm-max-scrollback 100000)))))
|
(setq-local vterm-max-scrollback 100000)))))
|
||||||
|
|
||||||
|
;;; Gemini CLI Configuration
|
||||||
|
|
||||||
|
(use-package! gemini-cli
|
||||||
|
:defer t
|
||||||
|
:config
|
||||||
|
;; Set the Gemini executable
|
||||||
|
(setq gemini-cli-program "gemini"
|
||||||
|
gemini-cli-program-switches nil)
|
||||||
|
|
||||||
|
;; Use Eat backend
|
||||||
|
(setq gemini-cli-terminal-backend 'eat
|
||||||
|
;; Emacs-style editing in Gemini buffer: RET inserts newline, S-RET sends
|
||||||
|
gemini-cli-newline-keybinding-style 'shift-return-to-send)
|
||||||
|
|
||||||
|
;; Enable global mode
|
||||||
|
(gemini-cli-mode 1)
|
||||||
|
|
||||||
|
;; Emacs-style prefix key
|
||||||
|
(global-set-key (kbd "C-c g") gemini-cli-command-map)
|
||||||
|
|
||||||
|
;; Set Doom leader keybindings under SPC G
|
||||||
|
(map! :leader
|
||||||
|
(:prefix ("G" . "gemini-cli")
|
||||||
|
:desc "Start Gemini" "c" #'gemini-cli
|
||||||
|
:desc "Start in directory" "d" #'gemini-cli-start-in-directory
|
||||||
|
:desc "Continue conversation" "C" #'gemini-cli-continue
|
||||||
|
:desc "Resume session" "R" #'gemini-cli-resume
|
||||||
|
:desc "New instance" "i" #'gemini-cli-new-instance
|
||||||
|
:desc "Kill Gemini" "k" #'gemini-cli-kill
|
||||||
|
:desc "Kill all instances" "K" #'gemini-cli-kill-all
|
||||||
|
:desc "Send command" "s" #'gemini-cli-send-command
|
||||||
|
:desc "Send command with context" "x" #'gemini-cli-send-command-with-context
|
||||||
|
:desc "Send region/buffer" "r" #'gemini-cli-send-region
|
||||||
|
:desc "Send buffer file" "o" #'gemini-cli-send-buffer-file
|
||||||
|
:desc "Fix error at point" "e" #'gemini-cli-fix-error-at-point
|
||||||
|
:desc "Toggle window" "t" #'gemini-cli-toggle
|
||||||
|
:desc "Switch to buffer" "b" #'gemini-cli-switch-to-buffer
|
||||||
|
:desc "Select buffer" "B" #'gemini-cli-select-buffer
|
||||||
|
:desc "Toggle read-only" "z" #'gemini-cli-toggle-read-only-mode
|
||||||
|
:desc "Cycle mode" "M" #'gemini-cli-cycle-mode
|
||||||
|
:desc "Transient menu" "m" #'gemini-cli-transient
|
||||||
|
:desc "Slash commands" "/" #'gemini-cli-slash-commands
|
||||||
|
:desc "Fork conversation" "f" #'gemini-cli-fork
|
||||||
|
:desc "Send return" "y" #'gemini-cli-send-return
|
||||||
|
:desc "Send escape" "n" #'gemini-cli-send-escape
|
||||||
|
:desc "Send 1" "1" #'gemini-cli-send-1
|
||||||
|
:desc "Send 2" "2" #'gemini-cli-send-2
|
||||||
|
:desc "Send 3" "3" #'gemini-cli-send-3))
|
||||||
|
|
||||||
|
;; Optional: Configure window display (side window on right)
|
||||||
|
(add-to-list 'display-buffer-alist
|
||||||
|
'("^\\*gemini"
|
||||||
|
(display-buffer-in-side-window)
|
||||||
|
(side . right)
|
||||||
|
(window-width . 90)))
|
||||||
|
|
||||||
|
;; Optional: Enable auto-revert for files modified by Gemini
|
||||||
|
;; (global-auto-revert-mode 1)
|
||||||
|
|
||||||
|
;; Optional: Increase vterm scrollback for long conversations
|
||||||
|
(add-hook 'gemini-cli-start-hook
|
||||||
|
(lambda ()
|
||||||
|
(when (eq gemini-cli-terminal-backend 'vterm)
|
||||||
|
(setq-local vterm-max-scrollback 100000)))))
|
||||||
|
|
||||||
;; (use-package! claudemacs
|
;; (use-package! claudemacs
|
||||||
;; :defer t
|
;; :defer t
|
||||||
;; :commands (claudemacs claudemacs-transient-menu)
|
;; :commands (claudemacs claudemacs-transient-menu)
|
||||||
|
|||||||
@@ -47,10 +47,16 @@
|
|||||||
|
|
||||||
(package! consult)
|
(package! consult)
|
||||||
|
|
||||||
|
(package! popup)
|
||||||
|
|
||||||
(package! claude-code
|
(package! claude-code
|
||||||
:recipe (:host github :repo "stevemolitor/claude-code.el" :branch "main" :depth 1
|
:recipe (:host github :repo "stevemolitor/claude-code.el" :branch "main" :depth 1
|
||||||
:files ("*.el" (:exclude "images/*"))))
|
:files ("*.el" (:exclude "images/*"))))
|
||||||
|
|
||||||
|
(package! gemini-cli
|
||||||
|
:recipe (:host github :repo "linchen2chris/gemini-cli.el" :branch "main"
|
||||||
|
:files ("*.el" (:exclude "demo.gif"))))
|
||||||
|
|
||||||
(package! claudemacs
|
(package! claudemacs
|
||||||
:recipe (:host github :repo "cpoile/claudemacs"))
|
:recipe (:host github :repo "cpoile/claudemacs"))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user