2452 Commits

Author SHA1 Message Date
Ivan Molodetskikh
0044578681 Fix new lifetime warnings 2025-08-11 09:39:28 +03:00
Ivan Molodetskikh
0c09f2529b Update dependencies 2025-08-11 09:12:42 +03:00
Ivan Molodetskikh
2fb993d221 Bump Smithay (xkbcommon wvkbd fix) 2025-08-11 09:07:13 +03:00
vanderlokken
67361f88fd Add the LoadConfigFile action (#2163)
* Add the `LoadConfigFile` action

* fixes

---------

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-09 12:20:08 +00:00
BB
f74d83dcca niri-config: add keep-max-bpc-unchanged option (#2195)
* 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-07 11:06:11 -07:00
Ivan Molodetskikh
055a94de3d Reload libinput settings when trackball, tablet and touch change
Somehow missed this before.
2025-08-07 17:15:30 +03:00
sodiboo
52c579d556 fix hot reloading /etc/niri/config.kdl (#1907)
* 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-05 06:27:28 -07:00
Ivan Molodetskikh
5edd91d37b pw_utils: Add Tracy span to queue_after_sync() 2025-08-04 16:01:11 +02:00
Ivan Molodetskikh
378a90e4b0 pw_utils: Set sequence in buffer meta header
Useful for debugging.
2025-08-04 16:01:11 +02:00
Ivan Molodetskikh
871cf4ba9a pw_utils: Remove commented-out unused buffer props 2025-08-04 16:01:11 +02:00
Ivan Molodetskikh
f49ecc31c4 pw_utils: Wait for frame completion before queueing
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-04 14:36:34 +02:00
Ivan Molodetskikh
15b4acc17e pw_utils: Fill dmabuf strides and offsets at add_buffer()
As far as I understand, these don't change.
2025-08-04 14:36:34 +02:00
Ivan Molodetskikh
43577f4d97 pw_utils: Store LoopHandle 2025-08-04 14:36:34 +02:00
Ivan Molodetskikh
8fba696d8e pw_utils: Switch to using raw pw_buffers
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-04 14:36:34 +02:00
Ivan Molodetskikh
2e3935d77d pw_utils: Extract shared state to CastInner 2025-08-04 14:36:34 +02:00
Ivan Molodetskikh
53b7c08363 pw_utils: Unmark CastState as pub 2025-08-04 14:36:34 +02:00
Ivan Molodetskikh
76c3bb20ba pw_utils: Add clarifying comments on maxsize and size 2025-08-04 14:36:34 +02:00
Ivan Molodetskikh
91b6a111cf Upgrade dependencies
Leave gtk-rs for now as it bumped MSRV to 1.83.
2025-07-31 19:39:12 +02:00
Ivan Molodetskikh
98a42c5557 Update Smithay (clipboard client exit nil fix, input region bottom-right fix) 2025-07-31 19:39:12 +02:00
Ivan Molodetskikh
e19e1f0f10 signals: Gate on target_os = "linux"
Hopefully fixes build on FreeBSD.
2025-07-31 14:57:46 +03:00
Ivan Molodetskikh
c0ddf3f9ff signals: Reduce fn visibility 2025-07-31 14:50:39 +03:00
Ivan Molodetskikh
4ac4cb4a44 xwayland: Make abstract socket optional and Linux-only
Hopefully fixes build on FreeBSD.
2025-07-31 14:35:35 +03:00
Ivan Molodetskikh
365274e5e2 default-config: Add a bind to toggle orca (screen reader)
Signed-off-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-07-31 13:02:54 +02:00
Ivan Molodetskikh
672bf3e1ff Implement org.fd.a11y KeyboardMonitor
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-31 13:02:54 +02:00
Ivan Molodetskikh
fefc0bc0a7 README: Link LWN article 2025-07-18 23:28:49 +03:00
zimward
0b1a6c76ec ci/alpine: switch to container to not rely on overloaded alpine gitlab 2025-07-18 12:10:47 -07:00
sodiboo
485e667fec block signals early: now handled correctly with tracy ondemand 2025-07-18 11:41:17 -07:00
sodiboo
8f442dee06 refactor signal handling, and clear sigmask before spawning 2025-07-18 11:41:17 -07:00
ジムワルド
9c09bc730f ci: add musl/alpine build (#2065)
* ci: add musl build

* Update .github/workflows/ci.yml

* Update .github/workflows/ci.yml

---------

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-07-17 20:05:36 +00:00
Ivan Molodetskikh
7b065f8618 wiki/Nvidia: Mention screencast flickering fix 2025-07-16 11:57:55 +03:00
hecate cantus
60fbcd2329 Add Nvidia.md leaf file, add links in sidebar & getting started (#2029)
* Add Nvidia.md leaf file, add links in sidebar & getting started

* squash review-commits from gh to one commit

* heap reuse ratio from 1 => 0 to match currently shipped solution

* Update wiki/Nvidia.md

---------

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-07-16 06:06:07 +00:00
Ivan Molodetskikh
5ac440a760 Mention localectl in the docs 2025-07-15 18:38:00 +03:00
Ivan Molodetskikh
0e3d078a85 Implement fetching xkb options from org.freedesktop.locale1 2025-07-15 18:19:11 +03:00
Bloxx12
36efd6e3f9 nix: update flake inputs 2025-07-15 15:55:45 +03:00
Bloxx12
30a9c6c31b nix: replace nix-filter with lib.fileset
Co-authored-by: sodiboo <git@sodi.boo>
2025-07-15 15:55:45 +03:00
Ivan Molodetskikh
bc0a06226a niri-session: Also unset DISPLAY
We set it now for xwayland-satellite integration.
2025-07-15 15:54:50 +03:00
sodiboo
ed799f5afc revert nushell completion for flake.nix 2025-07-15 14:32:45 +03:00
Ivan Molodetskikh
007d35541d README: Mention Contributing 2025-07-15 10:45:54 +03:00
Ivan Molodetskikh
e46a27351d README: Move Media higher up 2025-07-15 10:40:45 +03:00
Ivan Molodetskikh
56901eed5d Print when exiting by signal
Doesn't appear to work at the moment?
2025-07-14 14:58:27 +03:00
Ivan Molodetskikh
48fe08caf4 CONTRIBUTING.md: Mention testing in writing PRs 2025-07-14 14:57:44 +03:00
Horu
df00f0328e Register org.freedesktop.ScreenSaver at /ScreenSaver 2025-07-14 14:56:11 +03:00
Ivan Molodetskikh
d85eaf9799 Fix LockedHint locked condition 2025-07-14 14:39:57 +03:00
peelz
25cbb739ae Set logind LockedHint on lock/unlock (#1763)
* Set logind LockedHint on lock/unlock

* fixup! Set logind LockedHint on lock/unlock

- use warn!() instead of error!()
- extract dbus call into a separate method

* fixup! Set logind LockedHint on lock/unlock

- Update LockedHint in refresh_and_flush_clients

* fixup! Set logind LockedHint on lock/unlock

woops

* fixup! Set logind LockedHint on lock/unlock

- only call SetLockedHint if niri was run with `--session`

* fixes

---------

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-07-14 11:34:10 +00:00
Vladimir-csp
88339633b1 Detect external session management
This should make `uwsm start niri.desktop` possible like with other compositors.
2025-07-14 13:20:30 +03:00
sodiboo
22e43193e0 handle SIGINT, SIGTERM, SIGHUP 2025-07-14 13:16:10 +03:00
sodiboo
7a2379ad35 don't use smithay::reexports for calloop::EventLoop 2025-07-14 13:16:10 +03:00
Ivan Molodetskikh
fe2c2eec29 Add CONTRIBUTING.md 2025-07-14 12:04:36 +03:00
Artrix
746a7e81b7 Add nushell completion support (#2009)
* Add nushell completion support

Adds `clap_complete_nushell` crate and implements it into the `niri
completions` command.

* Add nushell to flake.nix autocompletions

* Convert to `TryFrom`

* Fix linting errors

* Move types down

---------

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-07-14 06:29:26 +00:00
abmantis
51b6a495c5 Simplify pointer handling in constraint check
Minor change so that `get_pointer()` (which has a lock) does not get
called twice. Also moved the call to `current_location()` to the scope
where it is needed.
2025-07-14 06:48:56 +03:00