Ivan Molodetskikh
6a80ec4704
layout/tile: Don't take fullscreen into account in min/max size
...
They are used strictly for non-fullscreen size computation.
2025-03-17 22:31:19 -07:00
Ivan Molodetskikh
e8b158641b
layout: Verify moved tile invariants
2025-03-17 22:31:19 -07:00
Ivan Molodetskikh
27a715aded
layout: Test that interactively moved window is not pending fullscreen
2025-03-17 22:31:19 -07:00
Ivan Molodetskikh
926e63a5f3
Refactor request_fullscreen() to be an argument on request_size()
2025-03-17 22:31:19 -07:00
Ivan Molodetskikh
e879199880
layout: Switch two places to workspaces_mut()
2025-03-17 22:31:19 -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
Duncan Overbruck
f6aa8c1793
Add move-column-to-index action
2025-03-14 12:57:33 -07:00
Duncan Overbruck
a5d58d670b
Add focus-column (by index) action
2025-03-14 12:57:33 -07:00
Ivan Molodetskikh
fd3b1f2b6c
layout: Preserve previous view offset on consume-left
2025-03-14 08:50:29 +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
0f30306fe5
Extract utils::is_mapped()
2025-03-13 18:56:35 +03:00
Ivan Molodetskikh
1c6037e612
Add tiled-state window rule, update the tiled state live
2025-03-13 14:14:54 +03:00
dbeley
3e21585861
feat(trackpoint): add left-handed option support
2025-03-13 03:36:20 -07:00
Annika Hannig
8737067af5
added move window to monitor by id
2025-03-10 23:17:36 -07:00
Annika Hannig
50a99f6356
Implemented move-window-to-monitor and move-column-to-monitor
2025-03-10 23:17:36 -07:00
Annika Hannig
993c5ce8af
Implement focus-monitor to focus a specific monitor by output.
2025-03-10 23:17:36 -07:00
Toby Bridle
47dd338340
feat: 🎉 add show-pointer for Screenshot and ScreenshotScreen
2025-03-10 22:31:50 -07:00
Jon Heinritz
87b6c12625
Add Shell completions ( #1226 )
...
* feat(cli): add subcommand to generate shell completions
* Update src/cli.rs
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2025-03-10 20:14:34 +00: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
88614c08fe
Make interactively moved window semitransparent
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh
4f5c8e745b
Offscreen semitransparent tiles
...
Now that offscreen does damage tracking, we can reasonably do this. Note this
only affects full-tile opacity, not window opacity.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh
f30413a744
layout/tile: Use animated tile size for open anim geo
...
This is the right value to use as the texture will also match the animated
size.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh
3b8ce12316
tile: Use OffscreenBuffer for resize anims
...
OffscreenBuffer knows how to avoid recreating the texture every frame.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh
880386e563
render_helpers/resize: Fix logic to allow for partially-filled texture
...
"texture geo" defines offset and src size, rather than the full texture size.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh
266c6c3878
offscreen: Don't recreate if size decreased
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh
7b033aa7c6
offscreen: Track and return damage
...
This is the second part of the damage equation: now the offscreen element
itself reports correct damage, so partial redraws to the texture don't cause
full redraws of the texture element itself.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh
efd8372b20
offscreen: Take damage into account when rendering
...
Does not yet signal the damage outside, but does skip rerendering if there was
no damage.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh
74a30be10b
Cache texture in OpenAnimation
...
Don't recreate it unless the size changes. This lays the groundwork for also
tracking damage in the future.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh
1c521e4831
Update Smithay (Framebuffer type)
2025-03-10 07:59:14 +03:00
Jon Heinritz
eda43b2b93
doc: fix wrongly formatted link that rustdoc kept complaining about
2025-03-09 04:24:24 -07:00
Ivan Molodetskikh
9f205d465c
mapped: Omit popups from animation snapshot
...
It's used only for resizes, and those render popups on top.
2025-03-02 10:01:52 +03:00
Alex David
d6e736aaf0
Allow disabling tap-and-drag ( #1107 )
...
* Allow disabling tap-and-drag
Similar to https://github.com/YaLTeR/niri/pull/1088 , this adds a new
touchpad `drag` configuration option that configures tap-and-drag
behavior.
Currently tap-and-drag is always enabled when the `tap` setting is
enabled, but other compositors allow setting this separately.
* Update wiki/Configuration:-Input.md
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2025-03-02 10:01:34 +03:00
Martino Ferrari
36b28d9b96
Added top, left, bottom and right floating windows alignement ( #1169 )
...
* feat: added top, left, bottom, right alignement options
* feat: implemented extra alignement
* feat: added example
* doc: updated documentation with extra alignements
* doc: moved example in wiki and typo correction
* fix: relative position should be positive and not negative
* fixes
---------
Co-authored-by: Martino Ferrari <martinogiordano.ferrari@iter.org >
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2025-03-01 17:46:27 +00:00
Ivan Molodetskikh
70dcd229cf
Extract encompassing_geo()
2025-02-27 10:38:36 +03:00
Ivan Molodetskikh
26fe4a489a
render_helpers: Use upscale(-1)
2025-02-27 09:54:26 +03:00
Ivan Molodetskikh
2363cf48e7
layout/monitor: Remove unused function
2025-02-27 08:21:05 +03:00
Ivan Molodetskikh
848294c09b
layout/monitor: Remove redundant passthrough functions
2025-02-27 08:21:05 +03:00
Ivan Molodetskikh
693d935538
Add honor-xdg-activation-with-invalid-serial debug flag
2025-02-26 19:33:58 +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
4719cc6d59
cursor: Extract get_render_cursor_named()
2025-02-26 15:10:18 +03:00
nnyyxxxx
1bdded7a44
feat(input): add off option to touch device
2025-02-26 03:32:21 -08:00
Ivan Molodetskikh
5b6b5536fd
Also check pointer for activation token validity
...
This actually doesn't matter in most cases currently, because it more or less
checks for *anything* to have a keyboard focus, so if you have some focused
window while clicking on a mako notification, that already qualifies.
Signed-off-by: Ivan Molodetskikh <yalterz@gmail.com >
2025-02-24 22:34:30 +03:00
Ivan Molodetskikh
dca187de37
Don't snap after DnD scroll if view position didn't change
...
Otherwise, any DnD breaks temporarily centered columns.
2025-02-18 19:06:40 +03:00