diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index 5f8fb166c..c40766a95 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -629,7 +629,9 @@ :desc "Git stage file" "S" #'magit-stage-file :desc "Git unstage file" "U" #'magit-unstage-file :desc "Magit push popup" "p" #'magit-push-popup - :desc "Magit pull popup" "P" #'magit-pull-popup) + :desc "Magit pull popup" "P" #'magit-pull-popup + (:when (featurep! :tools magit +forge) + :desc "Forge dispatch" "F" #'forge-dispatch)) (:when (featurep! :tools gist) :desc "List gists" "G" #'+gist:list)) diff --git a/modules/tools/magit/config.el b/modules/tools/magit/config.el index e8827323f..2bf658fdd 100644 --- a/modules/tools/magit/config.el +++ b/modules/tools/magit/config.el @@ -55,6 +55,7 @@ what features are available.") (def-package! magithub :after magit + :unless (featurep! :tools magit +forge) :preface ;; Magithub is not well-behaved, so this needs to be set early (setq magithub-dir (concat doom-etc-dir "magithub/")) @@ -97,3 +98,9 @@ what features are available.") (evil-define-key* evil-magit-state git-rebase-mode-map "gj" #'git-rebase-move-line-down "gk" #'git-rebase-move-line-up))) + +(def-package! forge + :when (featurep! :tools magit +forge) + :after magit + :init + (setq forge-database-file (concat doom-etc-dir "forge/forge-database.sqlite"))) diff --git a/modules/tools/magit/packages.el b/modules/tools/magit/packages.el index 38bcc3d37..5eac2f2a5 100644 --- a/modules/tools/magit/packages.el +++ b/modules/tools/magit/packages.el @@ -3,7 +3,9 @@ (when (package! magit) (package! magit-gitflow) - (package! magithub) + (if (featurep! +forge) + (package! forge) + (package! magithub)) (package! magit-todos) (when (featurep! :feature evil +everywhere) (package! evil-magit)))