Skip to content

nagyrenato/cosmic-wallshift

Repository files navigation

COSMIC WallShift

A lightweight system-tray app for the COSMIC Desktop Environment that automatically switches your wallpaper when the system theme toggles between Light and Dark mode.

Rust License Platform


Screenshots

COSMIC WallShift settings window


Requirements


Installation

Flatpak (recommended)

Once submitted to Flathub, install with:

flatpak install flathub io.github.nagyrenato.CosmicWallShift

Build from source

Prerequisites:

  • Rust toolchain (stable, 1.80+) — install via rustup
  • Standard COSMIC DE build dependencies (libwayland-dev, libxkbcommon-dev, etc.)

On Pop!_OS / Ubuntu:

sudo apt install git curl build-essential libwayland-dev libxkbcommon-dev
git clone https://github.com/nagyrenato/cosmic-wallshift
cd cosmic-wallshift
cargo build --release

Install with just:

just build
sudo just install

Usage

  1. Launch the app — the settings window opens automatically.
  2. Enter the full path to your light wallpaper (e.g. /home/user/Pictures/Light.png).
  3. Enter the full path to your dark wallpaper (e.g. /home/user/Pictures/Dark.png).
  4. Close the window — the app moves to the system tray and continues monitoring.

Supported formats: jpg, jpeg, png, webp

Note: Wallpapers are applied with filter_by_theme: true, meaning COSMIC will apply a subtle tint to match the active theme. This is the default COSMIC behaviour and cannot currently be changed from the app.

Autostart on login

Create a desktop entry in ~/.config/autostart/:

mkdir -p ~/.config/autostart
cat > ~/.config/autostart/cosmic-wallshift.desktop << EOF
[Desktop Entry]
Type=Application
Name=COSMIC WallShift
Exec=/usr/local/bin/cosmic-wallshift
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
EOF

Flatpak packaging

Test a local Flatpak build:

flatpak-builder --install --user --force-clean build-dir io.github.nagyrenato.CosmicWallShift.yml
flatpak run io.github.nagyrenato.CosmicWallShift

To regenerate cargo-sources.json after updating Cargo.lock:

pip install aiohttp tomlkit
python3 flatpak-cargo-generator.py Cargo.lock -o cargo-sources.json

Contributing

Issues and pull requests are welcome. Please make sure the project compiles cleanly before submitting:

just check

License

GPL-3.0-or-later — see LICENSE for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors