Skip to content

Instantly share code, notes, and snippets.

@gabrielzschmitz
Created July 19, 2022 16:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save gabrielzschmitz/21f936007bac0acb9935a25c2843f2f5 to your computer and use it in GitHub Desktop.
Save gabrielzschmitz/21f936007bac0acb9935a25c2843f2f5 to your computer and use it in GitHub Desktop.
static char *
get_icon(Pane *pane, size_t entpos, Cpair col, mode_t mode){
char *ex, *icon;
char *full_str;
full_str = basename(pane->direntr[entpos].name);
ex = get_ext(full_str);
switch (mode & S_IFMT) {
case S_IFDIR: /* folders */
if(strcmp(ex, "own") == 0) /* downloads */
icon = " ";
else if(strcmp(ex, "oc") == 0) /* documents */
icon = " ";
else if(strcmp(ex, "us") == 0) /* music */
icon = "ﱘ ";
else if(strcmp(ex, "ic") == 0) /* pictures */
icon = " ";
else if(strcmp(ex, "id") == 0) /* videos */
icon = " ";
else if(strcmp(ex, "ext") == 0) /* nextcloud */
icon = " ";
else if(strcmp(ex, "stea") == 0) /* steam */
icon = " ";
else
/* Uncomment to get the folders "extensions"
* then change above (comment again after) */
//icon = ex; /* debug */
icon = " "; /* default folder */
break;
case S_IFLNK: /* links */
icon = " ";
break;
case S_IFREG:
case S_IFBLK:
case S_IFCHR:
case S_IFIFO:
case S_IFSOCK: /* files */
if(strcmp(ex, "c") == 0)
icon = " ";
else if(strcmp(ex, "h") == 0)
icon = " ";
else if(strcmp(ex, "mk") == 0 || strcmp(ex, "akef") == 0)
icon = " ";
else if(strcmp(ex, "o") == 0 || strcmp(ex, "a") == 0 || strcmp(ex, "so") == 0)
icon = " ";
else if(strcmp(ex, "git") == 0 || strcmp(ex, "giti") == 0)
icon = " ";
else if(strcmp(ex, "diff") == 0 || strcmp(ex, "patch") == 0 || strcmp(ex, "atch") == 0)
icon = " ";
else if(strcmp(ex, "c++") == 0)
icon = "ﭱ ";
else if(strcmp(ex, "cs") == 0)
icon = " ";
else if(strcmp(ex, "html") == 0)
icon = " ";
else if(strcmp(ex, "css") == 0)
icon = " ";
else if(strcmp(ex, "md") == 0)
icon = " ";
else if(strcmp(ex, "bib") == 0)
icon = " ";
else if(strcmp(ex, "sh") == 0 || strcmp(ex, "ksh") == 0)
icon = " ";
else if(strcmp(ex, "Rmd") == 0 || strcmp(ex, "r") == 0 || strcmp(ex, "R") == 0 || strcmp(ex, "rmd") == 0 || strcmp(ex, "m") == 0)
icon = "ﳒ ";
else if(strcmp(ex, "go") == 0)
icon = "ﳑ ";
else if(strcmp(ex, "jar") == 0 || strcmp(ex, "java") == 0)
icon = " ";
else if(strcmp(ex, "js") == 0)
icon = " ";
else if(strcmp(ex, "php") == 0)
icon = " ";
else if(strcmp(ex, "py") == 0)
icon = " ";
else if(strcmp(ex, "swift") == 0)
icon = "ﯣ ";
else if(strcmp(ex, "ts") == 0)
icon = "ﯤ ";
else if(strcmp(ex, "1") == 0 || strcmp(ex, "man") == 0)
icon = " ";
else if(strcmp(ex, "pdf") == 0 || strcmp(ex, "djvu") == 0 || strcmp(ex, "epub") == 0){
icon = " ";
}
else if(strcmp(ex, "zip") == 0 || strcmp(ex, "rar") == 0 || strcmp(ex, "tar") == 0 || strcmp(ex, "gz") == 0 || strcmp(ex, "7z") == 0 || strcmp(ex, "gzip") == 0)
icon = " ";
else if(strcmp(ex, "txt") == 0 || strcmp(ex, "me") == 0 || strcmp(ex, "ms") == 0 || strcmp(ex, "org") == 0 || strcmp(ex, "doc") == 0 || strcmp(ex, "docx") == 0 || strcmp(ex, "odt") == 0 || strcmp(ex, "gdoc") == 0 || strcmp(ex, "gdocx") == 0 || strcmp(ex, "tex") == 0)
icon = " ";
else if(strcmp(ex, "xls") == 0 || strcmp(ex, "xlsx") == 0 || strcmp(ex, "ods") == 0 || strcmp(ex, "csv") == 0)
icon = " ";
else if(strcmp(ex, "odp") == 0 || strcmp(ex, "pptx") == 0)
icon = " ";
else if(strcmp(ex, "mp3") == 0 || strcmp(ex, "wav") == 0 || strcmp(ex, "flac") == 0 || strcmp(ex, "m4a") == 0 || strcmp(ex, "opus") == 0 || strcmp(ex, "ogg") == 0)
icon = " ";
else if(strcmp(ex, "png") == 0 || strcmp(ex, "webp") == 0 || strcmp(ex, "ico") == 0 || strcmp(ex, "jpg") == 0 || strcmp(ex, "jpe") == 0 || strcmp(ex, "jpeg") == 0 || strcmp(ex, "gif") == 0 || strcmp(ex, "art") == 0 || strcmp(ex, "tif") == 0 || strcmp(ex, "tiff") == 0 || strcmp(ex, "xpm") == 0 || strcmp(ex, "icon") == 0 || strcmp(ex, "xcf") == 0 || strcmp(ex, "psd") == 0 || strcmp(ex, "bmp") == 0)
icon = " ";
else if(strcmp(ex, "svg") == 0 || strcmp(ex, "ps") == 0 || strcmp(ex, "ai") == 0 || strcmp(ex, "cdr") == 0 || strcmp(ex, "inx") == 0 || strcmp(ex, "odg") == 0)
icon = "縉";
else if(strcmp(ex, "mp4") == 0 || strcmp(ex, "kden") == 0 || strcmp(ex, "mov") == 0 || strcmp(ex, "mkv") == 0 || strcmp(ex, "webm") == 0 || strcmp(ex, "mpeg") == 0 || strcmp(ex, "avi") == 0 || strcmp(ex, "wmv") == 0 || strcmp(ex, "mpg") == 0 || strcmp(ex, "flv") == 0 || strcmp(ex, "m4b") == 0)
icon = " ";
else if(strcmp(ex, "xml") == 0)
icon = "爵";
else if(strcmp(ex, "gpg") == 0 || strcmp(ex, "pgp") == 0 || strcmp(ex, "icen") == 0)
icon = " ";
else if(strcmp(ex, "vim") == 0 || strcmp(ex, "nvim") == 0)
icon = " ";
else if(strcmp(ex, "nfo") == 0 || strcmp(ex, "info") == 0)
icon = " ";
else if(strcmp(ex, "torrent") == 0 || strcmp(ex, "part") == 0)
icon = "ﯲ ";
else if(strcmp(ex, "iso") == 0 || strcmp(ex, "img") == 0 || strcmp(ex, "rom") == 0 || strcmp(ex, "dmg") == 0)
icon = "﫭 ";
else if(strcmp(ex, "log") == 0)
icon = "ﴬ ";
else if(strcmp(ex, "z64") == 0 || strcmp(ex, "v64") == 0 || strcmp(ex, "n64") == 0 || strcmp(ex, "jap") == 0 || strcmp(ex, "gba") == 0 || strcmp(ex, "gb") == 0 || strcmp(ex, "gbc") == 0 || strcmp(ex, "agb") == 0 || strcmp(ex, "nes") == 0 || strcmp(ex, "sms") == 0 || strcmp(ex, "smc") == 0 || strcmp(ex, "sfc") == 0 || strcmp(ex, "fds") == 0 || strcmp(ex, "nds") == 0 || strcmp(ex, "vb") == 0 || strcmp(ex, "gcm") == 0 || strcmp(ex, "3ds") == 0 || strcmp(ex, "gdi") == 0 || strcmp(ex, "rvz") == 0 || strcmp(ex, "srl") == 0 || strcmp(ex, "sms") == 0 || strcmp(ex, "sgb") == 0 || strcmp(ex, "gcz") == 0 || strcmp(ex, "3dz") == 0 || strcmp(ex, "gen") == 0 || strcmp(ex, "smd") == 0 || strcmp(ex, "gg") == 0 || strcmp(ex, "32x") == 0 || strcmp(ex, "st") == 0 || strcmp(ex, "atr") == 0 || strcmp(ex, "mii") == 0 || strcmp(ex, "pss") == 0 || strcmp(ex, "ngp") == 0 || strcmp(ex, "ngc") == 0 || strcmp(ex, "elf") == 0 || strcmp(ex, "wud") == 0 || strcmp(ex, "nro") == 0)
icon = " ";
else
//icon = ex; /* debug */
icon = "";
break;
default:
//icon = ex; /* debug */
icon = "";
break;
}
return icon;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment