Q: "keysym combo" keybinds with Lua

Hello! I’d like to ask about the state of “keysym combo” keybinds with the new Lua config.

I was able to switch to Lua config generally without mishap but one thing I’m unable to make work is keysym combos. There was (initially) a “separate” bind flag on the wiki so I thought I was supposed to do something with that but now I notice the said flag has been removed from the list.

I only have a few combo keybinds and all for non-frequent things so this isn’t urgent or anything but I was wondering what I should be expecting.

Can you explain me what was the keybiding you are trying to use ?
You can look for xkb-bidings, if you have a laptop.

Try to get keysym number using wev you can get number like this

[        16:     wl_keyboard] key: serial: 28962; time: 4493494; key: 21; state: 1 (pressed)
                      sym: plus         (43), utf8: '+'
[        16:     wl_keyboard] key: serial: 28963; time: 4493575; key: 21; state: 0 (released)

Configure it like this

local comma = "code:59"
local dot   = "code:60"
local minus = "code:20"
local equal = "code:21"
hl.bind(mainMod .. " + SHIFT + " .. equal, hl.dsp.focus({ workspace = "r+1" }), {locked = true, repeating = true})
hl.bind(mainMod .. " + SHIFT + " .. minus, hl.dsp.focus({ workspace = "r-1" }), {locked = true, repeating = true})
hl.bind(mainMod .. " + " .. equal, hl.dsp.focus({ workspace = "m+1" }), {locked = true, repeating = true})
hl.bind(mainMod .. " + " .. minus, hl.dsp.focus({ workspace = "m-1" }), {locked = true, repeating = true})
hl.bind(mainMod .. " + CTRL + " .. equal, hl.dsp.window.move({ workspace = "r+1" }), {repeating = true})
hl.bind(mainMod .. " + CTRL + " .. minus, hl.dsp.window.move({ workspace = "r-1" }), {repeating = true})
hl.bind(mainMod .. " + CTRL + SHIFT + " .. equal, hl.dsp.window.move({ workspace = "m+1" }), {repeating = true})
hl.bind(mainMod .. " + CTRL + SHIFT + " .. minus, hl.dsp.window.move({ workspace = "m-1" }), {repeating = true})

These are from my old “.conf” config (the second one is the one I can’t recreate):

bindr = $mainMod, g, togglegroup # Toggle group (tab) mode for the active window (on key release)
binds = Super_L, g&p, lockactivegroup, toggle # Lock the active group (will accept no more tabs into the group)

“Super + G” (the first one) toggles the group mode on key release. Pressing “P” while I’m still holding down “Super + G” toggles the group’s lock status (the second one).
(“keysym combos” from 0.54 wiki: Binds – Hyprland Wiki )

These are my Lua attempts. The first one works.

hl.bind(mainMod .. " + G", hl.dsp.group.toggle(), {release = true})
hl.bind(“Super_L + G + P”, hl.dsp.group.lock_active({ action = “toggle” }), {separate = true})

The second one doesn’t and the “separate” bind flag isn’t even on the wiki anymore (it was on 0.55 launch) so I was wondering if I should be looking for alternative measures. Thank you for the reply!