Gogh Color Schemes

repository·master·Indexed 27 days ago

https://github.com/gogh-co/gogh

A collection of color schemes for various terminal emulators on Linux and macOS, including Gnome, Alacritty, iTerm, Kitty, Konsole, and others. It provides interactive and non-interactive installation methods, tools for previewing themes via remote TXT files, and a pipeline for creating custom themes using YAML definitions.

Tokens
2.4K
Snippets
12
Records
16
Agent score
93%

What's inside Gogh

  1. Convert old YAML themes using format.py

    master
    If you have legacy theme files located in themes_old/, you can use the format.py utility to convert them to the current project's YAML format. This script is a standalone utility and is not part of the standard automated generation pipeline.
  2. Install Gogh in Interactive Mode

    master

    Interactive mode is the easiest way to install Gogh. It allows you to select your theme from a list directly in your terminal.

    For Linux users:

    bash -c "$(wget -qO- https://git.io/vQgMr)"

    For macOS users:

    bash -c "$(curl -sLo- https://git.io/vQgMr)"
    bash -c "$(wget -qO- https://git.io/vQgMr)"
  3. Run the Tools Pipeline to generate project data and installers

    master

    The tools pipeline consists of a series of scripts used to generate project data (JSON, TXT, CSV), accessibility reports, and installation scripts from theme definitions. To ensure data consistency, you must run the scripts in the following specific order:

    1. pipe-generateJson.py: Reads YAML themes from themes/ to build data/themes.json and data/themes-min.json.
    2. pipe-generateJsonFiles.py: Splits data/themes.json into individual theme files in data/json/.
    3. pipe-generateTxtFiles.py: Creates 16-line TXT palette files (lines color_01 to color_16) for each theme in data/txt/.
    4. pipe-generateCsv.py: Exports data/themes.json to data/themes.csv.
    5. pipe-generateShFiles.py: Creates installation scripts in installs/ based on themes/*.yml.
    6. pipe-updateThemes.py: Updates the THEMES array within gogh.sh.
    7. pipe.py: Updates the run timestamp in tools/run.txt.
    8. pipe-generateWcag.js: Generates accessibility reports in data/wcag.json and data/wcag-min.json.
  4. Install Gogh in Non-Interactive Mode (Clone Repository)

    master

    Ideal for scripting or when you want full control over the files. This method involves cloning the repository and running specific theme scripts.

    1. Clone the repository into $HOME/src/gogh.
    2. Set the TERMINAL environment variable (e.g., export TERMINAL=gnome-terminal or export TERMINAL=alacritty).
    3. If using Alacritty, install requirements: pip install -r requirements.txt.
    4. Navigate to the installs directory and run the desired theme script (e.g., ./dracula.sh).
    mkdir -p "$HOME/src"
    cd "$HOME/src"
    git clone https://github.com/Gogh-Co/Gogh.git gogh
    cd gogh
    
    # For Gnome terminal
    export TERMINAL=gnome-terminal
    
    # For Alacritty
    pip install -r requirements.txt
    export TERMINAL=alacritty
    
    cd installs
    ./dracula.sh
  5. Create a custom Gogh theme

    master

    To create a new theme, create a .yml file in the themes folder. The filename must match the theme name (e.g., Solarized Dark.yml) and use title case.

    Theme YAML Template:

    ---
    name: 'Gogh'
    author: ''             # 'Author Name (http://website.com)'
    variant: ''            # Dark or Light
    
    color_01: '#292D3E'    # Black (Host)
    color_02: '#F07178'    # Red (Syntax string)
    color_03: '#62DE84'    # Green (Command)
    color_04: '#FFCB6B'    # Yellow (Command second)
    color_05: '#75A1FF'    # Blue (Path)
    color_06: '#F580FF'    # Magenta (Syntax var)
    color_07: '#60BAEC'    # Cyan (Prompt)
    color_08: '#ABB2BF'    # White
    
    color_09: '#959DCB'    # Bright Black
    color_10: '#F07178'    # Bright Red (Command error)
    color_11: '#C3E88D'    # Bright Green (Exec)
    color_12: '#FF5572'    # Bright Yellow
    color_13: '#82AAFF'    # Bright Blue (Folder)
    color_14: '#FFCB6B'    # Bright Magenta
    color_15: '#676E95'    # Bright Cyan
    color_16: '#FFFEFE'    # Bright White
    
    background: '#292D3E'  # Background
    foreground: '#BFC7D5'  # Foreground (Text)
    
    cursor: '#BFC7D5'      # Cursor
    ---
    name: 'Gogh'
    author: ''             # 'Author Name (http://website.com)'
    variant: ''            # Dark or Light
    
    color_01: '#292D3E'    # Black (Host)
    color_02: '#F07178'    # Red (Syntax string)
    color_03: '#62DE84'    # Green (Command)
    color_04: '#FFCB6B'    # Yellow (Command second)
    color_05: '#75A1FF'    # Blue (Path)
    color_06: '#F580FF'    # Magenta (Syntax var)
    color_07: '#60BAEC'    # Cyan (Prompt)
    color_08: '#ABB2BF'    # White
    
    color_09: '#959DCB'    # Bright Black
    color_10: '#F07178'    # Bright Red (Command error)
    color_11: '#C3E88D'    # Bright Green (Exec)
    color_12: '#FF5572'    # Bright Yellow
    color_13: '#82AAFF'    # Bright Blue (Folder)
    color_14: '#FFCB6B'    # Bright Magenta
    color_15: '#676E95'    # Bright Cyan
    color_16: '#FFFEFE'    # Bright White
    
    background: '#292D3E'  # Background
    foreground: '#BFC7D5'  # Foreground (Text)
    
    cursor: '#BFC7D5'      # Cursor
  6. Pre-install dependencies for Gogh

    master

    Before installing Gogh, you must install specific dependencies based on your Linux distribution to ensure color scheme application works correctly.

    For Debian/Ubuntu:

    sudo apt-get install dconf-cli uuid-runtime

    For Arch Linux:

    sudo pacman -S dconf util-linux-libs
    sudo apt-get install dconf-cli uuid-runtime
  7. Install Gogh via command line

    master

    To install Gogh directly to your system, download the binary to /usr/local/bin/gogh and make it executable.

    WARNING: Only perform this if you trust the source and know what you are doing.

    sudo wget -O /usr/local/bin/gogh https://git.io/vQgMr && sudo chmod +x /usr/local/bin/gogh
  8. Install Gogh in Non-Interactive Mode (Bare Minimum)

    master

    If you only need a specific theme without cloning the entire repository, you can download the required scripts directly.

    1. Download the apply-colors.sh script.
    2. Download the specific theme script from the installs/ directory on GitHub.
    3. (Optional) Download apply-alacritty.py or apply-terminator.py if using those terminals.
    4. Run the theme script while specifying the terminal and the apply script path via environment variables.

    Example usage:

    TERMINAL=gnome-terminal bash ./selenized-dark.sh

    Or specifying the apply script path:

    GOGH_APPLY_SCRIPT=/path/to/file/apply-colors.sh bash ./selenized-dark.sh
    wget https://github.com/Gogh-Co/Gogh/raw/master/apply-colors.sh
    wget https://github.com/Gogh-Co/Gogh/raw/master/installs/selenized-dark.sh
    
    TERMINAL=gnome-terminal bash ./selenized-dark.sh
  9. Run Gogh remotely with arguments

    master

    To use Gogh in a single command without a permanent installation, use bash -c with a remote script. You must pass -- before your theme arguments to ensure they are passed to the script correctly.

    bash -c "$(wget -qO- https://git.io/vQgMr)" -- Dracula
  10. Generate a Kitty config from a remote TXT file

    master

    You can generate a configuration file specifically for the Kitty terminal emulator from a remote TXT file. Redirect the output to a .conf file to save the generated configuration.

    python3 color256.py --generate kitty <(curl -fsSL https://raw.githubusercontent.com/Gogh-Co/Gogh/refs/heads/master/data/txt/aci.txt) > aci.conf
  11. View a theme from a remote TXT file

    master

    You can preview a color theme without downloading it locally by passing a remote TXT file directly to the color256.py script using process substitution. This allows you to see how the colors look in your terminal immediately.

    python3 color256.py <(curl -fsSL https://raw.githubusercontent.com/Gogh-Co/Gogh/refs/heads/master/data/txt/aci.txt)
  12. Apply a theme temporarily from a remote TXT file

    master

    To apply a color theme to your current terminal session temporarily using a remote TXT file, use the --apply flag. This is useful for testing themes quickly without permanent installation.

    python3 color256.py --apply <(curl -fsSL https://raw.githubusercontent.com/Gogh-Co/Gogh/refs/heads/master/data/txt/aci.txt)