mirror of
https://github.com/mitmproxy/mitmproxy.git
synced 2024-11-28 15:50:53 +00:00
console: All palettes now explicitly set a background colour
There's a new option --palette-transparent to turn this off if you want to use your own terminal background.
This commit is contained in:
parent
1cb1ee411b
commit
f6a3bd15b3
@ -580,6 +580,11 @@ def mitmproxy():
|
|||||||
choices=sorted(palettes.palettes.keys()),
|
choices=sorted(palettes.palettes.keys()),
|
||||||
help="Select color palette: " + ", ".join(palettes.palettes.keys())
|
help="Select color palette: " + ", ".join(palettes.palettes.keys())
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--palette-transparent",
|
||||||
|
action="store_true", dest="palette_transparent", default=False,
|
||||||
|
help="Set transparent background for palette."
|
||||||
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-e", "--eventlog",
|
"-e", "--eventlog",
|
||||||
action="store_true", dest="eventlog",
|
action="store_true", dest="eventlog",
|
||||||
|
@ -132,6 +132,7 @@ class Options(object):
|
|||||||
"wfile",
|
"wfile",
|
||||||
"nopop",
|
"nopop",
|
||||||
"palette",
|
"palette",
|
||||||
|
"palette_transparent"
|
||||||
]
|
]
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
@ -183,6 +184,7 @@ class ConsoleMaster(flow.FlowMaster):
|
|||||||
self.nopop = options.nopop
|
self.nopop = options.nopop
|
||||||
self.showhost = options.showhost
|
self.showhost = options.showhost
|
||||||
self.palette = options.palette
|
self.palette = options.palette
|
||||||
|
self.palette_transparent = options.palette_transparent
|
||||||
|
|
||||||
self.eventlog = options.eventlog
|
self.eventlog = options.eventlog
|
||||||
self.eventlist = urwid.SimpleListWalker([])
|
self.eventlist = urwid.SimpleListWalker([])
|
||||||
@ -393,7 +395,7 @@ class ConsoleMaster(flow.FlowMaster):
|
|||||||
def set_palette(self, name):
|
def set_palette(self, name):
|
||||||
self.palette = name
|
self.palette = name
|
||||||
self.ui.register_palette(
|
self.ui.register_palette(
|
||||||
palettes.palettes[name].palette()
|
palettes.palettes[name].palette(self.palette_transparent)
|
||||||
)
|
)
|
||||||
self.ui.clear()
|
self.ui.clear()
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
# Low-color themes should ONLY use the standard foreground and background
|
# Low-color themes should ONLY use the standard foreground and background
|
||||||
# colours listed here:
|
# colours listed here:
|
||||||
#
|
#
|
||||||
@ -6,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Palette:
|
class Palette:
|
||||||
_fields = [
|
_fields = [
|
||||||
|
'background',
|
||||||
'title',
|
'title',
|
||||||
|
|
||||||
# Status bar & heading
|
# Status bar & heading
|
||||||
@ -35,15 +34,33 @@ class Palette:
|
|||||||
]
|
]
|
||||||
high = None
|
high = None
|
||||||
|
|
||||||
def palette(self):
|
def palette(self, transparent):
|
||||||
l = []
|
l = []
|
||||||
|
highback, lowback = None, None
|
||||||
|
if not transparent:
|
||||||
|
if self.high and self.high.get("background"):
|
||||||
|
highback = self.high["background"][1]
|
||||||
|
lowback = self.low["background"][1]
|
||||||
|
|
||||||
for i in self._fields:
|
for i in self._fields:
|
||||||
v = [i]
|
if transparent and i == "background":
|
||||||
v.extend(self.low[i])
|
l.append(["background", "default", "default"])
|
||||||
if self.high and i in self.high:
|
else:
|
||||||
v.append(None)
|
v = [i]
|
||||||
v.extend(self.high[i])
|
low = list(self.low[i])
|
||||||
l.append(tuple(v))
|
if lowback and low[1] == "default":
|
||||||
|
low[1] = lowback
|
||||||
|
v.extend(low)
|
||||||
|
if self.high and i in self.high:
|
||||||
|
v.append(None)
|
||||||
|
high = list(self.high[i])
|
||||||
|
if highback and high[1] == "default":
|
||||||
|
high[1] = highback
|
||||||
|
v.extend(high)
|
||||||
|
elif highback:
|
||||||
|
high = [None, low[0], highback]
|
||||||
|
v.extend(high)
|
||||||
|
l.append(tuple(v))
|
||||||
return l
|
return l
|
||||||
|
|
||||||
|
|
||||||
@ -52,6 +69,7 @@ class LowDark(Palette):
|
|||||||
Low-color dark background
|
Low-color dark background
|
||||||
"""
|
"""
|
||||||
low = dict(
|
low = dict(
|
||||||
|
background = ('white', 'black'),
|
||||||
title = ('white,bold', 'default'),
|
title = ('white,bold', 'default'),
|
||||||
|
|
||||||
# Status bar & heading
|
# Status bar & heading
|
||||||
@ -110,6 +128,7 @@ class LowLight(Palette):
|
|||||||
Low-color light background
|
Low-color light background
|
||||||
"""
|
"""
|
||||||
low = dict(
|
low = dict(
|
||||||
|
background = ('black', 'white'),
|
||||||
title = ('dark magenta', 'default'),
|
title = ('dark magenta', 'default'),
|
||||||
|
|
||||||
# Status bar & heading
|
# Status bar & heading
|
||||||
@ -158,6 +177,7 @@ class LowLight(Palette):
|
|||||||
|
|
||||||
class Light(LowLight):
|
class Light(LowLight):
|
||||||
high = dict(
|
high = dict(
|
||||||
|
background = ('black', 'g100'),
|
||||||
heading = ('g99', '#08f'),
|
heading = ('g99', '#08f'),
|
||||||
heading_key = ('#0ff,bold', '#08f'),
|
heading_key = ('#0ff,bold', '#08f'),
|
||||||
heading_inactive = ('g35', 'g85'),
|
heading_inactive = ('g35', 'g85'),
|
||||||
@ -171,10 +191,10 @@ sol_base03 = "h234"
|
|||||||
sol_base02 = "h235"
|
sol_base02 = "h235"
|
||||||
sol_base01 = "h240"
|
sol_base01 = "h240"
|
||||||
sol_base00 = "h241"
|
sol_base00 = "h241"
|
||||||
sol_base0 = "h244"
|
sol_base0 = "h244"
|
||||||
sol_base1 = "h245"
|
sol_base1 = "h245"
|
||||||
sol_base2 = "h254"
|
sol_base2 = "h254"
|
||||||
sol_base3 = "h230"
|
sol_base3 = "h230"
|
||||||
sol_yellow = "h136"
|
sol_yellow = "h136"
|
||||||
sol_orange = "h166"
|
sol_orange = "h166"
|
||||||
sol_red = "h160"
|
sol_red = "h160"
|
||||||
@ -183,8 +203,11 @@ sol_violet = "h61"
|
|||||||
sol_blue = "h33"
|
sol_blue = "h33"
|
||||||
sol_cyan = "h37"
|
sol_cyan = "h37"
|
||||||
sol_green = "h64"
|
sol_green = "h64"
|
||||||
|
|
||||||
|
|
||||||
class SolarizedLight(LowLight):
|
class SolarizedLight(LowLight):
|
||||||
high = dict(
|
high = dict(
|
||||||
|
background = (sol_base00, sol_base3),
|
||||||
title = (sol_cyan, 'default'),
|
title = (sol_cyan, 'default'),
|
||||||
text = (sol_base00, 'default'),
|
text = (sol_base00, 'default'),
|
||||||
|
|
||||||
@ -233,6 +256,7 @@ class SolarizedLight(LowLight):
|
|||||||
|
|
||||||
class SolarizedDark(LowDark):
|
class SolarizedDark(LowDark):
|
||||||
high = dict(
|
high = dict(
|
||||||
|
background = (sol_base2, sol_base03),
|
||||||
title = (sol_blue, 'default'),
|
title = (sol_blue, 'default'),
|
||||||
text = (sol_base1, 'default'),
|
text = (sol_base1, 'default'),
|
||||||
|
|
||||||
|
@ -1,10 +1,15 @@
|
|||||||
import urwid
|
import urwid
|
||||||
from . import grideditor, signals, contentview
|
from . import signals
|
||||||
|
|
||||||
|
|
||||||
class Window(urwid.Frame):
|
class Window(urwid.Frame):
|
||||||
def __init__(self, master, body, header, footer, helpctx):
|
def __init__(self, master, body, header, footer, helpctx):
|
||||||
urwid.Frame.__init__(self, body, header=header, footer=footer)
|
urwid.Frame.__init__(
|
||||||
|
self,
|
||||||
|
urwid.AttrWrap(body, "background"),
|
||||||
|
header = urwid.AttrWrap(header, "background") if header else None,
|
||||||
|
footer = urwid.AttrWrap(footer, "background") if footer else None
|
||||||
|
)
|
||||||
self.master = master
|
self.master = master
|
||||||
self.helpctx = helpctx
|
self.helpctx = helpctx
|
||||||
signals.focus.connect(self.sig_focus)
|
signals.focus.connect(self.sig_focus)
|
||||||
|
@ -89,6 +89,7 @@ def mitmproxy(): # pragma: nocover
|
|||||||
proxy_config = process_proxy_options(parser, options)
|
proxy_config = process_proxy_options(parser, options)
|
||||||
console_options = console.Options(**cmdline.get_common_options(options))
|
console_options = console.Options(**cmdline.get_common_options(options))
|
||||||
console_options.palette = options.palette
|
console_options.palette = options.palette
|
||||||
|
console_options.palette_transparent = options.palette_transparent
|
||||||
console_options.eventlog = options.eventlog
|
console_options.eventlog = options.eventlog
|
||||||
console_options.intercept = options.intercept
|
console_options.intercept = options.intercept
|
||||||
|
|
||||||
|
@ -8,4 +8,6 @@ import libmproxy.console.palettes as palettes
|
|||||||
class TestPalette:
|
class TestPalette:
|
||||||
def test_helptext(self):
|
def test_helptext(self):
|
||||||
for i in palettes.palettes.values():
|
for i in palettes.palettes.values():
|
||||||
assert i.palette()
|
assert i.palette(False)
|
||||||
|
for i in palettes.palettes.values():
|
||||||
|
assert i.palette(True)
|
||||||
|
Loading…
Reference in New Issue
Block a user