Custom wallpaper terminal thingy

Hyprland version
54.3

Describe your issue / feature…

I’m trying to configure a window in Hyprland (via window rules) to behave like a wallpaper layer: fill the entire monitor on both monitors (while still being one window, stay behind all other windows, but still be clickable and focusable when I interact with it. Right now I can get it fullscreen and pinned, but it either stays on top or becomes unfocusable depending on the rules I use. Is there any combination of window rules or workflow that achieves this behavior, or is it fundamentally not possible with normal windows? If not, what’s the closest workaround you’d recommend? I have my window rule set up like this so far, but I cannot get further. I use awww (formarly swww) for my wallpaper and i want that still visible underneath, I dont want it to be under or over waybar though.

windowrule {
    name = wallTerm
    match:class = wallTerm

    border_size = 0

    float = on
    pin = on

    no_initial_focus = on
    no_blur = on
}

I am running the following command to start alacrity.

alacritty --class "wallTerm" --config-file ~/.config/alacritty/wallTerm.toml

With this config file:

macaw@Helios:~ % cat ~/.config/alacritty/wallTerm.toml
# Alacritty Configuration (TOML)

[general]
# Live config reload is enabled by default
live_config_reload = true

[window]
# Added slight padding for a cleaner look
padding = { x = 10, y = 10 }

# Opacity (0.0 to 1.0) - 1.0 is fully opaque
opacity = 0.0

# Blur works on macOS and KDE Wayland
blur = true

# Startup mode: "Windowed", "Maximized", "Fullscreen"
startup_mode = "Windowed"

[font]
# The main font settings
normal = { family = "IBM Plex Mono", style = "Regular" }
bold = { family = "IBM Plex Mono", style = "Bold" }
italic = { family = "IBM Plex Mono", style = "Italic" }
bold_italic = { family = "IBM Plex Mono", style = "Bold Italic" }

# Font size in points
size = 8.5

# Adjust line spacing (y) or letter spacing (x) if needed
offset = { x = 0, y = 0 }

[cursor]
# Cursor style: "Block", "Underline", "Beam"
style = { shape = "Beam", blinking = "On" }

# Thickness of the beam or underline
thickness = 0.15

[scrolling]
# Maximum number of lines in the scrollback buffer
history = 10000

[selection]
# Automatically copy selected text to the system clipboard
save_to_clipboard = true

[mouse]
# Hide the mouse cursor while typing
hide_when_typing = true

[keyboard]
# Custom bindings (Examples based on documentation)
bindings = [
    { key = "N", mods = "Control|Shift", action = "CreateNewWindow" },
    { key = "V", mods = "Control|Shift", action = "Paste" },
    { key = "C", mods = "Control|Shift", action = "Copy" }
]

[terminal]
shell = "/run/current-system/sw/bin/zsh"

Hyprctl and system info

macaw@Helios:~ % hyprctl version
Hyprland 0.54.3 built from branch v0.54.3-b at commit 521ece463c4a9d3d128670688a34756805a4328f clean (version: bump to 0.54.3).
Date: 2026-03-27
Tag: v0.54.3, commits: -1

Libraries:
Hyprgraphics: built against 0.5.0, system has unknown
Hyprutils: built against 0.11.1, system has unknown
Hyprcursor: built against 0.1.13, system has unknown
Hyprlang: built against 0.6.8, system has unknown
Aquamarine: built against 0.10.0, system has unknown

Version ABI string: 521ece463c4a9d3d128670688a34756805a4328f_aq_0.10_hu_0.11_hg_0.5_hc_0.1_hlg_0.6
flags set:
nix
macaw@Helios
------------
OS: NixOS 26.05 (Yarara) x86_64
Host: G521 (Default string-CF)
Kernel: Linux 6.18.20
Uptime: 5 hours, 46 mins
Packages: 1558 (nix-system), 7 (nix-user), 18 (flatpak)
Shell: zsh 5.9
Display (MSI4CE2): 2560x1440 in 27", 180 Hz [External]
Display (LF27T35): 1920x1080 in 27", 75 Hz [External]
WM: Hyprland 0.54.3 (Wayland)
Theme: Nordic [GTK2/3/4]
Icons: Papirus-Dark [GTK2/3/4]
Font: Adwaita Sans (11pt) [GTK2/3/4]
Cursor: capitaine (24px)
Terminal: alacritty 0.16.1
Terminal Font: IBM Plex Mono (8.5pt, Regular)
CPU: AMD Ryzen 5 7600X3D (12) @ 4.76 GHz
GPU: NVIDIA GeForce RTX 4060 [Discrete]
Memory: 13.48 GiB / 30.96 GiB (44%)
Swap: 4.15 GiB / 33.51 GiB (12%)
Disk (/): 154.34 GiB / 587.71 GiB (26%) - btrfs
Local IP (enp6s0): 192.168.68.200/24
Locale: en_US.UTF-8

Additionally if this is not possible with window rules is there another way I could do it?

this is not possible, but you can use kitty for that. kitten panel IIRC.

1 Like