aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2025-09-17layout/tile: Extract two variablesIvan Molodetskikh
2025-09-17layout/scrolling: Animate tiles_origin changing on un/fullscreenIvan Molodetskikh
2025-09-17layout/scrolling: Track pending vs. current fullscreen for ColumnsIvan Molodetskikh
We already did that for Tiles, but for Columns we only tracked what was effectively pending fullscreen. We used it in several places where the current fullscreen should've been used instead, like the tile origin or the view offset. This commit splits the two and makes every place use the right one. Fixes things like tiles briefly appearing at y=0 between issuing the fullscreen command and the tile committing in response to the fullscreen configure.
2025-09-17layout/scrolling: Store view_offset_before_fullscreen when column actually ↵Ivan Molodetskikh
goes fullscreen Simplifies the handling and correctly saves/restores view offset for clients that are slow to fullscreen, as can be seen from the fixed test.
2025-09-17tests/fullscreen: Add broken slow client unfullscreen view offset ↵Ivan Molodetskikh
restoration test
2025-09-17tests: Move complete_animations() to FixtureIvan Molodetskikh
2025-09-17layout/tests/fullscreen: Add broken removing tile view pos restore testIvan Molodetskikh
2025-09-17Add unfullscreen view offset restoration testsIvan Molodetskikh
2025-09-17layout/tests: Extract fullscreen tests to submoduleIvan Molodetskikh
2025-09-16Make hot corners configurable, including per-output (#2108)Kai Koehler
* Add corner selection in config * Add hot corner docs * Working per-monitor hot corners Handle defaults * run cargo fmt --all * Fix hot corners in is_sticky_obscured_under * Change default to fall back to gesture hot corners if output hot corners are unset * Add hot corner output config docs * Support fractional scaling * Trigger hot corners over widgets * Improve float handling Fixed YaLTeR/niri/pull/2108 * Refactor * Bug Fixes * Amend docs Fix styling Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com> * Integrate code review Move is_inside_hot_corner * fixes --------- Co-authored-by: Aadniz <8147434+Aadniz@users.noreply.github.com> Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-09-16layout: End DnD gesture when toggling interactive move to floatingIvan Molodetskikh
Effective behavior mostly unchanged (it would end on refresh()), but this was failing the invariant checks.
2025-09-16layout: Fix crash when a window opens next-to an only interactively moved ↵Ivan Molodetskikh
window with no outputs
2025-09-15layout/tests: Mark operations_dont_panic as slowIvan Molodetskikh
It's by far the slowest test (disabling it cuts cargo test time by 2x), and it hadn't caught much in the past months.
2025-09-08Don't clear DISPLAY/WAYLAND_DISPLAY/WAYLAND_SOCKET on WSL with --session (#2354)ilyx
* use winit backend on WSL * Update src/main.rs --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-29Change xwl-s spawning error messages from info! to warn!Ivan Molodetskikh
2025-08-29Improve filtering for tests that need EGLIvan Molodetskikh
This way we don't skip the layout animation tests.
2025-08-29layout/floating: Fix resetting preset width idx instead of heightIvan Molodetskikh
2025-08-29Add cycle back feature for presets of column/window width/height.Said Kadrioski
2025-08-29feat: cubic-bezier curve for animation (#2059)Horu
* feat: bezier curve for animation * fixes --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-27Fix typosIvan Molodetskikh
2025-08-27config: Clean up animations struct namesIvan Molodetskikh
2025-08-27config: Move workspace into its own moduleIvan Molodetskikh
2025-08-27config: Extract debugIvan Molodetskikh
2025-08-27config: Extract window_ruleIvan Molodetskikh
2025-08-27pw_utils: Add session/stream id to logsIvan Molodetskikh
Signed-off-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-27Fix focus=false for move-column-to-workspace*, add to ↵gibberish
move-window-to-workspace-up/down
2025-08-26Save & restore num lock across layout changesIvan Molodetskikh
In particular, this makes the numlock option work with locale1.
2025-08-26input: Don't hide overlays on a11y-consumed key pressesIvan Molodetskikh
2025-08-26Remove redundant commentIvan Molodetskikh
2025-08-26Implement screen reader announcements via AccessKitIvan Molodetskikh
2025-08-26ui/hotkey_overlay: Reorganize bind formatting logic a bitIvan Molodetskikh
Let the caller call tail functions.
2025-08-24tty: Don't print successful max bpc/HDRIvan Molodetskikh
These are not really that useful
2025-08-24feat: reset HDR connector propertiesMichael Yang
2025-08-22exit_confirm_dialog: Add open/close animationIvan Molodetskikh
2025-08-22exit_confirm_dialog: Add backdropIvan Molodetskikh
Makes it more obvious that the focus is taken by the dialog. Makes it easier to tell if you're about to close nested vs. host compositor.
2025-08-22exit_confirm_dialog: Return ArrayVec and add render elementsIvan Molodetskikh
2025-08-21Unfocus layout when exit confirm dialog is openIvan Molodetskikh
Screen readers expect closing a modal dialog to reannounce the previous focus. This makes the exit confirm dialog more modal in this sense: it will unfocus the layout and then focus it back when closed, giving the desired behavior.
2025-08-21Simplify/deduplicate hot corner computationIvan Molodetskikh
2025-08-21Move fallibility inside ExitConfirmDialogIvan Molodetskikh
Makes it less annoying on the outside.
2025-08-20Rename spawn-at-startup-sh => spawn-sh-at-startupIvan Molodetskikh
Makes a bit more sense
2025-08-20Add spawn-sh, spawn-at-startup-shIvan Molodetskikh
Our top 10 most confusing config moments
2025-08-19Update Smithay and fix two unused upscale() callsIvan Molodetskikh
Uh oh. I can't come up with an easy way to test these, so let's just hope that before they were broken and now they work fine?..
2025-08-19Add per-axis scroll speed config for input devices (#2109)Bernardo Kuri
* Add per-axis scroll speed config for input devices. Accepts negative values to inverse scroll direction. Properly complements/overrides global `scroll-direction` setting. Includes docs and tests. * Update per-axis scroll factor implementation after testing - Refined configuration structure in niri-config - Updated input handling to use per-axis scroll factors - Added comprehensive test snapshots - Updated documentation with per-axis examples 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Simplify per-axis scroll factor implementation per review feedback - Make documentation concise and clear - Remove unnecessary comments and test helper functions - Use inline snapshots for tests - Rename get_factors() to h_v_factors() for clarity - Remove unnecessary .clone() calls (ScrollFactor is Copy) - Reduce test count to essential cases only - Fix comment about window factor override behavior 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Remove unnecessary ScrollFactor::new() helper function The maintainer prefers minimal code, so removing this helper and constructing ScrollFactor directly in tests. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix scroll factor behavior - all settings now multiply with window factor Per maintainer feedback, both combined and per-axis scroll settings should multiply with the window-specific scroll factor, not override it. This ensures consistent behavior regardless of configuration method. Also removed the now-unused has_per_axis_override() method. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Final cleanup: remove redundant comments and unused snapshot files - Removed unused snapshot files (now using inline snapshots) - Removed redundant inline comments in tests - Simplified test descriptions to be more concise 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Convert scroll factor parsing tests to use assert_debug_snapshot Updates parse_scroll_factor_combined, parse_scroll_factor_split, and parse_scroll_factor_partial tests to use assert_debug_snapshot instead of manual assert_eq comparisons, as requested in PR review. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Convert to inline snapshots as requested - Convert all scroll factor parsing tests to use inline snapshots instead of external files - Remove external snapshot files to keep test directory clean - All tests still pass with inline snapshot assertions 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix missed assert_eq in parse_scroll_factor_mixed test Converts the remaining assert_eq calls to assert_debug_snapshot with inline snapshots in the mixed syntax test function. Also fixes raw string delimiters from ### to #. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Convert scroll_factor_h_v_factors test to use assert_debug_snapshot Makes all scroll factor tests consistent by using snapshots instead of assert_eq for better maintainability. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fixes --------- Co-authored-by: Bernardo Kuri <github@bkuri.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-17tty: Remove warning when rendering with inactive deviceIvan Molodetskikh
2025-08-17Add ConfigLoaded event to IPC, option to disable built-in notification (#1829)Horu
* feat: config reload ipc event * cleanups * Rename and move the new config option * rename to ConfigLoaded and emit at connection --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-16niri-ipc: Add window positions and sizes (#1265)yrkv
* Add window sizes and positions to the IPC * basic fixes * report window_loc instead of window pos * clean ups * make scrolling indices 1-based * add printing to niri msg windows * don't include render offset in floating tile pos --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-15watcher: Refactor tests to not use threadsIvan Molodetskikh
Fixes flakiness, removes unnecessary waiting.
2025-08-14watcher: Mark tests as ignoredIvan Molodetskikh
Until someone figures out how to fix the flakiness. See https://github.com/YaLTeR/niri/issues/2226
2025-08-14layout: Offset ongoing column X move anims for non-animated resizesIvan Molodetskikh
2025-08-14layout/tests: Add two width resize tests with the same issue as just fixedIvan Molodetskikh