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.hshould have declarations in the header. - Avoid adding new dependencies unless there's a strong reason. SDL2 and ffmpeg are already heavy.
Submitting a PR
- Fork the repo and create a branch from
main. - Keep commits focused — one logical change per commit.
- Write a clear PR description explaining what the change does and why.
- If the change fixes a bug, reference the issue number.
- 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)