Contributing to Gogh

Contributions are welcome and greatly appreciated! Whether it's adding a new theme, fixing a bug, or improving documentation, your help makes Gogh better.

Creating and Adding a New Theme

The easiest way to contribute is by adding a new color scheme. All themes are generated from simple YAML files.

1. Create a Theme .yml File

Create a new file in the themes/ directory (you will need to clone the repository first). The filename should be the name of your theme, such as My Awesome Theme.yml.

Follow this template:

---
name: 'Gogh'         # The theme name, should match the filename
author: ''           # 'Author Name (http://website.com)'
variant: ''          # Dark or Light

# Standard ANSI colors 0-7
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

# Bright ANSI colors 8-15
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

# Special colors
background: '#292D3E'  # Background
foreground: '#BFC7D5'  # Foreground (Text)
cursor: '#BFC7D5'      # Cursor

2. Submit a Pull Request

Once you have created your theme file, commit it and open a pull request. The project's automated GitHub Actions workflow will handle the rest. It will:

  1. Generate the JSON data files in data/.
  2. Generate the installer script in installs/.
  3. Update the master list of themes in gogh.sh.

Setting up a Development Environment

If you want to contribute to the scripts themselves, you'll need to set up a local development environment.

  1. Clone the repository:

    git clone https://github.com/Gogh-Co/Gogh.git
    cd Gogh

  2. Install Dependencies: Gogh uses Python for its helper and build scripts. You can use devbox for a containerized environment or install the dependencies directly using pip.

    • With Devbox: The devbox.json file specifies Python 3.12. If you have devbox installed, simply run devbox shell to activate the environment.

    • With pip: Install the required Python packages from requirements.txt:

      pip install -r requirements.txt

  3. Run Scripts: You can now run the Python scripts in the tools/ directory (not included in this repository snapshot) or the main shell scripts (gogh.sh, apply-colors.sh) to test your changes.