nnyyxxxx
7210045b2a
feat: support color picker functionality
...
chore: format code
refactor: improve quality
feat: implement gnomes PickColor method
refactor: minor code extraction
misc: fix reviews
fixes
2025-03-22 23:14:51 -07:00
Florian Finkernagel
7f72c358d5
Add option to warp-mouse-to-focus to always center
2025-03-22 01:00:43 -07:00
peelz
c3609efb7a
Add mod-key and mod-key-nested settings
2025-03-22 00:03:33 -07:00
Cole Leavitt
5b6b6a5fe1
Add wait-for-frame-completion-in-pipewire debug flag for NVIDIA screencasts
2025-03-17 12:03:43 -07:00
Ivan Molodetskikh
287480b541
Keep buffer size when switching dynamic cast to Nothing
...
Otherwise, we won't actually clear it because it'll become Pending.
2025-03-16 08:32:45 +03:00
Ivan Molodetskikh
31891e6642
Implement dynamic screencast target
2025-03-15 09:55:46 -07:00
Ivan Molodetskikh
9e560e7e60
Move CastTarget to src/niri.rs
2025-03-15 11:22:30 +03:00
Ivan Molodetskikh
cee2ec7ab7
Use windows() instead of with_windows()
2025-03-15 11:18:54 +03:00
Ivan Molodetskikh
8c4ebb00a1
Store cast Stream ID, use it for Redraw request
...
Unlike StopCast, Redraw targets a specific Cast. Use the stream ID to
identify it.
2025-03-15 10:23:00 +03:00
Ivan Molodetskikh
ee0e2c7f1b
Try default when configured xkb keymap fails to compile
...
Fixes panic at startup.
2025-03-13 21:39:07 +03:00
Ivan Molodetskikh
4f16be9e4d
Wait for lock surfaces before locking
...
Fixes the red flash when locking.
2025-03-13 19:09:32 +03:00
Ivan Molodetskikh
1c6037e612
Add tiled-state window rule, update the tiled state live
2025-03-13 14:14:54 +03:00
Toby Bridle
47dd338340
feat: 🎉 add show-pointer for Screenshot and ScreenshotScreen
2025-03-10 22:31:50 -07:00
Ivan Molodetskikh
b351f6ff22
Keep track of RenderElementStates in offscreens
...
This both avoids sending frame callbacks to surfaces invisible on the offscreen
(fixing Firefox with subsurface compositing in the process), and fixes
searching for split popups during the resize animation.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh
12817a682d
Store offscreen element id on Mapped instead of user data
...
We don't need user data for this.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh
1c521e4831
Update Smithay (Framebuffer type)
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh
70dcd229cf
Extract encompassing_geo()
2025-02-27 10:38:36 +03:00
bbb651 🇮🇱
16405b9b2b
Implement niri msg pick-window
...
* feat: `niri msg pick-window`
* fixes
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2025-02-26 15:22:27 +03:00
Ivan Molodetskikh
d27d6a504d
Make idle notify lazy
2025-02-17 09:09:59 +03:00
Ivan Molodetskikh
ec5144feca
Make pointer inactivity timer reset lazy
2025-02-17 09:04:07 +03:00
Ivan Molodetskikh
7816f20e6a
Implement ext-data-control
2025-02-14 09:03:20 +03:00
Ivan Molodetskikh
0d3610416c
Update Smithay (idle-notify 2)
2025-02-14 09:03:20 +03:00
Ivan Molodetskikh
ef80bcc834
Parse the config on the file watcher thread
...
It takes a while, so let's not block the main thread.
2025-02-12 20:56:32 +03:00
Ivan Molodetskikh
29b7a41692
Implement is-window-cast-target window rule matcher
2025-02-11 10:31:12 +03:00
Ivan Molodetskikh
6942ecc13a
Implement clicking on tab to switch
2025-02-10 07:29:33 -08:00
Ivan Molodetskikh
963ff14ed0
Store hit type in PointContents
2025-02-10 07:29:33 -08:00
Ivan Molodetskikh
bfd81fc290
Make send_frame() a function on Mapped
...
We'll add some extra logic there.
2025-02-10 07:29:33 -08:00
Ivan Molodetskikh
1d883931b4
Account for border in contents_under()
...
Fixes pointer clicks going through window borders to a layer surface below,
also fixes window not getting activated in all cases from a border click.
2025-02-10 07:29:33 -08:00
Ivan Molodetskikh
b65fad09d8
Remove unnecessary mut
2025-02-10 07:29:33 -08:00
Ivan Molodetskikh
734e3a6d3c
Fix find_window_and_output() returning None with no outputs
...
As far as I can tell, this would mess up a ton of the logic. Not sure
how anything worked with no outputs before?
2025-02-05 09:35:10 +03:00
may
e412a0fc6b
add option to set xkb config from file ( #1062 )
...
* add option to set xkb config from file
* Apply suggestions from code review
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2025-01-30 13:50:05 +00:00
bbb651
6b04b1e454
misc: Use helper function for restriced protocol filters
...
I looked at cosmic-comp as a sanity check and they do the same thing,
I ended up yoinking their function name because it reads better,
not sure about "unrestricted" vs "privileged".
2025-01-30 07:18:42 +03:00
bbb651
0c340ec5ea
misc: Use CursorImageSurfaceData type alias
...
instead of `Mutex<CursorImageAttributes>`
2025-01-30 07:18:42 +03:00
Ivan Molodetskikh
0226d9aec2
Don't create on-disk sockets in tests
2025-01-27 08:30:22 +03:00
Ivan Molodetskikh
ec43493522
Extract Niri::insert_client()
2025-01-27 08:06:33 +03:00
peelz
54a1cd5069
Add clipboard disable-primary setting
2025-01-25 10:36:36 +03:00
Ivan Molodetskikh
788c9c6c54
Add find_root_shell_surface() that goes through popups
2025-01-23 12:07:32 +03:00
Ivan Molodetskikh
a10705fb20
Add toggle-window-rule-opacity action
2025-01-23 11:13:55 +03:00
Ivan Molodetskikh
acd4cb51aa
Implement shadows for layer surfaces
2025-01-21 11:31:30 +03:00
Ivan Molodetskikh
2511a98e8b
Extract Niri::update_shaders()
2025-01-21 11:31:30 +03:00
Ivan Molodetskikh
a7692d10c4
Add update_render_elements() to MappedLayer
2025-01-21 11:31:30 +03:00
sodiboo
0584dd2f1e
implement keyboard-shortcuts-inhibit and wlr-virtual-pointer ( #630 )
...
* stub keyboard-shortcuts-inhibit and virtual-pointer impls
* implement keyboard-shortcuts-inhibit
* implement virtual-pointer
* deal with supressed key release edge-case; add allow-inhibiting property
* add toggle-keyboard-shortcuts-inhibit bind
* add InputBackend extensions; use Device::output() for absolute pos events
* add a `State` parameter to the backend exts and better document future intent
* Add some tests for is_inhibiting_shortcuts
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2025-01-18 17:26:42 +03:00
Val Packett
890bbff007
dbus: DisplayConfig: implement apply_monitors_config
...
This enables gnome-control-center to apply display configuration
changes. Only temporarily, persistence is ignored currently.
2025-01-17 11:16:10 +03:00
Gustav Sörnäs
0df7a085de
add write-to-disk argument to screenshot actions
2025-01-14 13:39:52 +03:00
bbb651
c523c80598
Support WAYLAND_SOCKET in winit backend
...
I know of a single compositor that supports `WAYLAND_SOCKET` but not
`WAYLAND_DISPLAY`: https://gitlab.freedesktop.org/mstoeckl/windowtolayer
This should also make niri more robust against accidentally setting
`WAYLAND_SOCKET` when starting as a session, before programs could fail
if they preffered `WAYLAND_SOCKET` over `WAYLAND_DISPLAY`
2025-01-13 08:19:17 +03:00
Ivan Molodetskikh
7dee2f6995
Fix two manual let-else
2025-01-10 09:11:31 +03:00
Ivan Molodetskikh
623687e59b
Fix new Clippy warnings
2025-01-10 09:11:31 +03:00
Ivan Molodetskikh
b2ca280c49
Restart PipeWire on errors
...
This lets you restart pipewire and then get a screencast successfully.
2025-01-04 12:23:25 +03:00
Ivan Molodetskikh
a2f9d132a0
Migrate to new Rectangle functions
2025-01-04 11:22:56 +03:00
Ivan Molodetskikh
1973b97cc2
Upgrade Smithay (DrmCompositor changes)
2025-01-04 11:22:56 +03:00