| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- # This file is part of ranger, the console file manager.
- # License: GNU GPL version 3, see the file "AUTHORS" for details.
- from __future__ import absolute_import, division, print_function
- from ranger.gui.color import (BRIGHT, black, blue, bold, cyan, default,
- default_colors, dim, green, magenta, normal, red,
- reverse, white, yellow)
- from ranger.gui.colorscheme import ColorScheme
- class Default(ColorScheme):
- progress_bar_color = blue
- def use(self, context):
- fg, bg, attr = default_colors
- if context.reset:
- return default_colors
- elif context.in_browser:
- if context.selected:
- attr = reverse
- else:
- attr = normal
- if context.empty or context.error:
- bg = red
- if context.border:
- fg = blue
- if context.document:
- attr |= normal
- fg = magenta
- if context.media:
- if context.image:
- fg = yellow
- elif context.video:
- fg = red
- elif context.audio:
- fg = green
- else:
- fg = magenta
- if context.container:
- fg = red
- if context.directory:
- attr |= bold
- fg = blue
- fg += BRIGHT
- elif context.executable and not \
- any((context.media, context.container,
- context.fifo, context.socket)):
- attr |= bold
- fg = green
- fg += BRIGHT
- if context.socket:
- attr |= bold
- fg = magenta
- fg += BRIGHT
- if context.fifo or context.device:
- fg = yellow
- if context.device:
- attr |= bold
- fg += BRIGHT
- if context.link:
- fg = cyan if context.good else magenta
- if context.tag_marker and not context.selected:
- attr |= bold
- if fg in (red, magenta):
- fg = white
- else:
- fg = red
- fg += BRIGHT
- if not context.selected and (context.cut or context.copied):
- attr |= bold
- fg = black
- fg += BRIGHT
- # If the terminal doesn't support bright colors, use dim white
- # instead of black.
- if BRIGHT == 0:
- attr |= dim
- fg = white
- if context.main_column:
- # Doubling up with BRIGHT here causes issues because it's
- # additive not idempotent.
- if context.selected:
- attr |= bold
- if context.marked:
- attr |= bold
- fg = cyan
- if context.badinfo:
- if attr & reverse:
- bg = magenta
- else:
- fg = magenta
- if context.inactive_pane:
- fg = cyan
- elif context.in_titlebar:
- if context.hostname:
- fg = red if context.bad else green
- elif context.directory:
- fg = blue
- elif context.tab:
- if context.good:
- bg = green
- elif context.link:
- fg = blue
- attr |= bold
- elif context.in_statusbar:
- if context.permissions:
- if context.good:
- fg = cyan
- elif context.bad:
- fg = magenta
- if context.marked:
- attr |= bold | reverse
- fg = yellow
- fg += BRIGHT
- if context.frozen:
- attr |= bold | reverse
- fg = cyan
- fg += BRIGHT
- if context.message:
- if context.bad:
- attr |= bold
- fg = red
- fg += BRIGHT
- if context.loaded:
- bg = self.progress_bar_color
- if context.vcsinfo:
- fg = blue
- attr &= ~bold
- if context.vcscommit:
- fg = yellow
- attr &= ~bold
- if context.vcsdate:
- fg = cyan
- attr &= ~bold
- if context.text:
- if context.highlight:
- attr |= reverse
- if context.in_taskview:
- if context.title:
- fg = blue
- if context.selected:
- attr |= reverse
- if context.loaded:
- if context.selected:
- fg = self.progress_bar_color
- else:
- bg = self.progress_bar_color
- if context.vcsfile and not context.selected:
- attr &= ~bold
- if context.vcsconflict:
- fg = magenta
- elif context.vcsuntracked:
- fg = cyan
- elif context.vcschanged:
- fg = red
- elif context.vcsunknown:
- fg = red
- elif context.vcsstaged:
- fg = green
- elif context.vcssync:
- fg = green
- elif context.vcsignored:
- fg = default
- elif context.vcsremote and not context.selected:
- attr &= ~bold
- if context.vcssync or context.vcsnone:
- fg = green
- elif context.vcsbehind:
- fg = red
- elif context.vcsahead:
- fg = blue
- elif context.vcsdiverged:
- fg = magenta
- elif context.vcsunknown:
- fg = red
- return fg, bg, attr
|