Plenty of errors in Hyprland with UWSM

Some problems I am experiencing:

I have Hyprland with UWSM enabled. This user service (like two to three others are properly symlinked in .config/systemd/user/graphical-session.target.wants. However it doesn’t start when the HyprlandwithUWSM is started. And that makes many services not start at all.

hyprpaper.service - hyprpaper
     Loaded: loaded (/home/chris/.config/systemd/user/hyprpaper.service; enabled; preset: ignored)
     Active: inactive (dead)
  Condition: start condition unmet at Thu 2024-12-19 15:00:50 IST; 3min 39s ago
             └─ ConditionEnvironment=WAYLAND_DISPLAY was not met

Dec 19 15:00:50 nixwolf systemd[1478]: hyprpaper was skipped because of an unmet condition check (ConditionEnvironment=WAYLAND_DISPLAY).

Second is, my screen blacks out when I type exit in a fullscreen kitty terminal emulator, the screen just blacks out. It doesn’t happen on non-fullscreen windows of kitty. (I see, I can’t post videos, but if it’s needed, I will provide the link to a reddit post).

These are my dotfiles.

Thank you.

The uwsm module is supposed to handle this for you: NixDots/host/modules/desktop.nix at 4d857e096de836cc914a6950114899be8b534752 · rachitve6h2g/NixDots · GitHub

That line probably means you’re not actually using uwsm, and therefore all the other stuff fails.

1 Like

Running into this exact issue. Were you able to find a solution?

Using GDM w/ UWSM launching hyprland. WAYLAND_DISPLAY is defined too. Fully confirmed UWSM is launching hyprland, even removed GDM and launching manually with UWSM yet hyprpaper.service continues to throw the error.

Hmmmm, is the problem this section of the uwsm README? I don’t think hyprland does that, at least it didn’t when I used it, and sway definitely does not.

Could you post the contents of hyprpaper.service?

So what do I change exactly?

[Install]
WantedBy=graphical-session.target

[Service]
ExecCondition=/nix/store/lji0hh2w2rv6q9mal3vpxbg413d57vfd-systemd-256.8/lib/systemd/systemd-xdg-autostart-condition "Hyprland" ""
ExecStart=/nix/store/wwi8k0571yxfgshnqfk78rmz4lvm48kf-hyprpaper-0.7.3/bin/hyprpaper
Restart=on-failure
Slice=background-graphical.slice
Type=exec

[Unit]
After=graphical-session.target
Description=Hyprpaper wallpaper utility for Hyprland
Documentation=man:hyprpaper(1)

This is it.

Hyprpaper creates a systemd service per the hyprpaper docs, You can just exec-once it like this:

  wayland.windowManager.hyprland.settings = {
    exec-once = [
      "systemctl --user enable --now hyprpaper.service"
    ];
  };