From 5ce0b37429d5311d52568524c7a07785c95c97de Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Mon, 1 Apr 2013 22:36:40 +0200 Subject: [PATCH] shell/dircolors: $LS_COLORS settings in more readable form. Moved from shell/env. Also added a few new color settings. --- .gitignore | 1 + setup.sh | 5 +++ shell/dircolors.in | 79 ++++++++++++++++++++++++++++++++++++++++++++++ shell/env | 22 +++---------- 4 files changed, 90 insertions(+), 17 deletions(-) create mode 100644 shell/dircolors.in diff --git a/.gitignore b/.gitignore index 5b546a1..f7e143d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /htoprc /screenrc /shell/aliases +/shell/dircolors /tmux.conf /tmux-window1.conf /tmux-window2.conf diff --git a/setup.sh b/setup.sh index 538663d..1be636c 100755 --- 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 index 0000000..35a7001 --- /dev/null +++ b/shell/dircolors.in @@ -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 . + + +# 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 diff --git a/shell/env b/shell/env index 45b98bc..18271f5 100644 --- 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' # ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ -- 2.45.2