{"id":50909619,"url":"https://github.com/sortedcord/gsplash","last_synced_at":"2026-06-16T09:01:28.111Z","repository":{"id":359917398,"uuid":"1247983523","full_name":"sortedcord/gsplash","owner":"sortedcord","description":"Splash screen wrapper for Linux. Hide your desktop when transitioning from the launcher to the game.","archived":false,"fork":false,"pushed_at":"2026-05-31T12:45:40.000Z","size":8215,"stargazers_count":6,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-31T14:20:02.343Z","etag":null,"topics":["gaming","launcher","retrogaming","sdl2","splashscreen","steam-os","steamdeck"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sortedcord.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-24T03:16:57.000Z","updated_at":"2026-05-31T12:45:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sortedcord/gsplash","commit_stats":null,"previous_names":["sortedcord/gsplash"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sortedcord/gsplash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sortedcord%2Fgsplash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sortedcord%2Fgsplash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sortedcord%2Fgsplash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sortedcord%2Fgsplash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sortedcord","download_url":"https://codeload.github.com/sortedcord/gsplash/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sortedcord%2Fgsplash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34398408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gaming","launcher","retrogaming","sdl2","splashscreen","steam-os","steamdeck"],"created_at":"2026-06-16T09:01:26.986Z","updated_at":"2026-06-16T09:01:28.042Z","avatar_url":"https://github.com/sortedcord.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gsplash\n\nA 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.\n\nhttps://github.com/user-attachments/assets/22da49b4-0f1f-4208-8d0b-9eeef14e35e5\n\n## Features\n\n1. Fullscreen, borderless splash screen with hidden cursor (SDL2)\n2. Displays a supplied image via SDL2_image or video via ffmpeg (fallback to black if load fails)\n3. Launches the target executable and exits when it finishes\n4. Hides on focus loss after the game starts or closes on **Esc**\n\n## Build Requirements\n\n- C compiler (GCC or Clang)\n- make\n- pkg-config\n- SDL2\n- SDL2_image\n- ffmpeg (libavformat, libavcodec, libswscale, libavutil)\n\n## Install\n\nArch Linux users can install the latest development package from the [AUR](https://aur.archlinux.org/packages/gsplash-git) using an AUR helper like `yay` or `paru`:\n\n```bash\nyay -S gsplash-git\n```\n\nAlternatively, you can build it manually using the provided PKGBUILD:\n\n```bash\ncd packaging/arch\nmakepkg -si\n```\n\nFor other distributions, build and install manually:\n\n```bash\n# Build the binary into build/\nmake\n\n# Install system-wide (defaults to /usr/local)\nsudo make install\n\n# Staged install (useful for packaging):\nDESTDIR=/some/staging/path make install\n```\n\n## Usage\n\n```bash\ngsplash [options] \u003cimage_or_video_path\u003e \u003cgame_executable\u003e [game_arguments...]\n```\n\nExample:\n\n```bash\ngsplash assets/splash.jpg /path/to/game --fullscreen --profile=default\n\n# Video splash (supported formats depend on ffmpeg build)\ngsplash assets/splash.mp4 /path/to/game --fullscreen --profile=default\n```\n\nGsplash allows you to configure how the image or video is displayed with 3 modes:\n\n- `center` (default): letterbox\n- `crop`: fill screen by cropping\n- `stretch`: Distort to fill screen\n\nYou can set these by using the `-m` or `--mode` flag:\n\n```bash\ngsplash [--mode=stretch|center|crop] \u003cbackground\u003e \u003cexecutable\u003e [args...]\n\ngsplash -m stretch|center|crop \u003cbackground\u003e \u003cexecutable\u003e [args...]\n```\n\nYou 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:\n\n```bash\ngsplash --ignore-focus=2.5 \u003cbackground\u003e \u003cexecutable\u003e [args...]\n\ngsplash -i 2.5 \u003cbackground\u003e \u003cexecutable\u003e [args...]\n```\n\n\n## Testing\n\nGsplash includes several testing utilities to ensure proper functionality without requiring a heavy game binary.\n\n### Automated Testing\n\nRun the automated test suite (which includes a headless smoke test and CLI argument validation) using:\n\n```bash\nmake check\n```\n\n### Interactive Visual Testing\n\nTo 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:\n\n```bash\n./tests/test_interactive.sh path/to/your/image.png\n```\n*(Tip: You can place your test images in the `tests/assets/` directory).*\n\n### Dummy Game Utility\n\nFor 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.\n\n```bash\n./build/gsplash path/to/image.png ./build/dummy_game\n\n# Test with a custom 10 second simulated game load time\n./build/gsplash path/to/image.png ./build/dummy_game 10\n```\n\n## Contributing\n\nPlease go through the [CONTRIBUTING.md](CONTRIBUTING.md) guidelines if you'd like to contribute to gsplash.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsortedcord%2Fgsplash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsortedcord%2Fgsplash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsortedcord%2Fgsplash/lists"}