Skip to content

Commit 70de2af

Browse files
author
Chirag Khandelwal
authored
Merge pull request #46 from Agamenon-sama/master
Added a lot more icons
2 parents a55e743 + c96a619 commit 70de2af

File tree

1 file changed

+42
-4
lines changed

1 file changed

+42
-4
lines changed

src/icons.c

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <stdarg.h>
66
#include <string.h>
77
#include <strings.h>
8+
#include <stdio.h>
89

910
// Default file icon is text file or normal link file
1011
#define DEFAULT_FILE_ICON "\uf15c"
@@ -21,6 +22,11 @@ static bool find_in(const char *of, const char *values, bool is_exact_match);
2122
#define IS(of, values) find_in(of, values, true)
2223
#define BEGINS(of, values) find_in(of, values, false)
2324

25+
#define BITMAP_IMAGE \
26+
"png, jpg, jpeg, gif, webp, bmp, ppm, pgm, pbm, pnm, tiff, ico, xbm, xpm" \
27+
"tga, avif, jp2, j2k, jxl, qoi, ktx, dds, wal"
28+
#define VECTOR_IMAGE "svg, ai, eps"
29+
2430
#define LOSSLESS_AUDIO \
2531
"8svx, iff, aiff, aif, aifc, au, snd, bwf, wav, wave, cdda, raw, pcm, sam, ra, ram, " \
2632
"flac, la, pac, ape, ofr, ofs, off, rka, shn, tak, tta, wv, brstm, dts, dtshd, dtsma, " \
@@ -32,6 +38,10 @@ static bool find_in(const char *of, const char *values, bool is_exact_match);
3238

3339
#define VIDEO "avi, flv, mkv, mov, mp4, ogv, webm"
3440

41+
#define MODEL_3D \
42+
"obj, gltf, glb, blend, 3ds, ase, dae, vta, mdl, md2, md3, mdc, md5mesh, " \
43+
"md5anim, md5camera, irr, irrmesh, ply, ac3d, vtk"
44+
3545
static const bool is_default_icon(const char *icon)
3646
{
3747
return strcmp(icon, DEFAULT_FILE_ICON) == 0 || strcmp(icon, DEFAULT_LINK_FILE_ICON) == 0;
@@ -88,7 +98,7 @@ static const char *get_file_icon_by_ext(const char *ext, const bool is_link)
8898

8999
else if(IS(ext, "json")) return "\ue60b";
90100
else if(IS(ext, "lock")) return "\uf023";
91-
else if(IS(ext, "ini, yaml, yml, env, toml")) return "\ue615";
101+
else if(IS(ext, "ini, yaml, yml, env, toml, conf, cfg")) return "\ue615";
92102

93103
// Data handling / manipulation
94104

@@ -102,12 +112,22 @@ static const char *get_file_icon_by_ext(const char *ext, const bool is_link)
102112

103113
// Terminal stuff
104114

105-
else if(IS(ext, "zsh, bash, sh")) return "\ue795";
115+
else if(IS(ext, "zsh, bash, sh, ps1")) return "\ue795";
106116
else if(BEGINS(ext, "zsh, bash")) return "\ue615";
107117
else if(BEGINS(ext, "vim")) return "\ue7c5";
108118

109119
// Databases
110-
else if(IS(ext, "sql, sqlite")) return "\ue706";
120+
else if(IS(ext, "sql, sqlite, db")) return "\ue706";
121+
122+
// Archive
123+
else if(IS(ext, "zip, rar, 7z, tar, a, ar, cab, pk3")) return "\uf187";
124+
125+
// Fonts
126+
else if(IS(ext, "ttf, otf, woff, woff2, eot")) return "\ue659";
127+
128+
// Image
129+
else if(IS(ext, BITMAP_IMAGE)) return "\ue60d";
130+
else if(IS(ext, VECTOR_IMAGE)) return "\uee24";
111131

112132
// Audio
113133
// lossless
@@ -119,6 +139,10 @@ static const char *get_file_icon_by_ext(const char *ext, const bool is_link)
119139

120140
// Video
121141
else if(IS(ext, VIDEO)) return "\uf03d";
142+
143+
// 3d Models and related
144+
else if(IS(ext, MODEL_3D)) return "\uf1b2";
145+
122146
// Languages
123147

124148
// C, C++
@@ -169,6 +193,17 @@ static const char *get_file_icon_by_ext(const char *ext, const bool is_link)
169193
else if(IS(ext, "swift")) return "\ue755";
170194
// Typescript
171195
else if(IS(ext, "ts, tsx")) return "\ue69d";
196+
// Qt stuff
197+
else if(IS(ext, "qml, qrc, qsb, qss")) return "\uf375";
198+
199+
// Misc.
200+
else if(IS(ext, "pdf")) return "\ue67d";
201+
else if(IS(ext, "torrent")) return "\uf0ec";
202+
else if(IS(ext, "log")) return "\uf1ea";
203+
else if(IS(ext, "exe")) return "\ue70f";
204+
else if(IS(ext, "cache")) return "\uf49b";
205+
else if(IS(ext, "sln")) return "\ue70c";
206+
else if(IS(ext, "desktop")) return "\uf108";
172207

173208
if(is_link) return DEFAULT_LINK_FILE_ICON;
174209
return DEFAULT_FILE_ICON;
@@ -177,11 +212,14 @@ static const char *get_file_icon_by_ext(const char *ext, const bool is_link)
177212
static const char *get_file_icon_by_name(const char *name, const bool is_link)
178213
{
179214
// Development
180-
if(BEGINS(name, "Makefile")) return "\ue673";
215+
if(BEGINS(name, "Makefile, CMake")) return "\ue673";
181216
else if(BEGINS(name, "Dockerfile, docker-compose")) return "\uf308";
182217

183218
// Other
184219
if(BEGINS(name, "LICENSE, license, copying, COPYING")) return "\uf2c2";
220+
else if(BEGINS(name, "AUTHOR, author, CONTRIBUTOR, contributor")) return "\uf4fd";
221+
else if(IS(name, "config")) return "\ue615";
222+
else if(IS(name, "TODO, todo, TODO.txt, todo.txt")) return "\ue69c";
185223
// TODO:
186224
if(is_link) return DEFAULT_LINK_FILE_ICON;
187225
return DEFAULT_FILE_ICON;

0 commit comments

Comments
 (0)