summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xdoc/print_colors.py23
-rw-r--r--ranger/colorschemes/default88.py59
-rw-r--r--ranger/colorschemes/texas.py73
-rw-r--r--ranger/defaults/options.py12
4 files changed, 159 insertions, 8 deletions
diff --git a/doc/print_colors.py b/doc/print_colors.py
new file mode 100755
index 00000000..7ffd6500
--- /dev/null
+++ b/doc/print_colors.py
@@ -0,0 +1,23 @@
+#!/usr/bin/python
+"""
+You can use this tool to display all supported colors and their color number.
+It will exit after a keypress.
+"""
+
+import curses
+from curses import *
+
+@wrapper
+def main(win):
+	def print_all_colors(attr):
+		for c in range(0, curses.COLORS):
+			init_pair(c, c, -1)
+			win.addstr(str(c) + ' ', color_pair(c) | attr)
+	use_default_colors()
+	win.addstr("available colors: %d\n\n" % curses.COLORS)
+	print_all_colors(0)
+	win.addstr("\n\n")
+	print_all_colors(A_BOLD)
+	win.refresh()
+	win.getch()
+
diff --git a/ranger/colorschemes/default88.py b/ranger/colorschemes/default88.py
new file mode 100644
index 00000000..b78d1bb5
--- /dev/null
+++ b/ranger/colorschemes/default88.py
@@ -0,0 +1,59 @@
+# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+"""
+The default colorscheme, using 88 colors.
+
+For now, just map each of the 8 base colors to new ones
+for brighter blue, etc. and do some minor modifications.
+"""
+
+from ranger.gui.colorscheme import ColorScheme
+from ranger.gui.color import *
+
+from ranger.colorschemes.default import Default
+import curses
+
+class Scheme(Default):
+	def use(self, context):
+		fg, bg, attr = Default.use(self, context)
+
+		if curses.COLORS != 88:
+			return fg, bg, attr
+
+		try:
+			translate = {
+				blue: 22,
+				yellow: 72,
+				green: 20,
+				cyan: 21,
+				white: 79,
+				red: 32,
+				magenta: magenta,
+			}
+			fg = translate[fg]
+		except KeyError:
+			pass
+
+		if context.in_browser:
+			if context.main_column and context.marked:
+				if context.selected:
+					fg = 77
+				else:
+					fg = 68
+					attr |= reverse
+
+		return fg, bg, attr
+
diff --git a/ranger/colorschemes/texas.py b/ranger/colorschemes/texas.py
new file mode 100644
index 00000000..93fd4791
--- /dev/null
+++ b/ranger/colorschemes/texas.py
@@ -0,0 +1,73 @@
+# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+"""
+Some experimental colorscheme.
+"""
+
+from ranger.gui.colorscheme import ColorScheme
+from ranger.gui.color import *
+
+from ranger.colorschemes.default import Default
+import curses
+
+class Scheme(Default):
+	def use(self, context):
+		fg, bg, attr = Default.use(self, context)
+
+		if curses.COLORS < 88:
+			return fg, bg, attr
+
+		dircolor = 77
+		dircolor_selected = {True: 79, False: 78}
+		linkcolor = {True: 21, False: 48}
+
+		if context.in_browser:
+			if context.media:
+				if context.image:
+					fg = 20
+				elif context.video:
+					fg = 22
+				elif context.audio:
+					fg = 23
+
+			if context.container:
+				fg = 32
+			if context.directory:
+				fg = dircolor
+				if context.selected:
+					fg = dircolor_selected[context.main_column]
+			elif context.executable and not \
+					any((context.media, context.container)):
+				fg = 82
+			if context.link:
+				fg = linkcolor[context.good]
+
+			if context.main_column:
+				if context.selected:
+					attr |= bold
+				if context.marked:
+					attr |= bold
+					fg = 53
+
+		if context.in_titlebar:
+			if context.hostname:
+				fg = context.bad and 48 or 82
+			elif context.directory:
+				fg = dircolor
+			elif context.link:
+				fg = linkcolor[True]
+
+		return fg, bg, attr
diff --git a/ranger/defaults/options.py b/ranger/defaults/options.py
index 8711f737..34e0c37e 100644
--- a/ranger/defaults/options.py
+++ b/ranger/defaults/options.py
@@ -21,14 +21,10 @@ intact and the type of the value stays the same.
 
 from ranger.api.options import *
 
-# Which colorscheme to use?  There are these by default:
-# colorschemes.texas
-# colorschemes.jungle
-# colorschemes.default
-# colorschemes.snow
-# Texas uses 88 colors. If they are not supported, it will fall back
-# to the default scheme.
-colorscheme = colorschemes.texas
+# Which colorscheme to use?  These colorschemes are available by default:
+# default, default88, texas, jungle, snow
+# Snow is monochrome, texas and default88 use 88 colors.
+colorscheme = colorschemes.default
 
 max_history_size = 20
 scroll_offset = 2