6

I'm running Xubuntu 12.04, and when I use the Terminal I get colored filenames from ls. But inside tmux, everything ls prints is white. I know my tmux supports color, though, because I get color syntax highlighting when I run vim. My ~/.tmux.conf has this line already:

set -g default-terminal "screen-256color"

Here are some environment variables (from within tmux):

$ env | grep COLOR
LS_COLORS=di=34:ow=34
$ echo $TERM
screen-256color

How can I get ls to show me color when inside tmux?

daisy
  • 54,555
  • 7
    Your LS_COLORS is a bit sparse. Try eval "$(dircolors)". – jw013 Oct 17 '12 at 23:05
  • 3
    Post the output of type ls when inside tmux. – phunehehe Oct 17 '12 at 23:41
  • Yes, or dircolors -p > clrdb.txt (-p is --print-database) and then examine it peace and quiet. If you find patterns that apply to the files you are listing, as well as (for example) the --color=always option (would be a fair bet) on type ls (as mentioned), and still no colors, ls shouldn't be where the shoe hurts. If you have an alias or anything that blocks ls, try \ls and give the color option explicitly. – Emanuel Berg Oct 18 '12 at 00:20
  • 1
    type ls gives ls is /bin/ls, and after saying source ~/.bashrc it gives ls is aliased to 'ls --color=auto', so the problem was I wasn't sourcing ~/.bashrc. Thanks! – Paul A Jungwirth Oct 18 '12 at 16:36

2 Answers2

11

ls don't outputs colors by default, usually it is an alias to ls --color=auto setted in .bashrc. Check if you're invoking ls directly or through an alias with type ls.

If it outputs ls is /bin/ls maybe your .bashrc wasn't loaded when you created the tmux session. If so, try to reload it with source ~/.bashrc.

1

Have you tried forcing tmux to colorize things by invoking it with -2 as a parameter?

tink
  • 6,765