aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-19README: Link awesome-niriIvan Molodetskikh
2025-08-19wiki/Getting-Started: Mention DEs and shellsIvan Molodetskikh
2025-08-19configure section permalinksKent Daleng
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-18wiki/FAQ: Add spaces for search to workIvan Molodetskikh
"pinned" doesn't find anything otherwise
2025-08-18wiki/FAQ: Mention BitwardenIvan Molodetskikh
2025-08-18Update all remaining links to the new wikiIvan Molodetskikh
2025-08-18wiki/FAQ: Mention always on top windowsIvan Molodetskikh
2025-08-18wiki/Application-Issues: Mention Zen dmabuf screencastingIvan Molodetskikh
2025-08-18wiki: Improve home pageIvan Molodetskikh
2025-08-18wiki/FAQ: Mention blurIvan Molodetskikh
2025-08-18wiki/docs: rename index.md to README.mdKent Daleng
2025-08-17wiki: Minor logo updateIvan Molodetskikh
2025-08-17docs: location-agnostic index page (#2256)Kent Daleng
* Update index.md a simple suggestion for a location-agnostic index page * Update docs/wiki/index.md Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com> --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-17readme: use links to docs instead of gh wikiKent Daleng
(i'm obsessed with making pull requests right in the browser)
2025-08-17ci: Add some blank linesIvan Molodetskikh
2025-08-17rpkg: Fix wiki pathIvan Molodetskikh
2025-08-17ci: Add missing permIvan Molodetskikh
2025-08-17github wiki replacement / mkdocs-docs (#2147)Kent Daleng
* Add wiki based on mkdocs * wording fixes * fix github bg color on narrow * Fix left sidebar section headers being bigger than pages * fix hover accent * fix list rendering on fractional layout * fix videos * fix automatic full links * remove redundant commented css * improve dark mode contrast * update pygments for better child node coloring * update logo * remove blank lines * add systemd language hint --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-17tty: Remove warning when rendering with inactive deviceIvan Molodetskikh
2025-08-17Add FreeBSD CI (#2072)Matej Cotman
* feat(ci): add FreeBSD job * Update .github/workflows/ci.yml * fix(workflow): remove 10m timeout for freebsd job, put it back later if there is an actual reason * feat(workflow): enable cache on freebsd job * feat(workflow): add custom CARGO_HOME for freebsd job * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * clean-up * test cache --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
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-16README: Link DiscordIvan Molodetskikh
2025-08-16flake: skip tests that require a valid EGL display (#2244)Cole Helbling
* flake: skip tests that require a valid EGL display Otherwise: niri> failures: niri> niri> ---- tests::animations::clientside_height_change_doesnt_animate stdout ---- niri> niri> thread 'tests::animations::clientside_height_change_doesnt_animate' panicked at src/tests/animations.rs:87:54: niri> called `Result::unwrap()` on an `Err` value: error creating EGL display niri> niri> Caused by: niri> Unable to obtain a valid EGL Display. niri> note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace niri> niri> ---- tests::animations::height_resize_animates_next_y stdout ---- niri> niri> thread 'tests::animations::height_resize_animates_next_y' panicked at src/tests/animations.rs:87:54: niri> called `Result::unwrap()` on an `Err` value: error creating EGL display niri> niri> Caused by: niri> Unable to obtain a valid EGL Display. niri> niri> niri> failures: niri> tests::animations::clientside_height_change_doesnt_animate niri> tests::animations::height_resize_animates_next_y niri> niri> test result: FAILED. 147 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.45s * flake: skip all animations tests, present and future Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com> * fixup: typo --------- 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-14niri.spec.rpkg: Add mesa-libEGL to build requirementsIvan Molodetskikh
Needed for the client-server animation tests. Signed-off-by: Ivan Molodetskikh <yalterz@gmail.com>
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-11Update dependenciesIvan 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