Skip to content

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

nnyyxxxx/hyprwall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

39 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.
  • 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.
  • 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

  • Hyprland with IPC enabled & hyprpaper.conf created (only applies to 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

About

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

Resources

License

Stars

Watchers

Forks

Languages