mirror of
https://github.com/ryuslash/mode-icons.git
synced 2024-11-21 17:40:30 +01:00
Add some shell icons
- Added function-based matching. - Currently everything should be cached, except for things where function matching occurs. (may need some expansion) - Should address Issue #36
This commit is contained in:
parent
a31a43b90a
commit
2e799a5d7b
6 changed files with 467 additions and 22 deletions
|
@ -10,6 +10,10 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||
- Icon for spacemacs buffer.
|
||||
- Icon for Isearch (from Font Awesome)
|
||||
- Icon for Org-Agenda (From Font Awesome)
|
||||
- Icon for Powershell
|
||||
- Icon for Windows cmd
|
||||
- Icon for MSYS shell
|
||||
- Icon for Cygwin shell
|
||||
- Added option mode-icons-line-height-adjust to allow imagmagick to
|
||||
adjust icons up or down a bit compared to what emacs returns as the
|
||||
mode-line height.
|
||||
|
|
46
icons/cmd.xpm
Normal file
46
icons/cmd.xpm
Normal file
|
@ -0,0 +1,46 @@
|
|||
/* XPM */
|
||||
static char * d:\EmacsPortable_App\Data\src\mode_icons\icons\cmd_xpm[] = {
|
||||
"16 16 27 1",
|
||||
" g None",
|
||||
". g #FFFFFF",
|
||||
"+ g #000000",
|
||||
"@ g #505050",
|
||||
"# g #989898",
|
||||
"$ g #6B6B6B",
|
||||
"% g #E8E8E8",
|
||||
"& g #111111",
|
||||
"* g #F6F6F6",
|
||||
"= g #080808",
|
||||
"- g #FDFDFD",
|
||||
"; g #BBBBBB",
|
||||
"> g #353535",
|
||||
", g #8D8D8D",
|
||||
"' g #5A5A5A",
|
||||
") g #5F5F5F",
|
||||
"! g #7E7E7E",
|
||||
"~ g #323232",
|
||||
"{ g #A3A3A3",
|
||||
"] g #FAFAFA",
|
||||
"^ g #0A0A0A",
|
||||
"/ g #FBFBFB",
|
||||
"( g #070707",
|
||||
"_ g #C3C3C3",
|
||||
": g #646464",
|
||||
"< g #A8A8A8",
|
||||
"[ g #606060",
|
||||
"................",
|
||||
".++++++++++++++.",
|
||||
".++++++++++++++.",
|
||||
"................",
|
||||
".++++++++++++++.",
|
||||
".++++++++++++++.",
|
||||
".+@#$+++%&+++++.",
|
||||
".+*=-+++;>+++++.",
|
||||
".+.+++++,'+++++.",
|
||||
".+.+++.+)!+++++.",
|
||||
".+.+.+++~{+++++.",
|
||||
".+]^/+++(_+++++.",
|
||||
".+:<[+.++_+++++.",
|
||||
".++++++++++...;.",
|
||||
".++++++++++++++.",
|
||||
"................"};
|
22
icons/cygwin.xpm
Normal file
22
icons/cygwin.xpm
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* XPM */
|
||||
static char * d:\EmacsPortable_App\Data\src\mode_icons\icons\cygwin_xpm[] = {
|
||||
"16 16 3 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #00FF00",
|
||||
" ",
|
||||
" ........... ",
|
||||
" .............. ",
|
||||
" .......... ",
|
||||
" .... ",
|
||||
" ... ",
|
||||
" ... +++++ ",
|
||||
" ... ++++++++ ",
|
||||
" ... ++++++++ ",
|
||||
" ... +++++ ",
|
||||
" ... ",
|
||||
" .... ",
|
||||
" .......... ",
|
||||
" .............. ",
|
||||
" ........... ",
|
||||
" "};
|
146
icons/msys.xpm
Normal file
146
icons/msys.xpm
Normal file
|
@ -0,0 +1,146 @@
|
|||
/* XPM */
|
||||
static char * d:\EmacsPortable_App\Data\src\mode_icons\icons\msys_xpm[] = {
|
||||
"16 16 127 2",
|
||||
" c None",
|
||||
". c #7A536A",
|
||||
"+ c #4E92CF",
|
||||
"@ c #A4BDD8",
|
||||
"# c #89545B",
|
||||
"$ c #536B9B",
|
||||
"% c #5D9CD0",
|
||||
"& c #9DC2E6",
|
||||
"* c #676086",
|
||||
"= c #3F89CC",
|
||||
"- c #89C0E6",
|
||||
"; c #987984",
|
||||
"> c #6A4253",
|
||||
", c #4585C7",
|
||||
"' c #5DA5D9",
|
||||
") c #A8B7D4",
|
||||
"! c #7C3C4A",
|
||||
"~ c #4B94D4",
|
||||
"{ c #4D8ACA",
|
||||
"] c #75B3DF",
|
||||
"^ c #B4B0C4",
|
||||
"/ c #5D82B5",
|
||||
"( c #56A0D7",
|
||||
"_ c #6FAFDE",
|
||||
": c #B0BDD6",
|
||||
"< c #657AA7",
|
||||
"[ c #93B7DA",
|
||||
"} c #6280BC",
|
||||
"| c #7BA4D5",
|
||||
"1 c #C4DCF0",
|
||||
"2 c #7A556D",
|
||||
"3 c #69A9DE",
|
||||
"4 c #5E82C2",
|
||||
"5 c #8ABBE1",
|
||||
"6 c #BCC8DD",
|
||||
"7 c #66353E",
|
||||
"8 c #8BAFD8",
|
||||
"9 c #ABA3B5",
|
||||
"0 c #7875A0",
|
||||
"a c #83A4D5",
|
||||
"b c #D7F3FF",
|
||||
"c c #622122",
|
||||
"d c #778FB9",
|
||||
"e c #AFBACF",
|
||||
"f c #707BB0",
|
||||
"g c #95BDE2",
|
||||
"h c #D0E8F9",
|
||||
"i c #9B89A3",
|
||||
"j c #C2E1F9",
|
||||
"k c #864145",
|
||||
"l c #827091",
|
||||
"m c #8FA6D7",
|
||||
"n c #D9F0FD",
|
||||
"o c #AB8893",
|
||||
"p c #B8D7EF",
|
||||
"q c #82444D",
|
||||
"r c #7B85B1",
|
||||
"s c #A0BFE3",
|
||||
"t c #DCF2FD",
|
||||
"u c #99606A",
|
||||
"v c #B6D1EF",
|
||||
"w c #C0A3AA",
|
||||
"x c #8D5F73",
|
||||
"y c #9DABDC",
|
||||
"z c #D1E4F3",
|
||||
"A c #D5E8F6",
|
||||
"B c #C0A2AA",
|
||||
"C c #868AB2",
|
||||
"D c #B3C6E6",
|
||||
"E c #E1F4FD",
|
||||
"F c #B08D91",
|
||||
"G c #ABA9C5",
|
||||
"H c #DBE4EF",
|
||||
"I c #724344",
|
||||
"J c #773231",
|
||||
"K c #A6A9D9",
|
||||
"L c #D1E0F1",
|
||||
"M c #E3ECF3",
|
||||
"N c #784848",
|
||||
"O c #9C86AA",
|
||||
"P c #B2B6DF",
|
||||
"Q c #E3F2FA",
|
||||
"R c #DDD7D8",
|
||||
"S c #937379",
|
||||
"T c #ECF9FF",
|
||||
"U c #C6AAAC",
|
||||
"V c #A7829D",
|
||||
"W c #D9E0F0",
|
||||
"X c #DBD1D4",
|
||||
"Y c #77363B",
|
||||
"Z c #B6B6DC",
|
||||
"` c #BA9AA6",
|
||||
" . c #EDEFF3",
|
||||
".. c #8C6D6E",
|
||||
"+. c #B6969A",
|
||||
"@. c #B69196",
|
||||
"#. c #5D2A2D",
|
||||
"$. c #D6CEDA",
|
||||
"%. c #84494C",
|
||||
"&. c #4A2424",
|
||||
"*. c #965253",
|
||||
"=. c #E9DEDF",
|
||||
"-. c #A57379",
|
||||
";. c #57191A",
|
||||
">. c #804446",
|
||||
",. c #A48B8F",
|
||||
"'. c #B39193",
|
||||
"). c #7C3434",
|
||||
"!. c #E1D4D7",
|
||||
"~. c #A26F72",
|
||||
"{. c #531111",
|
||||
"]. c #F4EEF1",
|
||||
"^. c #914142",
|
||||
"/. c #E4D7D9",
|
||||
"(. c #CFB1B6",
|
||||
"_. c #5C1E1E",
|
||||
":. c #9C5659",
|
||||
"<. c #BFA4A5",
|
||||
"[. c #B7888C",
|
||||
"}. c #C69FA4",
|
||||
"|. c #602F2F",
|
||||
"1. c #D6BDC1",
|
||||
"2. c #220000",
|
||||
"3. c #B79094",
|
||||
"4. c #BB8E93",
|
||||
"5. c #411D1D",
|
||||
"6. c #A97378",
|
||||
" ",
|
||||
" . + @ # $ % & ",
|
||||
" * = - ; > , ' ) ",
|
||||
" ! ~ { ] ^ / ( _ : ",
|
||||
" < [ } | 1 2 3 4 5 6 ",
|
||||
" 7 8 9 0 a b c d e f g h ",
|
||||
" i j k l m n o p q r s t ",
|
||||
" u v w x y z A B C D E F ",
|
||||
" G H I J K L M N O P Q R ",
|
||||
"S T U V W X Y Z ` ...",
|
||||
"+.@. #.$.%. &.*.=.-. ",
|
||||
" ;.>.,.'.).!.~. ",
|
||||
" {.].^./.(._.:.<. ",
|
||||
" [.}.|.1. ",
|
||||
" 2.3.4.5.6. ",
|
||||
" "};
|
197
icons/powershell.xpm
Normal file
197
icons/powershell.xpm
Normal file
|
@ -0,0 +1,197 @@
|
|||
/* XPM */
|
||||
static char * d:\EmacsPortable_App\Data\src\mode_icons\icons\powershell_xpm[] = {
|
||||
"16 16 178 2",
|
||||
" c None",
|
||||
". c #13B5D8",
|
||||
"+ c #13B6D9",
|
||||
"@ c #14B6D9",
|
||||
"# c #12B4D7",
|
||||
"$ c #13B2D5",
|
||||
"% c #12B1D3",
|
||||
"& c #13AFD2",
|
||||
"* c #14ADD0",
|
||||
"= c #14ABCE",
|
||||
"- c #14A9CC",
|
||||
"; c #14A8CA",
|
||||
"> c #14A6C8",
|
||||
", c #14A4C5",
|
||||
"' c #12BFE3",
|
||||
") c #A2E6F5",
|
||||
"! c #52CAE3",
|
||||
"~ c #10B8DC",
|
||||
"{ c #13B6DA",
|
||||
"] c #14B4D7",
|
||||
"^ c #14B1D4",
|
||||
"/ c #14AFD2",
|
||||
"( c #14ADCF",
|
||||
"_ c #14AACD",
|
||||
": c #14A6C7",
|
||||
"< c #13BEE2",
|
||||
"[ c #12BDE1",
|
||||
"} c #9BDDEC",
|
||||
"| c #FFFEFE",
|
||||
"1 c #21B8D9",
|
||||
"2 c #13B4D7",
|
||||
"3 c #14B2D5",
|
||||
"4 c #14A9CB",
|
||||
"5 c #14A2C4",
|
||||
"6 c #13B3D6",
|
||||
"7 c #13BBDF",
|
||||
"8 c #0AB5D9",
|
||||
"9 c #CDEBF2",
|
||||
"0 c #C3E8F1",
|
||||
"a c #0DAFD3",
|
||||
"b c #14B0D3",
|
||||
"c c #14AED0",
|
||||
"d c #14A7C9",
|
||||
"e c #14A4C6",
|
||||
"f c #14A1C2",
|
||||
"g c #13B7DB",
|
||||
"h c #13BADE",
|
||||
"i c #12B8DB",
|
||||
"j c #1BB2D4",
|
||||
"k c #F2F8FA",
|
||||
"l c #83D0E3",
|
||||
"m c #12AED1",
|
||||
"n c #14ACCE",
|
||||
"o c #14A5C7",
|
||||
"p c #13A3C4",
|
||||
"q c #159FC0",
|
||||
"r c #13B8DB",
|
||||
"s c #13B5D9",
|
||||
"t c #11B4D7",
|
||||
"u c #6DC9DE",
|
||||
"v c #F4FAFC",
|
||||
"w c #2BAFCC",
|
||||
"x c #14AACC",
|
||||
"y c #13A3C5",
|
||||
"z c #12BBDF",
|
||||
"A c #13B9DC",
|
||||
"B c #12B6DA",
|
||||
"C c #0EB0D4",
|
||||
"D c #C4EAF3",
|
||||
"E c #E6F2F6",
|
||||
"F c #1CA1C0",
|
||||
"G c #14A1C3",
|
||||
"H c #159FC1",
|
||||
"I c #13B9DD",
|
||||
"J c #12B7DA",
|
||||
"K c #23B7D8",
|
||||
"L c #C8ECF4",
|
||||
"M c #D7ECF2",
|
||||
"N c #33A7C3",
|
||||
"O c #13AACD",
|
||||
"P c #13A4C6",
|
||||
"Q c #14A2C3",
|
||||
"R c #159DBF",
|
||||
"S c #13ADCF",
|
||||
"T c #1AB5D7",
|
||||
"U c #C6EAF4",
|
||||
"V c #CFE5EB",
|
||||
"W c #25A7C5",
|
||||
"X c #05A4C8",
|
||||
"Y c #08A3C6",
|
||||
"Z c #09A0C4",
|
||||
"` c #14A3C4",
|
||||
" . c #15A0C2",
|
||||
".. c #149EBF",
|
||||
"+. c #159BBC",
|
||||
"@. c #16B4D7",
|
||||
"#. c #DCF1F7",
|
||||
"$. c #CDE9F1",
|
||||
"%. c #1BA3C2",
|
||||
"&. c #56C4DD",
|
||||
"*. c #CDEFF7",
|
||||
"=. c #C9ECF6",
|
||||
"-. c #B1E2EE",
|
||||
";. c #14A0C2",
|
||||
">. c #149EC0",
|
||||
",. c #159CBE",
|
||||
"'. c #159ABB",
|
||||
"). c #13B1D4",
|
||||
"!. c #17B2D5",
|
||||
"~. c #9DCFDC",
|
||||
"{. c #1FA7C6",
|
||||
"]. c #12ABCD",
|
||||
"^. c #3DB7D3",
|
||||
"/. c #80C6D7",
|
||||
"(. c #7EC4D7",
|
||||
"_. c #70BDD0",
|
||||
":. c #149FC1",
|
||||
"<. c #159DBE",
|
||||
"[. c #159ABC",
|
||||
"}. c #1599BA",
|
||||
"|. c #16B5D7",
|
||||
"1. c #16B2D5",
|
||||
"2. c #16AFD2",
|
||||
"3. c #16ABCD",
|
||||
"4. c #16A9CA",
|
||||
"5. c #15A6C8",
|
||||
"6. c #15A4C6",
|
||||
"7. c #15A2C3",
|
||||
"8. c #16A0C1",
|
||||
"9. c #169EBE",
|
||||
"0. c #169BBC",
|
||||
"a. c #1699B9",
|
||||
"b. c #AEC2C5",
|
||||
"c. c #AABFC2",
|
||||
"d. c #A9BEC0",
|
||||
"e. c #A7BCBE",
|
||||
"f. c #A8BDC0",
|
||||
"g. c #A6BBBE",
|
||||
"h. c #A5BABD",
|
||||
"i. c #A3B8BB",
|
||||
"j. c #AABDC0",
|
||||
"k. c #9FB5B7",
|
||||
"l. c #9DB3B5",
|
||||
"m. c #99AEB1",
|
||||
"n. c #B9CED1",
|
||||
"o. c #B5C9CC",
|
||||
"p. c #B4C8CB",
|
||||
"q. c #B3C7CA",
|
||||
"r. c #637A7E",
|
||||
"s. c #5F7679",
|
||||
"t. c #5F7579",
|
||||
"u. c #5E7579",
|
||||
"v. c #6E8387",
|
||||
"w. c #A7BBBF",
|
||||
"x. c #5C7377",
|
||||
"y. c #A5B8BA",
|
||||
"z. c #B8CDD0",
|
||||
"A. c #B6CACD",
|
||||
"B. c #9EB4B7",
|
||||
"C. c #9CB3B6",
|
||||
"D. c #9AB1B4",
|
||||
"E. c #99AFB3",
|
||||
"F. c #9DB2B5",
|
||||
"G. c #8EA4A8",
|
||||
"H. c #94ACAF",
|
||||
"I. c #91A9AD",
|
||||
"J. c #92A6A8",
|
||||
"K. c #A3B6B8",
|
||||
"L. c #A0B4B6",
|
||||
"M. c #9FB2B5",
|
||||
"N. c #9DB1B3",
|
||||
"O. c #9CAFB1",
|
||||
"P. c #9AAEB0",
|
||||
"Q. c #99ACAF",
|
||||
"R. c #96AAAC",
|
||||
"S. c #90A4A6",
|
||||
"T. c #94A9AA",
|
||||
"U. c #93A7AA",
|
||||
" . + @ # $ % & * = - ; > , ",
|
||||
" ' ' ) ! ~ { ] ^ / ( _ ; : ",
|
||||
" < [ } | 1 2 3 / ( _ 4 > 5 ",
|
||||
" 6 < 7 8 9 0 a b c = 4 d e f ",
|
||||
" g 7 h i j k l m n 4 ; o p q ",
|
||||
" [ h r s t u v w x ; o y f ",
|
||||
" z A B ] C D E F ; > e G H ",
|
||||
" I J 2 K L M N O d P Q H R ",
|
||||
" S i . T U V W X Y Z ` ...+. ",
|
||||
" & s @.#.$.%.&.*.=.-.;.>.,.'. ",
|
||||
" ).] !.~.{.].^./.(._.:.<.[.}. ",
|
||||
" |.1.2.( 3.4.5.6.7.8.9.0.a. ",
|
||||
" b.c.d.e.c.f.g.h.i.j.k.l.m. ",
|
||||
" n.o.p.q.r.s.t.u.v.w.x.x.m. ",
|
||||
"y.z.A.p.q.B.C.D.E.F.G.H.I.J. ",
|
||||
" K.L.M.N.N.O.P.Q.R.S.T.U. "};
|
|
@ -207,6 +207,11 @@ This was stole/modified from `c-save-buffer-state'"
|
|||
("\\`Spacemacs buffer\\'" "spacemacs" png)
|
||||
("\\` ?emoji\\'" "emoji" png)
|
||||
("\\`Org-Agenda" #xf046 FontAwesome)
|
||||
("\\`PS\\'" "powershell" xpm)
|
||||
(mode-icons-powershell-p "powershell" xpm)
|
||||
(mode-icons-cmd-p "cmd" xpm-bw)
|
||||
(mode-icons-msys-p "msys" xpm)
|
||||
(mode-icons-cygwin-p "cygwin" xpm)
|
||||
(read-only #xf023 FontAwesome)
|
||||
(writable #xf09c FontAwesome)
|
||||
(save #xf0c7 FontAwesome)
|
||||
|
@ -281,6 +286,23 @@ without the extension. And the third being the type of icon."
|
|||
(symbol :tag "Font"))))
|
||||
:group 'mode-icons)
|
||||
|
||||
(defun mode-icons-powershell-p (&optional match)
|
||||
"Is the current mode a powershell process?"
|
||||
(let ((proc (get-buffer-process (current-buffer))))
|
||||
(and proc (string-match-p (or match "powershell") (car (process-command proc))))))
|
||||
|
||||
(defun mode-icons-cmd-p ()
|
||||
"Is the current mode a CMD shell?"
|
||||
(mode-icons-powershell-p "cmdproxy"))
|
||||
|
||||
(defun mode-icons-cygwin-p ()
|
||||
"Is the current mode a CMD shell?"
|
||||
(mode-icons-powershell-p "cygwin"))
|
||||
|
||||
(defun mode-icons-msys-p ()
|
||||
"Is the current mode a CMD shell?"
|
||||
(mode-icons-powershell-p "msys"))
|
||||
|
||||
(defvar mode-icons-get-xpm-string (make-hash-table :test 'equal))
|
||||
(defun mode-icons-get-xpm-string (icon-path)
|
||||
"Get XPM file contents for ICON-PATH.
|
||||
|
@ -1230,29 +1252,37 @@ ACTIVE is a flag to tell if the current window is active."
|
|||
|
||||
(defvar mode-icons-get-icon-spec (make-hash-table :test 'equal)
|
||||
"Hash table of icon-specifications.")
|
||||
(defun mode-icons-get-icon-spec (mode)
|
||||
(defun mode-icons-get-icon-spec (mode &optional is-major-mode-p)
|
||||
"Get icon spec for MODE based on regular expression."
|
||||
(or (gethash mode mode-icons-get-icon-spec)
|
||||
(puthash mode (let* (case-fold-search
|
||||
(icon-spec (catch 'found-mode
|
||||
(dolist (item mode-icons)
|
||||
(when (and (mode-icons-supported-p item)
|
||||
(or
|
||||
(and
|
||||
(stringp (car item))
|
||||
(stringp mode)
|
||||
(string-match-p (car item) mode))
|
||||
(and
|
||||
(symbolp (car item))
|
||||
(symbolp mode)
|
||||
(eq mode (car item)))))
|
||||
(throw 'found-mode item)))
|
||||
nil)))
|
||||
(when (and icon-spec (eq (nth 2 icon-spec) 'emoji)
|
||||
(file-exists-p (mode-icons--get-emoji-xpm-file icon-spec)))
|
||||
(setq icon-spec (list (nth 0 icon-spec) (mode-icons--get-emoji-xpm-file icon-spec t) 'xpm)))
|
||||
icon-spec)
|
||||
mode-icons-get-icon-spec)))
|
||||
(let* (case-fold-search
|
||||
(ignore-cache nil)
|
||||
(icon-spec (catch 'found-mode
|
||||
(dolist (item mode-icons)
|
||||
(when (and (mode-icons-supported-p item)
|
||||
(or
|
||||
(and
|
||||
(stringp (car item))
|
||||
(stringp mode)
|
||||
(string-match-p (car item) mode))
|
||||
(and
|
||||
(symbolp (car item))
|
||||
(symbolp mode)
|
||||
(eq mode (car item)))
|
||||
(and
|
||||
is-major-mode-p
|
||||
(symbolp (car item))
|
||||
(functionp (car item))
|
||||
(and (ignore-errors (funcall (car item)))
|
||||
(setq ignore-cache t)))))
|
||||
(throw 'found-mode item)))
|
||||
nil)))
|
||||
(when (and icon-spec (eq (nth 2 icon-spec) 'emoji)
|
||||
(file-exists-p (mode-icons--get-emoji-xpm-file icon-spec)))
|
||||
(setq icon-spec (list (nth 0 icon-spec) (mode-icons--get-emoji-xpm-file icon-spec t) 'xpm)))
|
||||
(unless ignore-cache
|
||||
(puthash mode icon-spec mode-icons-get-icon-spec))
|
||||
icon-spec)))
|
||||
|
||||
(defcustom mode-icons-show-mode-name nil
|
||||
"Show Icon and `mode-name'."
|
||||
|
@ -1277,7 +1307,7 @@ icon as well."
|
|||
FACE represents the face used when the icon is a xpm-bw image.
|
||||
ACTIVE represents if the window is active."
|
||||
(let* ((mode-name (format-mode-line mode))
|
||||
(icon-spec (mode-icons-get-icon-spec mode-name))
|
||||
(icon-spec (mode-icons-get-icon-spec mode-name t))
|
||||
(face (mode-icons--get-face face active))
|
||||
ret)
|
||||
(when (and (not icon-spec) mode-icons-use-default-icon)
|
||||
|
|
Loading…
Reference in a new issue