forked from ranger/colorschemes
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
143 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
# This file is part of ranger, the console file manager. | ||
# License: GNU GPL version 3, see the file "AUTHORS" for details. | ||
# Author: Joseph Tannhuber <[email protected]>, 2013 | ||
# Solarized like colorscheme, similar to solarized-dircolors | ||
# from https://github.com/seebi/dircolors-solarized. | ||
# This is a modification of Roman Zimbelmann's default colorscheme. | ||
|
||
from __future__ import (absolute_import, division, print_function) | ||
|
||
from ranger.gui.colorscheme import ColorScheme | ||
from ranger.gui.color import ( | ||
cyan, magenta, red, white, default, | ||
normal, bold, reverse, | ||
default_colors, | ||
) | ||
|
||
|
||
class Solarized(ColorScheme): | ||
progress_bar_color = 33 | ||
|
||
def use(self, context): # pylint: disable=too-many-branches,too-many-statements | ||
fg, bg, attr = default_colors | ||
|
||
if context.reset: | ||
return default_colors | ||
|
||
elif context.in_browser: | ||
fg = 244 | ||
if context.selected: | ||
attr = reverse | ||
else: | ||
attr = normal | ||
if context.empty or context.error: | ||
fg = 235 | ||
bg = 160 | ||
if context.border: | ||
fg = default | ||
if context.media: | ||
if context.image: | ||
fg = 136 | ||
else: | ||
fg = 166 | ||
if context.container: | ||
fg = 61 | ||
if context.directory: | ||
fg = 33 | ||
elif context.executable and not \ | ||
any((context.media, context.container, | ||
context.fifo, context.socket)): | ||
fg = 64 | ||
attr |= bold | ||
if context.socket: | ||
fg = 136 | ||
bg = 230 | ||
attr |= bold | ||
if context.fifo: | ||
fg = 136 | ||
bg = 230 | ||
attr |= bold | ||
if context.device: | ||
fg = 244 | ||
bg = 230 | ||
attr |= bold | ||
if context.link: | ||
fg = 37 if context.good else 160 | ||
attr |= bold | ||
if context.bad: | ||
bg = 235 | ||
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): | ||
fg = 234 | ||
attr |= bold | ||
if context.main_column: | ||
if context.selected: | ||
attr |= bold | ||
if context.marked: | ||
attr |= bold | ||
bg = 237 | ||
if context.badinfo: | ||
if attr & reverse: | ||
bg = magenta | ||
else: | ||
fg = magenta | ||
|
||
if context.inactive_pane: | ||
fg = 241 | ||
|
||
elif context.in_titlebar: | ||
attr |= bold | ||
if context.hostname: | ||
fg = 16 if context.bad else 255 | ||
if context.bad: | ||
bg = 166 | ||
elif context.directory: | ||
fg = 33 | ||
elif context.tab: | ||
fg = 47 if context.good else 33 | ||
bg = 239 | ||
elif context.link: | ||
fg = cyan | ||
|
||
elif context.in_statusbar: | ||
if context.permissions: | ||
if context.good: | ||
fg = 93 | ||
elif context.bad: | ||
fg = 160 | ||
bg = 235 | ||
if context.marked: | ||
attr |= bold | reverse | ||
fg = 237 | ||
bg = 47 | ||
if context.message: | ||
if context.bad: | ||
attr |= bold | ||
fg = 160 | ||
bg = 235 | ||
if context.loaded: | ||
bg = self.progress_bar_color | ||
|
||
if context.text: | ||
if context.highlight: | ||
attr |= reverse | ||
|
||
if context.in_taskview: | ||
if context.title: | ||
fg = 93 | ||
|
||
if context.selected: | ||
attr |= reverse | ||
|
||
if context.loaded: | ||
if context.selected: | ||
fg = self.progress_bar_color | ||
else: | ||
bg = self.progress_bar_color | ||
|
||
return fg, bg, attr |