Make nick prefix (&, @, +) colour configurable.
This commit is contained in:
parent
72b0cd959b
commit
71b7f79317
2 changed files with 50 additions and 11 deletions
|
@ -468,7 +468,6 @@ class WeechatChannelBuffer(object):
|
||||||
own_lines = W.hdata_pointer(self._hdata, self._ptr, "own_lines")
|
own_lines = W.hdata_pointer(self._hdata, self._ptr, "own_lines")
|
||||||
return W.hdata_integer(W.hdata_get("lines"), own_lines, "lines_count")
|
return W.hdata_integer(W.hdata_get("lines"), own_lines, "lines_count")
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def lines(self):
|
def lines(self):
|
||||||
own_lines = W.hdata_pointer(self._hdata, self._ptr, "own_lines")
|
own_lines = W.hdata_pointer(self._hdata, self._ptr, "own_lines")
|
||||||
|
@ -675,17 +674,8 @@ class WeechatChannelBuffer(object):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_prefix_color(prefix):
|
def _get_prefix_color(prefix):
|
||||||
# type: (str) -> str
|
# type: (str) -> str
|
||||||
# TODO make this configurable
|
|
||||||
color = ""
|
|
||||||
|
|
||||||
if prefix == "&":
|
return G.CONFIG.color.nick_prefixes.get(prefix, "")
|
||||||
color = "lightgreen"
|
|
||||||
elif prefix == "@":
|
|
||||||
color = "lightgreen"
|
|
||||||
elif prefix == "+":
|
|
||||||
color = "yellow"
|
|
||||||
|
|
||||||
return color
|
|
||||||
|
|
||||||
def _add_user_to_nicklist(self, user):
|
def _add_user_to_nicklist(self, user):
|
||||||
# type: (WeechatUser) -> None
|
# type: (WeechatUser) -> None
|
||||||
|
|
|
@ -233,6 +233,40 @@ def logbook_category(value):
|
||||||
return "all"
|
return "all"
|
||||||
|
|
||||||
|
|
||||||
|
def parse_nick_prefix_colors(value):
|
||||||
|
"""Parses the nick prefix color setting string
|
||||||
|
("admin=COLOR1;mod=COLOR2;power=COLOR3") into a prefix -> color dict."""
|
||||||
|
|
||||||
|
def key_to_prefix(key):
|
||||||
|
if key == "admin":
|
||||||
|
return "&"
|
||||||
|
elif key == "mod":
|
||||||
|
return "@"
|
||||||
|
elif key == "power":
|
||||||
|
return "+"
|
||||||
|
else:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
prefix_colors = {
|
||||||
|
"&": "lightgreen",
|
||||||
|
"@": "lightgreen",
|
||||||
|
"+": "yellow",
|
||||||
|
}
|
||||||
|
|
||||||
|
for setting in value.split(";"):
|
||||||
|
# skip malformed settings
|
||||||
|
if "=" not in setting:
|
||||||
|
continue
|
||||||
|
|
||||||
|
key, color = setting.split("=")
|
||||||
|
prefix = key_to_prefix(key)
|
||||||
|
|
||||||
|
if prefix:
|
||||||
|
prefix_colors[prefix] = color
|
||||||
|
|
||||||
|
return prefix_colors
|
||||||
|
|
||||||
|
|
||||||
def eval_cast(string):
|
def eval_cast(string):
|
||||||
"""A function that passes a string to weechat which evaluates it using its
|
"""A function that passes a string to weechat which evaluates it using its
|
||||||
expression evaluation syntax.
|
expression evaluation syntax.
|
||||||
|
@ -818,6 +852,21 @@ class MatrixConfig(WeechatConfig):
|
||||||
"default",
|
"default",
|
||||||
"Background counterpart of untagged_code_fg",
|
"Background counterpart of untagged_code_fg",
|
||||||
),
|
),
|
||||||
|
Option(
|
||||||
|
"nick_prefixes",
|
||||||
|
"string",
|
||||||
|
"",
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
"admin=lightgreen;mod=lightgreen;power=yellow",
|
||||||
|
('Colors for nick prefixes indicating power level. '
|
||||||
|
'Format is "admin:color1;mod:color2;power:color3", '
|
||||||
|
'where "admin" stands for admins (power level = 100), '
|
||||||
|
'"mod" stands for moderators (power level >= 50) and '
|
||||||
|
'"power" for any other power user (power level > 0). '
|
||||||
|
'Requires restart to apply changes.'),
|
||||||
|
parse_nick_prefix_colors,
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
sections = [
|
sections = [
|
||||||
|
|
Loading…
Reference in a new issue