Ivan Molodetskikh
4e357e9659
config: Fix border rule on -> off merging
2024-12-27 15:42:56 +03:00
Ivan Molodetskikh
1f8aed6732
config: Add a test for border rule on/off merging
2024-12-27 15:42:55 +03:00
Maximilian Huber
fa2bace3cd
Fix nix flake for client-server tests ( #896 )
...
This was suggested by @sodiboo in
https://github.com/YaLTeR/niri/issues/894#issuecomment-2562153840 and
was copied from https://github.com/sodiboo/niri-flake/commit/350e6b68c70f5002a75e10521f5e66ace4b5eed1i
Signed-off-by: Maximilian Huber <gh@maxhbr.de >
2024-12-26 14:44:07 +00:00
Nathan
955039b5ea
Update Configuration:-Key-Bindings.md ( #893 )
...
* Update Configuration:-Key-Bindings.md
Added Leve5 notes with scant instruction on how to use.
* Update wiki/Configuration:-Key-Bindings.md
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2024-12-23 21:08:56 +03:00
Ivan Molodetskikh
771ea1e815
Implement client-server test infra and window opening tests
...
These tests make a real Niri instance and real Wayland clients (via manual
wayland-rs implementation), both on the same event loop local to the test. This
allows testing the full Wayland interaction, including arbitrary event ordering
and delays.
To start off, add a massive powerset test for the settings that influence where
a window may open.
2024-12-22 15:19:46 +03:00
Ivan Molodetskikh
d38bfc4aff
Add test-only single-pixel-buffer support
2024-12-22 15:19:46 +03:00
Ivan Molodetskikh
fbb0054232
Add a Headless backend for tests
...
Rendering and stuff is unimplemented.
2024-12-22 15:19:46 +03:00
Ivan Molodetskikh
2d3c36edae
Switch from k9 to insta for snapshot testing
...
We'll need some advanced features from insta.
2024-12-22 15:19:46 +03:00
Ivan Molodetskikh
8dcc41a54d
Initialize PipeWire lazily
...
This helps with:
- System setups starting PipeWire late (after niri startup, but before any
screencast).
- Tests which don't even want to start PipeWire.
2024-12-22 15:19:46 +03:00
bbb651
ba3d2e36c8
Bump MSRV to 1.80
...
It should be old enough for most distros, and allows upgrading to `zbus 5.x`
2024-12-22 15:19:46 +03:00
bbb651
b51047ffcc
Avoid implicit feature names
2024-12-22 15:19:46 +03:00
Rémi Labeyrie
b1c40a9079
fix: check for layer surface under cursor when clicking
2024-12-22 15:13:17 +03:00
Ivan Molodetskikh
b014c267ae
README: Replace Matrix badge with static
...
The dynamic one broke recently.
2024-12-20 23:07:19 +03:00
Ivan Molodetskikh
6b16cc52db
Add force-pipewire-invalid-modifier debug flag
2024-12-17 17:08:14 +03:00
Ivan Molodetskikh
d35ad73e35
wiki: Change Since 0.1.11 to Since next release
2024-12-15 16:44:35 +03:00
Ivan Molodetskikh
2a1af3d9ae
Add missing blank line
2024-12-15 10:40:09 +03:00
Ivan Molodetskikh
82e30246c1
Use gtk Notification portal
...
xdg-gnome 47 now implements notifications via GNOME Shell API which we don't
have. So force the gtk portal to make notifications work again.
2024-12-11 21:39:58 +03:00
Salman Farooq
bb3a05bb3f
Activate monitors on session unlock ( #858 )
...
So that e.g. unlocking by touching the fingerprint reader powers on the monitors.
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
Co-authored-by: Salman Farooq <46742354+SalmanFarooqShiekh@users.noreply.github.com >
2024-12-11 03:53:41 -08:00
Ivan Molodetskikh
40fa82275c
Extract rules.apply_{min,max}_size()
2024-12-09 13:25:52 +03:00
Ivan Molodetskikh
9824321fc9
layout: Return instead of breaking
...
There's no code past this, and we want to break out of all loops.
2024-12-08 09:25:39 +03:00
Ivan Molodetskikh
27e607ab82
layout: Return bool from activate_window()
...
Avoid an extra has_window() call.
2024-12-08 09:25:27 +03:00
Ivan Molodetskikh
a2b27b8790
layout: Ignore more actions during interactive move
...
The interactively moved window is the active window, so this makes sense.
2024-12-07 19:38:48 +03:00
Ivan Molodetskikh
396089ef0e
layout: Extract Tile::verify_invariants()
2024-12-07 19:38:48 +03:00
Ivan Molodetskikh
df98b5021d
layout: Mark accessors as cfg(test)
2024-12-07 19:38:48 +03:00
sodiboo
34ce6d0b02
nix: update flake.lock
2024-12-03 05:53:48 -08:00
sodiboo
7af937b08e
nix: clang -> rustPlatform.bindgenHook
2024-12-03 05:53:48 -08:00
Ivan Molodetskikh
8665003269
layout: Extract ScrollingSpace
...
Leave the Workspace to do the workspace parts, and extract the scrolling parts
into a new file. This is a pre-requisite for things like the floating layer
(which will live in a workspace alongside the scrolling layer).
As part of this huge refactor, I found and fixed at least these issues:
- Wrong horizontal popup unconstraining for a smaller window in an
always-centered column.
- Wrong workspace switch in focus_up_or_right().
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
1e76716819
layout: Add a test for windows on other workspace remaining activated
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
91a42fdf58
layout: Fix windows on other workspaces losing activated state
...
This erroneous check was introduced in interactive move.
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
5ed5243be6
layout: Fix possible crash when dropping move on different, animating output
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
4560251e64
layout: Correct variable names
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
2020dca3e0
layout: Use tiles_mut() in Workspace::clear_unmap_snapshot()
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
7fc2121454
layout: Extract Workspace::tiles()
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
8b84afbd38
Add strict-new-window-focus-policy debug flag
2024-11-29 21:57:36 -08:00
Christian Meissl
305fc3b557
Activate newly mapped windows with a valid activation token
...
most of the time the activation token is passed
while the window is still unmapped. in this case
store the intend to activate the window for
later retrieval on map.
2024-11-29 21:57:36 -08:00
Christian Meissl
61f2ac01d7
xdg: startup activation
...
pass an activation token to process spawned through actions
2024-11-29 21:57:36 -08:00
Ivan Molodetskikh
39a9f55205
Fix new warnings
2024-11-29 09:33:08 +03:00
FluxTape
11f351dbeb
Implement empty-workspace-above-first ( #745 )
...
* Implement empty-workspace-above-first option
* add two failing tests
* fix interactive_move_onto_empty_output_ewaf and
interactive_move_onto_first_empty_workspace tests
* Add two failing ewaf option toggle tests
* Fix adding/removing first empty workspace on option toggle
* Don't remove first empty workspace if focused
* Stop workspace switch when enabling ewaf
* layout/monitor: Offset workspace switch on adding workspace above
* Fix some initial active workspace ids with ewaf
* wiki: Document empty-workspace-above-first
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2024-11-29 08:46:13 +03:00
Ivan Molodetskikh
815fa379ea
layout: Stop workspace switch when moving workspaces to primary
...
Okay, this might be one of the oldest layout issues to have remained uncaught.
Well, maybe as I add more randomized tests, I'll catch even more of those.
2024-11-27 20:55:20 +03:00
Ivan Molodetskikh
4c480a1ea3
layout/tests: Add post option update to randomized test
...
Will help to catch cases where updating options doesn't update the state
correctly.
2024-11-26 22:02:46 +03:00
Ivan Molodetskikh
fa4aa0e06d
layout: Fix adjusting for scale for moved tile when reloading config
2024-11-26 22:01:26 +03:00
Ivan Molodetskikh
e2a6374bf5
layout/tests: Return Layout from check_ops()
...
Cuts down on boilerplate in a few places.
2024-11-26 22:00:44 +03:00
Ivan Molodetskikh
dc14554053
layout: Extract update_options()
2024-11-26 21:59:05 +03:00
Ivan Molodetskikh
985ca7b643
layout/tests: Allow AddWindowRightOf interactive moved window
...
Guess I forgot this.
2024-11-26 15:24:28 +03:00
Ivan Molodetskikh
60624d64fa
layout/tests: Standardize on usize for output id in tests
2024-11-26 15:24:28 +03:00
Ivan Molodetskikh
2935dae89e
wiki: Add animation timing page
2024-11-25 04:07:59 -08:00
Ivan Molodetskikh
4c22c3285d
Refactor animation timing to use lazy clocks
2024-11-25 04:07:59 -08:00
Ivan Molodetskikh
93cee2994a
Refactor animations to take explicit current time
2024-11-25 04:07:59 -08:00
Ivan Molodetskikh
9c7e8d04d2
Extract Niri::advance_animations()
2024-11-23 15:09:16 +03:00
Ivan Molodetskikh
1e6b8906e0
layout/monitor: Extract add_workspace_bottom()
2024-11-23 15:07:52 +03:00