objects = { "lc": "", "rc": "", # right of sequence "ec": "\033[39m\033[49m\033[0m", # end color "cl": "\033[K", # clear to end of line "rs": "\033[39m\033[49m\033[0m", # reset to ordinary "mh": "\033[39m\033[49m\033[0m", # disabled by default "ca": "\033[39m\033[49m\033[0m", # disabled by default "bd": "๐Ÿ–ด \033[38;2;234;198;255m\033[1m\033[3m", # block device "cd": "๏„  \033[38;2;157;121;214m\033[1m\033[3m", # char device "di": "๏„” \033[38;2;151;194;252m\033[1m\033[3m\033[4m", # dirs "do": "๓ฐ š \033[38;2;219;192;116m\033[1m\033[3m", # door "ex": "๎ฎž \033[38;2;255;200;135m\033[1m", # executable "fi": "๓ฐกฏ \033[38;2;174;175;176m", # file "ln": "๓ฐŒน \033[38;2;99;205;207m\033[3m\033[4m", # links "mi": "๎ช‡ \033[38;2;201;79;109m\033[3m\033[9m", # missing file "no": "\033[38;2;174;175;176m", # normal "or": "๓ฐŒบ \033[38;2;201;79;109m\033[3m\033[9m", # orphaned symlink "ow": "๓ฑ‡ง \033[38;2;174;175;176m", # other writable "pi": "๓ฐŸฅ \033[38;2;219;192;116m\033[1m\033[3m", # pipe "sg": "๏ƒ€ \033[38;2;206;124;59m\033[1m", # setgid "so": "๓ฑ„ˆ \033[38;2;255;230;154m\033[1m\033[3m", # socket "st": "๏„” ๓ฑฅ \033[38;2;113;156;214m\033[1m\033[4m", # sticky "su": "๏€‡ \033[38;2;244;162;97m\033[1m", # setuid "tw": "๏„” ๓ฑฌ \033[38;2;75;118;176m\033[1m\033[4m\033[3m", # other with sticky } categories = { "archives": { "color": "๎ช˜ \033[38;2;214;122;210m", "files": [ "*.7z", "*.CramFS", "*.Z", "*.ace", "*.alz", "*.apfs", "*.ar", "*.arc", "*.arj", "*.bz", "*.bz2", "*.bzip2", "*.cab", "*.chm", "*.cpio", "*.dmg", "*.dz", "*.ear", "*.ext", "*.fat", "*.gpt", "*.gta", "*.gtar", "*.gtz", "*.gz", "*.gzip", "*.hfs", "*.ihex", "*.iso", "*.jar", "*.lha", "*.lrz", "*.lz", "*.lz4", "*.lzh", "*.lzma", "*.lzo", "*.lzx", "*.mbr", "*.msi", "*.nsis", "*.ntfs", "*.qcow2", "*.rar", "*.rz", "*.sar", "*.squashfs", "*.swm", "*.t7z", "*.tar", "*.taz", "*.tbz", "*.tbz2", "*.tlz", "*.txz", "*.tz", "*.tzo", "*.tzst", "*.udf", "*.uefi", "*.vdi", "*.vhd", "*.vhdx", "*.vmdk", "*.war", "*.wim", "*.xar", "*.xpi", "*.xz", "*.z", "*.zip", "*.zoo", "*.zst", ] }, "audio": { "color": "๓ฐš \033[38;2;155;204;180m", "files": [ "*.726", "*.AMR", "*.AWB", "*.QCP", "*.aa3", "*.aac", "*.aal", "*.ac3", "*.acn", "*.adts", "*.aif", "*.aifc", "*.aiff", "*.amr", "*.ass", "*.at3", "*.atx", "*.au", "*.awb", "*.axa", "*.csd", "*.dls", "*.dts", "*.dtshd", "*.ecelp4800", "*.ecelp7470", "*.ecelp9600", "*.enw", "*.eol", "*.evb", "*.evc", "*.evw", "*.flac", "*.gsm", "*.hmf", "*.hvd", "*.hvp", "*.hvs", "*.kar", "*.koz", "*.l16", "*.lbc", "*.loas", "*.lvp", "*.ly", "*.m3u", "*.m4a", "*.mhas", "*.mid", "*.midi", "*.mka", "*.mlp", "*.mp1", "*.mp2", "*.mp3", "*.mpega", "*.mpga", "*.mscx", "*.mscz", "*.multitrack", "*.mus", "*.musd", "*.musicxml", "*.mxl", "*.mxmf", "*.oga", "*.ogg", "*.omg", "*.opus", "*.orc", "*.osf", "*.plj", "*.pls", "*.psid", "*.pya", "*.qcp", "*.ra", "*.ram", "*.rip", "*.rm", "*.s1m", "*.sco", "*.sd2", "*.sid", "*.sly", "*.smp", "*.smp3", "*.smv", "*.snd", "*.sofa", "*.spx", "*.uva", "*.uvva", "*.vbk", "*.vpm", "*.wav", "*.wax", "*.wma", "*.xhe", "*.xspf", ] }, "chemical": { "color": "๏’™ \033[38;2;91;140;116m", "files": [ "*.alc", "*.asn", "*.asn", "*.aso", "*.b", "*.bsd", "*.c3d", "*.cac", "*.cache", "*.cascii", "*.cbin", "*.cdx", "*.cef", "*.chm", "*.cif", "*.cmdf", "*.cml", "*.cpa", "*.csf", "*.csm", "*.csml", "*.ctab", "*.ctx", "*.cub", "*.cxf", "*.dx", "*.emb", "*.embl", "*.fch", "*.fchk", "*.gal", "*.gau", "*.gcg", "*.gen", "*.gjc", "*.gjf", "*.gpt", "*.hin", "*.ist", "*.istr", "*.jdx", "*.kin", "*.mcif", "*.mcm", "*.mif", "*.mmod", "*.mol", "*.moo", "*.mop", "*.mopcrt", "*.mpc", "*.mvb", "*.pdb", "*.prt", "*.rd", "*.ros", "*.rxn", "*.sd", "*.sdf", "*.smi", "*.spc", "*.sw", "*.tgf", "*.val", "*.vmd", "*.vms", "*.xtel", "*.xyz", "*.zmt", ] }, "config": { "color": "๎˜• \033[38;2;214;122;210m", "files": [ "*.conf", "*.ini", "*.ppd", "*.toml", "*.yaml", "*.yml", "*config", ] }, "database": { "color": "๎œ† \033[38;2;234;198;255m", "files": [ "*.bdb", "*.csv", "*.csvs", "*.db", "*.geojson", "*.json", "*.json?patch", "*.jsonld", "*.jsontd", "*.jsontm", "*.mdb", "*.qgs", "*.rdf", "*.rdf?crypt", "*.rss", "*.shp", "*.shx", "*.sql", "*.sqlite", "*.sqlite3", "*.xml", ] }, "document": { "color": "๓ฐ‰บ \033[38;2;255;255;255m", "files": [ "*.abw", "*.ai", "*.apkg", "*.book", "*.cbr", "*.cbz", "*.chrt", "*.doc", "*.docx", "*.dotx", "*.dvi", "*.eps", "*.eps2", "*.eps3", "*.epsf", "*.epsi", "*.epub", "*.fb", "*.fbdoc", "*.flw", "*.gan", "*.ggb", "*.ggs", "*.ggt", "*.gnumeric", "*.karbon", "*.kfo", "*.kon", "*.kpr", "*.kpt", "*.mm", "*.odb", "*.odc", "*.odf", "*.odg", "*.odi", "*.odm", "*.odp", "*.ods", "*.odt", "*.osm", "*.otc", "*.otg", "*.oth", "*.oti", "*.otm", "*.otp", "*.ots", "*.ott", "*.oxt", "*.pdf", "*.potm", "*.potx", "*.ppam", "*.pps", "*.ppsm", "*.ppsx", "*.ppt", "*.pptm", "*.pptx", "*.ps", "*.rtf", "*.sda", "*.sdc", "*.sdd", "*.sdp", "*.sds", "*.sdw", "*.sgl", "*.sldx", "*.sm", "*.smf", "*.smzip", "*.stc", "*.std", "*.sti", "*.stw", "*.sxc", "*.sxd", "*.sxg", "*.sxi", "*.sxm", "*.sxw", "*.vsd", "*.vsf", "*.vss", "*.vst", "*.vsw", "*.wpd", "*.xhtm", "*.xhtml", "*.xla", "*.xlam", "*.xlc", "*.xlm", "*.xls", "*.xlsb", "*.xlsm", "*.xlsx", "*.xlt", "*.xltm", "*.xltx", "*.xlw", "*.xodp", "*.xods", "*.xodt", "*.xotp", "*.xots", "*.xott", "*.xsl", "*.xslt", ] }, "electronics": { "color": "๎ชพ \033[38;2;255;230;154m", "files": [ "*.brd", "*.cpa", "*.csa", "*.dwm", "*.kicad_pro", "*.pro", "*.sch", ] }, "encryption": { "color": "๎ฌ‘ \033[38;2;239;117;147m", "files": [ "*.ac", "*.cer", "*.crl", "*.crt", "*.gpg", "*.kbx", "*.kdbx", "*.key", "*.p10", "*.p12", "*.p21", "*.p7c", "*.p7m", "*.p7r", "*.p7s", "*.p7z", "*.p8", "*.p8e", "*.pem", "*.pgp", "*.pki", "*.pkipath", ] }, "exec": { "color": "๓ฑ“ž \033[38;2;244;162;97m", "files": [ "*.bash", "*.bat", "*.bin", "*.com", "*.csh", "*.dll", "*.exe", "*.fish", "*.jnlp", "*.o", "*.pyc", "*.pyo", "*.sh", "*.so", "*.zsh", ] }, "font": { "color": "๎™™ \033[38;2;185;185;186m\033[3m", "files": [ "*.gsf", "*.otf", "*.pfa", "*.pfb", "*.ttc", "*.ttf", "*.woff", "*.woff2", ] }, "game": { "color": "๏„› \033[38;2;206;124;59m", "files": [ "*.32x", "*.3ds", "*.3dz", "*.Z1", "*.Z2", "*.Z3", "*.Z4", "*.Z5", "*.Z6", "*.Z7", "*.Z8", "*.a26", "*.a52", "*.a78", "*.amgp", "*.atr", "*.atx", "*.bas", "*.cas", "*.ccd", "*.cdi", "*.chd", "*.cso", "*.cso", "*.cue", "*.esc", "*.fam", "*.fds", "*.gam", "*.gamin", "*.gb", "*.gba", "*.gbc", "*.gd", "*.gdi", "*.gdnlib", "*.gdns", "*.gdscript", "*.gen", "*.gg", "*.godot", "*.inp", "*.jcd", "*.lnx", "*.mdf", "*.mds", "*.n64", "*.ndd", "*.nds", "*.nds", "*.nes", "*.nez", "*.nrg", "*.obg", "*.obgx", "*.pdn", "*.pgn", "*.pgn", "*.ptrom", "*.rom", "*.sbi", "*.sc", "*.sf7", "*.sfc", "*.sg", "*.sgf", "*.smc", "*.smd", "*.smk", "*.sms", "*.srm", "*.sub", "*.swc", "*.tres", "*.tscn", "*.v64", "*.vpk", "*.wad", "*.wbfs", "*.z1", "*.z2", "*.z3", "*.z4", "*.z5", "*.z6", "*.z7", "*.z8", ] }, "image": { "color": "๏€พ \033[38;2;91;140;116m", "files": [ "*.J2C", "*.J2K", "*.PGB", "*.apng", "*.art", "*.avci", "*.avcs", "*.avif", "*.azv", "*.b16", "*.bmp", "*.btf", "*.btif", "*.cdr", "*.cdt", "*.cgm", "*.cpt", "*.cr2", "*.crw", "*.djv", "*.djvu", "*.dpx", "*.drle", "*.dwg", "*.dxf", "*.emf", "*.erf", "*.exr", "*.fbs", "*.fig", "*.fit", "*.fits", "*.fpx", "*.fst", "*.fts", "*.gif", "*.hdr", "*.heic", "*.heics", "*.heif", "*.heifs", "*.hej2", "*.hif", "*.hsj2", "*.ico", "*.ief", "*.j2c", "*.j2k", "*.jfif", "*.jhc", "*.jls", "*.jng", "*.jp2", "*.jpe", "*.jpeg", "*.jpf", "*.jpg", "*.jpg2", "*.jpgm", "*.jph", "*.jphc", "*.jpm", "*.jpx", "*.jxl", "*.jxr", "*.jxra", "*.jxrs", "*.jxs", "*.jxsc", "*.jxsi", "*.jxss", "*.kra", "*.ktx", "*.ktx2", "*.mdi", "*.mmr", "*.nef", "*.ora", "*.orf", "*.pat", "*.pbm", "*.pcx", "*.pgb", "*.pgm", "*.png", "*.pnm", "*.ppm", "*.psd", "*.pti", "*.ras", "*.rgb", "*.rgbe", "*.rlc", "*.s1g", "*.s1j", "*.s1n", "*.sgi", "*.sgif", "*.sjp", "*.sjpg", "*.smil", "*.sml", "*.spn", "*.spng", "*.svg", "*.svgz", "*.tap", "*.tfx", "*.tif", "*.tiff", "*.uvg", "*.uvi", "*.uvvg", "*.uvvi", "*.vtf", "*.wbmp", "*.webp", "*.wmf", "*.xbm", "*.xcf", "*.xif", "*.xpm", "*.xwd", "*.xyze", ] }, "mail": { "color": "๎ฌœ \033[38;2;113;131;155m", "files": [ "*.art", "*.eml", "*.mail", "*.mbox", "*.oeb", "*.sieve", "*.u8dsn", "*.u8hdr", "*.u8mdn", "*.u8msg", ] }, "model": { "color": "๓ฐนœ \033[38;2;113;156;214m", "files": [ "*.3ds", "*.3mf", "*.FCMacro", "*.FCMat", "*.FCParam", "*.FCScript", "*.FCStd", "*.amf", "*.bary", "*.blend", "*.brep", "*.brp", "*.bsp", "*.cam", "*.cld", "*.cnc", "*.csg", "*.dae", "*.dib", "*.dor", "*.dwf", "*.gcode", "*.gdl", "*.glb", "*.gltf", "*.gsm", "*.gtw", "*.ifc", "*.ifcJSON", "*.iges", "*.igs", "*.ism", "*.jt", "*.lmp", "*.mesh", "*.moml", "*.msh", "*.msm", "*.mtl", "*.mts", "*.nc", "*.ncc", "*.ngc", "*.obj", "*.ogex", "*.poly", "*.pov", "*.prc", "*.pyox", "*.rsm", "*.scad", "*.silo", "*.step", "*.stl", "*.stp", "*.stpx", "*.stpxz", "*.stpz", "*.tooltable", "*.u3d", "*.usda", "*.usdz", "*.vds", "*.vrm", "*.vrml", "*.vtu", "*.win", "*.wrl", "*.x3d", "*.x3db", "*.x3dv", "*.x3dvz", "*.x3dz", "*.x_b", "*.x_t", "*.xmt_bin", "*.xmt_txt", ] }, "pkg": { "color": "๓ฐ– \033[38;2;163;41;71m", "files": [ "*.apk", "*.cpkg", "*.ddeb", "*.deb", "*.dpkg", "*.ebuild", "*.eclass", "*.gpkg", "*.mpkg", "*.onepkg", "*.pkg", "*.portpkg", "*.ppkg", "*.rpm", "*.xpak", ] }, "science": { "color": "๎‰ฟ \033[38;2;75;118;176m", "files": [ "*.2bit", "*.dna", "*.fa", "*.mseq", "*.sce", "*.scf", "*.sci", ] }, "temp": { "color": "๓ฐƒข \033[38;2;115;128;145m", "files": [ "*#", "*.%", "*.bak", "*.bk", "*.dl", "*.dpkg-dist", "*.dpkg-old", "*.old", "*.orig", "*.part", "*.rej", "*.rpmnew", "*.rpmorig", "*.rpmsave", "*.swp", "*.tmp", "*tmp", "*~", ] }, "text": { "color": "๎ซ„ \033[38;2;129;178;154m", "files": [ "*.3dm", "*.3dml", "*.CQL", "*.VFK", "*.a", "*.abc", "*.appcache", "*.ascii", "*.bib", "*.boo", "*.brf", "*.brl", "*.c", "*.c++", "*.cc", "*.ccc", "*.cls", "*.cnd", "*.coffee", "*.copyright", "*.cpp", "*.css", "*.curl", "*.cxx", "*.d", "*.dart", "*.diff", "*.dms", "*.dot", "*.dsc", "*.dxg", "*.es", "*.etx", "*.flt", "*.flx", "*.fly", "*.gcd", "*.ged", "*.gff3", "*.gv", "*.h", "*.h++", "*.hans", "*.hgl", "*.hh", "*.hpp", "*.hs", "*.htc", "*.htm", "*.html", "*.hxx", "*.ics", "*.ifb", "*.jad", "*.java", "*.js", "*.jtd", "*.latex", "*.lhs", "*.ltx", "*.ly", "*.lyx", "*.manifest", "*.markdown", "*.mc2", "*.md", "*.miz", "*.mjs", "*.moc", "*.mpf", "*.n3", "*.p", "*.pas", "*.patch", "*.php", "*.pl", "*.pm", "*.pot", "*.provn", "*.py", "*.rb", "*.roff", "*.rs", "*.rst", "*.scala", "*.sfv", "*.sgm", "*.sgml", "*.shaclc", "*.shc", "*.shex", "*.shtml", "*.si", "*.sl", "*.soa", "*.sos", "*.spdx", "*.spo", "*.spot", "*.srt", "*.sty", "*.t", "*.tag", "*.tcl", "*.tex", "*.text", "*.tk", "*.tm", "*.tr", "*.ts", "*.tsv", "*.ttl", "*.txt", "*.uri", "*.uris", "*.vcard", "*.vcf", "*.vcs", "*.vtt", "*.wgsl", "*.wml", "*.wmls", "*.zone", "*README", ] }, "video": { "color": "๏”ฌ \033[38;2;119;83;176m", "files": [ "*.asf", "*.avi", "*.axv", "*.dif", "*.dv", "*.dvb", "*.flc", "*.fli", "*.flv", "*.fvt", "*.gl", "*.lsf", "*.lsx", "*.m1v", "*.m2v", "*.m4s", "*.m4u", "*.m4v", "*.mj2", "*.mjp2", "*.mjpeg", "*.mjpg", "*.mkv", "*.mng", "*.mov", "*.movie", "*.mp4", "*.mp4v", "*.mpe", "*.mpeg", "*.mpg", "*.mpg4", "*.mpv", "*.mxu", "*.nim", "*.nuv", "*.ogm", "*.ogv", "*.ogx", "*.pyv", "*.qt", "*.rmvb", "*.s11", "*.s14", "*.s1q", "*.scs", "*.smo", "*.smov", "*.smpg", "*.ssw", "*.sswf", "*.ucf", "*.ucf-dist", "*.ucf-new", "*.ucf-old", "*.uvh", "*.uvm", "*.uvp", "*.uvs", "*.uvu", "*.uvv", "*.uvvh", "*.uvvm", "*.uvvp", "*.uvvs", "*.uvvu", "*.uvvv", "*.viv", "*.vob", "*.webm", "*.wm", "*.wmv", "*.wmx", "*.wvx", "*.yt", "*.yuv", ] }, } ls_colors = ":".join(f"{obj}={objects[obj]}" for obj in objects) for category in categories.values(): cat_txt = ":".join( f"{ext}={category['color']}" for ext in category["files"] ) ls_colors += ":" + cat_txt print(ls_colors)