{"id":47719843,"url":"https://github.com/lil-code-team/webwall-gtk","last_synced_at":"2026-04-02T19:17:45.960Z","repository":{"id":348148341,"uuid":"1196705499","full_name":"lil-code-team/webwall-gtk","owner":"lil-code-team","description":"A GTK-based dynamic wallpaper engine that renders HTML content directly on the desktop using a shell-level WebView layer","archived":false,"fork":false,"pushed_at":"2026-03-31T01:58:33.000Z","size":24,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-31T04:27:04.244Z","etag":null,"topics":["gtk3","wallpaper","wallpaper-engine-software","web","webkit2"],"latest_commit_sha":null,"homepage":"","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/lil-code-team.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-31T00:49:34.000Z","updated_at":"2026-03-31T03:13:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lil-code-team/webwall-gtk","commit_stats":null,"previous_names":["lil-code-team/webwall-gtk"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/lil-code-team/webwall-gtk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lil-code-team%2Fwebwall-gtk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lil-code-team%2Fwebwall-gtk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lil-code-team%2Fwebwall-gtk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lil-code-team%2Fwebwall-gtk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lil-code-team","download_url":"https://codeload.github.com/lil-code-team/webwall-gtk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lil-code-team%2Fwebwall-gtk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31314322,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["gtk3","wallpaper","wallpaper-engine-software","web","webkit2"],"created_at":"2026-04-02T19:17:45.467Z","updated_at":"2026-04-02T19:17:45.946Z","avatar_url":"https://github.com/lil-code-team.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎨 WebWall GTK - Interactive Wallpaper\n\nA modern and lightweight interactive wallpaper application for Linux, built with GTK 3 and WebKit2. Create and customize dynamic wallpapers using HTML, CSS, and JavaScript.\n\n![License: MIT](https://img.shields.io/badge/license-MIT-blue)\n![Language: C](https://img.shields.io/badge/language-C-blue)\n![Platform: Linux](https://img.shields.io/badge/platform-Linux-green)\n\n## ✨ Features\n\n- 🎯 **Full HTML5 Rendering** - Uses WebKit2 to render any web content as wallpaper\n- 🖥️ **Layer Shell Integration** - Compatible with Wayland and X11 via gtk-layer-shell\n- 🌐 **Link Navigation** - Clicks on links open in the default browser\n- ⚙️ **Fully Customizable** - Customize via HTML/CSS/JS in `~/.config/wallpaper/index.html`\n- 🔧 **Lightweight and Fast** - Written in C with minimal dependencies\n- 📦 **Automatic Build** - GitHub Actions for compilation and releases\n\n## 🚀 Quick Start\n\n### Dependencies\n\n#### Ubuntu/Debian\n\n```bash\nsudo apt-get install -y \\\n  build-essential \\\n  libgtk-3-dev \\\n  libgtk-layer-shell-dev \\\n  libwebkit2gtk-4.0-dev \\\n  pkg-config\n```\n\n#### Fedora/RHEL\n\n```bash\nsudo dnf install -y \\\n  gcc \\\n  gtk3-devel \\\n  gtk-layer-shell-devel \\\n  webkit2gtk3-devel \\\n  pkg-config\n```\n\n#### Arch\n\n```bash\nsudo pacman -S base-devel gtk3 gtk-layer-shell webkit2gtk\n```\n\n### Build\n\n```bash\n# Clone or enter the repository\ngit clone https://github.com/lil-code-team/webwall-gtk.git\ncd webwall-gtk\n\n# Compile\ngcc wallpaper.c -o ./build/webwall-gtk `pkg-config --cflags --libs gtk+-3.0 gtk-layer-shell-0 webkit2gtk-4.0`\n\n# Run\n./build/webwall-gtk\n```\n\n## 📖 How to Use\n\n### Installing the Executable\n\n```bash\n# Copy to an accessible location\nsudo cp webwall-gtk /usr/local/bin/\n\n# Or for personal use\nmkdir -p ~/.local/bin\ncp webwall-gtk ~/.local/bin/\n```\n\n### Configuration\n\nThe default configuration file is loaded from: `~/.config/wallpaper/index.html`\n\n1. **Create the configuration directory (if it doesn't exist):**\n\n   ```bash\n   mkdir -p ~/.config/wallpaper\n   ```\n\n2. **Copy the example file or create a new one:**\n\n   ```bash\n   cp index.example.html ~/.config/wallpaper/index.html\n   ```\n\n3. **Edit the `~/.config/wallpaper/index.html` file as desired.**\n\n### Configuration Examples\n\n#### Simple Wallpaper with Gradient\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n  \u003chead\u003e\n    \u003cstyle\u003e\n      body {\n        margin: 0;\n        height: 100vh;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n      }\n    \u003c/style\u003e\n  \u003c/head\u003e\n  \u003cbody\u003e\u003c/body\u003e\n\u003c/html\u003e\n```\n\n#### Wallpaper with Clock\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n  \u003chead\u003e\n    \u003cstyle\u003e\n      body {\n        margin: 0;\n        height: 100vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: #0a0e27;\n        color: #fff;\n        font-family: monospace;\n        font-size: 48px;\n      }\n    \u003c/style\u003e\n  \u003c/head\u003e\n  \u003cbody\u003e\n    \u003cdiv id=\"clock\"\u003e\u003c/div\u003e\n    \u003cscript\u003e\n      setInterval(() =\u003e {\n        document.getElementById(\"clock\").textContent =\n          new Date().toLocaleTimeString();\n      }, 1000);\n    \u003c/script\u003e\n  \u003c/body\u003e\n\u003c/html\u003e\n```\n\n#### Wallpaper with Background Image\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n  \u003chead\u003e\n    \u003cstyle\u003e\n      body {\n        margin: 0;\n        height: 100vh;\n        background-image: url(\"file:///path/to/image.jpg\");\n        background-size: cover;\n        background-position: center;\n      }\n    \u003c/style\u003e\n  \u003c/head\u003e\n  \u003cbody\u003e\u003c/body\u003e\n\u003c/html\u003e\n```\n\n### Auto-start\n\n#### Systemd User Service\n\nCreate `~/.config/systemd/user/webwall-gtk.service`:\n\n```ini\n[Unit]\nDescription=WebWall GTK Wallpaper\nAfter=graphical-session-started.target\nPartOf=graphical-session.target\n\n[Service]\nType=simple\nExecStart=%h/.local/bin/webwall-gtk\nRestart=on-failure\n\n[Install]\nWantedBy=graphical-session.target\n```\n\nEnable with:\n\n```bash\nsystemctl --user enable webwall-gtk\nsystemctl --user start webwall-gtk\n```\n\n#### Desktop Entry\n\nCreate `~/.config/autostart/webwall-gtk.desktop`:\n\n```ini\n[Desktop Entry]\nType=Application\nName=WebWall GTK\nComment=Interactive HTML Wallpaper\nExec=/usr/local/bin/webwall-gtk\nHidden=false\nNoDisplay=false\nX-GNOME-Autostart-enabled=true\n```\n\n## 🏗️ Project Structure\n\n```\n.\n├── wallpaper.c              # Main source code\n├── webwall-gtk              # Compiled executable\n├── index.html               # Wallpaper configuration (active)\n├── index.example.html       # Configuration example\n├── README.md                # This file\n├── .github/\n│   └── workflows/           # GitHub Actions\n│       ├── build-and-release.yml\n│       └── validate.yml\n└── .gitignore               # Git ignore file\n```\n\n## 🔧 Development\n\n### Debug Build\n\n```bash\ngcc -g wallpaper.c -o wallpaper `pkg-config --cflags --libs gtk+-3.0 gtk-layer-shell-0 webkit2gtk-4.0`\n```\n\n### Local Testing\n\n```bash\n# Test with example configuration\ncp index.example.html ~/.config/wallpaper/index.html\n\n# Run\n./wallpaper\n```\n\n### Automatic Build\n\nThis project uses GitHub Actions for:\n\n- ✅ Validating compilation on every push/PR\n- 📦 Creating automatic releases for the `main` branch\n- 🏷️ Generating Semver versions (v1.0.0, v1.0.1, etc)\n\nSee [`.github/WORKFLOWS.md`](.github/WORKFLOWS.md) for more details.\n\n## 📦 Releases\n\nReleases include:\n\n- `wallpaper` - Compiled executable\n- `index.html` - Default configuration\n- `index.example.html` - Configuration example\n- `wallpaper-src-*.tar.gz` - Complete source code\n\nDownload from: https://github.com/lil-code-team/webwall-gtk/releases\n\n## ⚙️ Environment Variables\n\n- `HOME` - Used to locate `~/.config/wallpaper/index.html`\n\nExample:\n\n```bash\nHOME=/home/username ./wallpaper\n```\n\n## 🐛 Troubleshooting\n\n### Wallpaper not showing\n\n- Make sure the `index.html` file exists in `~/.config/wallpaper/`\n- Test with a simple HTML file\n- Check logs: `journalctl --user -u wallpaper -f` (if using systemd)\n\n### Compilation error\n\n```bash\n# Check if dependencies are installed\npkg-config --cflags gtk+-3.0 gtk-layer-shell-0 webkit2gtk-4.0\n\n# Test each library individually\npkg-config --modversion gtk+-3.0\npkg-config --modversion webkit2gtk-4.0\n```\n\n### Poor performance\n\n- Minimize complex CSS animations\n- Use `will-change` selectively\n- Consider using compressed images\n\n## 📄 License\n\nThis project is licensed under the MIT License. See the LICENSE file for details.\n\n## 🤝 Contributing\n\nContributions are welcome. This project uses a strict release flow:\n\n1. Create your feature/fix branch from `develop`\n2. Open a PR to `develop`\n3. After validation, changes are promoted to `release-candidate`\n4. Only PRs from `release-candidate` are allowed into `main`\n\n### Release Flow Rules\n\n- Push to `develop` generates an **alpha** pre-release version:\n  - Format: `vX.Y.Z.alpha.N`\n- Push to `release-candidate` generates a **beta** pre-release version:\n  - Format: `vX.Y.Z.beta.A.B.C`\n- Push/merge to `main` generates a **stable** release version:\n  - Format: `vX.Y.Z`\n\n### Main Merge Policy\n\n- Target branch `main` only accepts PRs coming from `release-candidate`\n- PR must contain exactly one bump label:\n  - `patch` or `semver:patch`\n  - `minor` or `semver:minor`\n  - `major` or `semver:major`\n\n### Version Bump Semantics (main)\n\n- `patch`: `X.Y.Z` -\u003e `X.Y.(Z+1)`\n- `minor`: `X.Y.Z` -\u003e `X.(Y+1).0`\n- `major`: `X.Y.Z` -\u003e `(X+1).0.0`\n\n### Suggested Contribution Steps\n\n1. Fork the repository\n2. Create a branch from `develop` (`git checkout -b feature/MyFeature develop`)\n3. Commit your changes (`git commit -am 'Add some AmazingFeature'`)\n4. Push your branch (`git push origin feature/MyFeature`)\n5. Open a PR to `develop`\n6. Promote tested changes to `release-candidate`\n7. Open PR from `release-candidate` to `main` with one required bump label\n\n### Development Guidelines\n\n- Keep C code clean and readable\n- Add comments for complex logic\n- Test on both Wayland and X11 before submitting\n- Follow the existing code style\n\n## 👥 Authors\n\nDeveloped by **lil-code-team**\n\n## 📞 Support\n\n- 🐛 [Issues](https://github.com/lil-code-team/webwall-gtk/issues)\n- 💬 [Discussions](https://github.com/lil-code-team/webwall-gtk/discussions)\n\n## 🔗 Useful Links\n\n- [GTK 3 Documentation](https://developer.gnome.org/gtk3/stable/)\n- [gtk-layer-shell](https://github.com/wmww/gtk-layer-shell)\n- [WebKit2 GTK](https://webkitgtk.org/)\n- [Wayland Protocol](https://wayland.freedesktop.org/)\n\n---\n\nMade with ❤️ by lil-code-team\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flil-code-team%2Fwebwall-gtk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flil-code-team%2Fwebwall-gtk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flil-code-team%2Fwebwall-gtk/lists"}