Skip to content

Latest commit

 

History

History
80 lines (61 loc) · 3.98 KB

readme.md

File metadata and controls

80 lines (61 loc) · 3.98 KB

Hyprwall

An unofficial GUI for setting wallpapers with multiple backends, built with GTK4 and Rust. 🚀🦀

Differences between other GUI wallpaper pickers:

  • Rust - Built with Rust, so it's blazingly fast and memory-safe.
  • 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.
  • Minimalist - Hyprwall is minimalist, the source code is very small compared to other wallpaper pickers e.g. (waypaper).
  • 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).
  • Performance - Hyprwall is designed to be performant, it uses a thread pool to load images in parallel and caches images.
  • High capacity - Hyprwall can handle a large number of wallpapers (over 1000 at one time!) without any issues.
  • Multiple monitors - Hyprwall supports setting wallpapers on Multiple monitors at once.
  • True async - Hyprwall is built to be asynchronous, it uses tokio to run commands in this manner massively improving performance.
  • Cross display protocol/server support - Hyprwall supports both wayland (swaybg, swww, hyprpaper, wallutils) and x11 (feh, wallutils).
  • 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.
  • GIF support - Hyprwall supports GIFs, but only if the swww backend is used.
  • Search functionality - Hyprwall has search functionality that can filter through your wallpapers in real time.
  • Previewable images - Hyprwall can preview images at a much larger scale via right clicking on an image: it will bring up a preview window.
  • Supports swaybg, swww, wallutils, feh, and hyprpaper - Hyprwall supports a variety of wallpaper backends, so you can use it with your preferred wallpaper tool.

Preview

Preview

Requirements

  • IPC enabled (only for hyprland / hyprpaper users)
  • any backend listed above installed
  • GTK-4 installed

Installation

GitHub Releases

See Hyprwall's releases page for downloadable binaries.

Arch Linux

There are 2 different AUR packages available:

Install the preferred package with:

git clone https://aur.archlinux.org/<package>.git
cd <package>
makepkg -si

Or, if you're using an AUR Helper, it's even simpler (using paru as an example):

paru -S <package>

Building from source

  1. Install Rust (preferably rustup) through your distro's package or the official script
  2. Install git, pango, and gtk4
  3. Clone this repository: git clone https://github.com/hyprutils/hyprwall && cd hyprwall
  4. Compile the app with cargo build --release or run it directly with cargo run --release

TODO:

  • Implement GUI
  • Implement wrapping

Credits:

  • Nyx - Implementing the GUI and maintaining the project
  • Adam - Rust improvements, maintaining the project
  • Vaxry - Hyprpaper
  • rust-gtk - The GTK4 library
  • Hyprland - The wayland compositor
Copyright (C) 2024 HyprUtils