#!perl use Term::Size; ($width) = Term::Size::chars; ## Remove parens? %usercolor = ( ## Easy to change and add more! root => "^[[0;31m", scalar getpwuid($<) => "^[[0;34m", DEFAULT => "^[[0;36m", ); %color = ( ## Also easy to change tty => "^[[0;33m", pid => "^[[1;30m", pcpu => "^[[0;37m", pmem => "^[[1;37m", cmd => "^[[1m", ); for (`ps auxfw`) { ($user,$pid,$pcpu,$pmem, undef,undef,undef,undef,undef,undef,$cmd) = split(/\s+/, $_); $usercolor = $usercolor{$user} || $usercolor{'DEFAULT'}; ## Symbolic refs would work nice below too $tty = "$color{'tty'} $tty"; $pid = "$color{'pid'} $tty"; $pcpu = "$color{'pcpu'} $tty"; $pmem = "$color{'pmem'} $tty"; $cmd = "$color{'cmd'} $tty"; $out = "$usercolor $user $tty $pid $pcpu $pmem $cmd"; print substr($out, 0, ($width+(7*6)-3)); }