Ivan Molodetskikh
dfb3683187
Fix new Clippy warnings
2025-07-13 12:54:03 +03:00
Ivan Molodetskikh
ce9ba00d54
Implement ext-workspace
2025-07-13 11:43:59 +03:00
Ivan Molodetskikh
f3f6e79eec
Return app ids with ".desktop" appended to Shell.Introspect
...
This isn't the correct solution, but it seems to work often enough for window
icons in the screencast dialog.
2025-06-13 09:55:08 +03:00
Ivan Molodetskikh
7aec37f5c9
Extract output_left/right/up/down/previous/next_of()
2025-06-11 21:09:55 +03:00
Ivan Molodetskikh
0407ac5e4c
Ignore lock surfaces from unrelated clients
...
gtklock doesn't mind the fact that it got denied the lock, and just creates a
new lock surface anyway. And we happily replace the running lock with it.
2025-06-10 17:03:32 +03:00
Ivan Molodetskikh
6bab912383
Accept FloatOrInt for input accel_speed, animation slowdown
...
Technically cfg-breaking due to introducing min/max limits at parse time, but
values outside these limits were invalid anyway, so maybe it's fine?
2025-06-09 14:04:56 +03:00
Ivan Molodetskikh
f918eabe6a
Implement xwayland-satellite integration
2025-06-07 13:12:50 -07:00
Ivan Molodetskikh
a605a3f016
Account for hidden pointer in move_cursor()
2025-05-23 23:08:51 +03:00
Ivan Molodetskikh
ef44adea69
Set pointer contents straight to nothing when disabling pointer
2025-05-23 23:08:51 +03:00
Duncan Overbruck
7fdb918cd0
input: do not revert fully invisible cursor to hidden ( #1650 )
...
* input: do not force redraw to hide an already hidden cursor
* more
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2025-05-23 05:24:24 +00:00
Ivan Molodetskikh
3f2b7e63ba
Improve comment in on-demand layer-shell keyboard alive check
2025-05-19 09:18:07 +03:00
Ivan Molodetskikh
c98537a2b0
Implement baba-is-float for layers
2025-05-12 09:10:59 +03:00
Ivan Molodetskikh
fb5c5204e8
Extract confirm_screenshot()
2025-05-09 15:41:57 +03:00
Ivan Molodetskikh
09be90f4e6
Add touch selection support to the screenshot UI
2025-05-09 10:28:20 +03:00
Ivan Molodetskikh
497f186422
Add layout background-color setting
2025-05-06 17:34:40 +03:00
Ivan Molodetskikh
3e31c134a6
Implement place-within-backdrop layer rule
2025-05-06 17:34:40 +03:00
Ivan Molodetskikh
fe682938db
Simplify exclusive focus on layer check
2025-05-06 17:34:40 +03:00
Ivan Molodetskikh
7b4cf094ef
Draw workspace shadows behind all workspaces
2025-05-01 10:10:11 +03:00
erdii
82dabc21f3
feat: implement support to enable numlock at startup
...
Signed-off-by: erdii <me@erdii.engineering >
2025-04-30 09:54:19 -07:00
Ivan Molodetskikh
d5c0c74d2c
Fix hot corners preventing focus even when disabled
2025-04-29 08:24:45 +03:00
Ivan Molodetskikh
fd389af6d8
Add backdrop-color setting to overview {}
2025-04-28 09:14:43 +03:00
Ivan Molodetskikh
db09727b18
Replace Smithay's SolidColor elements with ours
...
Must've forgotten about these back when I replaced others.
2025-04-28 09:05:55 +03:00
bogdanov
758cca5432
Fix pointer hiding so that it is no longer annoying ( #1426 )
...
* replace `pointer_hidden` with `pointer_visiblity`
* disable hidden pointer after content underneath has changed
* fixes
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2025-04-27 06:25:36 +00:00
Ivan Molodetskikh
1835b532d9
Implement interactive move to a new workspace above/between
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
e6d82d3ee3
Implement top-left hot corner to toggle the Overview
...
Compared to third-party implementations such as waycorner:
- It works during interactive window move (no surfaces receive pointer
focus in this case, so this cannot work through layer-shell).
- It works during drag-and-drop.
- It disables itself over fullscreen windows.
- It does not prevent direct scanout.
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
59de6918b3
overview: Add two-finger touchpad scroll
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
af1fca35bb
Implement an Overview
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
9571d149b2
Render workspaces separately with gaps between
...
This design makes more sense spatially, and is required for the
Overview. Gaps also make it clear how clipping windows to workspace
bounds works.
Background and bottom layer-shell surfaces get duplicated for each
workspace, while top and overlay stay "on top".
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
8b878f355f
Put interactively moved window on top of background and bottom layer popups
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
395b6d9a4f
layout: Extract interactive_moved_window_under() and add output check
...
Fixes interactively moved window getting input on every output rather
than just its own.
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
25f24f668c
Extract mapped_hit_data()
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
9e5e0c85bb
Simplify condition
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
5cd8040d1a
Extract is_layout_obscured_under()
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
86351938f2
Put the top layer above bottom and background layer popups
...
Makes it consistent with how window popups are below the top layer, also
will make more sense for the overview.
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
15ba2ab300
Rename render_floating_for_output to render_interactive_move_for_output
2025-04-17 11:31:34 +03:00
lualeet
8d43efe4ac
Add option 'focus-at-startup' to focus a chosen output on start ( #1323 )
...
* Implement default-output
* Fix incorrect wiki string
* Center mouse on start
* Move default-output to Output.focus-at-startup
* fixes
---------
Co-authored-by: lualeet <lualeet@null.null >
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2025-03-29 10:13:59 +00:00
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