aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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
2025-08-14layout/scrolling: Normalize column X move anim from 1 to 0Ivan Molodetskikh
Will be needed for offsetting to fix the resize cancel issue.
2025-08-14layout: Offset Y animations for non-animated resizesIvan Molodetskikh
2025-08-14layout/tests: Add column resize animation testsIvan Molodetskikh
2025-08-14layout/tests: Add CompleteAnimations opIvan Molodetskikh
2025-08-14layout/tests: Support forced test window sizeIvan Molodetskikh
2025-08-14layout/tests: Support animation snapshotIvan Molodetskikh
Only the size is needed in these tests; needed for testing animation progress.
2025-08-14layout/tests: Extract check_ops_on_layout()Ivan Molodetskikh
2025-08-14layout: Remove by-ref animation_snapshot() getterIvan Molodetskikh
It was used in only one place, and that place was due for an update to use the cached data.
2025-08-14Add basic client-server resize animation testsIvan Molodetskikh
2025-08-14headless: Add a rendererIvan Molodetskikh
To be used for animation tests that need animation snapshots. The renderer is optional to avoid creating it thousands of times in tests when it's not needed, plus it can deadlock in mesa apparently.
2025-08-13use ScanoutCandidate kind for surfacesChristian Meissl
this allows to get direct scan-out on surfaces again
2025-08-11Fix new lifetime warningsIvan Molodetskikh
2025-08-11Bump Smithay (xkbcommon wvkbd fix)Ivan Molodetskikh
2025-08-09Add the `LoadConfigFile` action (#2163)vanderlokken
* Add the `LoadConfigFile` action * fixes --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-07niri-config: add keep-max-bpc-unchanged option (#2195)BB
* niri-config: add disable-set-bpc option setting bpc to 8 bricks some OLED displays driven by amdgpu * change to keep-max-bpc-unchanged and add to wiki * fmt * Update wiki/Configuration:-Debug-Options.md --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-07Reload libinput settings when trackball, tablet and touch changeIvan Molodetskikh
Somehow missed this before.
2025-08-05fix hot reloading `/etc/niri/config.kdl` (#1907)sodiboo
* refactor config load logic, and properly watch the system config path * move config creation to niri-config, and make the errors a bit nicer notably, "error creating config" is now a cause for "error loading config", instead of it being one error and then "error loading config: no such file or directory". also, failure to load a config is now printed as an error level diagnostic (because it is indeed an error, not just a warning you can shrug off) * refactor watcher tests; add some new ones now they check for the file contents too! and i added some tests for ConfigPath::Regular, including a messy one with many symlink swaps * fixes --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-04pw_utils: Add Tracy span to queue_after_sync()Ivan Molodetskikh
2025-08-04pw_utils: Set sequence in buffer meta headerIvan Molodetskikh
Useful for debugging.
2025-08-04pw_utils: Remove commented-out unused buffer propsIvan Molodetskikh
2025-08-04pw_utils: Wait for frame completion before queueingIvan Molodetskikh
Without explicit sync, we have no way to signal the PipeWire consumer when the rendering is done. So, wait until it's done before giving it the frame. This should fix flickering screencasts on NVIDIA.
2025-08-04pw_utils: Fill dmabuf strides and offsets at add_buffer()Ivan Molodetskikh
As far as I understand, these don't change.
2025-08-04pw_utils: Store LoopHandleIvan Molodetskikh
2025-08-04pw_utils: Switch to using raw pw_buffersIvan Molodetskikh
We're gonna need to store these in the future, and the lifetime on the pw-rs Buffer prevents us from easily doing that. Besides, we'll need access to metadata which pw-rs doesn't expose yet.
2025-08-04pw_utils: Extract shared state to CastInnerIvan Molodetskikh
2025-08-04pw_utils: Unmark CastState as pubIvan Molodetskikh
2025-08-04pw_utils: Add clarifying comments on maxsize and sizeIvan Molodetskikh
2025-07-31Update Smithay (clipboard client exit nil fix, input region bottom-right fix)Ivan Molodetskikh
2025-07-31signals: Gate on target_os = "linux"Ivan Molodetskikh
Hopefully fixes build on FreeBSD.
2025-07-31signals: Reduce fn visibilityIvan Molodetskikh
2025-07-31xwayland: Make abstract socket optional and Linux-onlyIvan Molodetskikh
Hopefully fixes build on FreeBSD.
2025-07-31Implement org.fd.a11y KeyboardMonitorIvan Molodetskikh
Makes Orca work with niri: - keyboard watching and announcing everywhere (not just GTK 3 windows) - grabs for the Orca modifier (with double-press to pass through) and keystrokes
2025-07-18block signals early: now handled correctly with tracy ondemandsodiboo
2025-07-18refactor signal handling, and clear sigmask before spawningsodiboo