| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2024-12-30 | Initial WIP floating window implementation | Ivan Molodetskikh | |
| 2024-12-30 | Update for Smithay VRR changes | Ivan Molodetskikh | |
| 2024-12-30 | Update Smithay (presentation-time v2) | Ivan Molodetskikh | |
| 2024-12-22 | Implement client-server test infra and window opening tests | Ivan Molodetskikh | |
| 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 | Add test-only single-pixel-buffer support | Ivan Molodetskikh | |
| 2024-12-22 | Add a Headless backend for tests | Ivan Molodetskikh | |
| Rendering and stuff is unimplemented. | |||
| 2024-12-22 | Switch from k9 to insta for snapshot testing | Ivan Molodetskikh | |
| We'll need some advanced features from insta. | |||
| 2024-12-22 | Initialize PipeWire lazily | Ivan Molodetskikh | |
| 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 | Bump MSRV to `1.80` | bbb651 | |
| It should be old enough for most distros, and allows upgrading to `zbus 5.x` | |||
| 2024-12-22 | fix: check for layer surface under cursor when clicking | Rémi Labeyrie | |
| 2024-12-17 | Add force-pipewire-invalid-modifier debug flag | Ivan Molodetskikh | |
| 2024-12-15 | Add missing blank line | Ivan Molodetskikh | |
| 2024-12-11 | Activate monitors on session unlock (#858) | Salman Farooq | |
| 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-09 | Extract rules.apply_{min,max}_size() | Ivan Molodetskikh | |
| 2024-12-08 | layout: Return instead of breaking | Ivan Molodetskikh | |
| There's no code past this, and we want to break out of all loops. | |||
| 2024-12-08 | layout: Return bool from activate_window() | Ivan Molodetskikh | |
| Avoid an extra has_window() call. | |||
| 2024-12-07 | layout: Ignore more actions during interactive move | Ivan Molodetskikh | |
| The interactively moved window is the active window, so this makes sense. | |||
| 2024-12-07 | layout: Extract Tile::verify_invariants() | Ivan Molodetskikh | |
| 2024-12-07 | layout: Mark accessors as cfg(test) | Ivan Molodetskikh | |
| 2024-12-01 | layout: Extract ScrollingSpace | Ivan Molodetskikh | |
| 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 | layout: Add a test for windows on other workspace remaining activated | Ivan Molodetskikh | |
| 2024-12-01 | layout: Fix windows on other workspaces losing activated state | Ivan Molodetskikh | |
| This erroneous check was introduced in interactive move. | |||
| 2024-12-01 | layout: Fix possible crash when dropping move on different, animating output | Ivan Molodetskikh | |
| 2024-12-01 | layout: Correct variable names | Ivan Molodetskikh | |
| 2024-12-01 | layout: Use tiles_mut() in Workspace::clear_unmap_snapshot() | Ivan Molodetskikh | |
| 2024-12-01 | layout: Extract Workspace::tiles() | Ivan Molodetskikh | |
| 2024-11-29 | Add strict-new-window-focus-policy debug flag | Ivan Molodetskikh | |
| 2024-11-29 | Activate newly mapped windows with a valid activation token | Christian Meissl | |
| 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 | xdg: startup activation | Christian Meissl | |
| pass an activation token to process spawned through actions | |||
| 2024-11-29 | Fix new warnings | Ivan Molodetskikh | |
| 2024-11-29 | Implement empty-workspace-above-first (#745) | FluxTape | |
| * 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-27 | layout: Stop workspace switch when moving workspaces to primary | Ivan Molodetskikh | |
| 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-26 | layout/tests: Add post option update to randomized test | Ivan Molodetskikh | |
| Will help to catch cases where updating options doesn't update the state correctly. | |||
| 2024-11-26 | layout: Fix adjusting for scale for moved tile when reloading config | Ivan Molodetskikh | |
| 2024-11-26 | layout/tests: Return Layout from check_ops() | Ivan Molodetskikh | |
| Cuts down on boilerplate in a few places. | |||
| 2024-11-26 | layout: Extract update_options() | Ivan Molodetskikh | |
| 2024-11-26 | layout/tests: Allow AddWindowRightOf interactive moved window | Ivan Molodetskikh | |
| Guess I forgot this. | |||
| 2024-11-26 | layout/tests: Standardize on usize for output id in tests | Ivan Molodetskikh | |
| 2024-11-25 | Refactor animation timing to use lazy clocks | Ivan Molodetskikh | |
| 2024-11-25 | Refactor animations to take explicit current time | Ivan Molodetskikh | |
| 2024-11-23 | Extract Niri::advance_animations() | Ivan Molodetskikh | |
| 2024-11-23 | layout/monitor: Extract add_workspace_bottom() | Ivan Molodetskikh | |
| 2024-11-23 | Add interactive_move_onto_empty_output test | Ivan Molodetskikh | |
| Tests the add_workspace_bottom() in Monitor::add_tile(). | |||
| 2024-11-23 | pw: Fix potential crash when disconnecting output | Ivan Molodetskikh | |
| 2024-11-22 | Focus target window/output on DnD | Ivan Molodetskikh | |
| 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. | |||
| 2024-11-21 | Add `focus-window-previous` action (#811) | Ridan Vandenbergh | |
| * Add `FocusWindowPrevious` action * remove [` * track previous focus in Niri instead of every window --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com> | |||
| 2024-11-14 | Implement layer rules: opacity and block-out-from | Ivan Molodetskikh | |
| 2024-11-14 | niri: Extract render_layer() | Ivan Molodetskikh | |
| 2024-11-14 | config: Add RegexEq util type instead of manual PartialEq | Ivan Molodetskikh | |
| 2024-11-12 | Add niri msg layers | Ivan Molodetskikh | |
