;; this config file is based on seudut/elscreen.git, which added two interface and one property
;; default directory
-
-;; change default keybinding
-(global-set-key (kbd "<M-tab>") 'elscreen-next) ;; "C-M-I"
-(global-set-key (kbd "M-n") 'elscreen-next)
-(global-set-key (kbd "M-p") 'elscreen-previous)
-(global-set-key (kbd "M-t") 'elscreen-create)
-;;; split
+(elscreen-set-default-directory (elscreen-get-current-screen) "~/")
;; tab face
(cd dir)
)
+
(defun sd-show-dir ()
"show elscreen default directory."
(interactive)
(defun sd-update-elscreen-dir ()
"update elscreen dir as current default directory"
(interactive)
- (elscreen-set-default-directory (elscreen-get-current-scren) default-directory))
+ (elscreen-set-default-directory (elscreen-get-current-screen) default-directory))
+
;; (if (> (length el-dir) 0)
;; (cd el-dir)))))
+(defvar elscreen-exclude-modes '(eshell-mode magit magit-status-mode magit-commit-mode magit-diff-mode) "the major modes don't update directory")
+
+;; when major-mode is magit-*, don't change default-directory, otherwise, there is error when usingit command in magin-* mode
+(add-hook 'elscreen-screen-update-hook
+ (lambda ()
+ (let ((el-dir (elscreen-get-default-directory (elscreen-get-current-screen))))
+ (unless (member major-mode elscreen-exclude-modes)
+ (if (> (length el-dir) 0)
+ (cd el-dir))))))
+
(provide 'init-elscreen)