summaryrefslogtreecommitdiff
path: root/modes/agent-shell/evil-collection-agent-shell.el
diff options
context:
space:
mode:
authorJames Nguyen <james@jojojames.com>2026-04-23 00:04:02 -0400
committerJames Nguyen <james@jojojames.com>2026-04-23 00:32:08 -0400
commit968884db44b05870446c8f74d57b5f8de49f560e (patch)
treee512f913264915cc285358a405c5eb6f2d6cc8b7 /modes/agent-shell/evil-collection-agent-shell.el
parent538e0b067cab23e870be59331cdbb5077d405239 (diff)
Add more agent-shell bindings
Some bindings untested..
Diffstat (limited to 'modes/agent-shell/evil-collection-agent-shell.el')
-rw-r--r--modes/agent-shell/evil-collection-agent-shell.el101
1 files changed, 99 insertions, 2 deletions
diff --git a/modes/agent-shell/evil-collection-agent-shell.el b/modes/agent-shell/evil-collection-agent-shell.el
index d5dbdc7..4e58c10 100644
--- a/modes/agent-shell/evil-collection-agent-shell.el
+++ b/modes/agent-shell/evil-collection-agent-shell.el
@@ -29,9 +29,15 @@
(require 'evil-collection)
(require 'agent-shell nil t)
-(defconst evil-collection-agent-shell-maps '(agent-shell-mode-map))
+(defconst evil-collection-agent-shell-maps '(agent-shell-mode-map
+ agent-shell-viewport-edit-mode-map
+ agent-shell-viewport-view-mode-map
+ agent-shell-diff-mode-map))
(defvar agent-shell-mode-map)
+(defvar agent-shell-viewport-edit-mode-map)
+(defvar agent-shell-viewport-view-mode-map)
+(defvar agent-shell-diff-mode-map)
;;;###autoload
(defun evil-collection-agent-shell-setup ()
@@ -40,7 +46,98 @@
;; them to intercept keystrokes even in insert state. Remove those bindings
;; entirely.
(define-key agent-shell-mode-map "n" nil)
- (define-key agent-shell-mode-map "p" nil))
+ (define-key agent-shell-mode-map "p" nil)
+
+ (evil-collection-define-key 'normal 'agent-shell-mode-map
+ (kbd "TAB") 'agent-shell-next-item
+ "<backtab>" 'agent-shell-previous-item
+ "C-<tab>" 'agent-shell-cycle-session-mode)
+
+ (when evil-collection-want-g-bindings
+ (evil-collection-define-key 'normal 'agent-shell-mode-map
+ "gs" 'agent-shell-cycle-session-mode
+ "gx" 'agent-shell-interrupt
+ "gm" 'agent-shell-set-session-mode
+ "gv" 'agent-shell-set-session-model
+ "go" 'agent-shell-other-buffer
+ "gp" 'agent-shell-yank-dwim
+ "gr" 'agent-shell-reload
+ "gR" 'agent-shell-restart
+ "gF" 'agent-shell-fork
+ "gy" 'agent-shell-copy-session-id
+ "gc" 'agent-shell-prompt-compose
+ "gq" 'agent-shell-queue-request
+ "gt" 'agent-shell-open-transcript))
+
+ (evil-collection-define-key 'normal 'agent-shell-viewport-edit-mode-map
+ [remap evil-save-and-close] 'agent-shell-viewport-compose-send
+ [remap evil-save-modified-and-close] 'agent-shell-viewport-compose-send
+ [remap evil-ret] 'agent-shell-viewport-compose-send
+ [remap evil-write] 'agent-shell-viewport-compose-send
+ [remap evil-quit] 'agent-shell-viewport-compose-cancel
+ "M-k" 'agent-shell-viewport-previous-history
+ "M-j" 'agent-shell-viewport-next-history
+ (kbd "C-o") 'agent-shell-viewport-compose-peek-last)
+
+ (when evil-collection-want-g-bindings
+ (evil-collection-define-key 'normal 'agent-shell-viewport-edit-mode-map
+ "g?" 'agent-shell-viewport-compose-help-menu
+ "gs" 'agent-shell-cycle-session-mode
+ "gm" 'agent-shell-viewport-set-session-mode
+ "gv" 'agent-shell-viewport-set-session-model
+ "go" 'agent-shell-other-buffer
+ "gp" 'agent-shell-yank-dwim
+ "g/" 'agent-shell-viewport-search-history
+ "gy" 'agent-shell-viewport-copy-session-id
+ "gt" 'agent-shell-viewport-open-transcript))
+
+ (evil-collection-define-key 'normal 'agent-shell-viewport-view-mode-map
+ [remap evil-save-and-close] 'agent-shell-viewport-interrupt
+ [remap evil-save-modified-and-close] 'agent-shell-viewport-interrupt
+ [remap evil-ret] 'agent-shell-viewport-interrupt
+ [remap evil-write] 'agent-shell-viewport-interrupt
+ [remap evil-quit] 'bury-buffer
+ (kbd "TAB") 'agent-shell-viewport-next-item
+ (kbd "<backtab>") 'agent-shell-viewport-previous-item
+ "gj" 'agent-shell-viewport-next-item
+ "gk" 'agent-shell-viewport-previous-item
+ (kbd "C-j") 'agent-shell-viewport-next-page
+ (kbd "C-k") 'agent-shell-viewport-previous-page
+ "q" 'bury-buffer)
+
+ (when evil-collection-want-g-bindings
+ (evil-collection-define-key 'normal 'agent-shell-viewport-view-mode-map
+ "g1" 'agent-shell-viewport-reply-1
+ "g2" 'agent-shell-viewport-reply-2
+ "g3" 'agent-shell-viewport-reply-3
+ "g4" 'agent-shell-viewport-reply-4
+ "g5" 'agent-shell-viewport-reply-5
+ "g6" 'agent-shell-viewport-reply-6
+ "g7" 'agent-shell-viewport-reply-7
+ "g8" 'agent-shell-viewport-reply-8
+ "g9" 'agent-shell-viewport-reply-9
+ "gs" 'agent-shell-viewport-cycle-session-mode
+ "gv" 'agent-shell-viewport-set-session-model
+ "go" 'agent-shell-other-buffer
+ "gm" 'agent-shell-viewport-set-session-mode
+ "g?" 'agent-shell-viewport-help-menu
+ ;; Maybe move elsewhere.
+ "gr" 'agent-shell-viewport-reply
+ "gy" 'agent-shell-viewport-reply-yes
+ "gM" 'agent-shell-viewport-reply-more
+ "ga" 'agent-shell-viewport-reply-again
+ "gc" 'agent-shell-viewport-reply-continue
+ "ge" 'agent-shell-viewport-edit
+ "gF" 'agent-shell-viewport-fork
+ "gY" 'agent-shell-viewport-copy-session-id
+ "gt" 'agent-shell-viewport-open-transcript
+ "gz" 'agent-shell-viewport-refresh))
+
+ (evil-collection-define-key 'normal 'agent-shell-diff-mode-map
+ "y" #'agent-shell-diff-accept-all
+ "gx" #'agent-shell-diff-reject-all
+ "go" #'agent-shell-diff-open-file
+ "q" #'kill-current-buffer))
(provide 'evil-collection-agent-shell)
;;; evil-collection-agent-shell.el ends here