| Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
Rendering and stuff is unimplemented.
|
|
We'll need some advanced features from insta.
|
|
This helps with:
- System setups starting PipeWire late (after niri startup, but before any
screencast).
- Tests which don't even want to start PipeWire.
|
|
It should be old enough for most distros, and allows upgrading to `zbus 5.x`
|
|
|
|
|
|
|
|
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>
|
|
|
|
There's no code past this, and we want to break out of all loops.
|
|
Avoid an extra has_window() call.
|
|
The interactively moved window is the active window, so this makes sense.
|
|
|
|
|
|
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().
|
|
|
|
This erroneous check was introduced in interactive move.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
pass an activation token to process spawned through actions
|
|
|
|
* 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>
|
|
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.
|
|
Will help to catch cases where updating options doesn't update the state
correctly.
|
|
|
|
Cuts down on boilerplate in a few places.
|
|
|
|
Guess I forgot this.
|
|
|
|
|
|
|
|
|
|
|
|
Tests the add_workspace_bottom() in Monitor::add_tile().
|
|
|
|
In sway, focus-follows-mouse keeps working during DnD, but not in niri.
So it can be surprising when you DnD something into another app, but it
doesn't get automatically focused. This commit fixes that.
Even if the DnD is not validated, or if there's no target surface (e.g.
dropped on the niri background), focus the target output, since that's
how Firefox's drag-tab-into-new-window works for example.
|
|
* Add `FocusWindowPrevious` action
* remove [`
* track previous focus in Niri instead of every window
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
|
|
|
|
|
|
|
|
|
|
They can trigger with closed screenshot UI via key repeat.
|
|
|
|
This way, expel becomes symmetric with consume. This is also how it
works in PaperWM. Though, in PaperWM if the expelled window was focused,
it will remain focused, while in this commit it is never focused, making
it the exact opposite of consume.
Use consume-or-expel-window-right for the old expel behavior.
|