Skip to main content

Color your output to terminal

Project description

ChromaTerm

Build status Language grade: Python Coverage status Downloads PyPI version

ChromaTerm (ct) is a Python script that colors your output to terminal using regular expressions. It works with interactive programs, like SSH.

alt text

Installation

pip3 install chromaterm

Usage

Think of ct like grep; just pipe data into it, like ssh somewhere | ct.

echo "Jul 14 12:28:19  Message from 1.2.3.4: Completed successfully" | ct

If you want to always highlight a program, you can set up a function in your .bash_profile. For instance, here's one for ssh:

ssh() { /usr/bin/ssh "$@" | ct; }

Some programs behave differently when piped, like less. In that case, ct can hide the pipe by spawning your program. You just have to prefix the command with ct, like ct less file.txt.

Highlight Rules

ChromaTerm reads highlight rules from a YAML configuration file, formatted like so:

rules:
- description: My first rule colors the foreground
  regex: hello.+world
  color: f#ff0000

- description: Make "there" bold and italic. Paint "buddy" red
  regex: Hey (there), (buddy)
  color:
    1: bold italic
    2: b#ff0000

ChromaTerm will look in the following locations for the config file and use the first one it finds:

  • $HOME/.chromaterm.yml
  • $XDG_CONFIG_HOME/chromaterm/chromaterm.yml (if $XDG_CONFIG_HOME is not set, it defaults to ~/config)
  • /etc/chromaterm/chromaterm.yml

If no file is found, a default one is created in your home directory.

Check out contrib/rules; it has some topic-specific rules that are not included in the defaults.

Description

Optional. It's purely for your sake.

RegEx

The RegEx engine used is Python's re.

Color

Background and Foreground

The color is a hex string prefixed by b for background (e.g. b#123456) and f for foreground (e.g. f#abcdef).

Style

In addition to the background and foreground, the following styles are supported, though some terminals ignore them:

  • Blink
  • Bold
  • Invert
  • Italic
  • Strike
  • Underline

Group

Colors can be applied per RegEx group (see the 2nd example rule). Any group in the RegEx can be referenced, even group 0 (entire match).

Exclusive

When multiple rules match the same text, ChromaTerm highlights the text with all of the colors of the matching rules. If you want the text to be highlighted only by the first rule that matches it, use the exclusive flag on the rule, like so:

- regex: hello
  color: bold
  exclusive: True

In the code above, no other rule will highlight "hello", unless it comes first and has the exclusive flag set to True.

Help

If you've got any questions or suggestions, please open up an issue (always appreciated).

Windows support

To use ChromaTerm on Windows, you will need to run it with the Windows Subsystem for Linux (WSL)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for chromaterm, version 0.8.1
Filename, size File type Python version Upload date Hashes
Filename, size chromaterm-0.8.1-py3-none-any.whl (17.9 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size chromaterm-0.8.1.tar.gz (18.4 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page