Describe the bug
In dotfiles/.config/hypr/conf/ml4w.lua, the pavucontrol and waypaper window rules match on glob-style patterns rather than regex:
match = {class = "*org.pulseaudio.pavucontrol*"}, -- line 21
match = {class = "*waypaper*"}, -- line 50
Hyprland matches class with RE2, which rejects a leading * as a repetition operator with no argument. Both rules therefore fail to compile and silently never match, so pavucontrol and waypaper no longer float / center / pin.
Hyprland logs this on every config load:
E0000 00:00:1785626067.483349 re2.cc:242] Error parsing '*org.pulseaudio.pavucontrol*': no argument for repetition operator: *
E0000 00:00:1785626067.483447 re2.cc:242] Error parsing '*waypaper*': no argument for repetition operator: *
Note that Hyprland --verify-config still reports config ok, so this is easy to miss — the rules are structurally valid, they just never match anything.
This looks like it was introduced by the hyprlang → Lua conversion. The equivalent rules in 2.12.2's conf/ml4w.conf used correct regex:
match:class = (.*org.pulseaudio.pavucontrol.*)
match:class = (.*waypaper.*)
The .* became * in the ported file. Still present on main as of today. All the other rules in ml4w.lua use plain literal class names, so these two appear to be the only affected ones.
Steps to reproduce
- Install/update to 2.14.1 on Hyprland 0.56.1.
- Run
Hyprland --verify-config (or just check the log after login) — the two RE2 parse errors appear.
- Open pavucontrol or waypaper — the window tiles instead of floating/centering.
Expected behavior
The rules should match, and pavucontrol/waypaper should float and center as they did before the Lua migration. Restoring .* fixes it:
match = {class = ".*org.pulseaudio.pavucontrol.*"},
match = {class = ".*waypaper.*"},
Verified working on my system.
Screenshots
No response
Distribution
Arch Linux
If Other, specify
No response
Additional context
- ML4W 2.14.1
- Hyprland 0.56.1
- Confirmed the same two lines are still present on
main.
Describe the bug
In
dotfiles/.config/hypr/conf/ml4w.lua, thepavucontrolandwaypaperwindow rules match on glob-style patterns rather than regex:Hyprland matches
classwith RE2, which rejects a leading*as a repetition operator with no argument. Both rules therefore fail to compile and silently never match, so pavucontrol and waypaper no longer float / center / pin.Hyprland logs this on every config load:
Note that
Hyprland --verify-configstill reportsconfig ok, so this is easy to miss — the rules are structurally valid, they just never match anything.This looks like it was introduced by the hyprlang → Lua conversion. The equivalent rules in 2.12.2's
conf/ml4w.confused correct regex:The
.*became*in the ported file. Still present onmainas of today. All the other rules inml4w.luause plain literal class names, so these two appear to be the only affected ones.Steps to reproduce
Hyprland --verify-config(or just check the log after login) — the two RE2 parse errors appear.Expected behavior
The rules should match, and pavucontrol/waypaper should float and center as they did before the Lua migration. Restoring
.*fixes it:Verified working on my system.
Screenshots
No response
Distribution
Arch Linux
If Other, specify
No response
Additional context
main.