|
|
- # 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.colorscheme import ColorScheme
- from ranger.gui.color import (
- default, normal, bold, reverse, dim, BRIGHT, default_colors,
- )
-
-
- black = 16
- blue = 32
- cyan = 50
- green = 47
- magenta = 141
- red = 9
- white = 255
- yellow =227
-
- class Default(ColorScheme):
- progress_bar_color = 87
-
- def use(self, context): # pylint: disable=too-many-branches,too-many-statements
- fg, bg, attr = 231, black, bold
-
- 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 = default
- if context.media:
- if context.image:
- fg = yellow
- else:
- fg = magenta
- if context.container:
- fg = red
- if context.directory:
- attr |= bold
- fg = blue
- elif context.executable and not \
- any((context.media, context.container,
- context.fifo, context.socket)):
- attr |= bold
- fg = green
- if context.socket:
- attr |= bold
- fg = magenta
- if context.fifo or context.device:
- fg = yellow
- if context.device:
- attr |= bold
- 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
- if not context.selected and (context.cut or context.copied):
- attr |= bold
- fg = black
- # 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 = yellow
- 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 = cyan
- 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
- if context.frozen:
- attr |= bold | reverse
- fg = cyan
- if context.message:
- if context.bad:
- attr |= bold
- fg = red
- 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
|