sistema_progs

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

icons.h (18243B)


      1 #ifndef INCLUDE_ICONS_H
      2 #define INCLUDE_ICONS_H
      3 
      4 #if defined(ICONS_GENERATE) || defined(ICONS_ENABLED)
      5 
      6 /*
      7  * 1st arg = ICONS_IN_TERM
      8  *
      9  * 2nd arg = NERD ICONS
     10  * You can find hex codes for nerd fonts here: https://www.nerdfonts.com/cheat-sheet
     11  *
     12  * 3rd arg = EMOJIS
     13  * You can find a list of emoji here: https://unicode.org/Public/emoji/5.0/emoji-test.txt
     14  *
     15  * Any entry with empty icon gets removed by the hash-table generator
     16  */
     17 #if defined(ICONS_IN_TERM)
     18 	#define ICON_STR(I, N, E) I
     19 	#include "icons-in-terminal.h"
     20 #elif defined(NERD)
     21 	#define ICON_STR(I, N, E) N
     22 #elif defined(EMOJI)
     23 	#define ICON_STR(I, N, E) E
     24 #endif
     25 
     26 /*
     27  * Define a string to be printed before and after the icon
     28  * Adjust if the icons are not printed properly
     29  */
     30 #if defined(EMOJI)
     31 	/*
     32 	 * NOTE: As some emojis take up two cells, all of the emoji icons must
     33 	 * be of width 2. Therefore, right pad single-width emoji with a space.
     34 	 */
     35 	#define ICON_SIZE 2
     36 	#define ICON_PADDING_RIGHT " "
     37 #else
     38 	#define ICON_SIZE 1
     39 	#define ICON_PADDING_RIGHT "  "
     40 #endif
     41 #define ICON_PADDING_LEFT  ""
     42 #define ICON_PADDING_LEFT_LEN  (sizeof ICON_PADDING_LEFT  - 1)
     43 #define ICON_PADDING_RIGHT_LEN (sizeof ICON_PADDING_RIGHT - 1)
     44 
     45 /* ARROWS */
     46 #define ICON_ARROW_UP      ICON_STR(MD_ARROW_UPWARD, "󰁝", "⬆")
     47 #define ICON_ARROW_FORWARD ICON_STR(MD_ARROW_FORWARD, "󰁔", "➡")
     48 #define ICON_ARROW_DOWN    ICON_STR(MD_ARROW_DOWNWARD, "󰁅", "⬇")
     49 
     50 /* GENERIC */
     51 #define ICON_DIRECTORY     ICON_STR(FA_FOLDER, "", "📂")
     52 #define ICON_FILE          ICON_STR(FA_FILE, "󰈔", "📃")
     53 #define ICON_EXEC          ICON_STR(FA_COG, "", "⚙️ ")
     54 
     55 /* Top level and common icons */
     56 #define ICON_ARCHIVE       ICON_STR(FA_FILE_ARCHIVE_O, "󰀼", "📦")
     57 #define ICON_BRIEFCASE     ICON_STR(FA_BRIEFCASE, "󰃖", "💼")
     58 #define ICON_C             ICON_STR(MFIZZ_C, "", "🇨 ")
     59 #define ICON_CHANGELOG     ICON_STR(FA_HISTORY, "󰋚", "🔺")
     60 #define ICON_CHESS         ICON_STR("", "󰄺", "")
     61 #define ICON_CLOJURE       ICON_STR(MFIZZ_CLOJURE, "", "")
     62 #define ICON_CONFIGURE     ICON_STR(FILE_CONFIG, "", "🔧")
     63 #define ICON_CPLUSPLUS     ICON_STR(MFIZZ_CPLUSPLUS, "", ICON_C)
     64 #define ICON_DATABASE      ICON_STR(MFIZZ_DATABASE_ALT2, "󰆼", "🗃️ ")
     65 #define ICON_DESKTOP       ICON_STR(FA_DESKTOP, "󰟀", "🖥️ ")
     66 #define ICON_DJVU          ICON_STR(FA_PAPERCLIP, "", "📎")
     67 #define ICON_DOCUMENT      ICON_STR(FA_FILE_TEXT_O, "󰈙", "🗒 ")
     68 #define ICON_DOWNLOADS     ICON_STR(FA_DOWNLOAD, "󰃘", "📥")
     69 #define ICON_ELIXIR        ICON_STR(MFIZZ_ELIXIR, "", "💧")
     70 #define ICON_ENCRYPT       ICON_STR("", "󰌆", "🔒")
     71 #define ICON_FSHARP        ICON_STR(DEV_FSHARP, "", "")
     72 #define ICON_FONT          ICON_STR(FILE_FONT, "", "")
     73 #define ICON_GIT           ICON_STR(FA_GIT, "", "🌱")
     74 #define ICON_HASKELL       ICON_STR("", "", "")
     75 #define ICON_HTML          ICON_STR(FA_FILE_CODE_O, "󰌝", "")
     76 #define ICON_JAVA          ICON_STR(MFIZZ_JAVA, "", "☕")
     77 #define ICON_JAVASCRIPT    ICON_STR(FA_FILE_CODE_O, "󰌞", "")
     78 #define ICON_LICENSE       ICON_STR(FA_COPYRIGHT, "󰈙", "⚖️ ")
     79 #define ICON_LINUX         ICON_STR(FA_LINUX, "󰌽", "🐧")
     80 #define ICON_MAKEFILE      ICON_STR(FILE_CMAKE, "󰆍", "🛠 ")
     81 #define ICON_MANUAL        ICON_STR(FILE_MANPAGE, "󱓷", "❓")
     82 #define ICON_MS_EXCEL      ICON_STR(FILE_EXCEL, "󰈛", ICON_WORDDOC)
     83 #define ICON_MUSIC         ICON_STR(FA_MUSIC, "󱍙", "🎧")
     84 #define ICON_MUSICFILE     ICON_STR(FA_FILE_AUDIO_O, "󰎈", ICON_MUSIC)
     85 #define ICON_OPTICALDISK   ICON_STR(LINEA_MUSIC_CD, "", "💿")
     86 #define ICON_PDF           ICON_STR(FA_FILE_PDF_O, "󰈦", "📕")
     87 #define ICON_PHOTOSHOP     ICON_STR(DEV_PHOTOSHOP, "", ICON_PICTUREFILE)
     88 #define ICON_PICTUREFILE   ICON_STR(FA_FILE_IMAGE_O, "󰈟", ICON_PICTURES)
     89 #define ICON_PICTURES      ICON_STR(MD_CAMERA_ALT, "󰉔", "🎨")
     90 #define ICON_PLAYLIST      ICON_STR(ICON_MUSICFILE, "󱍙", "")
     91 #define ICON_POWERPOINT    ICON_STR(FILE_POWERPOINT, "󰈧", "📊")
     92 #define ICON_PUBLIC        ICON_STR(FA_INBOX, "", "👀")
     93 #define ICON_PYTHON        ICON_STR(MFIZZ_PYTHON, "", "🐍")
     94 #define ICON_REACT         ICON_STR(FILE_JSX, "", ICON_JAVASCRIPT)
     95 #define ICON_RUBY          ICON_STR(MFIZZ_RUBY, "", "💎")
     96 #define ICON_RUST          ICON_STR(DEV_RUST, "", "")
     97 #define ICON_SASS          ICON_STR("", "", "")
     98 #define ICON_SCRIPT        ICON_STR(MFIZZ_SCRIPT, "", "📜")
     99 #define ICON_SUBTITLE      ICON_STR(FA_COMMENTS_O, "󰅺", "💬")
    100 #define ICON_TEMPLATES     ICON_STR(FA_PAPERCLIP, "󰗇", "📎")
    101 #define ICON_TEX           ICON_STR(FILE_TEX, "󰙩", ICON_DOCUMENT)
    102 #define ICON_VIDEOFILE     ICON_STR(FA_FILE_MOVIE_O, "󰈫", ICON_VIDEOS)
    103 #define ICON_VIDEOS        ICON_STR(FA_FILM, "󰈰", "🎞 ")
    104 #define ICON_VIM           ICON_STR(DEV_VIM, "", "")
    105 #define ICON_WORDDOC       ICON_STR(FILE_WORD, "󰈬", "📘")
    106 
    107 #define ICON_EXT_ASM       ICON_STR(FILE_NASM, "", "")
    108 #define ICON_EXT_BIN       ICON_STR(OCT_FILE_BINARY, "", "📓")
    109 #define ICON_EXT_COFFEE    ICON_STR(MFIZZ_COFFEE_BEAN, "", "")
    110 #define ICON_EXT_CSS       ICON_STR(MFIZZ_CSS3, "", "🦋")
    111 #define ICON_EXT_DEB       ICON_STR(MFIZZ_DEBIAN, "", ICON_LINUX)
    112 #define ICON_EXT_DIFF      ICON_STR(FILE_DIFF, "", "📋")
    113 #define ICON_EXT_GO        ICON_STR(MFIZZ_GO, "󰟓", "")
    114 #define ICON_EXT_JSON      ICON_STR(ICON_JAVASCRIPT, "", ICON_JAVASCRIPT)
    115 #define ICON_EXT_LUA       ICON_STR(FILE_LUA, "", "🌘")
    116 #define ICON_EXT_M         ICON_STR("", "󰠞", "📊")
    117 #define ICON_EXT_MAT       ICON_STR("", "", "")
    118 #define ICON_EXT_MD        ICON_STR(DEV_MARKDOWN, "", "📝")
    119 #define ICON_EXT_MSI       ICON_STR(FA_WINDOWS, "󰍲", "🪟")
    120 #define ICON_EXT_NIX       ICON_STR("", "", "")
    121 #define ICON_EXT_PATCH     ICON_STR(FILE_PATCH, "", "🩹")
    122 #define ICON_EXT_PHP       ICON_STR(MFIZZ_PHP, "", "🌐")
    123 #define ICON_EXT_ROM       ICON_STR(FA_LOCK, "󰊖", "")
    124 #define ICON_EXT_RSS       ICON_STR(FA_RSS_SQUARE, "", "📡")
    125 #define ICON_EXT_RTF       ICON_STR(ICON_PDF, "󰈦", ICON_PDF)
    126 #define ICON_EXT_SCALA     ICON_STR(MFIZZ_SCALA, "", "")
    127 #define ICON_EXT_SLN       ICON_STR(DEV_VISUALSTUDIO, "", "")
    128 #define ICON_EXT_TS        ICON_STR(FILE_TS, "", "")
    129 
    130 
    131 /*
    132  * Hex xterm 256 color code, 0 to follow file specific (if any)
    133  * Codes: https://jonasjacek.github.io/colors/
    134  * Spectrum sorted: https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg
    135  * Color names: https://www.ditig.com/256-colors-cheat-sheet
    136  */
    137 #define COLOR_LIST \
    138 	COLOR_X(COLOR_VIDEO,         45)  /* Turquoise2 */ \
    139 	COLOR_X(COLOR_VIDEO1,       226)  /* Yellow1 */ \
    140 	COLOR_X(COLOR_AUDIO,        220)  /* Gold1 */ \
    141 	COLOR_X(COLOR_AUDIO1,       205)  /* HotPink */ \
    142 	COLOR_X(COLOR_IMAGE,         82)  /* Chartreuse2 */ \
    143 	COLOR_X(COLOR_DOCS,         202)  /* OrangeRed1 */ \
    144 	COLOR_X(COLOR_ARCHIVE,      209)  /* Salmon1 */ \
    145 	COLOR_X(COLOR_C,             81)  /* SteelBlue1 */ \
    146 	COLOR_X(COLOR_JAVA,          32)  /* DeepSkyBlue3 */ \
    147 	COLOR_X(COLOR_JAVASCRIPT,    47)  /* SpringGreen2 */ \
    148 	COLOR_X(COLOR_REACT,         39)  /* DeepSkyBlue1 */ \
    149 	COLOR_X(COLOR_CSS,          199)  /* DeepPink1 */ \
    150 	COLOR_X(COLOR_PYTHON,       227)  /* LightGoldenrod1 */ \
    151 	COLOR_X(COLOR_LUA,           19)  /* Blue3 */ \
    152 	COLOR_X(COLOR_DOCUMENT,      15)  /* White */ \
    153 	COLOR_X(COLOR_FSHARP,        31)  /* DeepSkyBlue3 */ \
    154 	COLOR_X(COLOR_RUBY,         160)  /* Red3 */ \
    155 	COLOR_X(COLOR_SCALA,        196)  /* Red1 */ \
    156 	COLOR_X(COLOR_SHELL,         47)  /* SpringGreen2 */ \
    157 	COLOR_X(COLOR_VIM,           28)  /* Green4 */ \
    158 	COLOR_X(COLOR_ELIXIR,       104)  /* MediumPurple */ \
    159 
    160 /* X-Macro: https://en.wikipedia.org/wiki/X_Macro */
    161 #define COLOR_X(N, V) N = (V),
    162 enum { COLOR_LIST };
    163 #undef COLOR_X
    164 #define COLOR_X(N, V) N,
    165 static const unsigned char init_colors[] = { COLOR_LIST };
    166 #undef COLOR_X
    167 
    168 #ifdef ICONS_GENERATE
    169 	/* temporary struct using `char *`. the hash-table generator will
    170 	 * output a more optimized version which uses `char[]` instead reducing
    171 	 * indirection and the total binary size.
    172 	 */
    173 	struct icon_pair { const char *match; const char *icon; unsigned char color; };
    174 #endif
    175 
    176 struct icon { const char *icon; unsigned char color; };
    177 
    178 static const struct icon dir_icon  = {ICON_DIRECTORY, 0};
    179 static const struct icon file_icon = {ICON_FILE, 0};
    180 static const struct icon exec_icon = {ICON_EXEC, 0};
    181 
    182 static const struct icon_pair icons_name[] = {
    183 	{".git",        ICON_GIT,       0},
    184 	{"Desktop",     ICON_DESKTOP,   0},
    185 	{"Documents",   ICON_BRIEFCASE, 0},
    186 	{"Downloads",   ICON_DOWNLOADS, 0},
    187 	{"Music",       ICON_MUSIC,     0},
    188 	{"Pictures",    ICON_PICTURES,  0},
    189 	{"Public",      ICON_PUBLIC,    0},
    190 	{"Templates",   ICON_TEMPLATES, 0},
    191 	{"Videos",      ICON_VIDEOS,    0},
    192 	{"CHANGELOG",   ICON_CHANGELOG, COLOR_DOCS},
    193 	{"configure",   ICON_CONFIGURE, 0},
    194 	{"License",     ICON_LICENSE,   COLOR_DOCS},
    195 	{"Makefile",    ICON_MAKEFILE,  0},
    196 };
    197 
    198 #ifdef ICONS_GENERATE
    199 /*
    200  * The goal here is to provide a small set of default values. We don't try to
    201  * provide icons for everything under the sun because keeping a _huge_ table of
    202  * icons would: increase binary size, increase memory usage, decrease performance.
    203  *
    204  * Users are free to customize this *locally* as they see fit. Only open a
    205  * pull-request if you think your changes are aligned with the goal described
    206  * above.
    207  */
    208 
    209 static const struct icon_pair icons_ext[] = { /* All entries are case-insensitive */
    210 	/* Numbers */
    211 	{"1",          ICON_MANUAL,         COLOR_DOCS},
    212 	{"7z",         ICON_ARCHIVE,        COLOR_ARCHIVE},
    213 
    214 	/* A */
    215 	{"a",          ICON_MANUAL,         0},
    216 	{"apk",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    217 	{"asm",        ICON_EXT_ASM,        0},
    218 	{"aup",        ICON_MUSICFILE,      COLOR_AUDIO},
    219 	{"avi",        ICON_VIDEOFILE,      COLOR_VIDEO},
    220 
    221 	/* B */
    222 	{"bat",        ICON_SCRIPT,         0},
    223 	{"bib",        ICON_TEX,            0},
    224 	{"bin",        ICON_EXT_BIN,        0},
    225 	{"bmp",        ICON_PICTUREFILE,    COLOR_IMAGE},
    226 	{"bz2",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    227 
    228 	/* C */
    229 	{"c",          ICON_C,              COLOR_C},
    230 	{"c++",        ICON_CPLUSPLUS,      COLOR_C},
    231 	{"cabal",      ICON_HASKELL,        COLOR_VIDEO},
    232 	{"cab",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    233 	{"cbr",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    234 	{"cbz",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    235 	{"cc",         ICON_CPLUSPLUS,      COLOR_C},
    236 	{"class",      ICON_JAVA,           COLOR_JAVA},
    237 	{"clj",        ICON_CLOJURE,        0},
    238 	{"cljc",       ICON_CLOJURE,        0},
    239 	{"cljs",       ICON_CLOJURE,        0},
    240 	{"cls",        ICON_TEX,            0},
    241 	{"cmake",      ICON_MAKEFILE,       0},
    242 	{"coffee",     ICON_EXT_COFFEE,     0},
    243 	{"conf",       ICON_CONFIGURE,      0},
    244 	{"cpio",       ICON_ARCHIVE,        COLOR_ARCHIVE},
    245 	{"cpp",        ICON_CPLUSPLUS,      COLOR_C},
    246 	{"css",        ICON_EXT_CSS,        COLOR_CSS},
    247 	{"cue",        ICON_PLAYLIST,       COLOR_AUDIO},
    248 	{"cvs",        ICON_CONFIGURE,      0},
    249 	{"cxx",        ICON_CPLUSPLUS,      COLOR_C},
    250 
    251 	/* D */
    252 	{"db",         ICON_DATABASE,       0},
    253 	{"deb",        ICON_EXT_DEB,        COLOR_ARCHIVE},
    254 	{"diff",       ICON_EXT_DIFF,       0},
    255 	{"dll",        ICON_SCRIPT,         0},
    256 	{"djvu",       ICON_DJVU,           COLOR_DOCS},
    257 	{"doc",        ICON_WORDDOC,        COLOR_DOCUMENT},
    258 	{"docx",       ICON_WORDDOC,        COLOR_DOCUMENT},
    259 
    260 	/* E */
    261 	{"ejs",        ICON_JAVASCRIPT,     COLOR_JAVASCRIPT},
    262 	{"elf",        ICON_LINUX,          0},
    263 	{"epub",       ICON_PDF,            COLOR_DOCS},
    264 	{"exe",        ICON_EXEC,           0},
    265 	{"ex",         ICON_ELIXIR,         COLOR_ELIXIR},
    266 	{"eex",        ICON_ELIXIR,         COLOR_ELIXIR},
    267 	{"exs",        ICON_ELIXIR,         COLOR_ELIXIR},
    268 
    269 	/* F */
    270 	{"f#",         ICON_FSHARP,         COLOR_FSHARP},
    271 	{"fen",        ICON_CHESS,          0},
    272 	{"flac",       ICON_MUSICFILE,      COLOR_AUDIO1},
    273 	{"flv",        ICON_VIDEOFILE,      COLOR_VIDEO},
    274 	{"fs",         ICON_FSHARP,         COLOR_FSHARP},
    275 	{"fsi",        ICON_FSHARP,         COLOR_FSHARP},
    276 	{"fsscript",   ICON_FSHARP,         COLOR_FSHARP},
    277 	{"fsx",        ICON_FSHARP,         COLOR_FSHARP},
    278 
    279 	/* G */
    280 	{"gem",        ICON_RUBY,           COLOR_RUBY},
    281 	{"gif",        ICON_PICTUREFILE,    COLOR_IMAGE},
    282 	{"go",         ICON_EXT_GO,         COLOR_C},
    283 	{"gpg",        ICON_ENCRYPT,        COLOR_ARCHIVE},
    284 	{"gz",         ICON_ARCHIVE,        COLOR_ARCHIVE},
    285 	{"gzip",       ICON_ARCHIVE,        COLOR_ARCHIVE},
    286 
    287 	/* H */
    288 	{"h",          ICON_C,              COLOR_C},
    289 	{"hh",         ICON_CPLUSPLUS,      COLOR_C},
    290 	{"hpp",        ICON_CPLUSPLUS,      COLOR_C},
    291 	{"hs",         ICON_HASKELL,        COLOR_ELIXIR},
    292 	{"htaccess",   ICON_CONFIGURE,      0},
    293 	{"htpasswd",   ICON_CONFIGURE,      0},
    294 	{"htm",        ICON_HTML,           0},
    295 	{"html",       ICON_HTML,           0},
    296 	{"hxx",        ICON_CPLUSPLUS,      COLOR_C},
    297 	{"heex",       ICON_ELIXIR,         COLOR_ELIXIR},
    298 
    299 	/* I */
    300 	{"ico",        ICON_PICTUREFILE,    COLOR_IMAGE},
    301 	{"ini",        ICON_CONFIGURE,      0},
    302 	{"img",        ICON_OPTICALDISK,    COLOR_ARCHIVE},
    303 	{"iso",        ICON_OPTICALDISK,    COLOR_ARCHIVE},
    304 
    305 	/* J */
    306 	{"jar",        ICON_JAVA,           COLOR_JAVA},
    307 	{"java",       ICON_JAVA,           COLOR_JAVA},
    308 	{"jl",         ICON_CONFIGURE,      0},
    309 	{"jpeg",       ICON_PICTUREFILE,    COLOR_IMAGE},
    310 	{"jpg",        ICON_PICTUREFILE,    COLOR_IMAGE},
    311 	{"js",         ICON_JAVASCRIPT,     COLOR_JAVASCRIPT},
    312 	{"json",       ICON_EXT_JSON,       COLOR_JAVASCRIPT},
    313 	{"jsx",        ICON_REACT,          COLOR_REACT},
    314 	{"jxl",        ICON_PICTUREFILE,    COLOR_IMAGE},
    315 
    316 	/* K */
    317 	{"ksh",        ICON_SCRIPT,         COLOR_SHELL},
    318 
    319 	/* L */
    320 	{"lha",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    321 	{"lhs",        ICON_HASKELL,        COLOR_VIM},
    322 	{"log",        ICON_DOCUMENT,       0},
    323 	{"lua",        ICON_EXT_LUA,        COLOR_LUA},
    324 	{"lzh",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    325 	{"lzma",       ICON_ARCHIVE,        COLOR_ARCHIVE},
    326 
    327 	/* M */
    328 	{"m",          ICON_EXT_M,          COLOR_C},
    329 	{"m4a",        ICON_MUSICFILE,      COLOR_AUDIO},
    330 	{"m4v",        ICON_VIDEOFILE,      COLOR_VIDEO},
    331 	{"markdown",   ICON_EXT_MD,         COLOR_DOCS},
    332 	{"mat",        ICON_EXT_MAT,        COLOR_C},
    333 	{"md",         ICON_EXT_MD,         COLOR_DOCS},
    334 	{"mk",         ICON_MAKEFILE,       0},
    335 	{"mkv",        ICON_VIDEOFILE,      COLOR_VIDEO},
    336 	{"mov",        ICON_VIDEOFILE,      COLOR_VIDEO},
    337 	{"mp3",        ICON_MUSICFILE,      COLOR_AUDIO},
    338 	{"mp4",        ICON_VIDEOFILE,      COLOR_VIDEO1},
    339 	{"mpeg",       ICON_VIDEOFILE,      COLOR_VIDEO},
    340 	{"mpg",        ICON_VIDEOFILE,      COLOR_VIDEO},
    341 	{"msi",        ICON_EXT_MSI,        0},
    342 
    343 	/* N */
    344 	{"nix",        ICON_EXT_NIX,        COLOR_FSHARP},
    345 
    346 	/* O */
    347 	{"o",          ICON_MANUAL,         0},
    348 	{"ogg",        ICON_MUSICFILE,      COLOR_AUDIO},
    349 	{"opus",       ICON_MUSICFILE,      COLOR_AUDIO},
    350 	{"opdownload", ICON_DOWNLOADS,      0},
    351 	{"otf",        ICON_FONT,           0},
    352 	{"out",        ICON_LINUX,          0},
    353 
    354 	/* P */
    355 	{"part",       ICON_DOWNLOADS,      0},
    356 	{"patch",      ICON_EXT_PATCH,      0},
    357 	{"pdf",        ICON_PDF,            COLOR_DOCS},
    358 	{"pgn",        ICON_CHESS,          0},
    359 	{"php",        ICON_EXT_PHP,        0},
    360 	{"png",        ICON_PICTUREFILE,    COLOR_IMAGE},
    361 	{"ppt",        ICON_POWERPOINT,     0},
    362 	{"pptx",       ICON_POWERPOINT,     0},
    363 	{"psb",        ICON_PHOTOSHOP,      0},
    364 	{"psd",        ICON_PHOTOSHOP,      0},
    365 	{"py",         ICON_PYTHON,         COLOR_PYTHON},
    366 	{"pyc",        ICON_PYTHON,         COLOR_PYTHON},
    367 	{"pyd",        ICON_PYTHON,         COLOR_PYTHON},
    368 	{"pyo",        ICON_PYTHON,         COLOR_PYTHON},
    369 
    370 	/* Q */
    371 
    372 	/* R */
    373 	{"rar",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    374 	{"rb",         ICON_RUBY,           COLOR_RUBY},
    375 	{"rc",         ICON_CONFIGURE,      0},
    376 	{"rom",        ICON_EXT_ROM,        0},
    377 	{"rpm",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    378 	{"rs",         ICON_RUST,           COLOR_DOCS},
    379 	{"rss",        ICON_EXT_RSS,        0},
    380 	{"rtf",        ICON_EXT_RTF,        0},
    381 
    382 	/* S */
    383 	{"sass",       ICON_SASS,           COLOR_CSS},
    384 	{"scss",       ICON_SASS,           COLOR_CSS},
    385 	{"so",         ICON_MANUAL,         0},
    386 	{"scala",      ICON_EXT_SCALA,      COLOR_SCALA},
    387 	{"sh",         ICON_SCRIPT,         COLOR_SHELL},
    388 	{"slim",       ICON_SCRIPT,         COLOR_DOCUMENT},
    389 	{"sln",        ICON_EXT_SLN,        0},
    390 	{"sql",        ICON_DATABASE,       0},
    391 	{"srt",        ICON_SUBTITLE,       0},
    392 	{"sty",        ICON_TEX,            0},
    393 	{"sub",        ICON_SUBTITLE,       0},
    394 	{"svg",        ICON_PICTUREFILE,    COLOR_IMAGE},
    395 
    396 	/* T */
    397 	{"tar",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    398 	{"tex",        ICON_TEX,            0},
    399 	{"tgz",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    400 	{"ts",         ICON_EXT_TS,         COLOR_JAVASCRIPT},
    401 	{"tsx",        ICON_REACT,          COLOR_REACT},
    402 	{"txt",        ICON_DOCUMENT,       COLOR_DOCUMENT},
    403 	{"txz",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    404 	{"ttf",        ICON_FONT,           0},
    405 
    406 	/* U */
    407 
    408 	/* V */
    409 	{"vid",        ICON_VIDEOFILE,      COLOR_VIDEO},
    410 	{"vim",        ICON_VIM,            COLOR_VIM},
    411 	{"vimrc",      ICON_VIM,            COLOR_VIM},
    412 	{"vtt",        ICON_SUBTITLE,       0},
    413 
    414 	/* W */
    415 	{"wav",        ICON_MUSICFILE,      COLOR_AUDIO},
    416 	{"webm",       ICON_VIDEOFILE,      COLOR_VIDEO},
    417 	{"webp",       ICON_PICTUREFILE,    COLOR_IMAGE},
    418 	{"wma",        ICON_VIDEOFILE,      COLOR_AUDIO},
    419 	{"wmv",        ICON_VIDEOFILE,      COLOR_VIDEO},
    420 
    421 	/* X */
    422 	{"xbps",       ICON_ARCHIVE,        COLOR_ARCHIVE},
    423 	{"xcf",        ICON_PICTUREFILE,    COLOR_IMAGE},
    424 	{"xhtml",      ICON_HTML,           0},
    425 	{"xls",        ICON_MS_EXCEL,       0},
    426 	{"xlsx",       ICON_MS_EXCEL,       0},
    427 	{"xml",        ICON_HTML,           0},
    428 	{"xz",         ICON_ARCHIVE,        COLOR_ARCHIVE},
    429 
    430 	/* Y */
    431 	{"yaml",       ICON_CONFIGURE,      COLOR_DOCUMENT},
    432 	{"yml",        ICON_CONFIGURE,      COLOR_DOCUMENT},
    433 
    434 	/* Z */
    435 	{"zip",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    436 	{"zsh",        ICON_SCRIPT,         COLOR_SHELL},
    437 	{"zst",        ICON_ARCHIVE,        COLOR_ARCHIVE},
    438 
    439 	/* Other */
    440 };
    441 #endif
    442 
    443 #endif /* defined(ICONS_GENERATE) || defined(ICONS_ENABLED) */
    444 
    445 #endif /* INCLUDE_ICONS_H */