* Only process submap bindings if its the same on press
Move the check below the pattern match and check if the key was pressed
Address comment: Remove {}
Remove the new submap check and replace the old one
* tests/keybinds: add additional submap testcase
This tests for cases where the keybind to enter the submap is also bound inside it
---------
Co-authored-by: 0xdeadcode-arch <code.akshat.thukral@gmail.com>
visible() m_alpha check was reversed, m_lastPos cant be set in
onReposition() and then later used in onCommit() it means its can be
ahead of time and use wrong cords. also expand the damage box by 4 like
done elsewhere.
some very picky clients like firefox expects a frame callback to
continue rendering and send buffers, if the frame is returning early
because no change its not going to recieve it, this becomes very
noticeable on a single firefox window and using new_render_scheduling
where it renders the monitor one extra time where occasionally nothing
had really changed.
Adds an `AGENTS.md` file:
- will be used by manual (for now) codex reviews - I wanna try it out and see if it can help us. OpenAI has generously given me Codex for OSS, might as well try the reviews out.
- will help people contributing with mostly mundane project-specific code guidelines, which an LLM can check and spot.
* fix: aggregate modifier states from all keyboards on focus enter
* hyprtester: add keyboard modifier merging e2e test
* nix: install keyboard-modifiers client binary for tests
* layersurface: inform layer surfaces of scale changes
* monitor: move surface scale and transform updates into their own method
* layersurface: ensure layer subsurfaces have scales set on map/commit
* config/values: refresh monitor states on misc:vrr change
`misc:vrr` was missing a `.refresh` annotation, so `refreshBits()` returned 0 and runtime changes via the Lua `hl.set` path never triggered a monitor refresh — the value updated but VRR wasn't applied until a config reload.
Tag the option with `REFRESH_MONITOR_STATES`, which the Lua dynamic-set path schedules (`LuaBindingsConfigRules.cpp`), tripping `PropRefresher` -> `monitorRuleMgr()->ensureVRR()`.
* config/monitor: call ensureVRR after performMonitorReload
`performMonitorReload` swaps `m_activeMonitorRule` via `applyMonitorRule`, but never re-runs `ensureVRR()` for the now-current rule. The PropRefresher does call `ensureVRR()`, but earlier — before `applyMonitorRule` has updated `m_activeMonitorRule.m_vrr` — so it reads the previous setting and the monitor stays on the old VRR mode.
Call `ensureVRR()` after the reload loop completes, matching the contract documented in `CMonitor::applyMonitorRule` ("will be tested in CConfigManager::ensureVRR()").
* clang-format fix
Signed-off-by: BlueManCZ <ivo97@centrum.cz>
---------
Signed-off-by: BlueManCZ <ivo97@centrum.cz>
* docs/hyprctl: Update example commands for hyprctl dispatch
Vaxry decided that this is an expected behavior in https://github.com/hyprwm/Hyprland/discussions/14255
I decided to update documents to follow the new dispatch syntax
* docs/hyprctl: hyprctl man page with new examples and notes
Added examples for dispatch command and noted lua config limitation.
* docs/hyprctl: update hyprctl documentation with 'eval' command
* docs/hyprctl: document 'eval' command for Lua-based config
* set maximise fullscreen_state internal
* maximise also setLayoutManagedFullscreen
Adjust uses of the function to work with change
* Adapted to work with both FS and MAXIMISED:
syncFullscreenTargets() --> syncs both types of FS mode targets
fullscreenStateForTarget() -> gets the FSState of a window of a certain FSMode
fullscreenStateForData() -> similar to above
requestFullscreen():
-> saves the col of maximised windows.
-> centerOrFit the Maximised window
* handle Maximise
* maximise restores size
* note a bug location
* remove redudancies, add comment
* cleanup
* fix gaps with maximise.
format
* maximise test
* fix floating FS window not able to be FSed when a tiled window is FSed
* format
* fix bug shared column bugs