--- /dev/null
+# Color settings for GNU ls. Read by `dircolors` to write the $LS_COLORS
+# environment variable.
+
+# Copyright (C) 2013 Simon Ruderich
+#
+# This file is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this file. If not, see <http://www.gnu.org/licenses/>.
+
+
+# See `dircolors --print-database` for possible colors.
+
+RESET 00
+# Normal files: no color.
+NORMAL 00
+
+# Regular files: normal.
+FILE 00
+# Executable files: bold red.
+EXEC 31;01
+
+# Symbolic links: cyan (other possible value: "target", color based on target
+# type).
+LINK 36
+# Orphaned symbolic links (nonexistent or not-statable): cyan with red
+# background.
+ORPHAN 36;41
+
+# setuid and setgid files: bold red with yellow background (red because they
+# are executables).
+SETUID 31;43;01
+SETGID 31;43;01
+
+# Directories: bold blue.
+DIR 34;01
+# Directories writable by other users and not sticky: bold blue with red
+# background.
+OTHER_WRITABLE 34;41;01
+# Directories with sticky bit and writable by others: bold blue with green
+# background.
+STICKY_OTHER_WRITABLE 34;42;01
+# Directories with sticky bit and not writable by others: bold blue with
+# yellow background.
+STICKY 34;43;01
+
+# Named pipes: normal.
+FIFO 00
+# Sockets: normal.
+SOCK 00
+# Block devices: normal.
+BLK 00
+# Character devices: normal.
+CHR 00
+
+
+# Color important files which might be overlooked in full directories. `ls`
+# can't color matching files, only matching extensions; therefore use the
+# filename as extension. As most filenames have no weird extensions like
+# ".README", this should work fine.
+
+# Read-me files (e.g. README, program.readme, etc.): bold magenta.
+*README 35;01
+*readme 35;01
+.README 35;01
+.readme 35;01
+# Misc files: bold magenta.
+*TODO 35;01
+*todo 35;01
+
+# vim: ft=dircolors
RLWRAP_HOME="$HOME/.shell/rlwrap"
export RLWRAP_HOME
-# Set colors for GNU ls (and zsh completions).
-# See `dircolors --print-database` for possible colors.
-LS_COLORS='no=00'
-LS_COLORS=$LS_COLORS':fi=00' # normal files: normal
-LS_COLORS=$LS_COLORS':di=34;01' # directories: blue bold
-LS_COLORS=$LS_COLORS':ln=36' # symbolic links: cyan
-LS_COLORS=$LS_COLORS':pi=00' # named pipes: normal
-LS_COLORS=$LS_COLORS':so=00' # sockets: normal
-LS_COLORS=$LS_COLORS':bd=00' # block devices: normal
-LS_COLORS=$LS_COLORS':cd=00' # character devices: normal
-LS_COLORS=$LS_COLORS':or=36;41' # orphaned links: red background
-LS_COLORS=$LS_COLORS':su=31;01;43' # setuid files: yellow background
-LS_COLORS=$LS_COLORS':sg=31;01;43' # setgid files: yellow background
-LS_COLORS=$LS_COLORS':ow=34;01;41' # directories writable by others: blue background
-LS_COLORS=$LS_COLORS':ex=31;01' # executables: bold red
-export LS_COLORS
-# Set the same colors for non GNU ls, except for orphaned links which aren't
+# Set colors for GNU ls (and Zsh completions).
+if test -f "$HOME/.shell/dircolors"; then
+ . "$HOME/.shell/dircolors"
+fi
+# Set the same colors for non GNU ls, except for special cases which aren't
# supported.
LSCOLORS='ExgxxxxxBxxxxxBdBdExEb'
# ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^