Skip to content
/ hyprwall Public
forked from MarkusVolk/hyprwall

GUI for setting wallpapers with hyprpaper, swww, swaybg, wallutils, and feh. Written in blazingly fast Rust! πŸš€πŸ¦€

License

Notifications You must be signed in to change notification settings

psi4j/hyprwall

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hyprwall

An unofficial GUI for setting wallpapers with multiple backends, built with GTK4 and Rust. πŸš€πŸ¦€

Logo

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/nnyyxxxx/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 window manager
Copyright (C) 2024 HyprUtils

About

GUI for setting wallpapers with hyprpaper, swww, swaybg, wallutils, and feh. Written in blazingly fast Rust! πŸš€πŸ¦€

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%