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:
- Generate the JSON data files in
data/
. - Generate the installer script in
installs/
. - 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.
-
Clone the repository:
git clone https://github.com/Gogh-Co/Gogh.git cd Gogh
-
Install Dependencies: Gogh uses Python for its helper and build scripts. You can use
devbox
for a containerized environment or install the dependencies directly usingpip
.-
With Devbox: The
devbox.json
file specifies Python 3.12. If you havedevbox
installed, simply rundevbox shell
to activate the environment. -
With pip: Install the required Python packages from
requirements.txt
:pip install -r requirements.txt
-
-
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.