Skip to content

MikiDevLog/wallpaperengine-gui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WallpaperEngine GUI

GUI for the Almamu/linux-wallpaperengine.

Now has a pluggable addon wallpaper_not-engine_linux. In short - will allow to run regular media files as wallpapers in full compatibility with regular wallpapers on x11 and Wayland too, just like in Wallpaper Engine (this feature is experemental due to lack of testing in different conditions/setups, you can help with this, when you find any issue related to this addon, just submit it to issues)

  • No need to transfer your pictures or videos to a separate folder, binding occurs via symlinks.
  • The interface does not change much, allowing to use both types of wallpapers.

Features of GUI

  • Mostly automated first setup.
  • Can get information about wallpaper based on workshop id using Steam API and store it. You need to get API key for that any domain name will do.
  • Support QT Themes for KDE users.
  • Somewhat usable in terms of design (but now even better).
  • Restore previous state on restart.
  • Global settings
  • Has playlist support
  • Multimonitor mode
  • Has support for changing wallpaper properties that are specified in project.json with the ability to save them between launches and roll back to the default state (realy depends on linux-wallpaperengine since it wont support every wallpaper as of now, and some wallpapers won't react to any change at all since they use advnaced WE specific features that are not implemented currently)
  • Has support for individual settings (settings specific to linux-wallpaperengine) for running wallpapers
  • Has support for working in the system tray

Screenshots

1 2 3 4 5 6

Prerequisites

Almamu/linux-wallpaperengine You need binary (~/build/output/linux-wallpaperengine) compiled. Go to link above for the instructions. And make sure you are using the correct DE and composer and installed all dependencies from his instruction.

Fedora / RHEL / CentOS

# Install development tools
sudo dnf groupinstall "Development Tools"
sudo dnf install cmake gcc-c++

# Install Qt6 dependencies
sudo dnf install qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtmultimedia-devel

Ubuntu / Debian

# Install development tools
sudo apt install build-essential cmake

# Install Qt6 dependencies
sudo apt install qt6-base-dev qt6-webengine-dev qt6-multimedia-dev

Arch Linux

# Install development tools
sudo pacman -S base-devel cmake

# Install Qt6 dependencies
sudo pacman -S qt6-base qt6-webengine qt6-multimedia

Build Steps

git clone https://github.com/MikiDevLog/wallpaperengine-gui.git
cd wallpaperengine-gui
mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install # But only you want it to be visible in yours app manager.

Usage

First Launch

  1. Run wallpaperengine-gui
  2. Configure path in Settings if not auto-detected
  3. Browse and select wallpapers from your collection
  4. Enjoy

Keyboard Shortcuts

  • F5 - Refresh wallpaper collection
  • Ctrl+, - Open Settings
  • Ctrl+Q - Quit application

Configuration

Configuration files are stored in /home/<user>/.config/wallpaperengine-gui/:

  • config.ini - Main application settings
  • wallpapers.cache - Wallpaper metadata cache

Dependencies

Runtime Dependencies

  • Qt6 Base (Core, Widgets, GUI)
  • Qt6 Concurrent
  • Qt6 Network
  • Steam
  • Copy of Wallpaper Engine installed
  • Wallpapers downloaded from workshop
  • Compiled linux-wallpaperengine

Contributing

Contributions are welcome.

License

This project is licensed under the MIT License - see the LICENSE file for details. TL:DR Do what you want.

Acknowledgments

Troubleshooting

Common Build Issues

Qt6 Not Found

# Ensure Qt6 is installed and CMake can find it
export Qt6_DIR=/usr/lib64/cmake/Qt6
# or
export CMAKE_PREFIX_PATH=/usr/lib64/cmake/Qt6

Missing Dependencies

# Check for missing development packages
sudo dnf install qt6-qtbase-private-devel qt6-qtwebengine-private-devel

Runtime Issues

Application Won't Start

# Check dependencies
ldd build/wallpaperengine-gui

# Run with debug output
QT_LOGGING_RULES="*=true" ./wallpaperengine-gui

# Run with --debug flag from terminal
./wallpaperengine-gui --debug
wallpaperengine-gui --debug

Code Structure

src/
├── main.cpp              # Application entry point
├── addons/               # For addons
│   └──WNELAddon*         # wallpaper_not-engine_linux addon
├── core/                 # Core functionality
│   ├── ConfigManager.*   # Configuration management
│   └── WallpaperManager.*# Wallpaper management logic
├── steam/                # Steam integration
│   ├── SteamDetector.*   # Steam installation detection
│   └── SteamApiManager.* # Steam API integration
├── ui/                   # Main UI components
│   ├── MainWindow.*      # Main application window
│   ├── SettingsDialog.*  # Settings interface
│   └── PropertiesPanel.* # Wallpaper properties panel
├── widgets/              # Custom widgets
│   ├── WallpaperPreview.*# Wallpaper preview widget
│   └── PlaylistPreview.* # Playlist preview widget
└── playlist/             # Playlist functionality
    └── WallpaperPlaylist.*# Playlist management logic

TODO

  1. Add multimonitor mode (mainly done, but testing is not fully completed, participants needed)
  2. Release rpm apt and other packages for the application
  3. Focus on QoL features if any will be suggested