A fullscreen splash-screen wrapper for launching a game or app. It displays an image (or a fallback black screen), starts your executable, and closes when the process exits or loses focus after launch.
demo.mp4
- Fullscreen, borderless splash screen with hidden cursor (SDL2)
- Displays a supplied image via SDL2_image or video via ffmpeg (fallback to black if load fails)
- Launches the target executable and exits when it finishes
- Hides on focus loss after the game starts or closes on Esc
- C compiler (GCC or Clang)
- make
- pkg-config
- SDL2
- SDL2_image
- ffmpeg (libavformat, libavcodec, libswscale, libavutil)
Arch Linux users can install the latest development package from the AUR using an AUR helper like yay or paru:
yay -S gsplash-gitAlternatively, you can build it manually using the provided PKGBUILD:
cd packaging/arch
makepkg -siFor other distributions, build and install manually:
# Build the binary into build/
make
# Install system-wide (defaults to /usr/local)
sudo make install
# Staged install (useful for packaging):
DESTDIR=/some/staging/path make installgsplash [options] <image_or_video_path> <game_executable> [game_arguments...]Example:
gsplash assets/splash.jpg /path/to/game --fullscreen --profile=default
# Video splash (supported formats depend on ffmpeg build)
gsplash assets/splash.mp4 /path/to/game --fullscreen --profile=defaultGsplash allows you to configure how the image or video is displayed with 3 modes:
center(default): letterboxcrop: fill screen by croppingstretch: Distort to fill screen
You can set these by using the -m or --mode flag:
gsplash [--mode=stretch|center|crop] <background> <executable> [args...]
gsplash -m stretch|center|crop <background> <executable> [args...]You can optionally protect the splash screen from dismissing on focus changes for a given number of seconds using -i or --ignore-focus=SEC. This is useful if the game process itself brings up a short-lived focus window before the main game window opens:
gsplash --ignore-focus=2.5 <background> <executable> [args...]
gsplash -i 2.5 <background> <executable> [args...]Gsplash includes several testing utilities to ensure proper functionality without requiring a heavy game binary.
Run the automated test suite (which includes a headless smoke test and CLI argument validation) using:
make checkTo physically test the splash screen rendering modes (stretch, center, crop) with a real image, use the interactive test script. It launches gsplash with each mode and prompts you to confirm if it displayed correctly:
./tests/test_interactive.sh path/to/your/image.png(Tip: You can place your test images in the tests/assets/ directory).
For manual testing, a dummy_game binary is built alongside gsplash. It mimics a real game by sleeping to simulate startup time, creating an SDL window to trigger gsplash's focus loss detection and exiting cleanly.
./build/gsplash path/to/image.png ./build/dummy_game
# Test with a custom 10 second simulated game load time
./build/gsplash path/to/image.png ./build/dummy_game 10Please go through the CONTRIBUTING.md guidelines if you'd like to contribute to gsplash.