sistema_progs

Programas para customizar o meu entorno de traballo nos meus equipos persoais
Log | Files | Refs

icons.h (18537B)


      1 #pragma once
      2 
      3 #if defined(ICONS)
      4 #include "icons-in-terminal.h"
      5 #elif defined(NERD)
      6 #include "icons-nerdfont.h"
      7 #endif
      8 
      9 struct icon_pair {
     10 	const char *match;
     11 	const char *icon;
     12 	/*
     13 	 * Hex xterm 256 color code, 0 to follow file specific (if any)
     14 	 * Codes: https://jonasjacek.github.io/colors/
     15 	 * Spectrum sorted: https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg
     16 	 */
     17 	const unsigned char color;
     18 };
     19 
     20 /*
     21  * Define a string to be printed before and after the icon
     22  * Adjust if the icons are not printed properly
     23  */
     24 
     25 #define ICON_PADDING_LEFT  ""
     26 #define ICON_PADDING_RIGHT " "
     27 
     28 #define COLOR_VIDEO        93  /* Purple */
     29 #define COLOR_AUDIO        220 /* Gold1 */
     30 #define COLOR_IMAGE        82  /* Chartreuse2 */
     31 #define COLOR_DOCS         202 /* OrangeRed1 */
     32 #define COLOR_ARCHIVE      209 /* Salmon1 */
     33 #define COLOR_C            81  /* SteelBlue1 */
     34 #define COLOR_JAVA         32  /* DeepSkyBlue3 */
     35 #define COLOR_JAVASCRIPT   47  /* SpringGreen2 */
     36 #define COLOR_REACT        39  /* DeepSkyBlue1 */
     37 #define COLOR_CSS          199 /* DeepPink1 */
     38 #define COLOR_PYTHON       227 /* LightGoldenrod1 */
     39 #define COLOR_LUA          19  /* Blue3 */
     40 #define COLOR_DOCUMENT     15  /* White */
     41 #define COLOR_FSHARP       31  /* DeepSkyBlue3 */
     42 #define COLOR_RUBY         160 /* Red3 */
     43 #define COLOR_SCALA        196 /* Red1 */
     44 #define COLOR_SHELL        47  /* SpringGreen2 */
     45 #define COLOR_VIM          28  /* Green4 */
     46 
     47 /*
     48  * Using symbols defined in icons-in-terminal.h, or even using icons-in-terminal is not necessary.
     49  * You can use whatever pathched font you like. You just have to put the desired icon as a string.
     50  * If you are using icons-in-terminal the creator recommends that you do use the symbols in the generated header.
     51  */
     52 
     53 #if defined(ICONS)
     54 static const struct icon_pair dir_icon  = {"", FA_FOLDER, 0};
     55 static const struct icon_pair file_icon = {"", FA_FILE_O, 0};
     56 static const struct icon_pair exec_icon = {"", FA_COG,    0};
     57 #elif defined(NERD)
     58 static const struct icon_pair dir_icon  = {"", ICON_DIRECTORY, 0};
     59 static const struct icon_pair file_icon = {"", ICON_FILE,      0};
     60 static const struct icon_pair exec_icon = {"", ICON_EXEC,      0};
     61 #endif
     62 
     63 /* All entries are case-insensitive */
     64 
     65 static const struct icon_pair icons_name[] = {
     66 #if defined(ICONS)
     67 	{".git",         FA_GIT,        0},
     68 	{"Desktop",      FA_DESKTOP,    0},
     69 	{"Documents",    FA_BRIEFCASE,  0},
     70 	{"Downloads",    FA_DOWNLOAD,   0},
     71 	{"Music",        FA_MUSIC,      0},
     72 	{"Pictures",     MD_CAMERA_ALT, 0},
     73 	{"Public",       FA_INBOX,      0},
     74 	{"Templates",    FA_PAPERCLIP,  0},
     75 	{"Videos",       FA_FILM,       0},
     76 	{"CHANGELOG",    FA_HISTORY,    COLOR_DOCS},
     77 	{"configure",    FILE_CONFIG,   0},
     78 	{"License",      FA_COPYRIGHT,  COLOR_DOCS},
     79 	{"Makefile",     FILE_CMAKE,    0},
     80 #elif defined(NERD)
     81 	{".git",         ICON_GIT,       0},
     82 	{"Desktop",      ICON_DESKTOP,   0},
     83 	{"Documents",    ICON_BRIEFCASE, 0},
     84 	{"Downloads",    ICON_DOWNLOADS, 0},
     85 	{"Music",        ICON_MUSIC,     0},
     86 	{"Pictures",     ICON_PICTURES,  0},
     87 	{"Public",       ICON_PUBLIC,    0},
     88 	{"Templates",    ICON_TEMPLATES, 0},
     89 	{"Videos",       ICON_VIDEOS,    0},
     90 	{"CHANGELOG",    ICON_CHANGELOG, COLOR_DOCS},
     91 	{"configure",    ICON_CONFIGURE, 0},
     92 	{"License",      ICON_LICENSE,   COLOR_DOCS},
     93 	{"Makefile",     ICON_MAKEFILE,  0},
     94 #endif
     95 };
     96 
     97 /*
     98  * New entries should be added such that the first character of the extension is in the correct group .
     99  * This is done for performance reason so that the correct icon can be found faster.
    100  * All entries are case-insensitive
    101  */
    102 
    103 static const struct icon_pair icons_ext[] = {
    104 #if defined(ICONS)
    105 	/* Numbers */
    106 	{"1",        FILE_MANPAGE,         COLOR_DOCS},
    107 	{"7z",       FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    108 
    109 	/* A */
    110 	{"a",        FILE_MANPAGE,         0},
    111 	{"apk",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    112 	{"asm",      FILE_NASM,            0},
    113 	{"aup",      FA_FILE_AUDIO_O,      COLOR_AUDIO},
    114 	{"avi",      FA_FILE_MOVIE_O,      COLOR_VIDEO},
    115 
    116 	/* B */
    117 	{"bat",      MFIZZ_SCRIPT,         0},
    118 	{"bin",      OCT_FILE_BINARY,      0},
    119 	{"bmp",      FA_FILE_IMAGE_O,      COLOR_IMAGE},
    120 	{"bz2",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    121 
    122 	 /* C */
    123 	{"c",        MFIZZ_C,              0},
    124 	{"c++",      MFIZZ_CPLUSPLUS,      0},
    125 	{"cab",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    126 	{"cbr",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    127 	{"cbz",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    128 	{"cc",       MFIZZ_CPLUSPLUS,      0},
    129 	{"class",    MFIZZ_JAVA,           0},
    130 	{"clj",      MFIZZ_CLOJURE,        0},
    131 	{"cljc",     MFIZZ_CLOJURE,        0},
    132 	{"cljs",     MFIZZ_CLOJURE,        0},
    133 	{"cmake",    FILE_CMAKE,           0},
    134 	{"coffee",   MFIZZ_COFFEE_BEAN,    0},
    135 	{"conf",     FA_COGS,              0},
    136 	{"cpio",     FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    137 	{"cpp",      MFIZZ_CPLUSPLUS,      0},
    138 	{"css",      MFIZZ_CSS3,           0},
    139 	{"cue",      FA_FILE_AUDIO_O,      COLOR_AUDIO},
    140 	{"cvs",      FA_COGS,              0},
    141 	{"cxx",      MFIZZ_CPLUSPLUS,      0},
    142 
    143 	/* D */
    144 	{"db",       MFIZZ_DATABASE_ALT2,  0},
    145 	{"deb",      MFIZZ_DEBIAN,         COLOR_ARCHIVE},
    146 	{"diff",     FILE_DIFF,            0},
    147 	{"dll",      FILE_MANPAGE,         0},
    148 	{"doc",      FILE_WORD,            0},
    149 	{"docx",     FILE_WORD,            0},
    150 
    151 	 /* E */
    152 	{"ejs",      FA_FILE_CODE_O,       0},
    153 	{"elf",      FA_LINUX,             0},
    154 	{"epub",     FA_FILE_PDF_O,        COLOR_DOCS},
    155 	{"exe",      FA_WINDOWS,           0},
    156 
    157 	/* F */
    158 	{"f#",       DEV_FSHARP,           0},
    159 	{"flac",     FA_FILE_AUDIO_O,      COLOR_AUDIO},
    160 	{"flv",      FA_FILE_MOVIE_O,      COLOR_VIDEO},
    161 	{"fs",       DEV_FSHARP,           0},
    162 	{"fsi",      DEV_FSHARP,           0},
    163 	{"fsscript", DEV_FSHARP,           0},
    164 	{"fsx",      DEV_FSHARP,           0},
    165 
    166 	/* G */
    167 	{"gem",      FA_FILE_ARCHIVE_O,    0},
    168 	{"gif",      FA_FILE_IMAGE_O,      COLOR_IMAGE},
    169 	{"go",       MFIZZ_GO,             0},
    170 	{"gz",       FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    171 	{"gzip",     FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    172 
    173 	/* H */
    174 	{"h",        MFIZZ_C,              0},
    175 	{"hh",       MFIZZ_CPLUSPLUS,      0},
    176 	{"htaccess", FA_COGS,              0},
    177 	{"htpasswd", FA_COGS,              0},
    178 	{"htm",      FA_FILE_CODE_O,       0},
    179 	{"html",     FA_FILE_CODE_O,       0},
    180 	{"hxx",      MFIZZ_CPLUSPLUS,      0},
    181 
    182 	/* I */
    183 	{"ico",      FA_FILE_IMAGE_O,      COLOR_IMAGE},
    184 	{"img",      LINEA_MUSIC_CD,       COLOR_ARCHIVE},
    185 	{"ini",      FA_COGS,              0},
    186 	{"iso",      LINEA_MUSIC_CD,       COLOR_ARCHIVE},
    187 
    188 	/* J */
    189 	{"jar",      MFIZZ_JAVA,           0},
    190 	{"java",     MFIZZ_JAVA,           0},
    191 	{"jl",       FA_COGS,              0},
    192 	{"jpeg",     FA_FILE_IMAGE_O,      COLOR_IMAGE},
    193 	{"jpg",      FA_FILE_IMAGE_O,      COLOR_IMAGE},
    194 	{"js",       DEV_JAVASCRIPT_BADGE, 0},
    195 	{"json",     MFIZZ_JAVASCRIPT,     0},
    196 	{"jsx",      FILE_JSX,             0},
    197 
    198 	/* K */
    199 
    200 	/* L */
    201 	{"lha",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    202 	{"log",      FA_FILE_TEXT_O,       0},
    203 	{"lua",      FILE_LUA,             COLOR_LUA},
    204 	{"lzh",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    205 	{"lzma",     FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    206 
    207 	/* M */
    208 	{"m4a",      FA_FILE_AUDIO_O,      COLOR_AUDIO},
    209 	{"m4v",      FA_FILE_MOVIE_O,      COLOR_VIDEO},
    210 	{"markdown", DEV_MARKDOWN,         COLOR_DOCS},
    211 	{"md",       DEV_MARKDOWN,         COLOR_DOCS},
    212 	{"mk",       FILE_CMAKE,           0},
    213 	{"mkv",      FA_FILE_MOVIE_O,      COLOR_VIDEO},
    214 	{"mov",      FA_FILE_MOVIE_O,      COLOR_VIDEO},
    215 	{"mp3",      FA_FILE_AUDIO_O,      COLOR_AUDIO},
    216 	{"mp4",      FA_FILE_MOVIE_O,      COLOR_VIDEO},
    217 	{"mpeg",     FA_FILE_MOVIE_O,      COLOR_VIDEO},
    218 	{"mpg",      FA_FILE_MOVIE_O,      COLOR_VIDEO},
    219 	{"msi",      FA_WINDOWS,           0},
    220 
    221 	/* N */
    222 
    223 	/* O */
    224 	{"o",          FILE_MANPAGE,       0},
    225 	{"ogg",        FA_FILE_AUDIO_O,    COLOR_AUDIO},
    226 	{"opus",       FA_FILE_AUDIO_O,    COLOR_AUDIO},
    227 	{"opdownload", FA_DOWNLOAD,        0},
    228 	{"out",        FA_LINUX,           0},
    229 
    230 	/* P */
    231 	{"part",     FA_DOWNLOAD,          0},
    232 	{"patch",    FILE_PATCH,           0},
    233 	{"pdf",      FA_FILE_PDF_O,        COLOR_DOCS},
    234 	{"php",      MFIZZ_PHP,            0},
    235 	{"png",      FA_FILE_IMAGE_O,      COLOR_IMAGE},
    236 	{"ppt",      FILE_POWERPOINT,      0},
    237 	{"pptx",     FILE_POWERPOINT,      0},
    238 	{"psb",      DEV_PHOTOSHOP,        0},
    239 	{"psd",      DEV_PHOTOSHOP,        0},
    240 	{"py",       MFIZZ_PYTHON,         0},
    241 	{"pyc",      MFIZZ_PYTHON,         0},
    242 	{"pyd",      MFIZZ_PYTHON,         0},
    243 	{"pyo",      MFIZZ_PYTHON,         0},
    244 
    245 	/* Q */
    246 
    247 	/* R */
    248 	{"rar",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    249 	{"rb",       MFIZZ_RUBY,           COLOR_RUBY},
    250 	{"rc",       FA_COGS,              0},
    251 	{"rom",      FA_LOCK,              0},
    252 	{"rpm",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    253 	{"rss",      FA_RSS_SQUARE,        0},
    254 	{"rtf",      FA_FILE_PDF_O,        0},
    255 
    256 	/* S */
    257 	{"so",       FILE_MANPAGE,         0},
    258 	{"scala",    MFIZZ_SCALA,          0},
    259 	{"sh",       MFIZZ_SCRIPT,         COLOR_SHELL},
    260 	{"slim",     FA_FILE_CODE_O,       0},
    261 	{"sln",      DEV_VISUALSTUDIO,     0},
    262 	{"sql",      MFIZZ_MYSQL,          0},
    263 	{"srt",      FA_COMMENTS_O,        0},
    264 	{"sub",      FA_COMMENTS_O,        0},
    265 	{"svg",      FA_FILE_IMAGE_O,      COLOR_IMAGE},
    266 
    267 	/* T */
    268 	{"tar",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    269 	{"tex",      FILE_TEX,             0},
    270 	{"tgz",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    271 	{"ts",       FILE_TS,              0},
    272 	{"tsx",      FILE_TSX,             0},
    273 	{"txt",      FA_FILE_TEXT_O,       0},
    274 	{"txz",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    275 
    276 	/* U */
    277 
    278 	/* V */
    279 	{"vid",      FA_FILE_MOVIE_O,      COLOR_VIDEO},
    280 	{"vim",      DEV_VIM,              0},
    281 	{"vimrc",    DEV_VIM,              0},
    282 	{"vtt",      FA_COMMENTS_O,        0},
    283 
    284 	/* W */
    285 	{"wav",      FA_FILE_AUDIO_O,      COLOR_AUDIO},
    286 	{"webm",     FA_FILE_MOVIE_O,      COLOR_VIDEO},
    287 	{"webp",     FA_FILE_IMAGE_O,      COLOR_IMAGE},
    288 	{"wma",      FA_FILE_AUDIO_O,      COLOR_AUDIO},
    289 	{"wmv",      FA_FILE_MOVIE_O,      COLOR_VIDEO},
    290 
    291 	/* X */
    292 	{"xbps",     FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    293 	{"xcf",      FA_FILE_IMAGE_O,      COLOR_IMAGE},
    294 	{"xhtml",    FA_FILE_CODE_O,       0},
    295 	{"xls",      FILE_EXCEL,           0},
    296 	{"xlsx",     FILE_EXCEL,           0},
    297 	{"xml",      FA_FILE_CODE_O,       0},
    298 	{"xz",       FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    299 
    300 	/* Y */
    301 	{"yaml",     FA_COGS,              0},
    302 	{"yml",      FA_COGS,              0},
    303 
    304 	/* Z */
    305 	{"zip",      FA_FILE_ARCHIVE_O,    COLOR_ARCHIVE},
    306 
    307 	/* Other */
    308 #elif defined(NERD)
    309 	/* Numbers */
    310 	{"1",          ICON_EXT_1,         COLOR_DOCS},
    311 	{"7z",         ICON_EXT_7Z,        COLOR_ARCHIVE},
    312 
    313 	/* A */
    314 	{"a",          ICON_EXT_A,         0},
    315 	{"apk",        ICON_EXT_APK,       COLOR_ARCHIVE},
    316 	{"asm",        ICON_EXT_ASM,       0},
    317 	{"aup",        ICON_EXT_AUP,       COLOR_AUDIO},
    318 	{"avi",        ICON_EXT_AVI,       COLOR_VIDEO},
    319 
    320 	/* B */
    321 	{"bat",        ICON_EXT_BAT,       0},
    322 	{"bib",        ICON_EXT_BIB,       0},
    323 	{"bin",        ICON_EXT_BIN,       0},
    324 	{"bmp",        ICON_EXT_BMP,       COLOR_IMAGE},
    325 	{"bz2",        ICON_EXT_BZ2,       COLOR_ARCHIVE},
    326 
    327 	 /* C */
    328 	{"c",          ICON_EXT_C,         COLOR_C},
    329 	{"c++",        ICON_EXT_CPLUSPLUS, COLOR_C},
    330 	{"cabal",      ICON_EXT_CABAL,     COLOR_VIDEO},
    331 	{"cab",        ICON_EXT_CAB,       COLOR_ARCHIVE},
    332 	{"cbr",        ICON_EXT_CBR,       COLOR_ARCHIVE},
    333 	{"cbz",        ICON_EXT_CBZ,       COLOR_ARCHIVE},
    334 	{"cc",         ICON_EXT_CC,        COLOR_C},
    335 	{"class",      ICON_EXT_CLASS,     COLOR_JAVA},
    336 	{"clj",        ICON_EXT_CLJ,       0},
    337 	{"cljc",       ICON_EXT_CLJC,      0},
    338 	{"cljs",       ICON_EXT_CLJS,      0},
    339 	{"cls",        ICON_EXT_CLS,       0},
    340 	{"cmake",      ICON_EXT_CMAKE,     0},
    341 	{"coffee",     ICON_EXT_COFFEE,    0},
    342 	{"conf",       ICON_EXT_CONF,      0},
    343 	{"cpio",       ICON_EXT_CPIO,      COLOR_ARCHIVE},
    344 	{"cpp",        ICON_EXT_CPP,       COLOR_C},
    345 	{"css",        ICON_EXT_CSS,       COLOR_CSS},
    346 	{"cue",        ICON_EXT_CUE,       COLOR_AUDIO},
    347 	{"cvs",        ICON_EXT_CVS,       0},
    348 	{"cxx",        ICON_EXT_CXX,       COLOR_C},
    349 
    350 	/* D */
    351 	{"db",         ICON_EXT_DB,        0},
    352 	{"deb",        ICON_EXT_DEB,       COLOR_ARCHIVE},
    353 	{"diff",       ICON_EXT_DIFF,      0},
    354 	{"dll",        ICON_EXT_DLL,       0},
    355 	{"doc",        ICON_EXT_DOC,       COLOR_DOCUMENT},
    356 	{"docx",       ICON_EXT_DOCX,      COLOR_DOCUMENT},
    357 
    358 	 /* E */
    359 	{"ejs",        ICON_EXT_EJS,       COLOR_JAVASCRIPT},
    360 	{"elf",        ICON_EXT_ELF,       0},
    361 	{"epub",       ICON_EXT_EPUB,      COLOR_DOCS},
    362 	{"exe",        ICON_EXT_EXE,       0},
    363 
    364 	/* F */
    365 	{"f#",         ICON_EXT_FSHARP,    COLOR_FSHARP},
    366 	{"fen",        ICON_EXT_FEN,       0},
    367 	{"flac",       ICON_EXT_FLAC,      COLOR_AUDIO},
    368 	{"flv",        ICON_EXT_FLV,       COLOR_VIDEO},
    369 	{"fs",         ICON_EXT_FS,        COLOR_FSHARP},
    370 	{"fsi",        ICON_EXT_FSI,       COLOR_FSHARP},
    371 	{"fsscript",   ICON_EXT_FSSCRIPT,  COLOR_FSHARP},
    372 	{"fsx",        ICON_EXT_FSX,       COLOR_FSHARP},
    373 
    374 	/* G */
    375 	{"gem",        ICON_EXT_GEM,       COLOR_RUBY},
    376 	{"gif",        ICON_EXT_GIF,       COLOR_IMAGE},
    377 	{"go",         ICON_EXT_GO,        0},
    378 	{"gpg",        ICON_EXT_GPG,       COLOR_ARCHIVE},
    379 	{"gz",         ICON_EXT_GZ,        COLOR_ARCHIVE},
    380 	{"gzip",       ICON_EXT_GZIP,      COLOR_ARCHIVE},
    381 
    382 	/* H */
    383 	{"h",          ICON_EXT_H,         COLOR_C},
    384 	{"hh",         ICON_EXT_HH,        COLOR_C},
    385 	{"hpp",        ICON_EXT_HPP,       COLOR_C},
    386 	{"hs",         ICON_EXT_HS,        COLOR_VIM},
    387 	{"htaccess",   ICON_EXT_HTACCESS,  0},
    388 	{"htpasswd",   ICON_EXT_HTPASSWD,  0},
    389 	{"htm",        ICON_EXT_HTM,       0},
    390 	{"html",       ICON_EXT_HTML,      0},
    391 	{"hxx",        ICON_EXT_HXX,       COLOR_C},
    392 
    393 	/* I */
    394 	{"ico",        ICON_EXT_ICO,       COLOR_IMAGE},
    395 	{"img",        ICON_EXT_IMG,       COLOR_ARCHIVE},
    396 	{"ini",        ICON_EXT_INI,       0},
    397 	{"iso",        ICON_EXT_ISO,       COLOR_ARCHIVE},
    398 
    399 	/* J */
    400 	{"jar",        ICON_EXT_JAR,       COLOR_JAVA},
    401 	{"java",       ICON_EXT_JAVA,      COLOR_JAVA},
    402 	{"jl",         ICON_EXT_JL,        0},
    403 	{"jpeg",       ICON_EXT_JPEG,      COLOR_IMAGE},
    404 	{"jpg",        ICON_EXT_JPG,       COLOR_IMAGE},
    405 	{"js",         ICON_EXT_JS,        COLOR_JAVASCRIPT},
    406 	{"json",       ICON_EXT_JSON,      COLOR_JAVASCRIPT},
    407 	{"jsx",        ICON_EXT_JSX,       COLOR_REACT},
    408 
    409 	/* K */
    410 
    411 	/* L */
    412 	{"lha",        ICON_EXT_LHA,       COLOR_ARCHIVE},
    413 	{"lhs",        ICON_EXT_LHS,       COLOR_VIM},
    414 	{"log",        ICON_EXT_LOG,       0},
    415 	{"lua",        ICON_EXT_LUA,       COLOR_LUA},
    416 	{"lzh",        ICON_EXT_LZH,       COLOR_ARCHIVE},
    417 	{"lzma",       ICON_EXT_LZMA,      COLOR_ARCHIVE},
    418 
    419 	/* M */
    420 	{"m",          ICON_EXT_M,         COLOR_C},
    421 	{"m4a",        ICON_EXT_M4A,       COLOR_AUDIO},
    422 	{"m4v",        ICON_EXT_M4V,       COLOR_VIDEO},
    423 	{"markdown",   ICON_EXT_MD,        COLOR_DOCS},
    424 	{"mat",        ICON_EXT_MAT,       COLOR_C},
    425 	{"md",         ICON_EXT_MD,        COLOR_DOCS},
    426 	{"mk",         ICON_EXT_MK,        0},
    427 	{"mkv",        ICON_EXT_MKV,       COLOR_VIDEO},
    428 	{"mov",        ICON_EXT_MOV,       COLOR_VIDEO},
    429 	{"mp3",        ICON_EXT_MP3,       COLOR_AUDIO},
    430 	{"mp4",        ICON_EXT_MP4,       COLOR_VIDEO},
    431 	{"mpeg",       ICON_EXT_MPEG,      COLOR_VIDEO},
    432 	{"mpg",        ICON_EXT_MPG,       COLOR_VIDEO},
    433 	{"msi",        ICON_EXT_MSI,       0},
    434 
    435 	/* N */
    436 	{"nix",        ICON_EXT_NIX,       COLOR_FSHARP},
    437 
    438 	/* O */
    439 	{"o",          ICON_EXT_O,         0},
    440 	{"ogg",        ICON_EXT_OGG,       COLOR_AUDIO},
    441 	{"opus",       ICON_EXT_OPUS,      COLOR_AUDIO},
    442 	{"opdownload", ICON_EXT_ODOWNLOAD, 0},
    443 	{"out",        ICON_EXT_OUT,       0},
    444 
    445 	/* P */
    446 	{"part",       ICON_EXT_PART,      0},
    447 	{"patch",      ICON_EXT_PATCH,     0},
    448 	{"pdf",        ICON_EXT_PDF,       COLOR_DOCS},
    449 	{"pgn",        ICON_EXT_PGN,       0},
    450 	{"php",        ICON_EXT_PHP,       0},
    451 	{"png",        ICON_EXT_PNG,       COLOR_IMAGE},
    452 	{"ppt",        ICON_EXT_PPT,       0},
    453 	{"pptx",       ICON_EXT_PPTX,      0},
    454 	{"psb",        ICON_EXT_PSB,       0},
    455 	{"psd",        ICON_EXT_PSD,       0},
    456 	{"py",         ICON_EXT_PY,        COLOR_PYTHON},
    457 	{"pyc",        ICON_EXT_PYC,       COLOR_PYTHON},
    458 	{"pyd",        ICON_EXT_PYD,       COLOR_PYTHON},
    459 	{"pyo",        ICON_EXT_PYO,       COLOR_PYTHON},
    460 
    461 	/* Q */
    462 
    463 	/* R */
    464 	{"rar",        ICON_EXT_RAR,       COLOR_ARCHIVE},
    465 	{"rb",         ICON_EXT_RB,        COLOR_RUBY},
    466 	{"rc",         ICON_EXT_RC,        0},
    467 	{"rom",        ICON_EXT_ROM,       0},
    468 	{"rpm",        ICON_EXT_RPM,       COLOR_ARCHIVE},
    469 	{"rss",        ICON_EXT_RSS,       0},
    470 	{"rtf",        ICON_EXT_RTF,       0},
    471 
    472 	/* S */
    473 	{"sass",       ICON_EXT_SASS,      COLOR_CSS},
    474 	{"scss",       ICON_EXT_SCSS,      COLOR_CSS},
    475 	{"so",         ICON_EXT_SO,        0},
    476 	{"scala",      ICON_EXT_SCALA,     COLOR_SCALA},
    477 	{"sh",         ICON_EXT_SH,        COLOR_SHELL},
    478 	{"slim",       ICON_EXT_SLIM,      COLOR_DOCUMENT},
    479 	{"sln",        ICON_EXT_SLN,       0},
    480 	{"sql",        ICON_EXT_SQL,       0},
    481 	{"srt",        ICON_EXT_SRT,       0},
    482 	{"sty",        ICON_EXT_STY,       0},
    483 	{"sub",        ICON_EXT_SUB,       0},
    484 	{"svg",        ICON_EXT_SVG,       COLOR_IMAGE},
    485 
    486 	/* T */
    487 	{"tar",        ICON_EXT_TAR,       COLOR_ARCHIVE},
    488 	{"tex",        ICON_EXT_TEX,       0},
    489 	{"tgz",        ICON_EXT_TGZ,       COLOR_ARCHIVE},
    490 	{"ts",         ICON_EXT_TS,        COLOR_JAVASCRIPT},
    491 	{"tsx",        ICON_EXT_TSX,       COLOR_REACT},
    492 	{"txt",        ICON_EXT_TXT,       COLOR_DOCUMENT},
    493 	{"txz",        ICON_EXT_TXZ,       COLOR_ARCHIVE},
    494 
    495 	/* U */
    496 
    497 	/* V */
    498 	{"vid",        ICON_EXT_VID,       COLOR_VIDEO},
    499 	{"vim",        ICON_EXT_VIM,       COLOR_VIM},
    500 	{"vimrc",      ICON_EXT_VIMRC,     COLOR_VIM},
    501 	{"vtt",        ICON_EXT_SRT,       0},
    502 
    503 	/* W */
    504 	{"wav",        ICON_EXT_WAV,       COLOR_AUDIO},
    505 	{"webm",       ICON_EXT_WEBM,      COLOR_VIDEO},
    506 	{"webp",       ICON_EXT_WEBP,      COLOR_IMAGE},
    507 	{"wma",        ICON_EXT_WMA,       COLOR_AUDIO},
    508 	{"wmv",        ICON_EXT_WMV,       COLOR_VIDEO},
    509 
    510 	/* X */
    511 	{"xbps",       ICON_EXT_XBPS,      COLOR_ARCHIVE},
    512 	{"xcf",        ICON_EXT_XCF,       COLOR_IMAGE},
    513 	{"xhtml",      ICON_EXT_XHTML,     0},
    514 	{"xls",        ICON_EXT_XLS,       0},
    515 	{"xlsx",       ICON_EXT_XLSX,      0},
    516 	{"xml",        ICON_EXT_XML,       0},
    517 	{"xz",         ICON_EXT_XZ,        COLOR_ARCHIVE},
    518 
    519 	/* Y */
    520 	{"yaml",       ICON_EXT_YAML,      COLOR_DOCUMENT},
    521 	{"yml",        ICON_EXT_YML,       COLOR_DOCUMENT},
    522 
    523 	/* Z */
    524 	{"zip",        ICON_EXT_ZIP,       COLOR_ARCHIVE},
    525 	{"zsh",        ICON_EXT_ZSH,       COLOR_SHELL},
    526 	{"zst",        ICON_EXT_ZST,       COLOR_ARCHIVE},
    527 
    528 	/* Other */
    529 #endif
    530 };