{"id":42567673,"url":"https://github.com/sin-ack/papertoy","last_synced_at":"2026-01-28T20:47:09.556Z","repository":{"id":306315152,"uuid":"1025168962","full_name":"sin-ack/papertoy","owner":"sin-ack","description":"Run a Shadertoy-compatible shader as an animated wallpaper on Wayland","archived":false,"fork":false,"pushed_at":"2025-08-15T12:02:27.000Z","size":81,"stargazers_count":95,"open_issues_count":7,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-16T03:29:23.547Z","etag":null,"topics":["animated-wallpaper","wayland"],"latest_commit_sha":null,"homepage":"","language":"Zig","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/sin-ack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2025-07-23T20:48:16.000Z","updated_at":"2025-11-05T02:04:44.000Z","dependencies_parsed_at":"2025-07-25T00:47:48.878Z","dependency_job_id":null,"html_url":"https://github.com/sin-ack/papertoy","commit_stats":null,"previous_names":["sin-ack/papertoy"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/sin-ack/papertoy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sin-ack%2Fpapertoy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sin-ack%2Fpapertoy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sin-ack%2Fpapertoy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sin-ack%2Fpapertoy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sin-ack","download_url":"https://codeload.github.com/sin-ack/papertoy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sin-ack%2Fpapertoy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28851304,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T15:15:36.453Z","status":"ssl_error","status_checked_at":"2026-01-28T15:15:13.020Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["animated-wallpaper","wayland"],"created_at":"2026-01-28T20:47:08.971Z","updated_at":"2026-01-28T20:47:09.547Z","avatar_url":"https://github.com/sin-ack.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Papertoy\n\n[![justforfunnoreally.dev badge](https://img.shields.io/badge/justforfunnoreally-dev-9ff)](https://justforfunnoreally.dev)\n\nRun a Shadertoy-compatible shader as an animated wallpaper on Wayland. Requires\nrunning a wlroots-compatible Wayland compositor.\n\n## Showcase\n\nhttps://github.com/user-attachments/assets/8d6ae569-8fed-4ae5-aa11-4a3db6d13167\n\nShader: Balatro main menu background shader *(not publicly available)*\n\n![Papertoy running the \"Seascape\" shader](https://github.com/user-attachments/assets/010e225e-0952-4511-a1cf-715389ebf907)\n\nShader: *Seascape* by TDM - https://www.shadertoy.com/view/Ms2SD1\n\n![Papertoy running the \"Auroras\" shader](https://github.com/user-attachments/assets/6db0bcd8-7d63-4720-9596-8b14114c158b)\n\nShader: *Auroras* by Nimitz - https://www.shadertoy.com/view/XtGGRt\n\n## Dependencies\n\nYou'll most likely have these installed if you have a Wayland compositor anyway.\n\n- Debian and variants: `libwayland-client0 libwayland-egl1 libegl1 libglvnd0 libffi8`\n- Gentoo: `dev-util/wayland media-libs/glvnd dev-libs/libffi`\n\n## Install\n\nEither [download the latest release](https://github.com/sin-ack/papertoy/releases/latest) or follow the [build instructions below](#build).\n\nPlace `papertoy` somewhere in your `PATH` (e.g. `.local/bin`).\n\nOnce I'm happy with the stability I'll probably go for system packages.\n\n## Usage\n\nRun the binary with the path to a Shadertoy shader as an argument:\n```console\n$ zig-out/bin/papertoy /path/to/shader.glsl\n```\n\n\u003e [!IMPORTANT]\n\u003e Currently, only shaders that don't use any channels are supported. This is\n\u003e being worked on.\n\nOptions:\n- `--output \u003cid\u003e`: Render to this Wayland output index (default: `0`)\n- `--frame-rate \u003cfps\u003e`: Limit the frame rate of the shader (default: output refresh rate)\n- `--resolution \u003cWxH\u003e`: Limit the resolution the shader is rendered at (default: output native resolution)\n\n## Build\n\n### Nix\n\n1. `nix run .`\n2. There is no second step.\n\nYou can add the flake to your profile with: `nix profile install github:sin-ack/papertoy/\u003cversion\u003e`\n\n### Bare metal\n\n#### Dependencies\n\n- Zig 0.15.2\n- `libwayland`\n  - Debian and variants: `libwayland-dev`\n  - Gentoo: `dev-util/wayland`\n- `libglvnd`\n  - Debian and variants: `libglvnd-dev`\n  - Gentoo: `media-libs/glvnd`\n\n#### Steps\n\n1. Install the listed dependencies above.\n2. Clone the repository.\n3. Run `zig build -Doptimize=ReleaseFast`\n\nThe binary will be located at `zig-out/bin/papertoy`.\n\n## License\n\nCopyright (c) 2025, sin-ack. Released under the GNU General Public License, version 3.\n\nThe Shadertoy preamble is from the Ghostty project. Copyright (c) 2024 Mitchell Hashimoto, License: MIT\n\nThe wlr-layer-shell-unstable-v1 protocol is from the wlr-protocols project. Copyright (c) 2017 Drew DeVault, License: MIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsin-ack%2Fpapertoy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsin-ack%2Fpapertoy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsin-ack%2Fpapertoy/lists"}