Commit Graph

2315 Commits

Author SHA1 Message Date
Ivan Molodetskikh e1afa71238 ui/hotkey_overlay: Reorganize bind formatting logic a bit
Let the caller call tail functions.
2025-08-26 21:03:54 +03:00
Ivan Molodetskikh 9b622b1c8c wiki/Gestures: Mention 4-finger swipe to open/close the overview 2025-08-25 14:23:21 +03:00
HigherOrderLogic 8a2d408cb6 nix: add cargo-insta to devShells 2025-08-25 09:44:43 +03:00
Ivan Molodetskikh 8b73910a11 tty: Don't print successful max bpc/HDR
These are not really that useful
2025-08-24 16:06:06 +03:00
Michael Yang 969f382e3e feat: reset HDR connector properties 2025-08-24 16:06:06 +03:00
Ivan Molodetskikh 2865ec3e47 wiki/Design-Principles: Clarify sentence 2025-08-22 19:11:26 +03:00
Ivan Molodetskikh b3c7737998 wiki: Rearrange and expand design principles 2025-08-22 19:07:25 +03:00
Ivan Molodetskikh 58290516c7 wiki/Animation-Timing: Add two nbsps
The 170 Hz one was at the exact breaking point for me.
2025-08-22 17:41:52 +03:00
Ivan Molodetskikh 210d5e90fe exit_confirm_dialog: Add open/close animation 2025-08-22 08:57:08 +03:00
Ivan Molodetskikh 9d3beb4931 exit_confirm_dialog: Add backdrop
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-22 08:54:28 +03:00
Ivan Molodetskikh 7aba44a019 exit_confirm_dialog: Return ArrayVec and add render elements 2025-08-22 08:51:33 +03:00
Ivan Molodetskikh d662811bf6 Unfocus layout when exit confirm dialog is open
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-21 12:26:32 +03:00
Ivan Molodetskikh 05337ce855 wiki/Application-Issues: Mention Waybar black corners 2025-08-21 10:28:44 +03:00
Ivan Molodetskikh c9e85a0fe2 Simplify/deduplicate hot corner computation 2025-08-21 09:15:49 +03:00
Ivan Molodetskikh 0a8b4e036d Move fallibility inside ExitConfirmDialog
Makes it less annoying on the outside.
2025-08-21 09:07:16 +03:00
Ivan Molodetskikh 70f9ac4af8 Allow clippy::new_without_default
It's more annoying than useful
2025-08-21 09:07:16 +03:00
Ivan Molodetskikh 34b05e8671 Rename spawn-at-startup-sh => spawn-sh-at-startup
Makes a bit more sense
2025-08-20 15:10:05 +03:00
Ivan Molodetskikh d4e1b2231b default-config: Mark orca as allow-when-locked
Consistent with GNOME. Move down so allow-when-locked explanation is above.
2025-08-20 14:48:54 +03:00
Ivan Molodetskikh e81f356908 Add spawn-sh, spawn-at-startup-sh
Our top 10 most confusing config moments
2025-08-20 14:43:50 +03:00
Ivan Molodetskikh 1013147ba3 CI: Move feature combinations off the docs critical path
Make docs deploy faster. Also don't build --release separately, it's covered by
the randomized-tests job.
2025-08-19 19:31:03 +03:00
Ivan Molodetskikh 38f388565f Update dependencies 2025-08-19 19:17:54 +03:00
Ivan Molodetskikh f9ea905987 Update Smithay and fix two unused upscale() calls
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-19 19:08:53 +03:00
Ivan Molodetskikh 7a8355bb4d README: Link awesome-niri 2025-08-19 10:40:52 +03:00
Ivan Molodetskikh 781edba45f wiki/Getting-Started: Mention DEs and shells 2025-08-19 10:40:52 +03:00
Kent Daleng 6d62c26a0f configure section permalinks 2025-08-19 10:20:01 +03:00
Bernardo Kuri 5ea9092a49 Add per-axis scroll speed config for input devices (#2109)
* 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-19 05:51:32 +00:00
Ivan Molodetskikh 43a2648e57 wiki/FAQ: Add spaces for search to work
"pinned" doesn't find anything otherwise
2025-08-18 20:45:38 +03:00
Ivan Molodetskikh ba129e98e3 wiki/FAQ: Mention Bitwarden 2025-08-18 20:26:07 +03:00
Ivan Molodetskikh b9b4f31b6f Update all remaining links to the new wiki 2025-08-18 20:09:30 +03:00
Ivan Molodetskikh 5f3528a2ee wiki/FAQ: Mention always on top windows 2025-08-18 20:05:27 +03:00
Ivan Molodetskikh a5777b9473 wiki/Application-Issues: Mention Zen dmabuf screencasting 2025-08-18 20:01:55 +03:00
Ivan Molodetskikh 6dc4f6a622 wiki: Improve home page 2025-08-18 09:53:42 +03:00
Ivan Molodetskikh 85d42db05d wiki/FAQ: Mention blur 2025-08-18 09:49:00 +03:00
Kent Daleng d6db202a03 wiki/docs: rename index.md to README.md 2025-08-18 09:42:27 +03:00
Ivan Molodetskikh 3a85e77518 wiki: Minor logo update 2025-08-17 23:00:38 +03:00
Kent Daleng e0bf056ba3 docs: location-agnostic index page (#2256)
* 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-17 19:41:17 +00:00
Kent Daleng 39bdfece9a readme: use links to docs instead of gh wiki
(i'm obsessed with making pull requests right in the browser)
2025-08-17 22:35:47 +03:00
Ivan Molodetskikh 26a6e0cd98 ci: Add some blank lines 2025-08-17 18:10:41 +03:00
Ivan Molodetskikh b12a56e4e6 rpkg: Fix wiki path 2025-08-17 18:09:33 +03:00
Ivan Molodetskikh f6e1b3133e ci: Add missing perm 2025-08-17 17:19:05 +03:00
Kent Daleng dc93f1c1fd github wiki replacement / mkdocs-docs (#2147)
* 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-17 17:05:41 +03:00
Ivan Molodetskikh a6febb86aa tty: Remove warning when rendering with inactive device 2025-08-17 11:29:33 +03:00
Matej Cotman 3b76cb7b3d Add FreeBSD CI (#2072)
* 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-17 11:12:47 +03:00
Horu 271534e115 Add ConfigLoaded event to IPC, option to disable built-in notification (#1829)
* 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-17 09:28:24 +03:00
yrkv af30cc8df6 niri-ipc: Add window positions and sizes (#1265)
* 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-16 11:42:08 +03:00
Ivan Molodetskikh a003e01307 README: Link Discord 2025-08-16 09:09:44 +03:00
Cole Helbling 38df8d4f33 flake: skip tests that require a valid EGL display (#2244)
* 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-16 06:08:58 +00:00
Ivan Molodetskikh 6d0505e684 watcher: Refactor tests to not use threads
Fixes flakiness, removes unnecessary waiting.
2025-08-15 08:09:25 +03:00
Ivan Molodetskikh 8b4517a87b watcher: Mark tests as ignored
Until someone figures out how to fix the flakiness. See
https://github.com/YaLTeR/niri/issues/2226
2025-08-14 21:38:45 +03:00
Ivan Molodetskikh c7a8c44a0d niri.spec.rpkg: Add mesa-libEGL to build requirements
Needed for the client-server animation tests.

Signed-off-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-14 20:29:27 +03:00