You are not logged in.
There a is a limit on my volume 105% in arch linux hyprland.I noticed it when I switched to lua since hyprland version 0.55.0 is in lua.I use pavucontrol.This problem does not happen in hyprland.conf version 0.54.0 and the volume has no limit. the recent chnages I made to my waybar is downloading waybar-git.But I still dont get why the volume is limited
hyprland.lua volume binds
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { repeat_key = true, locked = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { repeat_key = true, locked = true })
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"), { repeat_key = true, locked = true })Last edited by Surtrz (2026-05-14 03:00:16)
Offline
I use pavucontrol.
The hyprland.lua says wpctl…
Any hyprland version update will not cause changes in wpctl (or pavucontrol), you've either also updated wireplumber (or pavucontrol) or are talking about some limitation of the indicator widget.
What are the actual symptoms *exactly* (notably something you hear or something you see) and can you overdrive the volume using wpctl (or pavucontrol) manually?
Offline
this can increase volume above 105% to any and it has no limit
wpctl set-volume @DEFAULT_SINK@ 1.20the keybinds can only set max volume to
wpctl set-volume @DEFAULT_SINK@ 1.05it looks like I press fn+f3 till it reaches 105%
then it like glitches and shows 115% then I keep increasing the volume it jumps back to 100%
Offline
And can manual
wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+?
Offline
yes
it increases volume by 5%
Offline
Offline
a) the manual "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" allows you to increase the volume to 130% ?
b) do you raise the volume with isolated key strikes or by holding the key on autorepeat?
c) does this also occur when using some random other shortcut, eg. win+up or win+n?
d) please post your entire hyprland config
Offline
a) yes
b) autorepeat
c) this does not happen when I use win/mainmod+N.But the the key which does not work in hyprland.lua works in hyprland.conf.
hyprland.conf is the previous syntax of hyprland window manager in hyprlang.Now the language is lua
d) I can post my hyprland.lua which has my entire currently used keybinds.The entire config is over 370 lines which has nothing to do with binds executing commands.
---------------------
---- KEYBINDINGS ----
---------------------
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
-- Example binds, see [url]https://wiki.hypr.land/Configuring/Basics/Binds/[/url] for more
hl.bind(mainMod .. " + Q", hl.dsp.exec_cmd(terminal))
local closeWindowBind = hl.bind(mainMod .. " + C", hl.dsp.window.close())
hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'"))
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
hl.bind(mainMod .. " + P", hl.dsp.window.pseudo())
hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit")) -- dwindle only
hl.bind(mainMod .. " + A", hl.dsp.exec_cmd("sh -c 'pkill waybar; waybar'"))
hl.bind(mainMod .. " + W", hl.dsp.exec_cmd("~/.config/hypr/scripts/wallselect.sh"))
-- Move focus with mainMod + arrow keys
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" }))
-- Switch workspaces with mainMod + [0-9]
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
for i = 1, 10 do
local key = i % 10 -- 10 maps to key 0
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i}))
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
end
-- Example special workspace (scratchpad)
hl.bind(mainMod .. " + S", hl.dsp.workspace.toggle_special("magic"))
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" }))
-- Scroll through existing workspaces with mainMod + scroll
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
-- Move/resize windows with mainMod + LMB/RMB and dragging
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
-- Laptop multimedia keys for volume and LCD brightness
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
-- Requires playerctl
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
-- Screenshot and App Launcher
hl.bind("Print", hl.dsp.exec_cmd('grim -g "$(slurp)" - | satty --filename -'))
hl.bind("End", hl.dsp.exec_cmd("rofi -show drun"))
-- Brightness control
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl set 5%-"), { repeat_key = true, locked = true })
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl set 5%+"), { repeat_key = true, locked = true })
-- Volume control
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { repeat_key = true, locked = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { repeat_key = true, locked = true })
hl.bind(mainMod .. " + N", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"), { repeat_key = true, locked = true })Offline
wpctl has an -l option to set the upper bound you're currently not using, what happens if you pass that as an additional parameter? I don't really see why it would be hyprlands dispatchers job to limit this and I'd find an inference based on the actual button used very strange.
Offline
I already tried -l and it did not work
Last edited by Surtrz (2026-05-13 18:18:21)
Offline
The entire config is over 370 lines
I'll use my big-boy glasses, you can use the 1st link below to upload the file. But first look at this:
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { repeat_key = true, locked = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { repeat_key = true, locked = true })1. you're binding XF86AudioLowerVolume twice
2. unlike your OP says you ARE limiting the volume
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
specifically to "1" which is 100%
lmg, you asked an LLM to generate the config for you? Or was it provided by the youtuber your likeshareandsubscribed?
https://bbs.archlinux.org/viewtopic.php?id=313520
This is why.
Offline
the latest line I add will be the current settings for hyprland even if I use XF86AudioLowerVolume twice.
I did not use LLM or AI I did it by myself just hours after update because there were no youtube vedeos for this.There no hyprland youtubers which shows twinkering with volume
I was able to fix it by changing the line from this
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })to this
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 3 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })I did not know what -l does.Now I can use my kebinds properly.
Offline