{"id":18097475,"url":"https://github.com/hyprutils/hyprwall","last_synced_at":"2025-04-07T19:16:58.928Z","repository":{"id":258386766,"uuid":"873816030","full_name":"hyprutils/hyprwall","owner":"hyprutils","description":"GUI for setting wallpapers with hyprpaper, swww, swaybg, wallutils, and feh. Written in blazingly fast Rust! 🚀🦀 ","archived":false,"fork":false,"pushed_at":"2024-12-19T10:27:53.000Z","size":2675,"stargazers_count":88,"open_issues_count":4,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-25T18:45:11.324Z","etag":null,"topics":["gui","hyprland","hyprutils","rust","wallpaper","wallpapergui","wallpapers","wallpapersetting"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyprutils.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-16T19:10:05.000Z","updated_at":"2024-12-23T13:03:55.000Z","dependencies_parsed_at":"2024-12-18T01:08:34.845Z","dependency_job_id":"30f973c3-24fa-4fe8-a86b-dab1a596c8ba","html_url":"https://github.com/hyprutils/hyprwall","commit_stats":null,"previous_names":["nnyyxxxx/hyprpapergui","hyprutils/hyprwall"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyprutils%2Fhyprwall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyprutils%2Fhyprwall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyprutils%2Fhyprwall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyprutils%2Fhyprwall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyprutils","download_url":"https://codeload.github.com/hyprutils/hyprwall/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247713258,"owners_count":20983683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["gui","hyprland","hyprutils","rust","wallpaper","wallpapergui","wallpapers","wallpapersetting"],"created_at":"2024-10-31T20:01:02.709Z","updated_at":"2025-04-07T19:16:58.642Z","avatar_url":"https://github.com/hyprutils.png","language":"Rust","readme":"\u003cdiv align='center'\u003e\n\n\u003ch2\u003eHyprwall \u003cimg src='https://raw.githubusercontent.com/hyprutils/.github/refs/heads/main/hyprutils_transparent.png'width='18' height='18'\u003e\u003c/h2\u003e\n\n\u003cimg src='hyprwall.png' width='200' height='200'\u003e\u003cbr\u003e\n\n[![Grind Compliant](https://img.shields.io/badge/Grind-Compliant-blue)](https://github.com/The-Grindhouse/guidelines)\u003cbr\u003e\nAn unofficial GUI for setting wallpapers with multiple backends, built with GTK4 and Rust. 🚀🦀\u003cbr\u003e\n\n\u003c/div\u003e\n\n## Differences between other GUI wallpaper pickers:\n- **Rust** - Built with Rust, so it's blazingly fast and memory-safe.\n- **No dependencies** - Unlike other GUI wallpaper pickers, Hyprwall doesn't have any package dependencies (other than rust), so it's lightweight and easy to install.\n- **Minimalist** - Hyprwall is minimalist, the source code is very small compared to other wallpaper pickers e.g. (waypaper).\n- **Wrapping** - Hyprwall supports wrapping, so if you choose to you can have a lot of wallpapers shown in the GUI at once (wraps with window size).\n- **Performance** - Hyprwall is designed to be performant, it uses a thread pool to load images in parallel and caches images.\n- **High capacity** - Hyprwall can handle a large number of wallpapers (over 1000 at one time!) without any issues.\n- **Multiple monitors** - Hyprwall supports setting wallpapers on **Multiple** monitors at once.\n- **True async** - Hyprwall is built to be asynchronous, it uses tokio to run commands in this manner massively improving performance.\n- **Cross display protocol/server support** - Hyprwall supports both **wayland** (swaybg, swww, hyprpaper, wallutils) and **x11** (feh, wallutils).\n- **Cli args** - Hyprwall supports command line arguments, to view these type **`hyprwall --help`**, **--restore** is one of them, if you wish you can restore your last used wallpaper in the gui with this argument.\n- **GIF support** - Hyprwall supports GIFs, but only if the **swww** backend is used.\n- **Search functionality** - Hyprwall has search functionality that can filter through your wallpapers in real time.\n- **Previewable images** - Hyprwall can preview images at a much larger scale via right clicking on an image: it will bring up a preview window.\n- **Supports swaybg, swww, wallutils, feh, and hyprpaper** - Hyprwall supports a variety of wallpaper backends, so you can use it with your preferred wallpaper tool.\n\n\u003cdiv align='center'\u003e\n\n## Preview\n![Preview](.github/preview.png)\n\n\u003c/div\u003e\n\n## Requirements\n- IPC enabled **(only for hyprland / hyprpaper users)**\n- any backend listed above installed\n- GTK-4 installed\n\n## Installation\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/hyprwall.svg)](https://repology.org/project/hyprwall/versions)\n\n### GitHub Releases\nSee Hyprwall's [releases page](https://github.com/hyprutils/hyprwall/releases) for downloadable binaries.\n\n### Arch Linux\nThere are 2 different [AUR](https://aur.archlinux.org) packages available:\n\n- [hyprwall](https://aur.archlinux.org/packages/hyprwall) - Latest release built from source\n- [hyprwall-bin](https://aur.archlinux.org/packages/hyprwall-bin) - Latest release in binary form\n\nInstall the preferred package with:\n```bash\ngit clone https://aur.archlinux.org/\u003cpackage\u003e.git\ncd \u003cpackage\u003e\nmakepkg -si\n```\n\nOr, if you're using an [AUR Helper](https://wiki.archlinux.org/title/AUR_helpers), it's even simpler (using [paru](https://github.com/Morganamilo/paru) as an example):\n```bash\nparu -S \u003cpackage\u003e\n```\n\n## Building from source\n1. Install Rust (preferably `rustup`) through your distro's package or [the official script](https://www.rust-lang.org/tools/install)\n2. Install `git`, `pango`, and `gtk4`\n3. Clone this repository:\n`git clone https://github.com/hyprutils/hyprwall \u0026\u0026 cd hyprwall`\n4. Compile the app with `cargo build --release` or run it directly with `cargo run --release`\n\n## TODO:\n- [x] Implement GUI\n- [x] Implement wrapping\n\n## Credits:\n- [Nyx](https://github.com/nnyyxxxx) - Implementing the GUI and maintaining the project\n- [Adam](https://github.com/adamperkowski) - Rust improvements, maintaining the project\n- [Vaxry](https://github.com/vaxerski) - Hyprpaper\n- [rust-gtk](https://github.com/gtk-rs/gtk4-rs) - The GTK4 library\n- [Hyprland](https://github.com/hyprwm/Hyprland) - The wayland compositor\n\n\u003ch6 align='center'\u003eCopyright (C) 2024 HyprUtils\u003ch6\u003e\n","funding_links":[],"categories":["Tools"],"sub_categories":["Wallpaper"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyprutils%2Fhyprwall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyprutils%2Fhyprwall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyprutils%2Fhyprwall/lists"}