Files
gsplash/CONTRIBUTING.md

2.3 KiB

Contributing to gsplash

Thanks for your interest in contributing. gsplash is a small utility and contributions that keep it that way are most welcome.

What to work on

Check the issue tracker on GitHub for open issues. If you want to add something new, open an issue first to discuss it before writing code. This avoids wasted effort if the change isn't a good fit for the project.

Good areas to contribute:

  • Bug fixes (see known issues in README or open issues)
  • Broader video format or image format support
  • Wayland compatibility improvements
  • Packaging for other distributions

Building

You'll need:

  • GCC or Clang
  • make, pkg-config
  • SDL2, SDL2_image
  • ffmpeg (libavformat, libavcodec, libswscale, libavutil)

On Arch Linux:

sudo pacman -S sdl2 sdl2_image ffmpeg

On Ubuntu/Debian:

sudo apt install libsdl2-dev libsdl2-image-dev libavformat-dev libavcodec-dev libswscale-dev libavutil-dev

Then build:

make

The binary is output to build/gsplash.

Testing

Before submitting a PR, run the automated test suite:

make check

This runs a headless smoke test and the CLI argument validation suite. Both must pass.

For visual changes (render modes, layout), also run the interactive test with a real image:

./tests/test_interactive.sh path/to/image.png

If you're adding new CLI arguments or flags, add corresponding cases to tests/test_cli.sh.

Code style

  • Match the existing style: 4-space indentation, snake_case, braces on their own line.
  • All new functions in video.c/video.h should have declarations in the header.
  • Avoid adding new dependencies unless there's a strong reason. SDL2 and ffmpeg are already heavy.

Submitting a PR

  1. Fork the repo and create a branch from main.
  2. Keep commits focused — one logical change per commit.
  3. Write a clear PR description explaining what the change does and why.
  4. If the change fixes a bug, reference the issue number.
  5. PRs should target github.com/sortedcord/gsplash — this is the canonical public remote.

Reporting bugs

Open an issue on GitHub with:

  • Your OS and desktop environment
  • The gsplash version or commit hash
  • The command you ran
  • The full stderr output (gsplash logs to stderr via [splash] prefixed lines)