Добавил для reset'а popup.
(defcustom magit-reset-arguments nil
"The arguments used when resetting."
:group 'magit-commands
:type '(repeat (string :tag "Argument")))
(defun magit-reset-popup (&optional arg)
"Popup console for reset commands."
(interactive "P")
(--if-let (magit-commit-message-buffer)
(switch-to-buffer it)
(magit-invoke-popup 'magit-reset-popup nil arg)))
(defvar magit-reset-popup
'(:varible magit-reset-arguments
:man-page "git-reset"
:actions ((?x "Reset" magit-reset-index)
(?m "Mixed reset" magit-reset)
(?s "Soft reset" magit-reset-soft)
(?H "Hard reset" magit-reset-hard))
:max-action-columns 4
:default-action magit-reset))
(magit-define-popup-action 'magit-dispatch-popup
?x "Reset" 'magit-reset-popup ?!)
В popup'е все работает, однако в различных окнах magit (например magit-status и magit-log) используется старое значение.
Т.е. если в popup «x» вызывает sub-popup reset'а, то в magit-status он сразу переходит к диалогу reset'а.
Может есть какой-то простой способ или настройка, которая для всех окон magit хранит хоткеи связанные с popup'ом?