From 4c9b436978509548d4422f0dc75538b560bf9dd6 Mon Sep 17 00:00:00 2001 From: nevaforget Date: Sat, 28 Mar 2026 01:30:22 +0100 Subject: [PATCH] fix: wallpaper windows on Layer::Bottom to prevent greeter occlusion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wallpaper-only windows for secondary monitors were on Layer::Top — same layer as the greeter window. Since they were created after the greeter, they occluded the login UI, leaving only the wallpaper visible. --- src/main.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index fbf5ea9..2780081 100644 --- a/src/main.rs +++ b/src/main.rs @@ -23,9 +23,9 @@ fn load_css(display: &gdk::Display) { ); } -fn setup_layer_shell(window: >k::ApplicationWindow, keyboard: bool) { +fn setup_layer_shell(window: >k::ApplicationWindow, keyboard: bool, layer: gtk4_layer_shell::Layer) { window.init_layer_shell(); - window.set_layer(gtk4_layer_shell::Layer::Top); + window.set_layer(layer); window.set_exclusive_zone(-1); if keyboard { window.set_keyboard_mode(gtk4_layer_shell::KeyboardMode::Exclusive); @@ -60,7 +60,7 @@ fn activate(app: >k::Application) { // Main greeter window (login UI) — compositor picks focused monitor let greeter_window = greeter::create_greeter_window(&bg_path, &config, app); if use_layer_shell { - setup_layer_shell(&greeter_window, true); + setup_layer_shell(&greeter_window, true, gtk4_layer_shell::Layer::Top); } greeter_window.present(); @@ -74,7 +74,7 @@ fn activate(app: >k::Application) { .and_then(|obj| obj.downcast::().ok()) { let wallpaper = greeter::create_wallpaper_window(&bg_path, app); - setup_layer_shell(&wallpaper, false); + setup_layer_shell(&wallpaper, false, gtk4_layer_shell::Layer::Bottom); wallpaper.set_monitor(Some(&monitor)); wallpaper.present(); }