diff --git a/modules/config/default/+emacs-bindings.el b/modules/config/default/+emacs-bindings.el index 35ec9ff0c..f8e9ec800 100644 --- a/modules/config/default/+emacs-bindings.el +++ b/modules/config/default/+emacs-bindings.el @@ -294,6 +294,7 @@ :desc "Magit dispatch" "/" #'magit-dispatch :desc "Forge dispatch" "'" #'forge-dispatch :desc "Magit status" "g" #'magit-status + :desc "Magit status here" "G" #'magit-status-here :desc "Magit file delete" "x" #'magit-file-delete :desc "Magit blame" "B" #'magit-blame-addition :desc "Magit clone" "C" #'magit-clone diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index eb7c0fc1f..351e89b50 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -413,6 +413,7 @@ :desc "Forge dispatch" "'" #'forge-dispatch :desc "Magit switch branch" "b" #'magit-branch-checkout :desc "Magit status" "g" #'magit-status + :desc "Magit status here" "G" #'magit-status-here :desc "Magit file delete" "D" #'magit-file-delete :desc "Magit blame" "B" #'magit-blame-addition :desc "Magit clone" "C" #'magit-clone diff --git a/modules/tools/magit/config.el b/modules/tools/magit/config.el index 54bbe57b7..e5951f536 100644 --- a/modules/tools/magit/config.el +++ b/modules/tools/magit/config.el @@ -33,6 +33,10 @@ ;; ...then refresh the rest only when we switch to them, not all at once. (add-hook 'doom-switch-buffer-hook #'+magit-revert-buffer-maybe-h) + ;; Center the target file, because it's poor UX to have it at the bottom of + ;; the window after invoking `magit-status-here'. + (advice-add #'magit-status-here :after #'doom-recenter-a) + ;; The default location for git-credential-cache is in ;; ~/.cache/git/credential. However, if ~/.git-credential-cache/ exists, then ;; it is used instead. Magit seems to be hardcoded to use the latter, so here