| @@ -12,6 +12,29 @@ | |||||
| (require 'cl nil t) | (require 'cl nil t) | ||||
| (progn ; hook run when directory changed | |||||
| (defvar buffer-file-changed-function nil "Hook run when buffer file changed. | |||||
| Each function is called with two args, the file before changing and after changing.") | |||||
| (declare-function run-buffer-file-change-function "emacs.el") | |||||
| (add-hook 'post-command-hook | |||||
| 'run-buffer-file-changed-function) | |||||
| (lexical-let (previous-file) | |||||
| (defun run-buffer-file-changed-function () | |||||
| "" | |||||
| (unless (and previous-file | |||||
| (equal previous-file | |||||
| (expand-file-name (or buffer-file-name | |||||
| default-directory)))) | |||||
| (let ((pfile previous-file) | |||||
| (cfile (expand-file-name (or buffer-file-name | |||||
| default-directory)))) | |||||
| (setq previous-file cfile) | |||||
| (run-hook-with-args 'directory-changed-function pfile cfile))))) | |||||
| ;; (add-hook 'directory-changed-function | |||||
| ;; (lambda (pdir cdir) | |||||
| ;; (message "dir changed %s to %s !" pdir cdir))) | |||||
| ) | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; start and quit | ;; start and quit | ||||
| @@ -31,10 +54,11 @@ | |||||
| (defun set-terminal-title (&rest args) | (defun set-terminal-title (&rest args) | ||||
| "" | "" | ||||
| (interactive "sString to set as title: ") | (interactive "sString to set as title: ") | ||||
| (let ((tty (or (frame-parameter nil | |||||
| 'tty-type) | |||||
| ""))) | |||||
| (when (eq t (compare-strings "xterm" 0 5 tty 0 5)) | |||||
| (let ((tty (frame-parameter nil | |||||
| 'tty-type))) | |||||
| (when (and tty | |||||
| (eq t (compare-strings "xterm" 0 5 | |||||
| tty 0 5))) | |||||
| (send-string-to-terminal (apply 'concat | (send-string-to-terminal (apply 'concat | ||||
| "\033]0;" | "\033]0;" | ||||
| `(,@args "\007")))))) | `(,@args "\007")))))) | ||||
| @@ -49,12 +73,9 @@ | |||||
| (symbol-name system-type) | (symbol-name system-type) | ||||
| "] " | "] " | ||||
| (abbreviate-file-name (or buffer-file-name default-directory)))) | (abbreviate-file-name (or buffer-file-name default-directory)))) | ||||
| (defvar previous-directory default-directory) | |||||
| (add-hook 'post-command-hook | |||||
| (lambda () | |||||
| (unless (eq previous-directory default-directory) | |||||
| (setq previous-directory default-directory) | |||||
| (my-set-terminal-title)))) | |||||
| (add-hook 'directory-changed-function | |||||
| (lambda (p c) | |||||
| (my-set-terminal-title))) | |||||
| (add-hook 'suspend-resume-hook | (add-hook 'suspend-resume-hook | ||||
| 'my-set-terminal-title) | 'my-set-terminal-title) | ||||
| @@ -196,19 +217,7 @@ | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; letters, font-lock mode and fonts | ;; letters, font-lock mode and fonts | ||||
| ;; change color for border | |||||
| ;; (set-face-foreground (make-face 'vertical-border-face) "white") | |||||
| ;; (set-face-background 'vertical-border-face "black") | |||||
| ;; (defface vertical-border-face | |||||
| ;; `((((background dark)) | |||||
| ;; (:background "white")) | |||||
| ;; (((background light)) | |||||
| ;; (:background "black"))) | |||||
| ;; "vertical border") | |||||
| ;; (set-display-table-slot standard-display-table 'vertical-border | |||||
| ;; (make-glyph-code #x3a 'vertical-border-face)) | |||||
| ;; (set-face-foreground 'vertical-border "default") | |||||
| ;; (set-face-background 'vertical-border "white") | |||||
| (set-face-background 'vertical-border (face-foreground 'mode-line)) | |||||
| (when (eq system-type 'Darwin) | (when (eq system-type 'Darwin) | ||||
| (mac-set-input-method-parameter 'japanese 'cursor-color "red") | (mac-set-input-method-parameter 'japanese 'cursor-color "red") | ||||
| @@ -317,25 +326,27 @@ | |||||
| ;; (my-set-ascii-and-jp-font-with-size '("ProggyCleanTTSZ" 120 "takaogothic" 11)) | ;; (my-set-ascii-and-jp-font-with-size '("ProggyCleanTTSZ" 120 "takaogothic" 11)) | ||||
| ;; あ a | ;; あ a | ||||
| (defun my-set-mode-line-color-according-to-readonly-state () | |||||
| ;; inspired by http://www.emacswiki.org/emacs-en/ChangingCursorDynamically | |||||
| (defun my-set-modeline-color-according-to-write-mode () | |||||
| "" | "" | ||||
| (let ((state (if buffer-read-only | (let ((state (if buffer-read-only | ||||
| 'readonly | 'readonly | ||||
| (if overwrite-mode | (if overwrite-mode | ||||
| 'overwrite | 'overwrite | ||||
| 'insert)))) | 'insert)))) | ||||
| (unless (eq state my-set-mode-line-color-state) | |||||
| (unless (eq state my-set-modeline-color-state) | |||||
| (set-face-foreground 'modeline | (set-face-foreground 'modeline | ||||
| (nth 1 | (nth 1 | ||||
| (assq state | (assq state | ||||
| my-set-mode-line-color-color))) | |||||
| my-set-modeline-color-color))) | |||||
| (set-face-background 'modeline | (set-face-background 'modeline | ||||
| (nth 2 | (nth 2 | ||||
| (assq state | (assq state | ||||
| my-set-mode-line-color-color))) | |||||
| (setq my-set-mode-line-color-state state)))) | |||||
| (defvar my-set-mode-line-color-color nil "") | |||||
| (setq my-set-mode-line-color-color | |||||
| my-set-modeline-color-color))) | |||||
| (setq my-set-modeline-color-state state)))) | |||||
| (defvar my-set-modeline-color-color nil "") | |||||
| (setq my-set-modeline-color-color | |||||
| (if window-system | (if window-system | ||||
| `((readonly "white" "blue") | `((readonly "white" "blue") | ||||
| (overwrite "white" "red") | (overwrite "white" "red") | ||||
| @@ -343,12 +354,12 @@ | |||||
| `((readonly "blue" "white") | `((readonly "blue" "white") | ||||
| (overwrite "red" "white") | (overwrite "red" "white") | ||||
| (insert ,(face-foreground 'modeline) ,(face-background 'modeline))))) | (insert ,(face-foreground 'modeline) ,(face-background 'modeline))))) | ||||
| (defvar my-set-mode-line-color-state nil "") | |||||
| (add-hook 'post-command-hook 'my-set-mode-line-color-according-to-readonly-state) | |||||
| (add-hook 'after-init-hook 'my-set-mode-line-color-according-to-readonly-state) | |||||
| (defvar my-set-modeline-color-state nil "") | |||||
| (add-hook 'post-command-hook 'my-set-modeline-color-according-to-write-mode) | |||||
| (add-hook 'after-init-hook 'my-set-modeline-color-according-to-write-mode) | |||||
| ;; (set-face-foreground 'mode-line-inactive (if window-system "gray" "white")) | ;; (set-face-foreground 'mode-line-inactive (if window-system "gray" "white")) | ||||
| ;; (set-face-background 'mode-line-inactive (if window-system "white" "gray")) | |||||
| (set-face-background 'mode-line-inactive (if window-system "white" "green")) | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; file handling | ;; file handling | ||||