├── .gitignore ├── img ├── screenshot.png └── ls_colors_logo.svg ├── tests └── no_dupes ├── run_tests ├── install.sh ├── Xresources-theme ├── ranger ├── plugin_linemode.py └── isene.py ├── README.md ├── LICENSE └── LS_COLORS /.gitignore: -------------------------------------------------------------------------------- 1 | test/* 2 | *.swp 3 | *.swo 4 | -------------------------------------------------------------------------------- /img/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isene/LS_COLORS/HEAD/img/screenshot.png -------------------------------------------------------------------------------- /tests/no_dupes: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | 4 | exts="$(dircolors LS_COLORS | head -n1 | sed 's/=[^:]*//g ; s/:/\n/g')" 5 | exts_sorted="$(sort <<< "$exts")" 6 | exts_uniq="$(sort -u <<< "$exts")" 7 | 8 | diff --color=auto --text --report-identical-files <(echo "$exts_uniq") <(echo "$exts_sorted") 9 | -------------------------------------------------------------------------------- /run_tests: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | 4 | errors=0 5 | 6 | for file in ./tests/* ; do 7 | if [[ -e "$file" ]] ; then 8 | echo "$file" 9 | echo "--" 10 | bash "$file" ; ((errors += $?)) 11 | echo "" 12 | fi 13 | done 14 | 15 | if [[ "$errors" -ne 0 ]] ; then 16 | echo "Test failures: $errors" 17 | exit "$errors" 18 | fi 19 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # 3 | 4 | lscolors_data_dir="${XDG_DATA_HOME:-$HOME/.local/share}" 5 | ranger_colorscheme_dir="$HOME/.config/ranger/colorschemes" 6 | 7 | if dircolors -b LS_COLORS > lscolors.sh && dircolors -c LS_COLORS > lscolors.csh ; then 8 | if mv -t "$lscolors_data_dir" lscolors.sh lscolors.csh ; then 9 | cat < 6 | 7 | from __future__ import (absolute_import, division, print_function) 8 | 9 | import codecs 10 | 11 | import ranger.api 12 | from ranger.core.linemode import LinemodeBase 13 | 14 | 15 | @ranger.api.register_linemode 16 | class MyLinemode(LinemodeBase): 17 | name = "classify" 18 | 19 | def filetitle(self, fobj, metadata): 20 | return_value = fobj.relative_path 21 | if fobj.is_directory: 22 | return_value += "/" 23 | elif fobj.is_link: 24 | return_value += "@" 25 | elif fobj.is_socket: 26 | return_value += "=" 27 | elif fobj.is_fifo: 28 | return_value += "|" 29 | return return_value 30 | 31 | def infostring(self, fobj, metadata): 32 | raise NotImplementedError 33 | -------------------------------------------------------------------------------- /img/ls_colors_logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | terminal 15 | 16 | 17 | 18 | 19 | $ ls -la --color 20 | 21 | 22 | 23 | drwxr-xr-x Documents/ 24 | drwxr-xr-x Pictures/ 25 | 26 | 27 | -rwxr-xr-x script.sh* 28 | 29 | 30 | -rw-r--r-- readme.txt 31 | -rw-r--r-- data.json 32 | 33 | 34 | -rw-r--r-- backup.tar.gz 35 | 36 | 37 | lrwxrwxrwx link -> target 38 | 39 | 40 | -rw-r--r-- photo.jpg 41 | 42 | 43 | -rw-r--r-- main.c 44 | 45 | 46 | -rw-r--r-- .bashrc 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | LS_COLORS 65 | Terminal Color Themes 66 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LS_COLORS 2 | 3 | [![Shell](https://img.shields.io/badge/Shell-4EAA25?style=flat&logo=gnu-bash&logoColor=white)](https://www.gnu.org/software/bash/) 4 | [![License](https://img.shields.io/badge/License-Public%20Domain-brightgreen.svg)](https://unlicense.org/) 5 | [![GitHub stars](https://img.shields.io/github/stars/isene/LS_COLORS.svg)](https://github.com/isene/LS_COLORS/stargazers) 6 | [![Stay Amazing](https://img.shields.io/badge/Stay-Amazing-blue.svg)](https://isene.org) 7 | 8 | LS_COLORS Logo 9 |
10 | 11 | This is a color scheme for your terminal, suitable to use as your `LS_COLORS` 12 | environment variable. Most of the colors use the extended color map, described 13 | in the ECMA-48 document; in other words, you'll need a terminal with 14 | capabilities of displaying 256 colors to take advantage of this. 15 | 16 | Some 500+ different filetypes/extensions are supported. 17 | 18 | The color scheme of [the original repo](https://github.com/trapd00r/LS_COLORS) 19 | seemed somewhat random and lacking an overall color philosophy. I decided to 20 | rewrite the complete color scheme based on this set of categories: 21 | 22 | |FILE TYPES | COLOR/FORMATTING 23 | |--------------------|----------------- 24 | |Directories | Bold light blue 25 | |Symlinks | Bold gray (bold italics pink is orphaned) 26 | |System files | Underlined red 27 | |Diff/Patch | Bright pink (italics/bold) 28 | |Files to ignore | Dark gray 29 | |Text | Yellow 30 | |Markdown | Orange 31 | |HTML-type files | Brown 32 | |Office-type files | Burgundy-purple 33 | |PDF and related | Red-purple 34 | |Media files/images | Purple 35 | |Programming related | Blue 36 | |Binaries | Bright cyan 37 | |Executables | Green 38 | |Other file types | White 39 | 40 | File types within each category can have different shades of that color. 41 | 42 | I use this as a sensible alias for ls in my .zshrc: 43 | 44 | ``` 45 | alias ls='ls --color=always -FH --group-directories-first' 46 | ``` 47 | For a consistent color experience between your command line and a curses file 48 | manager, you may want to take a look at [RTFM](https://github.com/isene/RTFM). 49 | 50 | There is also a corresponding [Ranger](https://ranger.github.io/) color scheme included `isene.py`. This covers only the categories above (no shading of files within a category - with a couple of exceptions) and not all the possible filetypes of the LS_COLORS provided. This will suffice until the Ranger project provides a color scheme that simply parses LS_COLORS instead. To use the isene.py Ranger color scheme, set it in your ranger/rc.conf. 51 | 52 | I have also included a linemode plugin for ranger `ranger/plugin_linemode.py`. Drop this file into your `~/.config/ranger/plugins/` directory and add this line to your ranger rc.conf: 53 | 54 | ``` 55 | default_linemode classify 56 | ``` 57 | 58 | # Installation 59 | Clone this repo and run the install script `install.sh` 60 | 61 | # Note for fish users 62 | Users of the fish shell should source the resulting lscolors.csh file in their config.fish. 63 | 64 | # What does it look like? 65 | Here's a screenshot with three terminals with ranger running in the left terminal and the other two showing the output of ls: 66 | 67 | ![](img/screenshot.png) 68 | 69 | # License 70 | See [the original repo](https://github.com/trapd00r/LS_COLORS). 71 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The "Artistic License" 2 | 3 | Preamble 4 | 5 | The intent of this document is to state the conditions under which a 6 | Package may be copied, such that the Copyright Holder maintains some 7 | semblance of artistic control over the development of the package, 8 | while giving the users of the package the right to use and distribute 9 | the Package in a more-or-less customary fashion, plus the right to make 10 | reasonable modifications. 11 | 12 | Definitions: 13 | 14 | "Package" refers to the collection of files distributed by the 15 | Copyright Holder, and derivatives of that collection of files 16 | created through textual modification. 17 | 18 | "Standard Version" refers to such a Package if it has not been 19 | modified, or has been modified in accordance with the wishes 20 | of the Copyright Holder as specified below. 21 | 22 | "Copyright Holder" is whoever is named in the copyright or 23 | copyrights for the package. 24 | 25 | "You" is you, if you're thinking about copying or distributing 26 | this Package. 27 | 28 | "Reasonable copying fee" is whatever you can justify on the 29 | basis of media cost, duplication charges, time of people involved, 30 | and so on. (You will not be required to justify it to the 31 | Copyright Holder, but only to the computing community at large 32 | as a market that must bear the fee.) 33 | 34 | "Freely Available" means that no fee is charged for the item 35 | itself, though there may be fees involved in handling the item. 36 | It also means that recipients of the item may redistribute it 37 | under the same conditions they received it. 38 | 39 | 1. You may make and give away verbatim copies of the source form of the 40 | Standard Version of this Package without restriction, provided that you 41 | duplicate all of the original copyright notices and associated disclaimers. 42 | 43 | 2. You may apply bug fixes, portability fixes and other modifications 44 | derived from the Public Domain or from the Copyright Holder. A Package 45 | modified in such a way shall still be considered the Standard Version. 46 | 47 | 3. You may otherwise modify your copy of this Package in any way, provided 48 | that you insert a prominent notice in each changed file stating how and 49 | when you changed that file, and provided that you do at least ONE of the 50 | following: 51 | 52 | a) place your modifications in the Public Domain or otherwise make them 53 | Freely Available, such as by posting said modifications to Usenet or 54 | an equivalent medium, or placing the modifications on a major archive 55 | site such as uunet.uu.net, or by allowing the Copyright Holder to include 56 | your modifications in the Standard Version of the Package. 57 | 58 | b) use the modified Package only within your corporation or organization. 59 | 60 | c) rename any non-standard executables so the names do not conflict 61 | with standard executables, which must also be provided, and provide 62 | a separate manual page for each non-standard executable that clearly 63 | documents how it differs from the Standard Version. 64 | 65 | d) make other distribution arrangements with the Copyright Holder. 66 | 67 | 4. You may distribute the programs of this Package in object code or 68 | executable form, provided that you do at least ONE of the following: 69 | 70 | a) distribute a Standard Version of the executables and library files, 71 | together with instructions (in the manual page or equivalent) on where 72 | to get the Standard Version. 73 | 74 | b) accompany the distribution with the machine-readable source of 75 | the Package with your modifications. 76 | 77 | c) give non-standard executables non-standard names, and clearly 78 | document the differences in manual pages (or equivalent), together 79 | with instructions on where to get the Standard Version. 80 | 81 | d) make other distribution arrangements with the Copyright Holder. 82 | 83 | 5. You may charge a reasonable copying fee for any distribution of this 84 | Package. You may charge any fee you choose for support of this 85 | Package. You may not charge a fee for this Package itself. However, 86 | you may distribute this Package in aggregate with other (possibly 87 | commercial) programs as part of a larger (possibly commercial) software 88 | distribution provided that you do not advertise this Package as a 89 | product of your own. You may embed this Package's interpreter within 90 | an executable of yours (by linking); this shall be construed as a mere 91 | form of aggregation, provided that the complete Standard Version of the 92 | interpreter is so embedded. 93 | 94 | 6. The scripts and library files supplied as input to or produced as 95 | output from the programs of this Package do not automatically fall 96 | under the copyright of this Package, but belong to whoever generated 97 | them, and may be sold commercially, and may be aggregated with this 98 | Package. If such scripts or library files are aggregated with this 99 | Package via the so-called "undump" or "unexec" methods of producing a 100 | binary executable image, then distribution of such an image shall 101 | neither be construed as a distribution of this Package nor shall it 102 | fall under the restrictions of Paragraphs 3 and 4, provided that you do 103 | not represent such an executable image as a Standard Version of this 104 | Package. 105 | 106 | 7. C subroutines (or comparably compiled subroutines in other 107 | languages) supplied by you and linked into this Package in order to 108 | emulate subroutines and variables of the language defined by this 109 | Package shall not be considered part of this Package, but are the 110 | equivalent of input as in Paragraph 6, provided these subroutines do 111 | not change the language in any way that would cause it to fail the 112 | regression tests for the language. 113 | 114 | 8. Aggregation of this Package with a commercial distribution is always 115 | permitted provided that the use of this Package is embedded; that is, 116 | when no overt attempt is made to make this Package's interfaces visible 117 | to the end user of the commercial distribution. Such use shall not be 118 | construed as a distribution of this Package. 119 | 120 | 9. The name of the Copyright Holder may not be used to endorse or promote 121 | products derived from this software without specific prior written permission. 122 | 123 | 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR 124 | IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 125 | WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 126 | 127 | The End 128 | -------------------------------------------------------------------------------- /ranger/isene.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2009-2013 Roman Zimbelmann 2 | # This software is distributed under the terms of the GNU GPL version 3. 3 | # Geir Isene's ranger colorscheme - corresponding with the LS_COLORS: 4 | # 5 | 6 | # FIRST DEFINE THE FILE TYPES 7 | # See: https://github.com/ranger/ranger/blob/master/doc/colorschemes.md 8 | import ranger.gui.widgets.browsercolumn 9 | import ranger.gui.context 10 | 11 | # Add your key names 12 | ranger.gui.context.CONTEXT_KEYS.append('textfiles') 13 | ranger.gui.context.CONTEXT_KEYS.append('pdffiles') 14 | ranger.gui.context.CONTEXT_KEYS.append('officefiles') 15 | ranger.gui.context.CONTEXT_KEYS.append('htmlfiles') 16 | ranger.gui.context.CONTEXT_KEYS.append('pgmfiles') 17 | ranger.gui.context.CONTEXT_KEYS.append('binaries') 18 | ranger.gui.context.CONTEXT_KEYS.append('hyperlist') 19 | ranger.gui.context.CONTEXT_KEYS.append('npcfiles') 20 | 21 | # Set to False (the default value) 22 | ranger.gui.context.Context.textfiles = False 23 | ranger.gui.context.Context.pdffiles = False 24 | ranger.gui.context.Context.officefiles = False 25 | ranger.gui.context.Context.htmlfiles = False 26 | ranger.gui.context.Context.pgmfiles = False 27 | ranger.gui.context.Context.binaries = False 28 | ranger.gui.context.Context.hyperlist = False 29 | ranger.gui.context.Context.npcfiles = False 30 | 31 | OLD_HOOK_BEFORE_DRAWING = ranger.gui.widgets.browsercolumn.hook_before_drawing 32 | 33 | def new_hook_before_drawing(fsobject, color_list): 34 | if fsobject.extension in ['txt', 'md', 'markdown', 'tex', 'book', 'rss', 'log', 'ini', 'conf', 'cfg', 'cf' ]: 35 | color_list.append('textfiles') 36 | if fsobject.extension in ['pdf', 'PDF', 'ps', 'djvu', 'mobi', 'epub']: 37 | color_list.append('pdffiles') 38 | if fsobject.extension in ['odt', 'odb', 'rtf', 'doc', 'docx', 'dotx', 'odp', 'ppt', 'pptx', 'pps', 'csv', 'ods', 'xls', 'xlsx', 'pages', 'numers', 'key', 'pez']: 39 | color_list.append('officefiles') 40 | if fsobject.extension in ['htm', 'html', 'css', 'sass', 'scss', 'jhtm', 'eml']: 41 | color_list.append('htmlfiles') 42 | if fsobject.extension in ['rb', 'py', 'php', 'java', 'jsp', 'js', 'vb', 'vba', 'pl', 'hs', 'fs', 'sh', '41', 'rpn']: 43 | color_list.append('pgmfiles') 44 | if fsobject.extension in ['7z', 'a', 'bz2', 'gz', 'lz', 'rar', 'tar', 'tgz', 'z', 'zip', 'apk', 'deb', 'rpm', 'jar', 'jar', 'cab', 'pak', 'dmg', 'asc', 'gpg', 'pgp', 'enc', 'pem', 'sig']: 45 | color_list.append('binaries') 46 | if fsobject.extension in ['hl', 'woim']: 47 | color_list.append('hyperlist') 48 | if fsobject.extension == 'npc': 49 | color_list.append('npcfiles') 50 | 51 | return OLD_HOOK_BEFORE_DRAWING(fsobject, color_list) 52 | 53 | ranger.gui.widgets.browsercolumn.hook_before_drawing = new_hook_before_drawing 54 | 55 | # THEN DEFINE THE COLOR SCHEME 56 | from ranger.gui.colorscheme import ColorScheme 57 | from ranger.gui.color import * 58 | 59 | class Default(ColorScheme): 60 | progress_bar_color = black 61 | 62 | def use(self, context): 63 | fg, bg, attr = default_colors 64 | 65 | if context.reset: 66 | return default_colors 67 | 68 | elif context.in_browser: 69 | if context.selected: 70 | attr = reverse 71 | else: 72 | attr = normal 73 | if context.empty or context.error: 74 | bg = red 75 | if context.border: 76 | fg = default 77 | if context.media: 78 | if context.image: 79 | fg = 207 80 | else: 81 | fg = 135 82 | # Specific file types as defined above... 83 | if context.textfiles: 84 | fg = 228 85 | if context.pdffiles: 86 | fg = 218 87 | if context.officefiles: 88 | fg = 211 89 | if context.htmlfiles: 90 | fg = 173 91 | if context.pgmfiles: 92 | fg = 75 93 | if context.binaries: 94 | fg = 116 95 | if context.hyperlist: 96 | fg = 208 97 | if context.npcfiles: 98 | fg = 166 99 | #... to here 100 | if context.container: 101 | fg = red 102 | if context.directory: 103 | attr |= bold 104 | fg = 111 105 | elif context.executable and not \ 106 | any((context.media, context.container, 107 | context.fifo, context.socket)): 108 | fg = 46 109 | if context.socket: 110 | fg = 196 111 | if context.fifo or context.device: 112 | fg = 124 113 | if context.device: 114 | attr |= bold 115 | if context.link: 116 | attr |= bold 117 | fg = context.good and 248 or 212 118 | if context.tag_marker and not context.selected: 119 | attr |= bold 120 | if fg in (red, magenta): 121 | fg = white 122 | else: 123 | fg = red 124 | if not context.selected and (context.cut or context.copied): 125 | fg = black 126 | attr |= bold 127 | if context.main_column: 128 | if context.selected: 129 | attr |= bold 130 | if context.marked: 131 | attr |= bold 132 | fg = yellow 133 | if context.badinfo: 134 | if attr & reverse: 135 | bg = magenta 136 | else: 137 | fg = magenta 138 | 139 | elif context.in_titlebar: 140 | if context.hostname: 141 | fg = context.bad and red or green 142 | elif context.directory: 143 | attr |= bold 144 | fg = 111 145 | elif context.tab: 146 | if context.good: 147 | bg = cyan 148 | elif context.link: 149 | attr |= bold 150 | fg = 246 151 | 152 | elif context.in_statusbar: 153 | attr |= bold 154 | if context.permissions: 155 | if context.good: 156 | fg = white 157 | elif context.bad: 158 | attr |= bold 159 | fg = red 160 | if context.marked: 161 | attr |= bold | reverse 162 | fg = white 163 | if context.message: 164 | if context.bad: 165 | attr |= bold 166 | fg = red 167 | if context.loaded: 168 | bg = self.progress_bar_color 169 | 170 | if context.text: 171 | if context.highlight: 172 | attr |= reverse 173 | 174 | if context.in_taskview: 175 | if context.title: 176 | fg = blue 177 | 178 | if context.selected: 179 | attr |= reverse 180 | 181 | if context.loaded: 182 | if context.selected: 183 | fg = self.progress_bar_color 184 | else: 185 | bg = self.progress_bar_color 186 | 187 | return fg, bg, attr 188 | -------------------------------------------------------------------------------- /LS_COLORS: -------------------------------------------------------------------------------- 1 | # LS_COLORS 2 | 3 | # INFO {{{1 4 | # 5 | # Fork by Geir Isene : 6 | # Colors changed from the original, new file types added. 7 | # Harmonized with Ranger color scheme isene.py 8 | # 9 | # The color scheme of the original repo 10 | # seemed somewhat random and lacking an overall color philosophy. I decided to 11 | # rewrite the complete color scheme based on a logical set of categories. 12 | # File types within each category can have different shades of that color. 13 | 14 | # From the original repo: 15 | # Maintainers: Magnus Woldrich , 16 | # Ryan Delaney OpenGPG: 0D98863B4E1D07B6 17 | # URL: https://github.com/trapd00r/LS_COLORS 18 | # 19 | # This is a collection of extension:color mappings, suitable to use as your 20 | # LS_COLORS environment variable. Most of them use the extended color map, 21 | # described in the ECMA-48 document; in other words, you'll need a terminal 22 | # with capabilities of displaying 256 colors. 23 | # 24 | # As of this writing, over 500 different filetypes/extensions are supported. 25 | # That's indeed a lot of extensions, but there's a lot more! Therefore I need 26 | # your help. 27 | # 28 | # Fork this project on github, add the extensions you are missing, and send me 29 | # a pull request. 30 | # 31 | # For files that usually end up next to each other, like html, css and js, 32 | # try to pick colors that fit nicely together. Filetypes with multiple 33 | # possible extensions, like htm and html, should have the same color. 34 | 35 | # This program is distributed in the hope that it will be useful, but WITHOUT ANY 36 | # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 37 | # PARTICULAR PURPOSE. See the Perl Artistic License for more details. 38 | # 39 | # This program is free software: you can redistribute it and/or modify it under 40 | # the terms of the Perl Artistic License as published by the Perl Foundation, 41 | # either version 1.0 of the License, or (at your option) any later version. 42 | # 43 | # You should have received a copy of the Perl Artistic License along 44 | # with this program. If not, see . 45 | 46 | # core {{{1 47 | BLK 38;5;196;4 48 | CAPABILITY 38;5;197;4 49 | CHR 38;5;198;4 50 | DIR 38;5;111;1 51 | DOOR 38;5;197;4 52 | EXEC 38;5;46 53 | FIFO 38;5;124;4 54 | FILE 0 55 | #LINK target 56 | LINK 38;5;248;1 57 | MULTIHARDLINK 38;5;248;3 58 | # "NORMAL don't reset the bold attribute - 59 | # https://github.com/trapd00r/LS_COLORS/issues/11 60 | #NORMAL 38;5;254 61 | NORMAL 0 62 | ORPHAN 38;5;212;3 63 | OTHER_WRITABLE 38;5;197;4;100 64 | SETGID 38;5;255;4;100 65 | SETUID 38;5;255;4;100;1 66 | SOCK 38;5;196;4 67 | STICKY 38;5;255;3 68 | STICKY_OTHER_WRITABLE 38;5;255;3;100 69 | 70 | *LS_COLORS 38;5;229;1 # :-) 71 | # }}} 72 | # documents {{{1 73 | *README 38;5;221 74 | *README.rst 38;5;221 75 | *README.md 38;5;221 76 | *LICENSE 38;5;221 77 | *COPYING 38;5;221 78 | *INSTALL 38;5;221 79 | *COPYRIGHT 38;5;221 80 | *AUTHORS 38;5;221 81 | *HISTORY 38;5;221 82 | *CONTRIBUTORS 38;5;221 83 | *PATENTS 38;5;221 84 | *VERSION 38;5;221 85 | *NOTICE 38;5;221 86 | *CHANGES 38;5;221 87 | .log 38;5;224 88 | # plain-text {{{2 89 | .txt 38;5;228 90 | # book files 91 | .book 38;5;228 92 | # HyperList/woim 93 | .hl 38;5;208 94 | .woim 38;5;208 95 | # Amar RPG .npc files 96 | .npc 38;5;166 97 | # markup {{{2 98 | .etx 38;5;214 99 | .info 38;5;214 100 | .markdown 38;5;214 101 | .md 38;5;214 102 | .mkd 38;5;214 103 | .nfo 38;5;214 104 | .pod 38;5;214 105 | .rst 38;5;214 106 | .tex 38;5;214 107 | .textile 38;5;214 108 | # key-value, non-relational data {{{2 109 | .bib 38;5;178 110 | .json 38;5;178 111 | .jsonl 38;5;178 112 | .ndjson 38;5;178 113 | .msg 38;5;178 114 | .pgn 38;5;178 115 | .rss 38;5;178 116 | .xml 38;5;178 117 | .fxml 38;5;178 118 | .toml 38;5;178 119 | .yaml 38;5;178 120 | .yml 38;5;178 121 | .RData 38;5;178 122 | .rdata 38;5;178 123 | .xsd 38;5;178 124 | .dtd 38;5;178 125 | .sgml 38;5;178 126 | .rng 38;5;178 127 | .rnc 38;5;178 128 | # }}} 129 | # PDF related {{{2 130 | .cbr 38;5;218 131 | .cbz 38;5;218 132 | .chm 38;5;218 133 | .djvu 38;5;218 134 | .pdf 38;5;218 135 | .PDF 38;5;218 136 | .mobi 38;5;218 137 | .epub 38;5;218 138 | # words {{{3 139 | .docm 38;5;211 140 | .doc 38;5;211 141 | .docx 38;5;211 142 | .dotx 38;5;211 143 | .odb 38;5;211 144 | .odt 38;5;211 145 | .rtf 38;5;211 146 | # presentation {{{3 147 | .odp 38;5;212 148 | .pps 38;5;212 149 | .ppt 38;5;212 150 | .pptx 38;5;212 151 | # Powerpoint show 152 | .ppts 38;5;212 153 | # Powerpoint with enabled macros 154 | .pptxm 38;5;212 155 | # Powerpoint show with enabled macros 156 | .pptsm 38;5;212 157 | # spreadsheet {{{3 158 | .csv 38;5;210 159 | .tsv 38;5;210 160 | # Open document spreadsheet 161 | .ods 38;5;210 162 | .xla 38;5;210 163 | # Excel spreadsheet 164 | .xls 38;5;210 165 | .xlsx 38;5;210 166 | # Excel spreadsheet with macros 167 | .xlsxm 38;5;210 168 | # Excel module 169 | .xltm 38;5;210 170 | .xltx 38;5;210 171 | # macOS office suite {{{3 172 | .pages 38;5;211 173 | .numbers 38;5;210 174 | .key 38;5;212 175 | .pez 38;5;212 176 | # }}} 177 | # }}} 178 | # configs {{{2 179 | *config 38;5;150 180 | *cfg 38;5;150 181 | *cf 38;5;150 182 | *conf 38;5;150 183 | *rc 38;5;150 184 | *authorized_keys 38;5;150 185 | *known_hosts 38;5;150 186 | .ini 38;5;150 187 | .plist 38;5;150 188 | # vim 189 | .viminfo 38;5;150 190 | # cisco VPN client configuration 191 | .pcf 38;5;150 192 | # adobe photoshop proof settings file 193 | .psf 38;5;150 194 | # Sublime Text config 195 | .hidden-color-scheme 38;5;190 196 | .hidden-tmTheme 38;5;190 197 | .last-run 38;5;190 198 | .merged-ca-bundle 38;5;190 199 | .sublime-build 38;5;190 200 | .sublime-commands 38;5;190 201 | .sublime-keymap 38;5;190 202 | .sublime-settings 38;5;190 203 | .sublime-snippet 38;5;190 204 | .sublime-project 38;5;190 205 | .sublime-workspace 38;5;190 206 | .tmTheme 38;5;190 207 | .user-ca-bundle 38;5;190 208 | # eclipse 209 | .epf 38;5;117 210 | # }}} 211 | # }}} 212 | # code {{{1 213 | # version control {{{2 214 | .git 38;5;240 215 | .gitignore 38;5;238 216 | .gitattributes 38;5;238 217 | .gitmodules 38;5;238 218 | 219 | # shell {{{2 220 | .awk 38;5;151 221 | .bash 38;5;151 222 | .bat 38;5;151 223 | .BAT 38;5;151 224 | .sed 38;5;151 225 | .sh 38;5;151 226 | .zsh 38;5;151 227 | .vim 38;5;151 228 | .kak 38;5;151 229 | 230 | # interpreted {{{2 231 | .ahk 38;5;75 232 | # python 233 | .py 38;5;75 234 | .ipynb 38;5;75 235 | # ruby 236 | .rb 38;5;75 237 | .gemspec 38;5;75 238 | # perl 239 | .pl 38;5;75 240 | .PL 38;5;75 241 | .t 38;5;75 242 | # sql 243 | .msql 38;5;104 244 | .mysql 38;5;104 245 | .pgsql 38;5;104 246 | .sql 38;5;104 247 | # Tool Command Language 248 | .tcl 38;5;75 249 | # R language 250 | .r 38;5;75 251 | .R 38;5;75 252 | # GrADS script 253 | .gs 38;5;75 254 | # Clojure 255 | .clj 38;5;75 256 | .cljs 38;5;75 257 | .cljc 38;5;75 258 | # Clojure gorilla REPL worksheet 259 | .cljw 38;5;75 260 | # Scala 261 | .scala 38;5;75 262 | # Dart 263 | .dart 38;5;75 264 | 265 | # compiled {{{2 266 | # 267 | # assembly language 268 | .asm 38;5;75 269 | # LISP 270 | .cl 38;5;75 271 | .lisp 38;5;75 272 | .rkt 38;5;75 273 | # lua 274 | .lua 38;5;75 275 | # Moonscript 276 | .moon 38;5;75 277 | # C 278 | .c 38;5;75 279 | .C 38;5;75 280 | .h 38;5;75 281 | .H 38;5;75 282 | .tcc 38;5;75 283 | # C++ 284 | .c++ 38;5;75 285 | .h++ 38;5;75 286 | .hpp 38;5;75 287 | .hxx 38;5;75 288 | .ii 38;5;75 289 | # method file for Objective C 290 | .M 38;5;75 291 | .m 38;5;75 292 | # Csharp 293 | .cc 38;5;75 294 | .cs 38;5;75 295 | .cp 38;5;75 296 | .cpp 38;5;75 297 | .cxx 38;5;75 298 | # Crystal 299 | .cr 38;5;75 300 | # Google golang 301 | .go 38;5;75 302 | # fortran 303 | .f 38;5;75 304 | .F 38;5;75 305 | .for 38;5;75 306 | .ftn 38;5;75 307 | .f90 38;5;75 308 | .F90 38;5;75 309 | .f95 38;5;75 310 | .F95 38;5;75 311 | .f03 38;5;75 312 | .F03 38;5;75 313 | .f08 38;5;75 314 | .F08 38;5;75 315 | # Nim 316 | .nim 38;5;75 317 | .nimble 38;5;75 318 | # pascal 319 | .s 38;5;75 320 | .S 38;5;75 321 | # Rust 322 | .rs 38;5;75 323 | # AppleScript 324 | .scpt 38;5;75 325 | # Swift 326 | .swift 38;5;75 327 | # ? 328 | .sx 38;5;75 329 | # Vala 330 | .vala 38;5;75 331 | .vapi 38;5;75 332 | # interface file in GHC - https://github.com/trapd00r/LS_COLORS/pull/9 333 | .hi 38;5;75 334 | # haskell 335 | .hs 38;5;75 336 | .lhs 38;5;75 337 | # agda 338 | .agda 38;5;75 339 | .lagda 38;5;75 340 | .lagda.tex 38;5;75 341 | .lagda.rst 38;5;75 342 | .lagda.md 38;5;75 343 | .agdai 38;5;75 344 | # Zig 345 | .zig 38;5;75 346 | # V 347 | .v 38;5;75 348 | # RPN/HP-41 349 | .rpn 38;5;75 350 | .41 38;5;75 351 | 352 | # binaries {{{2 353 | # compiled apps for interpreted languages 354 | .pyc 38;5;74 355 | # }}} 356 | # orchestration {{{2 357 | .tf 38;5;117 358 | .tfstate 38;5;117 359 | .tfvars 38;5;117 360 | # orchestration 2}}} 361 | # html {{{2 362 | .css 38;5;173 363 | .less 38;5;173 364 | .sass 38;5;173 365 | .scss 38;5;173 366 | .htm 38;5;173 367 | .html 38;5;173 368 | .jhtm 38;5;173 369 | .mht 38;5;173 370 | .eml 38;5;173 371 | .mustache 38;5;173 372 | # }}} 373 | # java {{{2 374 | .coffee 38;5;75 375 | .java 38;5;75 376 | .js 38;5;75 377 | .mjs 38;5;75 378 | .jsm 38;5;75 379 | .jsp 38;5;75 380 | # }}} 381 | # php {{{2 382 | .php 38;5;75 383 | # CakePHP view scripts and helpers 384 | .ctp 38;5;75 385 | # Twig template engine 386 | .twig 38;5;75 387 | # }}} 388 | # vb/a {{{2 389 | .vb 38;5;75 390 | .vba 38;5;75 391 | .vbs 38;5;75 392 | # 2}}} 393 | # Build stuff {{{2 394 | *Dockerfile 38;5;150 395 | .dockerignore 38;5;240 396 | *Makefile 38;5;150 397 | *MANIFEST 38;5;246 398 | *pm_to_blib 38;5;240 399 | # Functional Configuration 400 | .nix 38;5;150 401 | .dhall 38;5;150 402 | # ruby rake 403 | .rake 38;5;150 404 | # automake 405 | .am 38;5;150 406 | .in 38;5;150 407 | .hin 38;5;150 408 | .scan 38;5;150 409 | .m4 38;5;150 410 | .old 38;5;150 411 | .out 38;5;150 412 | .SKIP 38;5;150 413 | # }}} 414 | # patch files {{{2 415 | .diff 38;5;225;3 416 | .patch 38;5;225;1 417 | #}}} 418 | # graphics {{{1 419 | .bmp 38;5;207 420 | .dicom 38;5;207 421 | .tiff 38;5;207 422 | .tif 38;5;207 423 | .TIFF 38;5;207 424 | .cdr 38;5;207 425 | .flif 38;5;207 426 | .gif 38;5;207 427 | .icns 38;5;207 428 | .ico 38;5;207 429 | .jpeg 38;5;207 430 | .JPG 38;5;207 431 | .jpg 38;5;207 432 | .nth 38;5;207 433 | .png 38;5;207 434 | .psd 38;5;207 435 | .pxd 38;5;207 436 | .pxm 38;5;207 437 | .xpm 38;5;207 438 | .webp 38;5;207 439 | # }}} 440 | # vector {{{1 441 | .ai 38;5;206 442 | .eps 38;5;206 443 | .epsf 38;5;206 444 | .drw 38;5;206 445 | .ps 38;5;206 446 | .svg 38;5;206 447 | # }}} 448 | # video {{{1 449 | .avi 38;5;135 450 | .divx 38;5;135 451 | .IFO 38;5;135 452 | .m2v 38;5;135 453 | .m4v 38;5;135 454 | .mkv 38;5;135 455 | .MOV 38;5;135 456 | .mov 38;5;135 457 | .mp4 38;5;135 458 | .mpeg 38;5;135 459 | .mpg 38;5;135 460 | .ogm 38;5;135 461 | .rmvb 38;5;135 462 | .sample 38;5;135 463 | .wmv 38;5;135 464 | # mobile/streaming {{{2 465 | .3g2 38;5;141 466 | .3gp 38;5;141 467 | .gp3 38;5;141 468 | .webm 38;5;141 469 | .gp4 38;5;141 470 | .asf 38;5;141 471 | .flv 38;5;141 472 | .ts 38;5;141 473 | .ogv 38;5;141 474 | .f4v 38;5;141 475 | # }}} 476 | # lossless {{{2 477 | .VOB 38;5;115;1 478 | .vob 38;5;115;1 479 | # }}} 480 | # subtitles {{{1 481 | .ass 38;5;140 482 | .srt 38;5;140 483 | .ssa 38;5;140 484 | .sub 38;5;140 485 | .sup 38;5;140 # bitmap image track 486 | .vtt 38;5;140 487 | #}}} 488 | # audio {{{1 489 | .3ga 38;5;147 490 | .S3M 38;5;147 491 | .aac 38;5;147 492 | .amr 38;5;147 493 | .au 38;5;147 494 | .caf 38;5;147 495 | .dat 38;5;147 496 | .dts 38;5;147 497 | .fcm 38;5;147 498 | .m4a 38;5;147 499 | .mid 38;5;147 500 | .mod 38;5;147 501 | .mp3 38;5;147 502 | .mp4a 38;5;147 503 | .oga 38;5;147 504 | .ogg 38;5;147 505 | .opus 38;5;147 506 | .s3m 38;5;147 507 | .sid 38;5;147 508 | .wma 38;5;147 509 | # lossless 510 | .ape 38;5;147;1 511 | .aiff 38;5;147;1 512 | .cda 38;5;147;1 513 | .flac 38;5;147;1 514 | .alac 38;5;147;1 515 | .midi 38;5;147;1 516 | .pcm 38;5;147;1 517 | .wav 38;5;147;1 518 | .wv 38;5;147;1 519 | .wvc 38;5;147;1 520 | 521 | # }}} 522 | # fonts {{{1 523 | .afm 38;5;181 524 | .fon 38;5;181 525 | .fnt 38;5;181 526 | .pfb 38;5;181 527 | .pfm 38;5;181 528 | .ttf 38;5;181 529 | .otf 38;5;181 530 | # Web Open Font Format 531 | .woff 38;5;181 532 | .woff2 38;5;181 533 | # postscript fonts 534 | .PFA 38;5;181 535 | .pfa 38;5;181 536 | # }}} 537 | # archives {{{1 538 | .7z 38;5;116 539 | .a 38;5;116 540 | .arj 38;5;116 541 | .bz2 38;5;116 542 | .cpio 38;5;116 543 | .gz 38;5;116 544 | .lrz 38;5;116 545 | .lz 38;5;116 546 | .lzma 38;5;116 547 | .lzo 38;5;116 548 | .rar 38;5;116 549 | .s7z 38;5;116 550 | .sz 38;5;116 551 | .tar 38;5;116 552 | .tgz 38;5;116 553 | .xz 38;5;116 554 | .z 38;5;116 555 | .zip 38;5;116 556 | .zipx 38;5;116 557 | .zoo 38;5;116 558 | .zpaq 38;5;116 559 | .zst 38;5;116 560 | .zstd 38;5;116 561 | .zz 38;5;116 562 | # packaged apps {{{2 563 | .apk 38;5;123 564 | .ipa 38;5;123 565 | .deb 38;5;123 566 | .rpm 38;5;123 567 | .jad 38;5;123 568 | .jar 38;5;123 569 | .cab 38;5;123 570 | .pak 38;5;123 571 | .pk3 38;5;123 572 | .vdf 38;5;123 573 | .vpk 38;5;123 574 | .bsp 38;5;123 575 | .dmg 38;5;123 576 | # }}} 577 | # segments from 0 to three digits after first extension letter {{{2 578 | .r[0-9]{0,2} 38;5;249 579 | .zx[0-9]{0,2} 38;5;249 580 | .z[0-9]{0,2} 38;5;249 581 | # partial files 582 | .part 38;5;243 583 | # }}} 584 | # partition images {{{2 585 | .iso 38;5;160 586 | .bin 38;5;160 587 | .nrg 38;5;160 588 | .qcow 38;5;160 589 | .sparseimage 38;5;160 590 | .toast 38;5;160 591 | .vcd 38;5;160 592 | .vmdk 38;5;160 593 | # }}} 594 | # databases {{{2 595 | .accdb 38;5;104 596 | .accde 38;5;104 597 | .accdr 38;5;104 598 | .accdt 38;5;104 599 | .db 38;5;104 600 | .fmp12 38;5;104 601 | .fp7 38;5;104 602 | .localstorage 38;5;104 603 | .mdb 38;5;104 604 | .mde 38;5;104 605 | .sqlite 38;5;104 606 | .typelib 38;5;104 607 | # NetCDF database 608 | .nc 38;5;104 609 | # }}} 610 | # tempfiles {{{1 611 | # undo files 612 | .pacnew 38;5;241 613 | .un~ 38;5;241 614 | .orig 38;5;241 615 | # backups 616 | .BUP 38;5;241 617 | .bak 38;5;241 618 | .o 38;5;241 # *nix Object file (shared libraries, core dumps etc) 619 | *core 38;5;241 # Linux user core dump file (from /proc/sys/kernel/core_pattern) 620 | .mdump 38;5;241 # Mini DuMP crash report 621 | .rlib 38;5;241 # Static rust library 622 | .dll 38;5;241 # dynamic linked library 623 | # temporary files 624 | .swp 38;5;244 625 | .swo 38;5;244 626 | .tmp 38;5;244 627 | .sassc 38;5;244 628 | # state files 629 | .pid 38;5;175 630 | .state 38;5;175 631 | *lockfile 38;5;175 632 | *lock 38;5;175 633 | # error logs 634 | .err 38;5;160;1 635 | .error 38;5;160;1 636 | .stderr 38;5;160;1 637 | # state dumps 638 | .aria2 38;5;241 639 | .dump 38;5;241 640 | .stackdump 38;5;241 641 | .zcompdump 38;5;241 642 | .zwc 38;5;241 643 | # tcpdump, network traffic capture 644 | .pcap 38;5;250 645 | .cap 38;5;250 646 | .dmp 38;5;250 647 | # macOS 648 | .DS_Store 38;5;239 649 | .localized 38;5;239 650 | .CFUserTextEncoding 38;5;239 651 | # }}} 652 | # hosts {{{1 653 | # /etc/hosts.{deny,allow} 654 | .allow 38;5;148 655 | .deny 38;5;167 656 | # }}} 657 | # systemd {{{1 658 | # http://www.freedesktop.org/software/systemd/man/systemd.unit.html 659 | .service 38;5;160 660 | *@.service 38;5;160 661 | .socket 38;5;160 662 | .swap 38;5;160 663 | .device 38;5;160 664 | .mount 38;5;160 665 | .automount 38;5;160 666 | .target 38;5;160 667 | .path 38;5;160 668 | .timer 38;5;160 669 | .snapshot 38;5;160 670 | # }}} 671 | # metadata {{{1 672 | .application 38;5;249 673 | .cue 38;5;249 674 | .description 38;5;249 675 | .directory 38;5;249 676 | .m3u 38;5;249 677 | .m3u8 38;5;249 678 | .md5 38;5;249 679 | .properties 38;5;249 680 | .sfv 38;5;249 681 | .theme 38;5;249 682 | .torrent 38;5;249 683 | .urlview 38;5;249 684 | .webloc 38;5;249 685 | .lnk 38;5;249 686 | # }}} 687 | # macOS files {{{1 688 | *CodeResources 38;5;239 # code signing apps 689 | *PkgInfo 38;5;239 # app bundle id 690 | .nib 38;5;240 # UI 691 | .car 38;5;240 # asset catalog 692 | .dylib 38;5;241 # shared lib 693 | # Xcode files {{{2 694 | .entitlements 1 695 | .pbxproj 1 696 | .strings 1 697 | .storyboard 38;5;196 698 | .xcconfig 1 699 | .xcsettings 1 700 | .xcuserstate 1 701 | .xcworkspacedata 1 702 | .xib 38;5;208 703 | # }}} 704 | # }}} 705 | # encrypted data {{{1 706 | .asc 38;5;116;3 707 | .bfe 38;5;116;3 708 | .enc 38;5;116;3 709 | .gpg 38;5;116;3 710 | .signature 38;5;116;3 711 | .sig 38;5;116;3 712 | .p12 38;5;116;3 713 | .pem 38;5;116;3 714 | .pgp 38;5;116;3 715 | .p7s 38;5;116;3 716 | *id_dsa 38;5;116;3 717 | *id_rsa 38;5;116;3 718 | *id_ecdsa 38;5;116;3 719 | *id_ed25519 38;5;116;3 720 | # 1}}} 721 | # emulators {{{1 722 | .32x 38;5;156 723 | .cdi 38;5;156 724 | .fm2 38;5;156 725 | .rom 38;5;156 726 | .sav 38;5;156 727 | .st 38;5;156 728 | # atari 729 | .a00 38;5;156 730 | .a52 38;5;156 731 | .A64 38;5;156 732 | .a64 38;5;156 733 | .a78 38;5;156 734 | .adf 38;5;156 735 | .atr 38;5;156 736 | # nintendo 737 | .gb 38;5;156 738 | .gba 38;5;156 739 | .gbc 38;5;156 740 | .gel 38;5;156 741 | .gg 38;5;156 742 | .ggl 38;5;156 743 | .ipk 38;5;156 # Nintendo (DS Packed Images) 744 | .j64 38;5;156 745 | .nds 38;5;156 746 | .nes 38;5;156 747 | # Sega 748 | .sms 38;5;156 749 | # }}} 750 | # Texas Instruments Calculator files {{{1 751 | # for more see http://tibasicdev.wikidot.com/file-extensions 752 | .8xp 38;5;121 753 | .8eu 38;5;121 754 | .82p 38;5;121 755 | .83p 38;5;121 756 | .8xe 38;5;121 757 | # }}} 758 | # 3D printing {{{1 759 | .stl 38;5;170 760 | .dwg 38;5;170 761 | .ply 38;5;170 762 | .wrl 38;5;170 763 | # }}} 764 | # unsorted {{{1 765 | # 766 | # Portable Object Translation for GNU Gettext 767 | .pot 38;5;189 768 | # CAD files for printed circuit boards 769 | .pcb 38;5;170 770 | # groff (rendering app for texinfo) 771 | .mm 38;5;170 772 | # GIMP files 773 | .gbr 38;5;170 774 | .scm 38;5;170 775 | .xcf 38;5;170 776 | # printer spool file 777 | .spl 38;5;219 778 | # RStudio project file 779 | .Rproj 38;5;228 780 | # Nokia Symbian OS files 781 | .sis 38;5;250 782 | .1p 38;5;250 783 | .3p 38;5;250 784 | .cnc 38;5;250 785 | .def 38;5;250 786 | .ex 38;5;250 787 | .example 38;5;250 788 | .feature 38;5;250 789 | .ger 38;5;250 790 | .ics 38;5;250 # calendar information 791 | .map 38;5;250 792 | .mf 38;5;250 793 | .mfasl 38;5;250 794 | .mi 38;5;250 795 | .mtx 38;5;250 796 | .pc 38;5;250 797 | .pi 38;5;250 798 | .plt 38;5;250 799 | .pm 38;5;250 800 | .rdf 38;5;250 801 | .ru 38;5;250 802 | .sch 38;5;250 803 | .sty 38;5;250 804 | .sug 38;5;250 805 | .tdy 38;5;250 806 | .tfm 38;5;250 807 | .tfnt 38;5;250 808 | .tg 38;5;250 809 | .vcard 38;5;250 810 | .vcf 38;5;250 #contact information 811 | .xln 38;5;250 812 | # AppCode files 813 | .iml 38;5;250 814 | # }}} 815 | # termcap {{{1 816 | TERM ansi 817 | TERM color-xterm 818 | TERM con132x25 819 | TERM con132x30 820 | TERM con132x43 821 | TERM con132x60 822 | TERM con80x25 823 | TERM con80x28 824 | TERM con80x30 825 | TERM con80x43 826 | TERM con80x50 827 | TERM con80x60 828 | TERM cons25 829 | TERM console 830 | TERM cygwin 831 | TERM dtterm 832 | TERM Eterm 833 | TERM eterm-color 834 | TERM gnome 835 | TERM gnome-256color 836 | TERM jfbterm 837 | TERM konsole 838 | TERM kterm 839 | TERM linux 840 | TERM linux-c 841 | TERM mach-color 842 | TERM mlterm 843 | TERM putty 844 | TERM rxvt 845 | TERM rxvt-256color 846 | TERM rxvt-cygwin 847 | TERM rxvt-cygwin-native 848 | TERM rxvt-unicode 849 | TERM rxvt-unicode-256color 850 | TERM rxvt-unicode256 851 | TERM screen 852 | TERM screen-256color 853 | TERM screen-256color-bce 854 | TERM screen-bce 855 | TERM screen-w 856 | TERM screen.linux 857 | TERM screen.rxvt 858 | TERM terminator 859 | TERM vt100 860 | TERM xterm 861 | TERM xterm-16color 862 | TERM xterm-256color 863 | TERM xterm-88color 864 | TERM xterm-color 865 | TERM xterm-debian 866 | TERM xterm-kitty 867 | # }}} 868 | 869 | 870 | # vim: ft=dircolors:fdm=marker:et:sw=2: 871 | --------------------------------------------------------------------------------