Mercurial > emacs
diff lisp/term/rxvt.el @ 90233:ee12d75eb214
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-85
Merge from emacs--cvs-trunk--0
Patches applied:
* emacs--cvs-trunk--0 (patch 556-561)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 122-124)
- Update from CVS: lisp/mm-url.el (mm-url-decode-entities): Fix regexp.
- Update from CVS
author | Miles Bader <miles@gnu.org> |
---|---|
date | Sun, 25 Sep 2005 22:07:01 +0000 |
parents | edf295560b5a dc239a66e600 |
children | c5406394f567 |
line wrap: on
line diff
--- a/lisp/term/rxvt.el Fri Sep 23 07:06:33 2005 +0000 +++ b/lisp/term/rxvt.el Sun Sep 25 22:07:01 2005 +0000 @@ -33,7 +33,7 @@ ;; a PC-style keyboard these keys correspond to ;; MODIFIER-FUNCTION_KEY, where modifier is S-, C-, C-S-. The ;; code here subsitutes the corresponding defintions in - ;; function-key-map. This substitution is needed because if a key + ;; function-key-map. This substitution is needed because if a key ;; definition if found in function-key-map, there are no further ;; lookups in other keymaps. (substitute-key-definition [f11] [S-f1] function-key-map) @@ -75,12 +75,13 @@ (define-key map "\e[B" [down]) (define-key map "\e[C" [right]) (define-key map "\e[D" [left]) - (define-key map "\e[7~" [home]) (define-key map "\e[2~" [insert]) (define-key map "\e[3~" [delete]) (define-key map "\e[4~" [select]) (define-key map "\e[5~" [prior]) (define-key map "\e[6~" [next]) + (define-key map "\e[7~" [home]) + (define-key map "\e[8~" [end]) (define-key map "\e[11~" [f1]) (define-key map "\e[12~" [f2]) (define-key map "\e[13~" [f3]) @@ -145,8 +146,8 @@ (define-key map "\e[3$" [S-delete]) (define-key map "\e[5$" [S-prior]) (define-key map "\e[6$" [S-next]) + (define-key map "\e[7$" [S-home]) (define-key map "\e[8$" [S-end]) - (define-key map "\e[7$" [S-home]) (define-key map "\e[d" [S-left]) (define-key map "\e[c" [S-right]) (define-key map "\e[a" [S-up]) @@ -175,8 +176,8 @@ ("blue" 4 ( 0 0 205)) ; blue3 ("magenta" 5 (205 0 205)) ; magenta3 ("cyan" 6 ( 0 205 205)) ; cyan3 - ("white" 7 (250 235 215)) ; AntiqueWhite - ("brightblack" 8 ( 64 64 64)) ; gray25 + ("white" 7 (229 229 229)) ; gray90 + ("brightblack" 8 ( 77 77 77)) ; gray30 ("brightred" 9 (255 0 0)) ; red ("brightgreen" 10 ( 0 255 0)) ; green ("brightyellow" 11 (255 255 0)) ; yellow @@ -209,6 +210,67 @@ (setq colors (cdr colors) color (car colors) ncolors (1- ncolors))) + (when (> ncolors 0) + (cond + ((= ncolors 240) ; 256-color rxvt + ;; 216 non-gray colors first + (let ((r 0) (g 0) (b 0)) + (while (> ncolors 24) + ;; This and other formulae taken from 256colres.pl and + ;; 88colres.pl in the xterm distribution. + (tty-color-define (format "color-%d" (- 256 ncolors)) + (- 256 ncolors) + (mapcar 'rxvt-rgb-convert-to-16bit + (list (round (* r 42.5)) + (round (* g 42.5)) + (round (* b 42.5))))) + (setq b (1+ b)) + (if (> b 5) + (setq g (1+ g) + b 0)) + (if (> g 5) + (setq r (1+ r) + g 0)) + (setq ncolors (1- ncolors)))) + ;; Now the 24 gray colors + (while (> ncolors 0) + (setq color (rxvt-rgb-convert-to-16bit (+ 8 (* (- 24 ncolors) 10)))) + (tty-color-define (format "color-%d" (- 256 ncolors)) + (- 256 ncolors) + (list color color color)) + (setq ncolors (1- ncolors)))) + + ((= ncolors 72) ; rxvt-unicode + ;; 64 non-gray colors + (let ((levels '(0 139 205 255)) + (r 0) (g 0) (b 0)) + (while (> ncolors 8) + (tty-color-define (format "color-%d" (- 88 ncolors)) + (- 88 ncolors) + (mapcar 'rxvt-rgb-convert-to-16bit + (list (nth r levels) + (nth g levels) + (nth b levels)))) + (setq b (1+ b)) + (if (> b 3) + (setq g (1+ g) + b 0)) + (if (> g 3) + (setq r (1+ r) + g 0)) + (setq ncolors (1- ncolors)))) + ;; Now the 8 gray colors + (while (> ncolors 0) + (setq color (rxvt-rgb-convert-to-16bit + (floor + (if (= ncolors 8) + 46.36363636 + (+ (* (- 8 ncolors) 23.18181818) 69.54545454))))) + (tty-color-define (format "color-%d" (- 88 ncolors)) + (- 88 ncolors) + (list color color color)) + (setq ncolors (1- ncolors)))) + (t (error "Unsupported number of rxvt colors (%d)" (+ 16 ncolors))))) ;; Modifying color mappings means realized faces don't use the ;; right colors, so clear them. (clear-face-cache))) @@ -236,5 +298,5 @@ (setq default-frame-background-mode 'dark))) (frame-set-background-mode (selected-frame)))) -;;; arch-tag: 20cf2fb6-6318-4bab-9dbf-1d15048f2257 +;; arch-tag: 20cf2fb6-6318-4bab-9dbf-1d15048f2257 ;;; rxvt.el ends here