]> git.ipfire.org Git - oddments/collecty.git/blobdiff - src/collecty/colours.py
graphs: Make areas less opaque
[oddments/collecty.git] / src / collecty / colours.py
index 6aaa207d5e55270cfc2d84d697ef446075c173b5..d8ffa65222f83d8ee79ac92ee351643e6d31bae4 100644 (file)
 #                                                                             #
 ###############################################################################
 
+def _add(colour, amount):
+       """
+               Adds some value to colours
+       """
+       # Parse hex array
+       bytes = bytearray.fromhex(colour.lstrip("#"))
+
+       if not len(bytes) == 3:
+               raise ValueError("Invalid colour: %s" % colour)
+
+       ret = bytearray()
+
+       for byte in bytes:
+               byte = round(byte * amount)
+
+               # Ensure the result is within range
+               byte = min(byte, 255)
+               byte = max(byte, 0)
+
+               # Update the array
+               ret.append(byte)
+
+       return "#%s" % ret.hex()
+
+def lighten(colour, scale=0.25):
+       """
+               Takes a hexadecimal colour code
+               and brightens the colour.
+       """
+       return _add(colour, scale)
+
+def darken(colour, scale=0.25):
+       """
+               Takes a hexadecimal colour code
+               and darkens the colour.
+       """
+       return _add(colour, -scale)
+
+def transparency(colour, scale=0.1):
+       """
+               Adds transparency to the given colour code
+       """
+       return "%s%02X" % (colour, round(0xff * scale))
+
 BLACK        = "#000000"
 WHITE        = "#FFFFFF"
+GREY         = "#9E9E9E"
+LIGHT_GREY   = "#F5F5F5"
 
-YELLOW       = "#FFFF33"
+RED          = "#F44336"
+LIGHT_RED    = "#CC0033"
+YELLOW       = "#FFEB3B"
 LIGHT_YELLOW = "#FFFF66"
+GREEN        = "#4CAF50"
+LIGHT_GREEN  = "#8BC34A"
+BLUE         = "#2196F3"
+LIGHT_BLUE   = "#03A9F4"
 
-LIGHT_GREEN  = "#00CC33"
-LIGHT_RED    = "#CC0033"
+AMBER        = "#FFC107"
+BROWN        = "#795548"
+CYAN         = "#00BCD4"
+INDIGO       = "#3F51B5"
+LIME         = "#CDDC39"
+ORANGE       = "#FF9800"
+DEEP_ORANGE  = "#FF5722"
+PINK         = "#E91E63"
+PURPLE       = "#9C27B0"
+DEEP_PURPLE  = "#673AB7"
+TEAL         = "#009688"
+
+COLOUR_OK       = LIGHT_GREEN
+COLOUR_CRITICAL = LIGHT_RED
+COLOUR_ERROR    = COLOUR_CRITICAL
+COLOUR_WARN     = LIGHT_YELLOW
+COLOUR_TEXT     = lighten(BLACK, 0.87) # 87% grey
+
+PRIMARY      = INDIGO
+ACCENT       = PINK
+
+# Lighten the areas by this factor
+AREA_OPACITY   = 0.75
+STDDEV_OPACITY = 0.33
+
+# Receive and transmit
+COLOUR_RX    = RED
+COLOUR_TX    = GREEN
+
+# I/O
+COLOUR_READ  = GREEN
+COLOUR_WRITE = RED
+
+# IPv6 + IPv4
+COLOUR_IPV6  = INDIGO
+COLOUR_IPV4  = PINK
+COLOUR_IPVX  = GREY # other
+
+COLOUR_TCP     = INDIGO
+COLOUR_UDP     = YELLOW
+COLOUR_ICMP    = PURPLE
+COLOUR_IGMP    = TEAL
+COLOUR_UDPLITE = DEEP_ORANGE
+COLOUR_SCTP    = LIGHT_GREEN
+COLOUR_DCCP    = LIGHT_BLUE
+COLOUR_OTHER   = COLOUR_IPVX
+
+# Processor
+CPU_USER       = LIGHT_GREEN
+CPU_NICE       = BLUE
+CPU_SYS        = RED
+CPU_WAIT       = DEEP_PURPLE
+CPU_IRQ        = ORANGE
+CPU_SIRQ       = YELLOW
+CPU_STEAL      = LIGHT_BLUE
+CPU_GUEST      = PINK
+CPU_GUEST_NICE = lighten(PINK, 0.8)
+CPU_IDLE       = LIGHT_GREY
+
+# Memory
+MEMORY_USED     = GREEN
+MEMORY_BUFFERED = BLUE
+MEMORY_CACHED   = YELLOW
+MEMORY_SWAP     = RED
+MEMORY_FREE     = LIGHT_GREY
+
+COLOURS_PROTOCOL_STATES = {
+       # General states
+       "NONE"              : GREY,
+       "TIME_WAIT"         : AMBER,
+
+       # TCP
+       "CLOSE"             : BLACK,
+       "CLOSE_WAIT"        : lighten(BLACK, 0.25),
+       "ESTABLISHED"       : LIGHT_GREEN,
+       "FIN_WAIT"          : ORANGE,
+       "LAST_ACK"          : PURPLE,
+       "SYN_RECV"          : CYAN,
+       "SYN_SENT"          : TEAL,
+       "SYN_SENT2"         : AMBER,
+
+       # DCCP
+       "CLOSEREQ"          : lighten(BLACK, 0.5),
+       "CLOSING"           : lighten(BLACK, 0.25),
+       "IGNORE"            : WHITE,
+       "INVALID"           : RED,
+       "OPEN"              : LIGHT_GREEN,
+       "PARTOPEN"          : YELLOW,
+       "REQUEST"           : CYAN,
+       "RESPOND"           : TEAL,
 
-COLOUR_OK    = LIGHT_GREEN
-COLOUR_ERROR = LIGHT_RED
-COLOUR_WARN  = LIGHT_YELLOW
+       # SCTP
+       "CLOSED"            : BLACK,
+       "COOKIE_ECHOED"     : AMBER,
+       "COOKIE_WAIT"       : CYAN,
+       "SHUTDOWN_ACK_SENT" : TEAL,
+       "SHUTDOWN_RECD"     : PURPLE,
+       "SHUTDOWN_SENT"     : LIGHT_BLUE,
+}