{"id":37629436,"url":"https://github.com/1ay1/neowall","last_synced_at":"2026-01-25T19:13:16.223Z","repository":{"id":319919946,"uuid":"1080102248","full_name":"1ay1/neowall","owner":"1ay1","description":"🎨 A reliable Wayland wallpaper engine written in C. Multi-monitor support, smooth transitions, hot-reload. For Wayland (Sway, Hyprland, River. and KWin) and X11","archived":false,"fork":false,"pushed_at":"2026-01-13T07:33:14.000Z","size":5260,"stargazers_count":174,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-13T10:34:06.864Z","etag":null,"topics":["background","c","compositor","desktop-customization","desktop-environment","egl","hyprland","i3","linux","multi-monitor","opengl","sway","unix","wallpaper","wallpaper-manager","wayland","wayland-compositor","wlroots","x11","xorg"],"latest_commit_sha":null,"homepage":"https://github.com/1ay1/neowall#readme","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/1ay1.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":".github/CODEOWNERS","security":".github/SECURITY.md","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":"2025-10-20T21:47:24.000Z","updated_at":"2026-01-13T09:13:25.000Z","dependencies_parsed_at":"2025-12-06T21:00:27.245Z","dependency_job_id":null,"html_url":"https://github.com/1ay1/neowall","commit_stats":null,"previous_names":["1ay1/staticwall","1ay1/neowall"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/1ay1/neowall","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ay1%2Fneowall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ay1%2Fneowall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ay1%2Fneowall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ay1%2Fneowall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/1ay1","download_url":"https://codeload.github.com/1ay1/neowall/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ay1%2Fneowall/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478090,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"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":["background","c","compositor","desktop-customization","desktop-environment","egl","hyprland","i3","linux","multi-monitor","opengl","sway","unix","wallpaper","wallpaper-manager","wayland","wayland-compositor","wlroots","x11","xorg"],"created_at":"2026-01-16T10:54:27.961Z","updated_at":"2026-01-16T10:54:28.525Z","avatar_url":"https://github.com/1ay1.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"packaging/neowall.svg\" alt=\"NeoWall\" width=\"300\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eLive GPU shaders as your wallpaper. Yes, really.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/1ay1/neowall/actions/workflows/build.yml\"\u003e\u003cimg src=\"https://github.com/1ay1/neowall/actions/workflows/build.yml/badge.svg\" alt=\"Build\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/1ay1/neowall/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/1ay1/neowall?color=blue\" alt=\"License\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/1ay1/neowall/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/1ay1/neowall?include_prereleases\u0026color=purple\" alt=\"Release\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cvideo src=\"https://github.com/user-attachments/assets/3a55d4e2-7257-4884-8aa2-9024ec86a560\" width=\"49%\" controls autoplay loop muted\u003e\u003c/video\u003e\n  \u003cvideo src=\"https://github.com/user-attachments/assets/c1e38d88-5c1e-4db4-9948-da2ad86c6a69\" width=\"49%\" controls autoplay loop muted\u003e\u003c/video\u003e\n\u003c/p\u003e\n\n---\n\n## What is this?\n\nNeoWall renders **Shadertoy shaders** directly on your desktop. Wayland, X11, multi-monitor, 60fps, ~2% CPU.\n\n```bash\nneowall   # That's it. You now have an animated wallpaper.\n```\n\n## Install\n\n**Pre-built binaries:**\n\nDownload from [Releases](https://github.com/1ay1/neowall/releases/latest):\n```bash\n# Arch, Debian/Ubuntu, or Fedora\ntar -xzf neowall-linux-x86_64-*.tar.gz\nsudo mv neowall /usr/local/bin/\n```\n\n**Arch (AUR):**\n```bash\nyay -S neowall-git\n```\n\n**Build from source:**\n```bash\ngit clone https://github.com/1ay1/neowall \u0026\u0026 cd neowall\nmeson setup build \u0026\u0026 ninja -C build\nsudo ninja -C build install\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eDependencies\u003c/summary\u003e\n\n```bash\n# Debian/Ubuntu\nsudo apt install build-essential meson ninja-build libwayland-dev \\\n    libgles2-mesa-dev libpng-dev libjpeg-dev wayland-protocols \\\n    libx11-dev libxrandr-dev\n\n# Arch\nsudo pacman -S base-devel meson ninja wayland mesa libpng libjpeg-turbo \\\n    wayland-protocols libx11 libxrandr\n\n# Fedora\nsudo dnf install gcc meson ninja-build wayland-devel mesa-libGLES-devel \\\n    libpng-devel libjpeg-turbo-devel wayland-protocols-devel \\\n    libX11-devel libXrandr-devel\n```\n\u003c/details\u003e\n\n## Config\n\nLives at `~/.config/neowall/config.vibe`\n\n**Shader wallpaper:**\n```\ndefault {\n  shader retro_wave.glsl\n  shader_speed 0.8\n}\n```\n\n**Image slideshow:**\n```\ndefault {\n  path ~/Pictures/Wallpapers/\n  duration 300\n  transition glitch\n}\n```\n\n**Multi-monitor:**\n```\noutput {\n  DP-1 { shader matrix_rain.glsl }\n  HDMI-A-1 { path ~/Pictures/ duration 600 }\n}\n```\n\n## Commands\n\n```bash\nneowall          # start\nneowall kill     # stop\nneowall next     # next wallpaper\nneowall pause    # pause\nneowall resume   # resume\nneowall list     # show cycle\nneowall set 3    # jump to index 3\nneowall current  # what's playing?\n```\n\n## Shaders\n\n30+ included. Some highlights:\n\n| Vibe | Shaders |\n|------|---------|\n| 🌆 Synthwave | `retro_wave` `synthwave` `neonwave_sunrise` |\n| 🌊 Nature | `ocean_waves` `aurora` `sunrise` `moon_ocean` |\n| 💻 Cyber | `matrix_rain` `matrix_real` `glowing_triangles` |\n| 🔮 Abstract | `fractal_land` `plasma` `mandelbrot` |\n| 🌌 Space | `star_next` `starship_reentry` `cross_galactic_ocean` |\n\n**Use any Shadertoy shader:**\n1. Copy code from shadertoy.com\n2. Save to `~/.config/neowall/shaders/cool.glsl`\n3. Config: `shader cool.glsl`\n4. Done\n\n## GLEditor\n\n[**GLEditor**](https://github.com/1ay1/gleditor) — live shader editor that exports directly to NeoWall. Write, preview, one-click install.\n\n```bash\nyay -S gleditor-git\n```\n\n## How it works\n\n```\n┌────────────────────────────────────────┐\n│            NeoWall Daemon              │\n├────────────────────────────────────────┤\n│  Config Parser → Event Loop → Shaders  │\n├────────────────────────────────────────┤\n│  Wayland (layer-shell)  │  X11 (EWMH)  │\n├────────────────────────────────────────┤\n│           EGL / OpenGL 3.3             │\n└────────────────────────────────────────┘\n```\n\n- Pure C, single binary\n- GPU does the work, CPU chills\n- timerfd/signalfd — no busy loops\n- Same code runs everywhere\n\n## vs Others\n\n| | NeoWall | swww | mpvpaper | hyprpaper |\n|-|---------|------|----------|-----------|\n| Live shaders | ✅ | ❌ | ❌ | ❌ |\n| Shadertoy | ✅ | ❌ | ❌ | ❌ |\n| Videos | ❌ | GIFs | ✅ | ❌ |\n| Images | ✅ | ✅ | ❌ | ✅ |\n| X11 | ✅ | ❌ | ❌ | ❌ |\n| Wayland | ✅ | ✅ | ✅ | ✅ |\n| Interactive | ✅ | ❌ | ❌ | ❌ |\n\n**NeoWall = only Linux tool for live GPU shader wallpapers.**\n\n## Caveats\n\n- **KDE Plasma**: Desktop icons might hide. Use a dock.\n- **No video wallpapers**: Use mpvpaper for that.\n\n## Contributing\n\n```bash\nmeson setup build --buildtype=debug\nninja -C build\n./build/neowall -f -v\n```\n\nPRs welcome: shaders, bug fixes, docs, testing.\n\n## License\n\nMIT — do whatever you want.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/1ay1/neowall/issues\"\u003eBugs\u003c/a\u003e · \u003ca href=\"https://github.com/1ay1/neowall/discussions\"\u003eChat\u003c/a\u003e · \u003ca href=\"https://github.com/1ay1/neowall\"\u003e⭐ Star if cool\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1ay1%2Fneowall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F1ay1%2Fneowall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1ay1%2Fneowall/lists"}