AzPepoze/linux-wallpaperengine-gui

GUI for Almamu/linux-wallpaperengine using Go (Backend) and Electron (Frontend) .

Svelte

94

357 commits

updated Oct 7, 2026

See the code

See what people are saying

SourceMessageScoreDate

[Hyprland] Caelestia on NixOS w/ Wallpaper Engine & Automatic Color Schemes (r/unixporn)

Everything can be reproduced via the [dotfiles](https://git.hu-tao.dev/hutao/nixos-dotfiles). (*I mean that's kinda the point of this package manager and distro*) Despite that, most of my \*real\* workflow and not just cool appearance happens via the…

4

Oct 7, 2026

README

Logo
✦ LINUX WALLPAPER ENGINE GUI ✦

◈ A graphical user interface for managing wallpapers for [linux-wallpaperengine](https://github.com/Almamu/linux-wallpaperengine) ◈
◈ Powered by Go (Backend) and Electron (Frontend) ◈

Latest Release License Stars AUR Popularity AUR Votes

CONTENTS

[!NOTE] This GUI is also compatible with my linux-wallpaperengine.

It's a C++ (with sokol) implementation of Wallpaper Engine for Linux. It's still in early development and missing some features. Maybe you want to check it out!

SCREENSHOTS

Main Window
Main Window
Main Window (List)
Main Window
Display Settings
Details
WORKSHOP
Details
PLAYLIST
Details
PLAYLIST - SETTING
Details
WORKSHOP - DOWNLOADING
Details
Settings
Select Screen

FEATURES

FeatureDescription
Wallpaper ManagementBrowse and select wallpapers from your Steam Workshop content
Steam Workshop IntegrationSearch and download wallpapers directly from Steam Workshop
Playlist SupportCreate and manage playlists including dynamic "Random All"
Wallpaper PropertiesAdjust individual wallpaper settings
Multi-Monitor SupportChoose which screen to apply wallpapers to
Auto-Save & Auto-RunRemembers and applies last used wallpaper on startup
Native Wayland SupportOptional native Wayland mode for fixing scaling issues
Customizable SettingsEdit settings or raw JSON config
System TrayMinimize to tray for seamless background operation

MEMORY EFFICIENCY

I know that many users are scared of Electron applications due to their reputation for being "RAM eaters". This GUI is specifically designed for maximum efficiency to address those concerns:

  • Go Backend: A lightweight Go process handles the system tray, configuration, and wallpaper management.
  • Electron Frontend: The Electron-based UI is only launched when needed. When you minimize the application to the tray, the Electron process is completely terminated, freeing up all the memory it was using.

PREREQUISITES

[!IMPORTANT] This application requires linux-wallpaperengine (Almamu) or linux-wallpaperengine (AzPepoze) (still missing some features) to be installed on your system to function.

INSTALLATION

[!IMPORTANT] Requires (fails without):

Optional (feature degraded if missing):

  • xprop — fullscreen pause detection
  • notify-send (libnotify) — desktop notifications
  • killall (psmisc) — cleanup of stale engine processes
  • zenity (GNOME/GTK) or kdialog (KDE) — prompting dialogs
  • xdg-open (xdg-utils) — open config file in editor

Arch Linux (AUR)

Install using your favorite AUR helper:

# Using yay
yay -S linux-wallpaperengine-gui-git

# Using paru
paru -S linux-wallpaperengine-gui-git

Nix Flakes

If you use Nix, this repository provides a flake.nix with a development shell containing all the build requirements (go, bun, pkg-config, gtk3, libayatana-appindicator), plus golangci-lint for bun run check, so you don't need to install anything manually.

With Nix installed:

nix develop

This drops you into a shell with all the dependencies, continue with bun install, bun run build, or bun run dev as normal.

[!NOTE] bun run build:all currently fails on NixOS under the Nix devShell due to a known NixOS limitation with generic dynamically-linked binaries downloaded by electron-builder (see https://nix.dev/permalink/stub-ld). bun run build works fine.

With direnv installed:

direnv allow

This automatically loads the same shell whenever you cd into the project directory.

Thanks to @Maxxavec2x!

Other Distributions

Download the latest pre-built binaries (AppImage, deb, rpm) from the Releases page.

USAGE

Launch it from your application menu or via terminal:

linux-wallpaperengine-gui [options]

[Options]

OptionDescription
--minimizedStarts the application minimized in the system tray.
--native-waylandMakes electron use native Wayland instead of XWayland to solve fractional scaling issues (only works on Wayland sessions)
--debug-modeEnables debug mode for the application.

BUILD FROM SOURCE

Requirements:

  • Go (1.21+)
  • bun
  • GTK3 and libayatana-appindicator development headers, required to compile the systray integration:
    • Debian/Ubuntu: sudo apt install libgtk-3-dev libayatana-appindicator3-dev pkg-config
    • Other distros: install the packages providing gtk+-3.0 and ayatana-appindicator3-0.1 via pkg-config
  1. Clone & Enter:
    git clone https://github.com/AzPepoze/linux-wallpaperengine-gui
    cd linux-wallpaperengine-gui
    
  2. Install Deps:
    bun install
    
  3. Build:
    bun run build
    
    The output will be in the dist directory.

DEVELOPMENT

Run with hot-reloading:

bun run dev

STONKS!

Star History Chart

✦ Made with ♥︎ by AzPepoze ✦
electron
go
golang
gui
linux
svelte
wallpaper
wallpaper-engine-software

AzPepoze/linux-wallpaperengine-gui

GUI for Almamu/linux-wallpaperengine using Go (Backend) and Electron (Frontend) .

Svelte

94

357 commits

updated Oct 7, 2026

See the code

See what people are saying

SourceMessageScoreDate

[Hyprland] Caelestia on NixOS w/ Wallpaper Engine & Automatic Color Schemes (r/unixporn)

Everything can be reproduced via the [dotfiles](https://git.hu-tao.dev/hutao/nixos-dotfiles). (*I mean that's kinda the point of this package manager and distro*) Despite that, most of my \*real\* workflow and not just cool appearance happens via the…

4

Oct 7, 2026

README

Logo
✦ LINUX WALLPAPER ENGINE GUI ✦

◈ A graphical user interface for managing wallpapers for [linux-wallpaperengine](https://github.com/Almamu/linux-wallpaperengine) ◈
◈ Powered by Go (Backend) and Electron (Frontend) ◈

Latest Release License Stars AUR Popularity AUR Votes

CONTENTS

[!NOTE] This GUI is also compatible with my linux-wallpaperengine.

It's a C++ (with sokol) implementation of Wallpaper Engine for Linux. It's still in early development and missing some features. Maybe you want to check it out!

SCREENSHOTS

Main Window
Main Window
Main Window (List)
Main Window
Display Settings
Details
WORKSHOP
Details
PLAYLIST
Details
PLAYLIST - SETTING
Details
WORKSHOP - DOWNLOADING
Details
Settings
Select Screen

FEATURES

FeatureDescription
Wallpaper ManagementBrowse and select wallpapers from your Steam Workshop content
Steam Workshop IntegrationSearch and download wallpapers directly from Steam Workshop
Playlist SupportCreate and manage playlists including dynamic "Random All"
Wallpaper PropertiesAdjust individual wallpaper settings
Multi-Monitor SupportChoose which screen to apply wallpapers to
Auto-Save & Auto-RunRemembers and applies last used wallpaper on startup
Native Wayland SupportOptional native Wayland mode for fixing scaling issues
Customizable SettingsEdit settings or raw JSON config
System TrayMinimize to tray for seamless background operation

MEMORY EFFICIENCY

I know that many users are scared of Electron applications due to their reputation for being "RAM eaters". This GUI is specifically designed for maximum efficiency to address those concerns:

  • Go Backend: A lightweight Go process handles the system tray, configuration, and wallpaper management.
  • Electron Frontend: The Electron-based UI is only launched when needed. When you minimize the application to the tray, the Electron process is completely terminated, freeing up all the memory it was using.

PREREQUISITES

[!IMPORTANT] This application requires linux-wallpaperengine (Almamu) or linux-wallpaperengine (AzPepoze) (still missing some features) to be installed on your system to function.

INSTALLATION

[!IMPORTANT] Requires (fails without):

Optional (feature degraded if missing):

  • xprop — fullscreen pause detection
  • notify-send (libnotify) — desktop notifications
  • killall (psmisc) — cleanup of stale engine processes
  • zenity (GNOME/GTK) or kdialog (KDE) — prompting dialogs
  • xdg-open (xdg-utils) — open config file in editor

Arch Linux (AUR)

Install using your favorite AUR helper:

# Using yay
yay -S linux-wallpaperengine-gui-git

# Using paru
paru -S linux-wallpaperengine-gui-git

Nix Flakes

If you use Nix, this repository provides a flake.nix with a development shell containing all the build requirements (go, bun, pkg-config, gtk3, libayatana-appindicator), plus golangci-lint for bun run check, so you don't need to install anything manually.

With Nix installed:

nix develop

This drops you into a shell with all the dependencies, continue with bun install, bun run build, or bun run dev as normal.

[!NOTE] bun run build:all currently fails on NixOS under the Nix devShell due to a known NixOS limitation with generic dynamically-linked binaries downloaded by electron-builder (see https://nix.dev/permalink/stub-ld). bun run build works fine.

With direnv installed:

direnv allow

This automatically loads the same shell whenever you cd into the project directory.

Thanks to @Maxxavec2x!

Other Distributions

Download the latest pre-built binaries (AppImage, deb, rpm) from the Releases page.

USAGE

Launch it from your application menu or via terminal:

linux-wallpaperengine-gui [options]

[Options]

OptionDescription
--minimizedStarts the application minimized in the system tray.
--native-waylandMakes electron use native Wayland instead of XWayland to solve fractional scaling issues (only works on Wayland sessions)
--debug-modeEnables debug mode for the application.

BUILD FROM SOURCE

Requirements:

  • Go (1.21+)
  • bun
  • GTK3 and libayatana-appindicator development headers, required to compile the systray integration:
    • Debian/Ubuntu: sudo apt install libgtk-3-dev libayatana-appindicator3-dev pkg-config
    • Other distros: install the packages providing gtk+-3.0 and ayatana-appindicator3-0.1 via pkg-config
  1. Clone & Enter:
    git clone https://github.com/AzPepoze/linux-wallpaperengine-gui
    cd linux-wallpaperengine-gui
    
  2. Install Deps:
    bun install
    
  3. Build:
    bun run build
    
    The output will be in the dist directory.

DEVELOPMENT

Run with hot-reloading:

bun run dev

STONKS!

Star History Chart

✦ Made with ♥︎ by AzPepoze ✦
electron
go
golang
gui
linux
svelte
wallpaper
wallpaper-engine-software

Significant stargazers

Konecho

1 followers · starred Feb 2026