summaryrefslogtreecommitdiff
path: root/hyprtester/src/tests/main/window.cpp
Commit message (Collapse)AuthorAgeFilesLines
* compositor: recalculate workspace state after fs state update (#14369)mainVaxry2026-05-081-1/+50
|
* keybind/actions: `cycle_next` w/ `tiled = true` doesn't choose only tiled ↵erstarr2026-05-081-0/+72
| | | | | | | | | windows (#14164) * fix tiling only selection: actually select only tiling when chosen * clang-format * test: cycle_next float only and tiled only
* monitor: fix centered floating windows off-screen in special workspace (#14203)Zebra27112026-04-301-0/+22
| | | Signed-off-by: Zebra2711 <zebra2711t@gmail.com>
* tests: Fix more tests failing on CI (#14159)Nikolai Nechaev2026-04-291-7/+7
| | | | | | | | | | | | | | | | | | | | | * tests: Relax color management requirements in the colors test This continues the work from d4dd299 (#14142): - Fixes a missed check assuming a fixed value for `colorManagementPreset` - Stricten checks to require that the expected keywords are present as json keys * tests: Refactor `Tests::getAttribute` (was `Tests::getWindowAttribute`) - Improve ergonomics by consistently handling attribute name; - Remove 'window' from the function name, since it is compatible with other responses too; - Document the function. * tests: Fix solitary test assuming it knows the complete set of blockers The test was failing on the CI because new blockers appeared, which were not expected by the text. Fix the test, so that it just checks the set of expected blockers is a subset of actual blockers
* config/lua: add ExpressionVec2, allow using a table for vec2 rules (#14197)Vaxry2026-04-281-2/+3
|
* hyprtester: minor refactoring/restructure (#14154)Nikolai Nechaev2026-04-281-246/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * hyprtester: Minor misc fixes - Use `std::filesystem::path` instead of `std::string` in some places; - Use `std::ranges::sort`, as suggested by clang-tidy; - Reset colors at the end of every log line; - Give more specific error messages in main. * hyprtester: Fix a bug in `hyprlandAlive()` Successful standard library calls are permitted to (and do) modify the value of `errno` arbitrarily. Checking the value of `errno` only makes sense when the library function returns an error. So, the correct condition of a successful signal delivery is that the call to `kill` returns 0. Btw, given the possible other error values of `kill(2)`, should we even consider `errno` at all? * hyprtester: Restructure main Split main's `main()` into multiple functions, separate responsibilities more cleanly. Add default values for cmd-line options to the help message. * hyprtester: Remove redundant path canonicalization * hyprtester: Run unified clean up code before every test * tests: Use RAII for clients in client tests Turn clients in client tests into classes. Constructors initialize, destructors deinitialize. Not only is it better design when entities (clients) are modeled as classes, keeping all the methods connected, this also ensures the tests perform their custom cleanup. This will be especially important when we introduce early termination on failure into the tests. * hyprtester: Rewrite the testing framework! - Implement a new test definition system used via the `TEST_CASE` and `SUBTEST` macros. - Adds `ASSERT*` and reimplements `EXPECT*` macros. The former now terminate the test immediately. Also add some new macros, such as `FAIL_TEST`. - Move existing tests to the new system. For trivial cases, break existing test functions down to multiple test cases. - For non-trivial cases and a few other possible improvements, leave TODOs. * tests: Use `EXPECT*` instead of `ASSERT*` in some places `ASSERT*` macros terminate the test as soon as they fail. They are appropriate to use when, if something fails, the rest of the test does not make sense and more error messages from failing checks will just pollute the output. `EXPECT*` macros mark the test as failed but its execution continues. It makes sense to use them when error messages from the following checks in the test may be useful for someone who will be reading the log. I changed some uses of `ASSERT*` in main tests to `EXPECT*`. But I was not reading tests very carefully, so maybe I was wrong in some places. My rule of thumb was: - Checks that ensure that a kitty opens / a certain set/number of windows exists are fatal; - A series of checks, especially on the same string returned by `Hyprland`, are non-fatal; - Checks in tests with tightly coupled steps (i.e., do this, check, do this with the result of the previous step, check, etc) are fatal.
* config/lua: init lua config manager, use lua if available (#13817)Vaxry2026-04-261-153/+153
| | | Adds a new lua config manager, which will automatically be used if there is a lua config present.
* keybinds: fix wrong space assignment in pin (#14061)Vaxry2026-04-121-0/+19
|
* desktop/rules: fix static rules and content type. (#13725)ItsOhen2026-03-151-15/+20
| | | | Hopefully for the last time in a while. Also a lot easier to add in new static types with the recheck done in window map instead of the rule.
* algo/dwindle: Respect `force_split` when moving windows to workspaces (#13038)Nikolai Nechaev2026-03-101-17/+6
| | | | | | Respect `dwindle:force_split` not only when mapping new windows, but also when moving windows to workspaces. Fixes #13009.
* desktop/windowRule: fix matching CONTENT (#13636)Vaxry2026-03-071-0/+28
| | | ref #13596
* layerrules: add dynamically registered rules for plugins (#13331)Virt2026-03-061-4/+4
| | | | | | | | | * layerrules: add dynamically registered rules for plugins * be gone * layerrules: add layer tests with waybar * fix: use kitty layers instead of waybar
* desktop/rules: fix empty workspace handling (#13544)justin40462026-03-051-0/+46
|
* monitor: update pinned window states properly on changeWorkspace (#13441)Vaxry2026-02-281-0/+48
| | | ref https://github.com/hyprwm/Hyprland/discussions/13440
* compositor: fix focus edge detection (#13425)Vaxry2026-02-281-2/+2
| | | | fixes edge detection, making it more relaxed and intuitive
* xwayland: validate size hints before floating (#13361)Skidam2026-02-261-4/+4
|
* desktop/windowRule: allow expression in min_size/max_size (#12977)Florent Charpentier2026-01-211-1/+10
|
* desktop: restore invisible floating window alpha/opacity when focused over ↵Naufal Hisyam Muzakki2026-01-211-0/+21
| | | | fullscreen (#12994)
* tests: Test the `no_focus_on_activate` window rule (#13015)Nikolai Nechaev2026-01-181-21/+87
|
* desktop/ruleApplicator: fix typo in border color rule parsing (#12995)Vaxry2026-01-161-0/+17
| | | ref https://github.com/hyprwm/Hyprland/discussions/12746
* testers: add missing #include <unistd.h> (#12862)Hiroki Tagato2026-01-051-0/+1
| | | | FreeBSD clang needs the header to be included for read(), write(), pipe(), close(), etc.
* dekstop/window: read static rules before guessing initial size if possible ↵Vaxry2026-01-011-3/+34
| | | | (#12783)
* desktop/window: go back to the previously focused window in a group (#12763)Vaxry2025-12-301-0/+37
|
* keybinds: simulate mouse movement after bringing active window to top (#12703)Aditya Singh2025-12-271-0/+41
| | | Fixes https://github.com/hyprwm/Hyprland/discussions/12702
* rules/windowRuleApplicator: fix min/max size effects (#12491)Vaxry2025-12-271-5/+66
| | | fixes #12412
* tests: fix a test caseVaxry2025-12-061-1/+1
|
* layouts: fix maximize sizeVaxry2025-12-061-0/+31
|
* desktop: rewrite reserved area handling + improve tests (#12383)Vaxry2025-12-051-15/+60
|
* compositor: Configurable behavior when window to be focused conflicts with ↵Nikolai Nechaev2025-11-251-13/+184
| | | | | | | | | | fullscreen (#12033) Renames `misc:new_window_takes_over_fullscreen` into `misc:on_focus_under_fullscreen` and implements the following behavior: - By default, when a tiling window is being focused on a workspace where a fullscreen/maximized window exists, respect the `misc:on_focus_under_fullscreen` config variable.
* windowrules: fix persistent_size not applying (#12441)EvilLary2025-11-241-0/+28
|
* windowrules: fix group rule recalcs (#12403)Vaxry2025-11-201-0/+67
|
* dwindle: Revert rework split logic to be fully gap-aware (#12047)Vaxry2025-11-181-31/+13
| | | | | | This reverts commit 151b5f69783b111831e8c5dc062904a221799d7b. Fixes #12380
* windowrules: rewrite completely (#12269)Vaxry2025-11-171-18/+119
| | | | | | | Reworks the window rule syntax completely --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* dwindle: rework split logic to be fully gap-aware (#12047)crossatko2025-10-241-13/+31
|
* layouts: apply [min|max]size window rules to dwindle & master layouts (#11898)Richard Potter2025-10-131-0/+43
| | | Uses min/max rules in the tiled layouts, akin to pseudotiling
* rules: fix some monitor rules (#11873)ItsOhen2025-09-291-1/+1
|
* config: fix rules with no parameters not being counted as invalid (#11849)ItsOhen2025-09-271-0/+23
| | | | | Quite a big whoopsie to insert invalid rules. Also adds special: cases.
* config: support more than 1 window rule per rule line. (#11689)ItsOhen2025-09-261-0/+17
| | | Adds support for specifying multiple rules in one line
* dispatchers: allow window address in swapwindow (#11518)0xFMD2025-08-311-0/+113
|
* dwindle: simplify split_bias logic and set of possible values. (#11448)Mike Will2025-08-191-30/+53
|
* tester: simplify adding test filesVaxry2025-06-271-1/+3
|
* Core: Add a test suite (#9297)Vaxry2025-06-261-0/+96
Adds a test suite for testing hyprland's features with a runtime tester --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>