| 1 |
|
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 |
|
|---|
| 11 |
|
|---|
| 12 |
|
|---|
| 13 |
|
|---|
| 14 |
|
|---|
| 15 |
|
|---|
| 16 |
|
|---|
| 17 |
|
|---|
| 18 |
|
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 |
|
|---|
| 25 |
|
|---|
| 26 |
|
|---|
| 27 |
|
|---|
| 28 |
|
|---|
| 29 |
(defun terminal-init-rxvt () |
|---|
| 30 |
"Terminal initialization function for rxvt." |
|---|
| 31 |
|
|---|
| 32 |
|
|---|
| 33 |
|
|---|
| 34 |
|
|---|
| 35 |
|
|---|
| 36 |
|
|---|
| 37 |
|
|---|
| 38 |
|
|---|
| 39 |
(substitute-key-definition [f11] [S-f1] function-key-map) |
|---|
| 40 |
(substitute-key-definition [f12] [S-f2] function-key-map) |
|---|
| 41 |
(substitute-key-definition [f13] [S-f3] function-key-map) |
|---|
| 42 |
(substitute-key-definition [f14] [S-f4] function-key-map) |
|---|
| 43 |
(substitute-key-definition [f15] [S-f5] function-key-map) |
|---|
| 44 |
(substitute-key-definition [f16] [S-f6] function-key-map) |
|---|
| 45 |
(substitute-key-definition [f17] [S-f7] function-key-map) |
|---|
| 46 |
(substitute-key-definition [f18] [S-f8] function-key-map) |
|---|
| 47 |
(substitute-key-definition [f19] [S-f9] function-key-map) |
|---|
| 48 |
(substitute-key-definition [f20] [S-f10] function-key-map) |
|---|
| 49 |
|
|---|
| 50 |
(substitute-key-definition [f23] [C-f1] function-key-map) |
|---|
| 51 |
(substitute-key-definition [f24] [C-f2] function-key-map) |
|---|
| 52 |
(substitute-key-definition [f25] [C-f3] function-key-map) |
|---|
| 53 |
(substitute-key-definition [f26] [C-f4] function-key-map) |
|---|
| 54 |
(substitute-key-definition [f27] [C-f5] function-key-map) |
|---|
| 55 |
(substitute-key-definition [f28] [C-f6] function-key-map) |
|---|
| 56 |
(substitute-key-definition [f29] [C-f7] function-key-map) |
|---|
| 57 |
(substitute-key-definition [f30] [C-f8] function-key-map) |
|---|
| 58 |
(substitute-key-definition [f31] [C-f9] function-key-map) |
|---|
| 59 |
(substitute-key-definition [f32] [C-f10] function-key-map) |
|---|
| 60 |
|
|---|
| 61 |
(substitute-key-definition [f33] [C-S-f1] function-key-map) |
|---|
| 62 |
(substitute-key-definition [f34] [C-S-f2] function-key-map) |
|---|
| 63 |
(substitute-key-definition [f35] [C-S-f3] function-key-map) |
|---|
| 64 |
(substitute-key-definition [f36] [C-S-f4] function-key-map) |
|---|
| 65 |
(substitute-key-definition [f37] [C-S-f5] function-key-map) |
|---|
| 66 |
(substitute-key-definition [f38] [C-S-f6] function-key-map) |
|---|
| 67 |
(substitute-key-definition [f39] [C-S-f7] function-key-map) |
|---|
| 68 |
(substitute-key-definition [f40] [C-S-f8] function-key-map) |
|---|
| 69 |
(substitute-key-definition [f41] [C-S-f9] function-key-map) |
|---|
| 70 |
(substitute-key-definition [f42] [C-S-f10] function-key-map) |
|---|
| 71 |
|
|---|
| 72 |
|
|---|
| 73 |
(let ((map (make-sparse-keymap))) |
|---|
| 74 |
(define-key map "\e[A" [up]) |
|---|
| 75 |
(define-key map "\e[B" [down]) |
|---|
| 76 |
(define-key map "\e[C" [right]) |
|---|
| 77 |
(define-key map "\e[D" [left]) |
|---|
| 78 |
(define-key map "\e[2~" [insert]) |
|---|
| 79 |
(define-key map "\e[3~" [delete]) |
|---|
| 80 |
(define-key map "\e[4~" [select]) |
|---|
| 81 |
(define-key map "\e[5~" [prior]) |
|---|
| 82 |
(define-key map "\e[6~" [next]) |
|---|
| 83 |
(define-key map "\e[7~" [home]) |
|---|
| 84 |
(define-key map "\e[8~" [end]) |
|---|
| 85 |
(define-key map "\e[11~" [f1]) |
|---|
| 86 |
(define-key map "\e[12~" [f2]) |
|---|
| 87 |
(define-key map "\e[13~" [f3]) |
|---|
| 88 |
(define-key map "\e[14~" [f4]) |
|---|
| 89 |
(define-key map "\e[15~" [f5]) |
|---|
| 90 |
(define-key map "\e[17~" [f6]) |
|---|
| 91 |
(define-key map "\e[18~" [f7]) |
|---|
| 92 |
(define-key map "\e[19~" [f8]) |
|---|
| 93 |
(define-key map "\e[20~" [f9]) |
|---|
| 94 |
(define-key map "\e[21~" [f10]) |
|---|
| 95 |
|
|---|
| 96 |
|
|---|
| 97 |
|
|---|
| 98 |
|
|---|
| 99 |
(define-key map "\e[29~" [print]) |
|---|
| 100 |
|
|---|
| 101 |
(define-key map "\e[11^" [C-f1]) |
|---|
| 102 |
(define-key map "\e[12^" [C-f2]) |
|---|
| 103 |
(define-key map "\e[13^" [C-f3]) |
|---|
| 104 |
(define-key map "\e[14^" [C-f4]) |
|---|
| 105 |
(define-key map "\e[15^" [C-f5]) |
|---|
| 106 |
(define-key map "\e[17^" [C-f6]) |
|---|
| 107 |
(define-key map "\e[18^" [C-f7]) |
|---|
| 108 |
(define-key map "\e[19^" [C-f8]) |
|---|
| 109 |
(define-key map "\e[20^" [C-f9]) |
|---|
| 110 |
(define-key map "\e[21^" [C-f10]) |
|---|
| 111 |
|
|---|
| 112 |
(define-key map "\e[23~" [S-f1]) |
|---|
| 113 |
(define-key map "\e[24~" [S-f2]) |
|---|
| 114 |
(define-key map "\e[25~" [S-f3]) |
|---|
| 115 |
(define-key map "\e[26~" [S-f4]) |
|---|
| 116 |
(define-key map "\e[28~" [S-f5]) |
|---|
| 117 |
(define-key map "\e[29~" [S-f6]) |
|---|
| 118 |
(define-key map "\e[31~" [S-f7]) |
|---|
| 119 |
(define-key map "\e[32~" [S-f8]) |
|---|
| 120 |
(define-key map "\e[33~" [S-f9]) |
|---|
| 121 |
(define-key map "\e[34~" [S-f10]) |
|---|
| 122 |
|
|---|
| 123 |
(define-key map "\e[23^" [C-S-f1]) |
|---|
| 124 |
(define-key map "\e[24^" [C-S-f2]) |
|---|
| 125 |
(define-key map "\e[25^" [C-S-f3]) |
|---|
| 126 |
(define-key map "\e[26^" [C-S-f4]) |
|---|
| 127 |
(define-key map "\e[28^" [C-S-f5]) |
|---|
| 128 |
(define-key map "\e[29^" [C-S-f6]) |
|---|
| 129 |
(define-key map "\e[31^" [C-S-f7]) |
|---|
| 130 |
(define-key map "\e[32^" [C-S-f8]) |
|---|
| 131 |
(define-key map "\e[33^" [C-S-f9]) |
|---|
| 132 |
(define-key map "\e[34^" [C-S-f10]) |
|---|
| 133 |
|
|---|
| 134 |
(define-key map "\e[2^" [C-insert]) |
|---|
| 135 |
(define-key map "\e[3^" [C-delete]) |
|---|
| 136 |
(define-key map "\e[5^" [C-prior]) |
|---|
| 137 |
(define-key map "\e[6^" [C-next]) |
|---|
| 138 |
(define-key map "\e[7^" [C-home]) |
|---|
| 139 |
(define-key map "\e[8^" [C-end]) |
|---|
| 140 |
(define-key map "\eOd" [C-left]) |
|---|
| 141 |
(define-key map "\eOc" [C-right]) |
|---|
| 142 |
(define-key map "\eOa" [C-up]) |
|---|
| 143 |
(define-key map "\eOb" [C-down]) |
|---|
| 144 |
|
|---|
| 145 |
(define-key map "\e[2;2~" [S-insert]) |
|---|
| 146 |
(define-key map "\e[3$" [S-delete]) |
|---|
| 147 |
(define-key map "\e[5$" [S-prior]) |
|---|
| 148 |
(define-key map "\e[6$" [S-next]) |
|---|
| 149 |
(define-key map "\e[7$" [S-home]) |
|---|
| 150 |
(define-key map "\e[8$" [S-end]) |
|---|
| 151 |
(define-key map "\e[d" [S-left]) |
|---|
| 152 |
(define-key map "\e[c" [S-right]) |
|---|
| 153 |
(define-key map "\e[a" [S-up]) |
|---|
| 154 |
(define-key map "\e[b" [S-down]) |
|---|
| 155 |
|
|---|
| 156 |
|
|---|
| 157 |
|
|---|
| 158 |
|
|---|
| 159 |
(set-keymap-parent map (keymap-parent function-key-map)) |
|---|
| 160 |
(set-keymap-parent function-key-map map)) |
|---|
| 161 |
|
|---|
| 162 |
|
|---|
| 163 |
(rxvt-register-default-colors) |
|---|
| 164 |
(rxvt-set-background-mode) |
|---|
| 165 |
|
|---|
| 166 |
(tty-set-up-initial-frame-faces)) |
|---|
| 167 |
|
|---|
| 168 |
|
|---|
| 169 |
(defvar rxvt-standard-colors |
|---|
| 170 |
|
|---|
| 171 |
|
|---|
| 172 |
'(("black" 0 ( 0 0 0)) |
|---|
| 173 |
("red" 1 (205 0 0)) |
|---|
| 174 |
("green" 2 ( 0 205 0)) |
|---|
| 175 |
("yellow" 3 (205 205 0)) |
|---|
| 176 |
("blue" 4 ( 0 0 205)) |
|---|
| 177 |
("magenta" 5 (205 0 205)) |
|---|
| 178 |
("cyan" 6 ( 0 205 205)) |
|---|
| 179 |
("white" 7 (229 229 229)) |
|---|
| 180 |
("brightblack" 8 ( 77 77 77)) |
|---|
| 181 |
("brightred" 9 (255 0 0)) |
|---|
| 182 |
("brightgreen" 10 ( 0 255 0)) |
|---|
| 183 |
("brightyellow" 11 (255 255 0)) |
|---|
| 184 |
("brightblue" 12 ( 0 0 255)) |
|---|
| 185 |
("brightmagenta" 13 (255 0 255)) |
|---|
| 186 |
("brightcyan" 14 ( 0 255 255)) |
|---|
| 187 |
("brightwhite" 15 (255 255 255))) |
|---|
| 188 |
"Names of 16 standard rxvt colors, their numbers, and RGB values.") |
|---|
| 189 |
|
|---|
| 190 |
(defun rxvt-rgb-convert-to-16bit (prim) |
|---|
| 191 |
"Convert an 8-bit primary color value PRIM to a corresponding 16-bit value." |
|---|
| 192 |
(min 65535 (round (* (/ prim 255.0) 65535.0)))) |
|---|
| 193 |
|
|---|
| 194 |
(defun rxvt-register-default-colors () |
|---|
| 195 |
"Register the default set of colors for rxvt or compatible emulator. |
|---|
| 196 |
|
|---|
| 197 |
This function registers the number of colors returned by `display-color-cells' |
|---|
| 198 |
for the currently selected frame." |
|---|
| 199 |
(let* ((ncolors (display-color-cells)) |
|---|
| 200 |
(colors rxvt-standard-colors) |
|---|
| 201 |
(color (car colors))) |
|---|
| 202 |
(if (> ncolors 0) |
|---|
| 203 |
|
|---|
| 204 |
(tty-color-clear)) |
|---|
| 205 |
|
|---|
| 206 |
(while (and (> ncolors 0) colors) |
|---|
| 207 |
(tty-color-define (car color) (cadr color) |
|---|
| 208 |
(mapcar 'rxvt-rgb-convert-to-16bit |
|---|
| 209 |
(car (cddr color)))) |
|---|
| 210 |
(setq colors (cdr colors) |
|---|
| 211 |
color (car colors) |
|---|
| 212 |
ncolors (1- ncolors))) |
|---|
| 213 |
(when (> ncolors 0) |
|---|
| 214 |
(cond |
|---|
| 215 |
((= ncolors 240) |
|---|
| 216 |
|
|---|
| 217 |
(let ((r 0) (g 0) (b 0)) |
|---|
| 218 |
(while (> ncolors 24) |
|---|
| 219 |
|
|---|
| 220 |
|
|---|
| 221 |
(tty-color-define (format "color-%d" (- 256 ncolors)) |
|---|
| 222 |
(- 256 ncolors) |
|---|
| 223 |
(mapcar 'rxvt-rgb-convert-to-16bit |
|---|
| 224 |
(list (round (* r 42.5)) |
|---|
| 225 |
(round (* g 42.5)) |
|---|
| 226 |
(round (* b 42.5))))) |
|---|
| 227 |
(setq b (1+ b)) |
|---|
| 228 |
(if (> b 5) |
|---|
| 229 |
(setq g (1+ g) |
|---|
| 230 |
b 0)) |
|---|
| 231 |
(if (> g 5) |
|---|
| 232 |
(setq r (1+ r) |
|---|
| 233 |
g 0)) |
|---|
| 234 |
(setq ncolors (1- ncolors)))) |
|---|
| 235 |
|
|---|
| 236 |
(while (> ncolors 0) |
|---|
| 237 |
(setq color (rxvt-rgb-convert-to-16bit (+ 8 (* (- 24 ncolors) 10)))) |
|---|
| 238 |
(tty-color-define (format "color-%d" (- 256 ncolors)) |
|---|
| 239 |
(- 256 ncolors) |
|---|
| 240 |
(list color color color)) |
|---|
| 241 |
(setq ncolors (1- ncolors)))) |
|---|
| 242 |
|
|---|
| 243 |
((= ncolors 72) |
|---|
| 244 |
|
|---|
| 245 |
(let ((levels '(0 139 205 255)) |
|---|
| 246 |
(r 0) (g 0) (b 0)) |
|---|
| 247 |
(while (> ncolors 8) |
|---|
| 248 |
(tty-color-define (format "color-%d" (- 88 ncolors)) |
|---|
| 249 |
(- 88 ncolors) |
|---|
| 250 |
(mapcar 'rxvt-rgb-convert-to-16bit |
|---|
| 251 |
(list (nth r levels) |
|---|
| 252 |
(nth g levels) |
|---|
| 253 |
(nth b levels)))) |
|---|
| 254 |
(setq b (1+ b)) |
|---|
| 255 |
(if (> b 3) |
|---|
| 256 |
(setq g (1+ g) |
|---|
| 257 |
b 0)) |
|---|
| 258 |
(if (> g 3) |
|---|
| 259 |
(setq r (1+ r) |
|---|
| 260 |
g 0)) |
|---|
| 261 |
(setq ncolors (1- ncolors)))) |
|---|
| 262 |
|
|---|
| 263 |
(while (> ncolors 0) |
|---|
| 264 |
(setq color (rxvt-rgb-convert-to-16bit |
|---|
| 265 |
(floor |
|---|
| 266 |
(if (= ncolors 8) |
|---|
| 267 |
46.36363636 |
|---|
| 268 |
(+ (* (- 8 ncolors) 23.18181818) 69.54545454))))) |
|---|
| 269 |
(tty-color-define (format "color-%d" (- 88 ncolors)) |
|---|
| 270 |
(- 88 ncolors) |
|---|
| 271 |
(list color color color)) |
|---|
| 272 |
(setq ncolors (1- ncolors)))) |
|---|
| 273 |
(t (error "Unsupported number of rxvt colors (%d)" (+ 16 ncolors))))) |
|---|
| 274 |
|
|---|
| 275 |
|
|---|
| 276 |
(clear-face-cache))) |
|---|
| 277 |
|
|---|
| 278 |
|
|---|
| 279 |
|
|---|
| 280 |
|
|---|
| 281 |
(defun rxvt-set-background-mode () |
|---|
| 282 |
"Set background mode as appropriate for the default rxvt colors." |
|---|
| 283 |
(let ((fgbg (getenv "COLORFGBG")) |
|---|
| 284 |
bg rgb) |
|---|
| 285 |
(setq default-frame-background-mode 'light) |
|---|
| 286 |
(when (and fgbg |
|---|
| 287 |
(string-match ".*;\\([0-9][0-9]?\\)\\'" fgbg)) |
|---|
| 288 |
(setq bg (string-to-number (substring fgbg (match-beginning 1)))) |
|---|
| 289 |
|
|---|
| 290 |
|
|---|
| 291 |
(setq rgb (car (cddr (nth bg rxvt-standard-colors)))) |
|---|
| 292 |
|
|---|
| 293 |
|
|---|
| 294 |
(if (< (apply '+ rgb) |
|---|
| 295 |
|
|---|
| 296 |
|
|---|
| 297 |
(* (apply '+ (car (cddr (nth 15 rxvt-standard-colors)))) 0.6)) |
|---|
| 298 |
(setq default-frame-background-mode 'dark))) |
|---|
| 299 |
(frame-set-background-mode (selected-frame)))) |
|---|
| 300 |
|
|---|
| 301 |
|
|---|
| 302 |
|
|---|
| 303 |
|
|---|