Ivan Molodetskikh
3fe67549b4
default-config: Bind Mod+O to toggle-overview
2025-04-25 02:00:18 -07: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
fae3a27641
Implement DnD hold to activate window or workspace
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
31e76cf451
overview: Add DnD up/down scrolling
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
b8a9be542f
overview: Add touchscreen gestures
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
bd3d554389
overview: Add hardcoded mouse scroll binds
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
99358e36b3
layout/monitor: Extract activate_workspace_with_anim_config()
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
929eaf0d69
Pass target workspace to view offset grab
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
ce3103949f
layout/scrolling: Support view offset anim during gesture
...
Brings back moving the newly active window into focus upon interactive
move dragging out.
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
ef60dd81d7
layout/monitor: Cache scale, view_size, working_area
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
7671a5d833
layout/monitor: Don't consider workspace switch in active_tile_visual_rectangle()
...
This only did something when in the middle of a touchpad gesture, and it
didn't really make sense for that edge case.
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
3f09352067
layout/monitor: Extract add_workspace_at()
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
5059cce886
Add with_alpha() to shader and shadow element
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
b20dd226c0
layout: Move insert hint from ScrollingSpace to Monitor
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
acb69c3b4d
layout: Return floating and scrolling elems separately from Workspace
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
dbe0a9e293
layout/tab_indicator: Use round_max1 where appropriate
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
d3a79faeec
layout/monitor: Extract workspace_render_idx()
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
21630ddb5e
layout/monitor: Extract workspaces_render_geo()
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
ee4c5e23ab
Reformat scroll factor computation
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
ffd6acc0aa
layout/monitor: Extract WorkspaceSwitchGesture::min_max()
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
cee11dc329
layout/monitor: Keep track of workspace switch gesture start idx
...
Fixes jump when "catching" an animation with a gesture.
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
59a42249a4
Remove cancellation from swipe gestures
...
It only worked for workspace switch, and even there it was more confusing than
helpful.
2025-04-25 02:00:18 -07:00
Ivan Molodetskikh
74b016202b
Add missing bounds checks to move-workspace actions
...
Fixes panics.
2025-04-25 10:54:09 +03:00
Ivan Molodetskikh
6ab055a4b9
niri.spec.rpkg: Recommend waybar
...
Now it's spawned by the default config.
2025-04-22 22:51:56 +03:00
Ivan Molodetskikh
98bd9b7abb
niri.spec.rpkg: Fix License
2025-04-22 22:51:56 +03:00
Ivan Molodetskikh
f36e1c2ef2
default-config: Spawn waybar at startup
...
Make it a bit less of an empty screen.
2025-04-22 22:51:56 +03:00
Ivan Molodetskikh
2243615fe9
default-config: Set titles for the default-bound apps
2025-04-22 22:51:56 +03:00
Ivan Molodetskikh
7884d3bfea
layout: Extract Monitor::update_shaders()
2025-04-17 11:31:34 +03:00
Ivan Molodetskikh
fdbc485d78
layout: Remove width and is_full_width from InsertHint
...
They were unused.
2025-04-17 11:31:34 +03:00
Ivan Molodetskikh
7e253d2687
layout: Don't pass scale to render unnecessarily
...
These parts of the layout already know their scale.
2025-04-17 11:31:34 +03:00
Ivan Molodetskikh
15ba2ab300
Rename render_floating_for_output to render_interactive_move_for_output
2025-04-17 11:31:34 +03:00
Ivan Molodetskikh
37840a418a
animation: Extract value_at() and fix animations off difference
2025-04-17 11:31:34 +03:00
Ivan Molodetskikh
4a4c972ffb
animation: Add more getters
2025-04-17 11:31:34 +03:00
Ivan Molodetskikh
ba933773ab
animation: Fix restarted() Spring using old from/to
2025-04-16 07:46:10 +03:00
Ivan Molodetskikh
f1cca1a6ca
Back out "chore: update smithay"
...
This backs out commit 763cd564e3 .
There are graphical glitches and a panic.
2025-04-16 07:46:10 +03:00
Simonas Kazlauskas
763cd564e3
chore: update smithay
2025-04-15 13:01:24 -07:00
Ivan Molodetskikh
95eafba346
README: Add link to RustCon talk
2025-04-12 19:38:57 +03:00
Ivan Molodetskikh
df94662435
layout: Take into account idle time between last gesture event and end
...
Fixes cases like: do a quick movement with mouse, then hold it in-place for a
while (no events generated), then release the gesture (it uses all that
built-up speed). This also happens with DnD scroll and makes it go further than
intended.
2025-04-10 10:49:35 +03:00
Ivan Molodetskikh
430b155929
Fix typo in comment
2025-04-06 10:04:40 +03:00
Ivan Molodetskikh
c359d24825
layout: Avoid calling interactive_move_end() in the middle of interactive_move_update()
2025-04-05 09:42:38 +03:00