Ivan Molodetskikh
9261fd6342
layout/tests: Add test for second workspace y = 0
2026-01-25 18:28:35 +08:00
SAKURA
fb2f66f361
layout/monitor: round workspace render geo to physical pixels
2026-01-25 18:28:35 +08:00
dependabot[bot]
e2e15b7a18
build(deps): bump zbus in the rust-dependencies group
...
Bumps the rust-dependencies group with 1 update: [zbus](https://github.com/z-galaxy/zbus ).
Updates `zbus` from 5.13.0 to 5.13.1
- [Release notes](https://github.com/z-galaxy/zbus/releases )
- [Changelog](https://github.com/z-galaxy/zbus/blob/main/release-plz.toml )
- [Commits](https://github.com/z-galaxy/zbus/compare/zbus-5.13.0...zbus-5.13.1 )
---
updated-dependencies:
- dependency-name: zbus
dependency-version: 5.13.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-25 18:23:49 +08:00
Xarth
0a416eedda
docs: Update Arch Linux installation instructions
...
Removed 'wl-clipboard' and 'cliphist' from the installation command for Arch Linux. Because dms doesn't request that now.
2026-01-25 18:22:38 +08:00
Ivan Molodetskikh
d7184a04b9
render_helpers: Add Smithay Tracy GPU spans
2026-01-17 22:31:05 +03:00
Ivan Molodetskikh
bdf394260a
render_helpers: Add Tracy spans to draw() calls
2026-01-17 22:30:32 +03:00
Ivan Molodetskikh
74d14be01f
Update Smithay (virtual keyboard, layer-shell geometry, GPU profiling)
...
Also includes the necessary code to handle the virtual keyboard
compositor-side. Similar to the virtual pointer, we have an InputDevice
impl that allows reusing the logic from process_input_event().
Co-authored-by: wxt <3264117476@qq.com >
2026-01-17 22:29:10 +03:00
Ivan Molodetskikh
3ccb06f564
Fix panic in screencopy manager destroyed()
2026-01-17 15:32:20 +03:00
Ivan Molodetskikh
d9e755d575
screencasting: Only render pointer when it's within output
2026-01-17 13:59:23 +03:00
Ivan Molodetskikh
87e2dd0361
Revert "Move set_dynamic_cast_target() stub closer to the other ones"
...
This reverts commit dd93c39ed0 .
Why did I do this, that function is on a different type
2026-01-15 17:29:37 +03:00
Ivan Molodetskikh
dd93c39ed0
Move set_dynamic_cast_target() stub closer to the other ones
2026-01-15 13:14:23 +03:00
Ivan Molodetskikh
849788bb28
Add niri msg stop-cast --session-id
2026-01-15 13:13:50 +03:00
Ivan Molodetskikh
9015ff8e36
ipc: Add pw_node_id to PipeWire Casts
2026-01-15 08:42:25 +03:00
Ivan Molodetskikh
e546b339a3
ipc: Add PID to screencopy Casts
2026-01-15 08:42:25 +03:00
Ivan Molodetskikh
b39edf405a
screencopy: Add timeout to casts considered stopped
...
Otherwise xdp-wlr never stops the cast after it first starts.
2026-01-15 08:42:25 +03:00
Ivan Molodetskikh
b98f4906da
ipc: Add CastKind
2026-01-15 08:42:25 +03:00
Ivan Molodetskikh
e82830c68c
ipc: Add screencopy cast tracking
...
Track wlr-screencopy sessions that use with_damage as screencasts. These
are used by tools like wl-screenrec for continuous recording.
2026-01-15 08:42:25 +03:00
Ivan Molodetskikh
238caaf8da
ipc: Add screencast request and events for PipeWire casts
...
Allows desktop bars to show when screen recording is active.
2026-01-15 08:42:25 +03:00
Ivan Molodetskikh
9c79108afa
Refactor wlr-screencopy state cleanup
...
Before we cleaned up when binding a new manager, meaning that after a
screencopy client exited, the queue kept existing until a new one is
bound. We'll need precise tracking for the screencast IPC, so this
commit refactors to do just that: clean up the queue immediately when
all referring objects no longer exist.
This commit also fixes an issue where destroyed frames (e.g. from a
killed client) didn't clean the corresponding screencopy objects,
leading them to exist forever.
2026-01-13 23:01:21 +03:00
Ivan Molodetskikh
2571242887
screencopy: Pop first screencopy instead of last
...
This was never found probably because no client submits multiple frames
at once.
2026-01-13 23:00:38 +03:00
Ivan Molodetskikh
6f92b3296a
Store output name in CastTarget
...
Will be useful in the next commit to avoid fetching it every time.
2026-01-13 21:31:51 +03:00
Ivan Molodetskikh
570ea119ba
Extract cast session/stream ID counters to global scope
...
Add CastSessionId and CastStreamId newtypes. This lifts the atomic
counters from the D-Bus mutter_screen_cast module to a shared location,
preparing for adding screencopy cast tracking which will need the same
ID types.
2026-01-13 21:31:51 +03:00
Ivan Molodetskikh
df4614e62c
screencasting: Use spans to reduce logging boilerplate
2026-01-12 21:33:29 +03:00
Ivan Molodetskikh
3672e79369
Delay starting dynamic casts until there's a target
...
This avoids a weird 1x1 stream as well as one renegotiation which is a
complex operation, and some clients apparently have a problem with it.
2026-01-12 08:45:03 +03:00
Ivan Molodetskikh
2d16abdaae
Move dynamic_target set outside pw_utils
2026-01-12 08:37:58 +03:00
Ivan Molodetskikh
ff081acddc
screencasting: Extract some logic into functions
2026-01-12 08:37:58 +03:00
Ivan Molodetskikh
afe27a143b
Move xdp-gnome-screencast code into separate module
2026-01-12 07:59:56 +03:00
Ivan Molodetskikh
fd2916eb72
Honor pointer visibility in screencasts
...
Regressed in 05599ce2c4 .
2026-01-12 07:11:56 +03:00
Janis
e9d888cd52
Set NIRI_BUILD_COMMIT in flake.nix ( #3235 )
2026-01-11 19:59:43 +03:00
abmantis
05599ce2c4
Implement cursor metadata in window screencast
...
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2026-01-11 06:51:14 -08:00
Ivan Molodetskikh
0fb6c5706b
Extract pointer_pos_for_window_cast()
...
Will be used for window screencasts too.
2026-01-11 06:51:14 -08:00
Ivan Molodetskikh
79aaa4c6c0
Upgrade dependencies
2026-01-11 15:37:00 +03:00
Ivan Molodetskikh
7e559dc468
Use unadjusted clock for config notification shown duration
...
It shouldn't be affected by anim slowdown (or, more importantly,
speedup).
2026-01-11 15:08:58 +03:00
Ivan Molodetskikh
45fc763281
Update Insta snapshots for new Insta version
...
No functional changes intended.
2026-01-10 15:45:47 +03:00
Ivan Molodetskikh
39d3cd2415
Add a push version of render()
...
Will be useful for screencasting.
2026-01-10 15:32:21 +03:00
Ivan Molodetskikh
19b1074a8b
Fix root surface tracking for sync subsurfaces
...
In particular, fixes screenshot-window with show-pointer on foot CSD.
2026-01-10 15:32:21 +03:00
Ivan Molodetskikh
539a5a8030
Fix tablet cursor for screenshot-window with pointer
2026-01-10 15:32:21 +03:00
Ivan Molodetskikh
53b7477d20
render_helpers: Fix encompassing_geo() argument type
2026-01-10 15:32:21 +03:00
Ivan Molodetskikh
c34f7b18ec
pick_color_grab: Remove unnecessary Vec allocation
2026-01-10 15:32:21 +03:00
Anton Kesy
a6baef7b68
Fix typo
2026-01-10 04:30:42 -08:00
Manuel Romei
10df9f4717
fix(pw_utils): prevent write-after-free by reordering Cast struct fields
...
The Cast struct fields were ordered such that `stream` was dropped before
`_listener`. In Rust, struct fields are dropped in declaration order.
Because `StreamListener` attempts to unregister itself from the stream on
drop, and `StreamRc` destroys the underlying PipeWire stream on drop, the
previous order caused `_listener` to access the stream after it had
already been freed.
This reorders the fields so `_listener` is declared before `stream`,
ensuring the listener unregisters itself while the stream is still valid.
* Apply suggestion from @YaLTeR
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2026-01-07 13:32:06 +00:00
Ivan Molodetskikh
9f8eadc5bc
Add screenshot-window show-pointer=true
2026-01-07 07:53:05 +03:00
Ivan Molodetskikh
a496307daf
Move pointer visibility check outside render_pointer()
2026-01-07 07:53:05 +03:00
Ivan Molodetskikh
bc7bb51b6f
Fix Tracy span name
2026-01-07 07:53:05 +03:00
Ivan Molodetskikh
b7eb8a635b
default-config: Bind Mod+M to maximize-window-to-edges
2026-01-05 10:28:18 +03:00
Ivan Molodetskikh
d060b06667
Replace TODO with FIXME
...
We use TODO for things to be fixed before committing.
2026-01-05 08:29:05 +03:00
Ivan Molodetskikh
54c2e2ab47
utils/spawning: Remove unnecessary cfgs
...
Forgotten when this was refactored.
2026-01-04 15:43:42 +03:00
Ivan Molodetskikh
df3f3979e9
layout/scrolling: Preserve gesture anim in dnd_scroll_gesture_end()
...
Fixes interactive move unmaximize/unfullscreen into floating skipping
the view offset anim.
2026-01-04 15:43:42 +03:00
Vishal
6215b5f0b1
doc: link DMS compositor setup in Quick Start ( #3179 )
...
* doc: add `dms setup` command in Getting Started section along with clarification
* mention DMS setup page
* Update docs/wiki/Getting-Started.md
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2026-01-04 15:04:22 +03:00
Mark Karlinsky
3bfa4a71ff
Improve dinit service files ( #3193 )
...
* Improve dinit service files and niri-session
Two main changes were made:
- After a discussion in davmac314/dinit#496 , 2 dinit services are now
provided. The first one is 'niri', which runs niri itself, and the
second one is 'niri.target' which brings up all the dependences from
user configuration.
- Made the behaviour of 'niri-session' when running under dinit closer
to the behaviour when running under systemd. In particular, now the
script wait for service completion, because some login managers shut
the session down the moment the startup script completes.
* Update paths in docs
2026-01-04 10:04:03 +03:00