| @@ -12,6 +12,29 @@ | |||
| (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 | |||
| @@ -31,10 +54,11 @@ | |||
| (defun set-terminal-title (&rest args) | |||
| "" | |||
| (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 | |||
| "\033]0;" | |||
| `(,@args "\007")))))) | |||
| @@ -49,12 +73,9 @@ | |||
| (symbol-name system-type) | |||
| "] " | |||
| (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 | |||
| 'my-set-terminal-title) | |||
| @@ -196,19 +217,7 @@ | |||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
| ;; 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) | |||
| (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)) | |||
| ;; あ 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 | |||
| 'readonly | |||
| (if overwrite-mode | |||
| 'overwrite | |||
| 'insert)))) | |||
| (unless (eq state my-set-mode-line-color-state) | |||
| (unless (eq state my-set-modeline-color-state) | |||
| (set-face-foreground 'modeline | |||
| (nth 1 | |||
| (assq state | |||
| my-set-mode-line-color-color))) | |||
| my-set-modeline-color-color))) | |||
| (set-face-background 'modeline | |||
| (nth 2 | |||
| (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 | |||
| `((readonly "white" "blue") | |||
| (overwrite "white" "red") | |||
| @@ -343,12 +354,12 @@ | |||
| `((readonly "blue" "white") | |||
| (overwrite "red" "white") | |||
| (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-background 'mode-line-inactive (if window-system "white" "gray")) | |||
| (set-face-background 'mode-line-inactive (if window-system "white" "green")) | |||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
| ;; file handling | |||