Commit graph

2592 commits

Author SHA1 Message Date
Ivan Molodetskikh
19e55a2df0 Don't override IME grab with popup keyboard grab
Some checks failed
CI / freebsd (push) Has been cancelled
CI / test (push) Has been cancelled
CI / check feature combinations (push) Has been cancelled
CI / alpine musl (push) Has been cancelled
CI / randomized and slow tests (push) Has been cancelled
CI / visual tests (push) Has been cancelled
CI / msrv (push) Has been cancelled
CI / clippy (push) Has been cancelled
CI / rustfmt (push) Has been cancelled
CI / fedora (push) Has been cancelled
CI / nix (push) Has been cancelled
CI / publish-wiki (push) Has been cancelled
CI / publish-docs (push) Has been cancelled
Fixes menu in Telegram. Some weird behavior is still possible e.g. with
gtk4-widget-factory and dropdowns on entries, but things seem to be
slightly less broken this way.
2025-12-20 14:11:02 +03:00
Ivan Molodetskikh
6472209b45 Comment out spammy trace!() 2025-12-20 14:08:48 +03:00
Ivan Molodetskikh
d9ceff7c70 Remove IME grab check, fix GTK 4 popups with IME
The wording in the deleted comment still stands: Smithay doesn't handle
overlapping grabs. However, in this case things appear to more or less
work themselves out. IME seems to re-request its grab every time an
input field is focused, replacing the popup keyboard grab. And the popup
keyboard grab doesn't seem to mind being replaced this way.
2025-12-20 13:46:59 +03:00
Ivan Molodetskikh
813c5ee05f Warp pointer across the screen during spatial movement grabs 2025-12-20 10:50:07 +03:00
Ivan Molodetskikh
47e217c00e Use relative motion in move and spatial movement grab
Will be used for pointer warping.
2025-12-20 10:49:06 +03:00
Ivan Molodetskikh
9b52465e42 layout: Synchronize unfullscreen view movement anim to resize
Before this commit, maximize/fullscreen was synchronized, but
unmaximize/unfullscreen wasn't.
2025-12-20 09:08:17 +03:00
Ivan Molodetskikh
7d60231e35 wiki: Clarify that environment isn't imported to systemd 2025-12-20 08:33:02 +03:00
John Rinehart
7a237e519c
Implement include optional=true (#3022)
* feat(niri): support `include optional=true "filename.kdl"`

* chore: warn if optional include ENOENT

* chore: validate include directive arguments and properties

Add proper validation to reject:
- Extra arguments beyond the path
- Unknown properties (other than "optional")
- Unexpected child nodes

* docs: implement suggested typographical/prose changes

* fixes

---------

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-12-20 05:04:18 +00:00
Ivan Molodetskikh
c4462d0c7f layout/scrolling: Fix add_column() skipping activate_column() sometimes
Some checks failed
CI / check feature combinations (push) Has been cancelled
CI / alpine musl (push) Has been cancelled
CI / visual tests (push) Has been cancelled
CI / msrv (push) Has been cancelled
CI / clippy (push) Has been cancelled
CI / rustfmt (push) Has been cancelled
CI / fedora (push) Has been cancelled
CI / freebsd (push) Has been cancelled
CI / test (push) Has been cancelled
CI / randomized and slow tests (push) Has been cancelled
CI / nix (push) Has been cancelled
CI / publish-wiki (push) Has been cancelled
CI / publish-docs (push) Has been cancelled
When the column was added immediately to the left of the current column
and activated, the new idx would be equal to active_column_idx, which
would skip activate_column() with its variable resets.
2025-12-18 22:19:03 +03:00
Ivan Molodetskikh
f85cb5c5f9 dependabot: Add cooldown
Some checks are pending
CI / msrv (push) Waiting to run
CI / clippy (push) Waiting to run
CI / randomized and slow tests (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / test (push) Waiting to run
CI / check feature combinations (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / fedora (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
2025-12-18 13:39:30 +03:00
Ivan Molodetskikh
7ca46b44b2 Update Smithay (DnD rework, primary GPU improvement) 2025-12-18 13:17:35 +03:00
Ivan Molodetskikh
f913219f94 Use is_none_or() 2025-12-18 11:54:07 +03:00
Ivan Molodetskikh
80469abc20 Bump MSRV to 1.85, upgrade deps 2025-12-18 11:54:07 +03:00
Kirill Chibisov
890935d2ba
Use Grabbing cursor for Mod+LMB interactive move (#3045)
* Use Grabbing cursors for interactive move

There was no real indication that something can be dragged and thus
it's generally harder to discover for someone not familiar with Mod+LMB
to start dragging window around.

* fixes

---------

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-12-18 08:07:24 +03:00
Ivan Molodetskikh
d2fa1f54d4 Add force-disable-connectors-on-resume debug flag 2025-12-18 07:39:44 +03:00
Ivan Molodetskikh
2641356d41 mru: Don't handle pointer input until visible
Some checks failed
CI / test (push) Has been cancelled
CI / check feature combinations (push) Has been cancelled
CI / alpine musl (push) Has been cancelled
CI / randomized and slow tests (push) Has been cancelled
CI / visual tests (push) Has been cancelled
CI / msrv (push) Has been cancelled
CI / clippy (push) Has been cancelled
CI / rustfmt (push) Has been cancelled
CI / fedora (push) Has been cancelled
CI / freebsd (push) Has been cancelled
CI / nix (push) Has been cancelled
CI / publish-wiki (push) Has been cancelled
CI / publish-docs (push) Has been cancelled
2025-12-16 08:05:51 +03:00
Ivan Molodetskikh
7c0898570c Remove url dependency
Some checks failed
CI / test (push) Has been cancelled
CI / check feature combinations (push) Has been cancelled
CI / alpine musl (push) Has been cancelled
CI / randomized and slow tests (push) Has been cancelled
CI / visual tests (push) Has been cancelled
CI / msrv (push) Has been cancelled
CI / clippy (push) Has been cancelled
CI / rustfmt (push) Has been cancelled
CI / fedora (push) Has been cancelled
CI / freebsd (push) Has been cancelled
CI / nix (push) Has been cancelled
CI / publish-wiki (push) Has been cancelled
CI / publish-docs (push) Has been cancelled
Just use the glib function.

Turns out url comes with a huge dep tree. Well, I guess back when I
wrote this, we didn't have glib in our deps, but we had for a long time.
2025-12-14 07:50:00 +03:00
Ivan Molodetskikh
d1fc1ab731 CI/freebsd: Fix PW patch application
Some checks are pending
CI / test (push) Waiting to run
CI / check feature combinations (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / randomized and slow tests (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / msrv (push) Waiting to run
CI / clippy (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / fedora (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
2025-12-13 14:39:57 +03:00
Ivan Molodetskikh
d9a9e6ddc4 CI: Remove Rust install from FreeBSD action
We don't need it since we removed the cache.
2025-12-13 14:27:21 +03:00
Ivan Molodetskikh
0cb20b55b8 CI: Update FreeBSD to 15.0 2025-12-13 14:26:17 +03:00
Ivan Molodetskikh
3d2d7b95d9 CI: Re-enable FreeBSD 2025-12-13 14:23:32 +03:00
Ivan Molodetskikh
c22d8358c2 wiki/packaging: Mention recommended deps
Some checks failed
CI / test (push) Has been cancelled
CI / check feature combinations (push) Has been cancelled
CI / alpine musl (push) Has been cancelled
CI / randomized and slow tests (push) Has been cancelled
CI / visual tests (push) Has been cancelled
CI / msrv (push) Has been cancelled
CI / clippy (push) Has been cancelled
CI / rustfmt (push) Has been cancelled
CI / fedora (push) Has been cancelled
CI / freebsd (push) Has been cancelled
CI / nix (push) Has been cancelled
CI / publish-wiki (push) Has been cancelled
CI / publish-docs (push) Has been cancelled
2025-12-12 10:26:13 +03:00
Ivan Molodetskikh
4d058e6111 rpkg: Add explicit libwayland-server dependency
Some checks failed
CI / test (push) Has been cancelled
CI / check feature combinations (push) Has been cancelled
CI / alpine musl (push) Has been cancelled
CI / randomized and slow tests (push) Has been cancelled
CI / visual tests (push) Has been cancelled
CI / msrv (push) Has been cancelled
CI / clippy (push) Has been cancelled
CI / rustfmt (push) Has been cancelled
CI / fedora (push) Has been cancelled
CI / freebsd (push) Has been cancelled
CI / nix (push) Has been cancelled
CI / publish-wiki (push) Has been cancelled
CI / publish-docs (push) Has been cancelled
2025-12-09 22:02:36 +03:00
DerRockWolf
83a733e085 Update issue template to put niri config into <details> block
Some checks are pending
CI / test (push) Waiting to run
CI / check feature combinations (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / randomized and slow tests (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / msrv (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / clippy (push) Waiting to run
CI / fedora (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-docs (push) Blocked by required conditions
CI / publish-wiki (push) Blocked by required conditions
This makes issues much more readable and prevents readers from needing to scroll all the way past the config.
2025-12-09 07:55:53 +03:00
Ivan Molodetskikh
ba29735fbb contributing: Add a section on how to get PR reviewed more quickly
Some checks failed
CI / freebsd (push) Has been cancelled
CI / nix (push) Has been cancelled
CI / test (push) Has been cancelled
CI / check feature combinations (push) Has been cancelled
CI / alpine musl (push) Has been cancelled
CI / randomized and slow tests (push) Has been cancelled
CI / visual tests (push) Has been cancelled
CI / msrv (push) Has been cancelled
CI / clippy (push) Has been cancelled
CI / rustfmt (push) Has been cancelled
CI / fedora (push) Has been cancelled
CI / publish-wiki (push) Has been cancelled
CI / publish-docs (push) Has been cancelled
2025-12-05 23:21:54 +03:00
Ivan Molodetskikh
6fc092cc4f contributing: Add a section on AI contributions 2025-12-05 23:21:47 +03:00
Robert Gu
f874b2fce5
Update Integrating-niri.md on multi-file configs (#2943)
Some checks failed
CI / randomized and slow tests (push) Has been cancelled
CI / msrv (push) Has been cancelled
CI / clippy (push) Has been cancelled
CI / fedora (push) Has been cancelled
CI / freebsd (push) Has been cancelled
CI / nix (push) Has been cancelled
CI / test (push) Has been cancelled
CI / check feature combinations (push) Has been cancelled
CI / alpine musl (push) Has been cancelled
CI / visual tests (push) Has been cancelled
CI / rustfmt (push) Has been cancelled
CI / publish-wiki (push) Has been cancelled
CI / publish-docs (push) Has been cancelled
* Update Integrating-niri.md on multi-file configs

* Apply suggestion from @YaLTeR

---------

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-12-02 15:23:01 +03:00
Semper_
311ca6b5da
Docs: add a few notes and warnings (#2925)
Some checks failed
CI / randomized and slow tests (push) Has been cancelled
CI / test (push) Has been cancelled
CI / check feature combinations (push) Has been cancelled
CI / alpine musl (push) Has been cancelled
CI / visual tests (push) Has been cancelled
CI / msrv (push) Has been cancelled
CI / clippy (push) Has been cancelled
CI / rustfmt (push) Has been cancelled
CI / fedora (push) Has been cancelled
CI / freebsd (push) Has been cancelled
CI / nix (push) Has been cancelled
CI / publish-wiki (push) Has been cancelled
CI / publish-docs (push) Has been cancelled
* update docs.

* Update Xwayland.md.

* Apply suggestion from @YaLTeR

---------

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-11-30 09:51:13 +03:00
Ivan Molodetskikh
b35bcae35b Fix typos in comments
Some checks are pending
CI / randomized and slow tests (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / test (push) Waiting to run
CI / check feature combinations (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / msrv (push) Waiting to run
CI / clippy (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / fedora (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
2025-11-29 10:05:44 +03:00
Ivan Molodetskikh
284c2331a2 wiki: Improve wording 2025-11-29 09:58:32 +03:00
Ivan Molodetskikh
ed266cc77c Bump version to 25.11 2025-11-29 09:36:02 +03:00
Mark Stosberg
0652342df8
docs: document valid options of default-column-display (#2908)
Some checks are pending
CI / msrv (push) Waiting to run
CI / test (push) Waiting to run
CI / check feature combinations (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / randomized and slow tests (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / clippy (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / fedora (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
* docs: document valid options ofr default-column-display

* Apply suggestion from @YaLTeR

---------

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-11-28 08:08:46 +03:00
Ivan Molodetskikh
e863f52fea Raise nofile rlimit on powerset tests
Some checks are pending
CI / freebsd (push) Waiting to run
CI / test (push) Waiting to run
CI / check feature combinations (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / randomized and slow tests (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / msrv (push) Waiting to run
CI / clippy (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / fedora (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
Hopefully this helps.
2025-11-27 18:48:38 +03:00
yuxqiu
8370c539fb tty: Handle multiple primary nodes having the same render node
Some checks are pending
CI / test (push) Waiting to run
CI / check feature combinations (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / randomized and slow tests (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / msrv (push) Waiting to run
CI / clippy (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / fedora (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
2025-11-26 15:41:46 +03:00
Ivan Molodetskikh
cbd0dfa280 wiki: Add Ubuntu to Quick start
Some checks are pending
CI / test (push) Waiting to run
CI / check feature combinations (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / randomized and slow tests (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / msrv (push) Waiting to run
CI / clippy (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / fedora (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
2025-11-26 13:24:43 +03:00
Ivan Molodetskikh
54c7fdcd1a Update tracy-client
Some checks are pending
CI / test (push) Waiting to run
CI / check feature combinations (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / randomized and slow tests (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / msrv (push) Waiting to run
CI / clippy (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / fedora (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
2025-11-25 08:00:29 +03:00
Ivan Molodetskikh
45b45ac29d layout/tests: Amend check for window-rule tests
Some checks are pending
CI / msrv (push) Waiting to run
CI / test (push) Waiting to run
CI / check feature combinations (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / randomized and slow tests (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / clippy (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / fedora (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
This check doesn't handle tabbed columns properly (it should find and
take the fixed height tile's height); for now just gate it on is_tabbed.
2025-11-24 16:17:12 +03:00
Ivan Molodetskikh
9eeedff629 Remove hand-written ResolvedWindowRules::empty()
It was only needed to be const fn.
2025-11-24 15:19:13 +03:00
Ivan Molodetskikh
0920ea9f9f layout: Round focus ring/border width to physical at the right place
Before this, focus ring/border width was incorrectly rounded only for
layout config, which does not take into account window rules overrides.
This means that setting width in window rules prevented correct rounding
altogether.

Tests didn't check this because window rules weren't tested. This commit
also adds basic window rules random generation, making the tests catch
this problem too.
2025-11-24 15:11:51 +03:00
Ivan Molodetskikh
79e41d7d88 CI: Temporarily disable FreeBSD
Some checks are pending
CI / randomized and slow tests (push) Waiting to run
CI / test (push) Waiting to run
CI / check feature combinations (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / msrv (push) Waiting to run
CI / clippy (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / fedora (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
2025-11-24 09:04:16 +03:00
Ivan Molodetskikh
d74debda13 Add debounce-ms recent-windows setting 2025-11-24 08:52:13 +03:00
Ivan Molodetskikh
642277f881 Upgrade to new stable pipewire-rs 2025-11-24 08:06:56 +03:00
Ivan Molodetskikh
c558516d4c wiki: Add alacritty to Arch quickstart
Some checks are pending
CI / test (push) Waiting to run
CI / check feature combinations (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / randomized and slow tests (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / msrv (push) Waiting to run
CI / clippy (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / fedora (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
Just in case; it's bound by default after all.
2025-11-23 21:42:13 +03:00
Ivan Molodetskikh
efbe29f3fa wiki/FAQ: Mention Firefox 1 px border
Some checks are pending
CI / check feature combinations (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / test (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / randomized and slow tests (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / msrv (push) Waiting to run
CI / clippy (push) Waiting to run
CI / fedora (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
2025-11-23 11:39:45 +03:00
Ivan Molodetskikh
42922097a8 wiki: Mention GTK dead keys / Compose 2025-11-23 11:36:35 +03:00
Ivan Molodetskikh
cfc01b895c Add hack to make Orca + Shift + A work better
Some checks are pending
CI / check feature combinations (push) Waiting to run
CI / test (push) Waiting to run
CI / alpine musl (push) Waiting to run
CI / randomized and slow tests (push) Waiting to run
CI / visual tests (push) Waiting to run
CI / msrv (push) Waiting to run
CI / clippy (push) Waiting to run
CI / rustfmt (push) Waiting to run
CI / fedora (push) Waiting to run
CI / freebsd (push) Waiting to run
CI / nix (push) Waiting to run
CI / publish-wiki (push) Blocked by required conditions
CI / publish-docs (push) Blocked by required conditions
2025-11-22 11:15:35 +03:00
Ivan Molodetskikh
4e609f9319 Silence unused warning when feature is disabled 2025-11-22 10:47:59 +03:00
Ivan Molodetskikh
87aacdbca7 wiki/accessibility: Mention Alt-Tab 2025-11-22 10:45:17 +03:00
Ivan Molodetskikh
a977bb7feb wiki: Fix screen reader breaking on keyboard shortcuts 2025-11-22 10:44:20 +03:00
Ivan Molodetskikh
f46338c18b Handle modifiers even when consumed by a11y
This is apparently required: Orca expects us to keep track of modifiers
sent in KeyboardMonitor even during an Orca modifier key combo.
2025-11-22 10:17:37 +03:00