sodiboo
7af937b08e
nix: clang -> rustPlatform.bindgenHook
2024-12-03 05:53:48 -08:00
Ivan Molodetskikh
8665003269
layout: Extract ScrollingSpace
...
Leave the Workspace to do the workspace parts, and extract the scrolling parts
into a new file. This is a pre-requisite for things like the floating layer
(which will live in a workspace alongside the scrolling layer).
As part of this huge refactor, I found and fixed at least these issues:
- Wrong horizontal popup unconstraining for a smaller window in an
always-centered column.
- Wrong workspace switch in focus_up_or_right().
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
1e76716819
layout: Add a test for windows on other workspace remaining activated
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
91a42fdf58
layout: Fix windows on other workspaces losing activated state
...
This erroneous check was introduced in interactive move.
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
5ed5243be6
layout: Fix possible crash when dropping move on different, animating output
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
4560251e64
layout: Correct variable names
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
2020dca3e0
layout: Use tiles_mut() in Workspace::clear_unmap_snapshot()
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
7fc2121454
layout: Extract Workspace::tiles()
2024-12-01 22:24:21 -08:00
Ivan Molodetskikh
8b84afbd38
Add strict-new-window-focus-policy debug flag
2024-11-29 21:57:36 -08:00
Christian Meissl
305fc3b557
Activate newly mapped windows with a valid activation token
...
most of the time the activation token is passed
while the window is still unmapped. in this case
store the intend to activate the window for
later retrieval on map.
2024-11-29 21:57:36 -08:00
Christian Meissl
61f2ac01d7
xdg: startup activation
...
pass an activation token to process spawned through actions
2024-11-29 21:57:36 -08:00
Ivan Molodetskikh
39a9f55205
Fix new warnings
2024-11-29 09:33:08 +03:00
FluxTape
11f351dbeb
Implement empty-workspace-above-first ( #745 )
...
* Implement empty-workspace-above-first option
* add two failing tests
* fix interactive_move_onto_empty_output_ewaf and
interactive_move_onto_first_empty_workspace tests
* Add two failing ewaf option toggle tests
* Fix adding/removing first empty workspace on option toggle
* Don't remove first empty workspace if focused
* Stop workspace switch when enabling ewaf
* layout/monitor: Offset workspace switch on adding workspace above
* Fix some initial active workspace ids with ewaf
* wiki: Document empty-workspace-above-first
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2024-11-29 08:46:13 +03:00
Ivan Molodetskikh
815fa379ea
layout: Stop workspace switch when moving workspaces to primary
...
Okay, this might be one of the oldest layout issues to have remained uncaught.
Well, maybe as I add more randomized tests, I'll catch even more of those.
2024-11-27 20:55:20 +03:00
Ivan Molodetskikh
4c480a1ea3
layout/tests: Add post option update to randomized test
...
Will help to catch cases where updating options doesn't update the state
correctly.
2024-11-26 22:02:46 +03:00
Ivan Molodetskikh
fa4aa0e06d
layout: Fix adjusting for scale for moved tile when reloading config
2024-11-26 22:01:26 +03:00
Ivan Molodetskikh
e2a6374bf5
layout/tests: Return Layout from check_ops()
...
Cuts down on boilerplate in a few places.
2024-11-26 22:00:44 +03:00
Ivan Molodetskikh
dc14554053
layout: Extract update_options()
2024-11-26 21:59:05 +03:00
Ivan Molodetskikh
985ca7b643
layout/tests: Allow AddWindowRightOf interactive moved window
...
Guess I forgot this.
2024-11-26 15:24:28 +03:00
Ivan Molodetskikh
60624d64fa
layout/tests: Standardize on usize for output id in tests
2024-11-26 15:24:28 +03:00
Ivan Molodetskikh
2935dae89e
wiki: Add animation timing page
2024-11-25 04:07:59 -08:00
Ivan Molodetskikh
4c22c3285d
Refactor animation timing to use lazy clocks
2024-11-25 04:07:59 -08:00
Ivan Molodetskikh
93cee2994a
Refactor animations to take explicit current time
2024-11-25 04:07:59 -08:00
Ivan Molodetskikh
9c7e8d04d2
Extract Niri::advance_animations()
2024-11-23 15:09:16 +03:00
Ivan Molodetskikh
1e6b8906e0
layout/monitor: Extract add_workspace_bottom()
2024-11-23 15:07:52 +03:00
Ivan Molodetskikh
6c5b92e5c0
Add interactive_move_onto_empty_output test
...
Tests the add_workspace_bottom() in Monitor::add_tile().
2024-11-23 15:07:35 +03:00
Ivan Molodetskikh
38c515e12e
pw: Fix potential crash when disconnecting output
2024-11-23 15:07:09 +03:00
Ivan Molodetskikh
c239937fac
Focus target window/output on DnD
...
In sway, focus-follows-mouse keeps working during DnD, but not in niri.
So it can be surprising when you DnD something into another app, but it
doesn't get automatically focused. This commit fixes that.
Even if the DnD is not validated, or if there's no target surface (e.g.
dropped on the niri background), focus the target output, since that's
how Firefox's drag-tab-into-new-window works for example.
2024-11-22 09:37:26 +03:00
Ivan Molodetskikh
bafa574784
wiki: Link layer rules from block-out-from window rules
2024-11-21 14:57:41 +03:00
Ivan Molodetskikh
199a5854a8
wiki: Add Since to layer rules
2024-11-21 14:57:41 +03:00
Ridan Vandenbergh
a74a578198
Add focus-window-previous action ( #811 )
...
* Add `FocusWindowPrevious` action
* remove [`
* track previous focus in Niri instead of every window
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2024-11-21 14:48:51 +03:00
Ivan Molodetskikh
7de752ec56
Bump CI image versions
2024-11-20 13:16:02 +03:00
Ivan Molodetskikh
0a833171ac
Update Smithay (popup grab fix)
2024-11-20 08:34:19 +03:00
Ivan Molodetskikh
1a0612cbfd
Implement layer rules: opacity and block-out-from
2024-11-14 12:05:30 +03:00
Ivan Molodetskikh
fbbd3ba349
niri: Extract render_layer()
2024-11-14 10:24:04 +03:00
Ivan Molodetskikh
1028639186
config: Add RegexEq util type instead of manual PartialEq
2024-11-14 09:44:07 +03:00
Ivan Molodetskikh
0e5e764c78
Add niri msg layers
2024-11-12 21:44:00 +03:00
Ivan Molodetskikh
db1faecc95
Guard against closed screenshot UI in its binds
...
They can trigger with closed screenshot UI via key repeat.
2024-11-12 19:26:44 +03:00
Ivan Molodetskikh
c2c415d2e8
wiki/sidebar: Update application issues title
2024-11-12 10:11:41 +03:00
Ivan Molodetskikh
d193928f31
Add PID to Window IPC
2024-11-12 09:37:25 +03:00
Ivan Molodetskikh
17861e0003
Change expel-window-from-column to expel the bottom window
...
This way, expel becomes symmetric with consume. This is also how it
works in PaperWM. Though, in PaperWM if the expelled window was focused,
it will remain focused, while in this commit it is never focused, making
it the exact opposite of consume.
Use consume-or-expel-window-right for the old expel behavior.
2024-11-11 18:07:41 +03:00
Ivan Molodetskikh
97fe964e00
Make consume-or-expel binds more prominent
...
I find myself using them much more than regular consume or expel.
2024-11-11 17:56:35 +03:00
Ivan Molodetskikh
9debb5db23
wiki: Mention Ghidra in application issues
2024-11-11 10:06:23 +03:00
Ramses
494b438151
Unhide the pointer on scroll events ( #797 )
...
* Unhide the pointer on scroll events
Since we reset the surface under the pointer when we hide the pointer
(see update_pointer_contents), scroll events don't work when the pointer
is hidden.
So to make scrolling work, we make sure that we unhide the pointer when
a scrolling event occurs.
* Update src/input/mod.rs
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2024-11-11 06:08:29 +00:00
Ivan Molodetskikh
010a236882
Start interactive move on Mod+Touch
2024-11-10 09:47:03 +03:00
Ivan Molodetskikh
1951d2a9f2
Fix scrolling not working with missing mouse config
2024-11-10 09:14:22 +03:00
Ivan Molodetskikh
9d8f640503
niri-ipc: Document features
v0.1.10
2024-11-09 17:57:52 +03:00
Ivan Molodetskikh
b18cfbae23
niri-ipc: Add README and Cargo.toml metadata
2024-11-09 17:57:34 +03:00
Ivan Molodetskikh
f64e7e14c3
Bump version to 0.1.10
2024-11-09 17:35:31 +03:00
Ivan Molodetskikh
e8c9bfc06a
wiki: Add scroll-button to mouse and touchpad overview
2024-11-09 17:23:59 +03:00