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
Ivan Molodetskikh
fe660a253b
Don't activate window when pressing the Mod+MMB view gesture
...
Avoid unnecessary movement.
2025-02-18 19:06:40 +03:00
Ivan Molodetskikh
44c9797844
Take tab indicators into account in expand-column-to-available-width
2025-02-17 22:36:30 +03:00
Ivan Molodetskikh
652d2923bb
Use toggle_full_width() for expand-column-to-available-width edge case
2025-02-17 21:57:35 +03:00
Ivan Molodetskikh
85349ce475
Fix expand-column-to-available-width for always-center
2025-02-17 21:48:00 +03:00
Ivan Molodetskikh
92cc2b89f7
Implement expand-column-to-available-width
2025-02-17 21:30:23 +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
108e88e211
Enable fancy miette errors for the main binary
...
Seems there's not much dependency/binary size impact now, compared to when I
first made the KDL config.
2025-02-16 19:37:37 +03:00
Ivan Molodetskikh
a693f64c41
Add blank line
2025-02-16 10:26:59 +03:00
Ivan Molodetskikh
f2b1fc66f2
Make DnD edge view scroll configurable
2025-02-16 10:18:00 +03:00
Ivan Molodetskikh
c6e98d5a96
Add a small delay to DnD view scrolling
2025-02-16 10:18:00 +03:00
Ivan Molodetskikh
d077350ae4
layout: Remove unused method
2025-02-16 10:18:00 +03:00
Ivan Molodetskikh
ca1500ae90
Implement scrolling the view during DnD
...
DnD is external to the layout, so we just inform it when one is ongoing.
2025-02-15 13:28:57 +03:00
Ivan Molodetskikh
d7f3ca00c7
Implement scrolling the view during interactive move
2025-02-15 13:28:57 +03:00
Ivan Molodetskikh
fd8140e091
Hook up are_transitions_ongoing() for floating and tiles
...
Don't spoil it
2025-02-15 13:28:57 +03:00
Ivan Molodetskikh
d94fbe9895
layout: Check move output in are_animations_ongoing()
2025-02-15 13:28:57 +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 Chinenov
9e794f358b
feat: support for setting tablet calibration matrix; this allows for rotating tablet inputs ( #1122 )
...
* feat: support for setting tablet calibration matrix
* Change default matrix
2025-02-14 05:15:45 +00:00