From 524ba1e32ee08f67d6885f3f7a4e116d643b82ae Mon Sep 17 00:00:00 2001 From: Aleksei Kovura <3616242+alex3kov@users.noreply.github.com> Date: Fri, 6 Jul 2018 23:33:24 +0200 Subject: [PATCH] Squash of three commits adding zenburn.py Added Zenburn color scheme from https://gist.github.com/ivoarch/8249238. Props to Ivaylo Kuzev. Fixed linting and imports in zenburn.py zenburn.py: disabled pylint too-many-branches,too-many-statements tests --- zenburn.py | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 zenburn.py diff --git a/zenburn.py b/zenburn.py new file mode 100644 index 0000000..ca75f23 --- /dev/null +++ b/zenburn.py @@ -0,0 +1,163 @@ +# Ivaylo Kuzev , 2014 +# Zenburn like colorscheme for https://github.com/hut/ranger . + +# default colorscheme. +# Copyright (C) 2009-2013 Roman Zimbelmann +# This software is distributed under the terms of the GNU GPL version 3. + +from ranger.gui.colorscheme import ColorScheme +from ranger.gui.color import default_colors, reverse, bold, normal, default + + +# pylint: disable=too-many-branches,too-many-statements +class Zenburn(ColorScheme): + progress_bar_color = 108 + + 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: + fg = 174 + bg = 235 + if context.border: + fg = 248 + if context.image: + fg = 109 + if context.video: + fg = 66 + if context.audio: + fg = 116 + if context.document: + fg = 151 + if context.container: + attr |= bold + fg = 174 + if context.directory: + attr |= bold + fg = 223 + elif context.executable and not \ + any((context.media, context.container, + context.fifo, context.socket)): + attr |= bold + fg = 108 + if context.socket: + fg = 180 + attr |= bold + if context.fifo or context.device: + fg = 144 + if context.device: + attr |= bold + if context.link: + fg = 223 if context.good else 116 + bg = 234 + if context.bad: + bg = 235 + if context.tag_marker and not context.selected: + attr |= bold + if fg in (174, 95): + fg = 248 + else: + fg = 174 + if not context.selected and (context.cut or context.copied): + fg = 108 + bg = 234 + if context.main_column: + if context.selected: + attr |= bold + if context.marked: + attr |= bold + fg = 223 + if context.badinfo: + if attr & reverse: + bg = 95 + else: + fg = 95 + + elif context.in_titlebar: + attr |= bold + if context.hostname: + fg = 174 if context.bad else 180 + elif context.directory: + fg = 223 + elif context.tab: + if context.good: + bg = 180 + elif context.link: + fg = 116 + + elif context.in_statusbar: + if context.permissions: + if context.good: + fg = 108 + elif context.bad: + fg = 174 + if context.marked: + attr |= bold | reverse + fg = 223 + if context.message: + if context.bad: + attr |= bold + fg = 174 + if context.loaded: + bg = self.progress_bar_color + if context.vcsinfo: + fg = 116 + attr &= ~bold + if context.vcscommit: + fg = 144 + attr &= ~bold + + if context.text: + if context.highlight: + attr |= reverse + + if context.in_taskview: + if context.title: + fg = 116 + + 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 = 95 + elif context.vcschanged: + fg = 174 + elif context.vcsunknown: + fg = 174 + elif context.vcsstaged: + fg = 108 + elif context.vcssync: + fg = 108 + elif context.vcsignored: + fg = default + + elif context.vcsremote and not context.selected: + attr &= ~bold + if context.vcssync: + fg = 108 + elif context.vcsbehind: + fg = 174 + elif context.vcsahead: + fg = 116 + elif context.vcsdiverged: + fg = 95 + elif context.vcsunknown: + fg = 174 + + return fg, bg, attr