]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
shell/dircolors: $LS_COLORS settings in more readable form.
authorSimon Ruderich <simon@ruderich.org>
Mon, 1 Apr 2013 20:36:40 +0000 (22:36 +0200)
committerSimon Ruderich <simon@ruderich.org>
Mon, 1 Apr 2013 20:36:40 +0000 (22:36 +0200)
Moved from shell/env.

Also added a few new color settings.

.gitignore
setup.sh
shell/dircolors.in [new file with mode: 0644]
shell/env

index 5b546a13f9a7b02c60347aa1ac5e369b40d9dce5..f7e143dcff9f0e03386953f9a211e5fee6c34bce 100644 (file)
@@ -2,6 +2,7 @@
 /htoprc
 /screenrc
 /shell/aliases
+/shell/dircolors
 /tmux.conf
 /tmux-window1.conf
 /tmux-window2.conf
index 538663d3cee39a13af4eba7e818bd2ee93ea3d22..1be636c42c91e50bc47ec3d08cfc832fca567259 100755 (executable)
--- a/setup.sh
+++ b/setup.sh
@@ -64,6 +64,11 @@ perl < lesskey \
     | lesskey -
 chmod 0600 ~/.less
 
+# Custom colors for GNU ls.
+if installed dircolors; then
+    dircolors -b shell/dircolors.in > shell/dircolors
+fi
+
 # Find the required options to get colored ls output. GNU ls is preferred. See
 # shell/aliases.in for details. Doing this here instead of in shell/aliases
 # speeds up shell starts.
diff --git a/shell/dircolors.in b/shell/dircolors.in
new file mode 100644 (file)
index 0000000..35a7001
--- /dev/null
@@ -0,0 +1,79 @@
+# 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
index 45b98bcfcf6cd2a666a14c8de347d0faf8f8fd78..18271f528596bc2bef750d19348a6bd294b3e886 100644 (file)
--- a/shell/env
+++ b/shell/env
@@ -62,23 +62,11 @@ fi
 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'
 #         ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^