Merge branch 'master' of github.com:seudut/dotfiles
[dotfiles.git] / emacs.d / config / init-elscreen.el
index d560032..3edbacf 100644 (file)
@@ -1,9 +1,20 @@
+;; this config file is based on  seudut/elscreen.git, which added two interface and one property 
+;; default directory
+
+(elscreen-set-default-directory (elscreen-get-current-screen) "~/")
+
+
+;; tab face
+
+(custom-set-faces
+ '(elscreen-tab-current-screen-face ((t (:background "Yellow" :foreground "black"))))
+ '(elscreen-tab-other-screen-face ((t (:background "gray22" :foreground "black")))))
 
 ;;(add-hook 'elscreen-create-hook
 ;;          (lambda ()
-;;            (elscreen-set-default-directory  (elscreen-get-current-screen) "~/CPVE/")))
-;;;            (elscreen-cd-default-directory "~/"))
-;;
+;;            (elscreen-set-default-directory  
+;;              (elscreen-get-current-screen) "~/")))
+
 
 (add-hook 'elscreen-goto-hook
           (lambda ()
   (cd dir)
 )
 
+    
 (defun sd-show-dir ()
   "show elscreen default directory."
   (interactive)
   (message
   (elscreen-get-default-directory (elscreen-get-current-screen))))
 
+(defun sd-update-elscreen-dir ()
+  "update elscreen dir as current default directory"
+  (interactive)
+  (elscreen-set-default-directory (elscreen-get-current-screen) default-directory))
+
+
 
 
-(add-hook 'buffer-list-update-hook
+;;(add-hook 'buffer-list-update-hook
+;;          (lambda ()
+;;            (let ((el-dir (elscreen-get-default-directory (elscreen-get-current-screen))))
+;;              (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))))
-              (if (> (length el-dir) 0)
-                 (cd el-dir)))))
+             (unless (member  major-mode elscreen-exclude-modes)
+                (if (> (length el-dir) 0)
+                  (cd el-dir))))))
+
+
+
+
+
+;; elscreen should be placed begin of https://github.com/knu/elscreen/issues/6
+;(elscreen-start)
+;(require 'init-elscreen)
+;(require 'elscreen)
+;(custom-set-faces
+; '(elscreen-tab-current-screen-face ((t (:background "Yellow" :foreground "black"))))
+; '(elscreen-tab-other-screen-face ((t (:background "gray22" :foreground "black")))))
+
+
+
 
 
 (provide 'init-elscreen)