From 771823094bb8385a29f265830445aabe7ea00eb7 Mon Sep 17 00:00:00 2001
From: Kristian Milos <kris@kristijan.org>
Date: Fri, 27 Dec 2024 12:46:39 +1100
Subject: [PATCH] feat(dirhistory) add support for ghostty terminal

---
 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