From 85d60d489c54150cc9df5cef0504f6af90638fbd Mon Sep 17 00:00:00 2001
From: Kristijan <kris@kristijan.org>
Date: Fri, 21 Mar 2025 05:47:01 +1100
Subject: [PATCH] feat(dirhistory): add support for ghostty (#12868)

---
 plugins/dirhistory/dirhistory.plugin.zsh | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/plugins/dirhistory/dirhistory.plugin.zsh b/plugins/dirhistory/dirhistory.plugin.zsh
index 8d67c6188..8d66de7f5 100644
--- a/plugins/dirhistory/dirhistory.plugin.zsh
+++ b/plugins/dirhistory/dirhistory.plugin.zsh
@@ -137,6 +137,7 @@ for keymap in emacs vicmd viins; do
   case "$TERM_PROGRAM" in
   Apple_Terminal) bindkey -M $keymap "^[b" dirhistory_zle_dirhistory_back ;; # Terminal.app
   iTerm.app) bindkey -M $keymap "^[^[[D" dirhistory_zle_dirhistory_back ;;   # iTerm2
+  ghostty) bindkey -M $keymap "^[b" dirhistory_zle_dirhistory_back ;;        # ghostty
   esac
 
   if (( ${+terminfo[kcub1]} )); then
@@ -152,6 +153,7 @@ for keymap in emacs vicmd viins; do
   case "$TERM_PROGRAM" in
   Apple_Terminal) bindkey -M $keymap "^[f" dirhistory_zle_dirhistory_future ;; # Terminal.app
   iTerm.app) bindkey -M $keymap "^[^[[C" dirhistory_zle_dirhistory_future ;;   # iTerm2
+  ghostty) bindkey -M $keymap "^[f" dirhistory_zle_dirhistory_future ;;        # ghostty
   esac
 
   if (( ${+terminfo[kcuf1]} )); then
@@ -200,6 +202,7 @@ for keymap in emacs vicmd viins; do
   case "$TERM_PROGRAM" in
   Apple_Terminal) bindkey -M $keymap "^[[A" dirhistory_zle_dirhistory_up ;;  # Terminal.app
   iTerm.app) bindkey -M $keymap "^[^[[A" dirhistory_zle_dirhistory_up ;;     # iTerm2
+  ghostty) bindkey -M $keymap "^[[1;3A" dirhistory_zle_dirhistory_up ;;      # ghostty
   esac
 
   if (( ${+terminfo[kcuu1]} )); then
@@ -215,6 +218,7 @@ for keymap in emacs vicmd viins; do
   case "$TERM_PROGRAM" in
   Apple_Terminal) bindkey -M $keymap "^[[B" dirhistory_zle_dirhistory_down ;;  # Terminal.app
   iTerm.app) bindkey -M $keymap "^[^[[B" dirhistory_zle_dirhistory_down ;;     # iTerm2
+  ghostty) bindkey -M $keymap "^[[1;3B" dirhistory_zle_dirhistory_down ;;      # ghostty
   esac
 
   if (( ${+terminfo[kcud1]} )); then