diff --git a/home-manager/fred.nix b/home-manager/fred.nix index 87a9364..f3bfdd5 100644 --- a/home-manager/fred.nix +++ b/home-manager/fred.nix @@ -15,7 +15,7 @@ in ''; # Wallpaper source — consumed by stylix's image option (set in - # settings/stylix.nix) and by hyprpaper at session start. + # settings/stylix.nix) and by quickshell's wallpaper layer. home.file.".local/share/backgrounds/wallpaper.png".source = "${inputs.self}/walls/wallpaper.png"; diff --git a/settings/hyprland.nix b/settings/hyprland.nix index 37bf3e3..5230d97 100644 --- a/settings/hyprland.nix +++ b/settings/hyprland.nix @@ -25,6 +25,10 @@ in security.polkit.enable = true; + # graphical-desktop.nix mkDefault-enables this; unused (no screen reader, + # no Discord TTS). + services.speechd.enable = false; + # Polkit GUI agent for GUI sudo prompts under Hyprland systemd.user.services.polkit-gnome-authentication-agent-1 = { description = "polkit-gnome-authentication-agent-1"; @@ -48,7 +52,6 @@ in brightnessctl swayosd playerctl - hyprpaper hyprlock hypridle hyprshot @@ -72,10 +75,9 @@ in # into settings.config below. stylix.targets.hyprland.enable = false; - # The disabled Hyprland target would normally enable this; do it - # manually. Stylix's hyprpaper target (auto-enabled) still handles - # preload/wallpaper settings. - services.hyprpaper.enable = true; + # Wallpaper is drawn by quickshell (settings/quickshell.nix); no + # separate hyprpaper daemon. + stylix.targets.hyprpaper.enable = false; wayland.windowManager.hyprland = { enable = true; diff --git a/settings/quickshell.nix b/settings/quickshell.nix index 7c98ea1..4658420 100644 --- a/settings/quickshell.nix +++ b/settings/quickshell.nix @@ -214,6 +214,7 @@ in //@ pragma UseQApplication import Quickshell import Quickshell.Io + import Quickshell.Wayland import Quickshell.Services.Notifications import QtQuick @@ -262,6 +263,26 @@ in } } + // Wallpaper — replaces the hyprpaper daemon. + Variants { + model: Quickshell.screens + + PanelWindow { + required property var modelData + screen: modelData + WlrLayershell.layer: WlrLayer.Background + exclusionMode: ExclusionMode.Ignore + anchors { top: true; bottom: true; left: true; right: true } + color: "black" + + Image { + anchors.fill: parent + source: "file://" + Quickshell.env("HOME") + "/.local/share/backgrounds/wallpaper.png" + fillMode: Image.PreserveAspectCrop + } + } + } + Variants { model: Quickshell.screens