summaryrefslogtreecommitdiff
path: root/.emacs.d/init-spw.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d/init-spw.el')
-rw-r--r--.emacs.d/init-spw.el17
1 files changed, 17 insertions, 0 deletions
diff --git a/.emacs.d/init-spw.el b/.emacs.d/init-spw.el
index 8d7d3b64..afd2b2d9 100644
--- a/.emacs.d/init-spw.el
+++ b/.emacs.d/init-spw.el
@@ -1633,6 +1633,23 @@ Useful after resizing the frame."
(async-shell-command "git-dotfiles-rebase" "*dotfiles rebase*")))
(global-set-key "\C-cgd" #'spw/dotfiles-rebase)
+(defun spw/mrs (&rest ignore)
+ (interactive)
+ (let ((buffer (get-buffer-create "*mrs*")))
+ (with-current-buffer buffer
+ (erase-buffer)
+ (term-mode)
+ (setq-local revert-buffer-function #'spw/mrs
+ default-directory (expand-file-name "~"))
+ (term-exec buffer "*mrs*" "sh" nil
+ '("-c" "src-register-all && mr -s status")))
+ (when-let ((proc (get-buffer-process buffer))
+ (window (display-buffer buffer)))
+ (set-process-sentinel proc (lambda (&rest ignore)
+ (with-selected-window window
+ (goto-char (point-min))))))))
+(global-set-key "\C-cgr" #'spw/mrs)
+
(defun spw/window-to-frame ()
"Like `tear-off-window' but to be invoked from the keyboard."
(interactive)