aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-12-30layout: Remember whether to unfullscreen back into floatingIvan Molodetskikh
2024-12-30layout: Move toggle_fullscreen() impl to WorkspaceIvan Molodetskikh
2024-12-30wiki: Document new floating window rule and gestureIvan Molodetskikh
2024-12-30floating: Implement directional moveIvan Molodetskikh
2024-12-30layout/floating: Extract move_and_animate()Ivan Molodetskikh
2024-12-30floating: Implement center_window()Ivan Molodetskikh
2024-12-30floating: Implement directional focusIvan Molodetskikh
2024-12-30layout: Implement focus_right_or_first() genericallyIvan Molodetskikh
2024-12-30Extract center_preferring_top_left_in_area()Ivan Molodetskikh
2024-12-30layout/floating: Move a function higher upIvan Molodetskikh
Let's group action functions together. Activate is an action and set width/height too.
2024-12-30Stub out actions when floating is activeIvan Molodetskikh
Make sure they don't go to the unfocused scrolling layout at least.
2024-12-30floating: Implement smarter clamping for window locationIvan Molodetskikh
A small part of the window always remains on-screen regardless of the working area changes. Interactive move lets the user position the window anywhere; automatic actions like toggle-window-floating and dialog opening try to put the window fully on-screen. The size-fraction canonical floating window position remains unclamped, and clamping happens when recomputing the logical position.
2024-12-30Make right click during move toggle floatingIvan Molodetskikh
2024-12-30Stop move grab when the start button is releasedIvan Molodetskikh
Rather than when all buttons are released.
2024-12-30Implement floating child stacking above parentsIvan Molodetskikh
2024-12-30layout: Extract TestWindowParamsIvan Molodetskikh
2024-12-30Make interactive move keep in the same layout (floating/tiling)Ivan Molodetskikh
2024-12-30Always honor min height in new window sizeIvan Molodetskikh
2024-12-30Honor min/max size in more places like initial configureIvan Molodetskikh
2024-12-30Initial WIP floating window implementationIvan Molodetskikh
2024-12-30temp: Use patched Smithay (fix VRR cursor-plane-only)Ivan Molodetskikh
2024-12-30Update for Smithay VRR changesIvan Molodetskikh
2024-12-30Update Smithay (presentation-time v2)Ivan Molodetskikh
2024-12-27config: Fix border rule on -> off mergingIvan Molodetskikh
2024-12-27config: Add a test for border rule on/off mergingIvan Molodetskikh
2024-12-26Fix nix flake for client-server tests (#896)Maximilian Huber
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-23Update Configuration:-Key-Bindings.md (#893)Nathan
* 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-22Implement client-server test infra and window opening testsIvan 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-22Add test-only single-pixel-buffer supportIvan Molodetskikh
2024-12-22Add a Headless backend for testsIvan Molodetskikh
Rendering and stuff is unimplemented.
2024-12-22Switch from k9 to insta for snapshot testingIvan Molodetskikh
We'll need some advanced features from insta.
2024-12-22Initialize PipeWire lazilyIvan 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-22Bump MSRV to `1.80`bbb651
It should be old enough for most distros, and allows upgrading to `zbus 5.x`
2024-12-22Avoid implicit feature namesbbb651
2024-12-22fix: check for layer surface under cursor when clickingRémi Labeyrie
2024-12-20README: Replace Matrix badge with staticIvan Molodetskikh
The dynamic one broke recently.
2024-12-17Add force-pipewire-invalid-modifier debug flagIvan Molodetskikh
2024-12-15wiki: Change Since 0.1.11 to Since next releaseIvan Molodetskikh
2024-12-15Add missing blank lineIvan Molodetskikh
2024-12-11Use gtk Notification portalIvan Molodetskikh
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-11Activate 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-09Extract rules.apply_{min,max}_size()Ivan Molodetskikh
2024-12-08layout: Return instead of breakingIvan Molodetskikh
There's no code past this, and we want to break out of all loops.
2024-12-08layout: Return bool from activate_window()Ivan Molodetskikh
Avoid an extra has_window() call.
2024-12-07layout: Ignore more actions during interactive moveIvan Molodetskikh
The interactively moved window is the active window, so this makes sense.
2024-12-07layout: Extract Tile::verify_invariants()Ivan Molodetskikh
2024-12-07layout: Mark accessors as cfg(test)Ivan Molodetskikh
2024-12-03nix: update flake.locksodiboo
2024-12-03nix: clang -> rustPlatform.bindgenHooksodiboo
2024-12-01layout: Extract ScrollingSpaceIvan 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().