Ivan Molodetskikh
44b5612697
Remove notify-rust dependency
...
It uses outdated zbus.
2025-01-02 09:33:54 +03:00
bbb651
0113292cf6
Upgrade zbus and async-io
2025-01-02 08:50:48 +03:00
Ivan Molodetskikh
be05b66ac3
Hide focus ring for unfocused layout and under interactive move
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
c5fffd6e2c
Initial WIP floating window implementation
2024-12-30 20:12:37 +03:00
Ivan Molodetskikh
d38bfc4aff
Add test-only single-pixel-buffer support
2024-12-22 15:19:46 +03:00
Ivan Molodetskikh
fbb0054232
Add a Headless backend for tests
...
Rendering and stuff is unimplemented.
2024-12-22 15:19:46 +03:00
Ivan Molodetskikh
8dcc41a54d
Initialize PipeWire lazily
...
This helps with:
- System setups starting PipeWire late (after niri startup, but before any
screencast).
- Tests which don't even want to start PipeWire.
2024-12-22 15:19:46 +03:00
Rémi Labeyrie
b1c40a9079
fix: check for layer surface under cursor when clicking
2024-12-22 15:13:17 +03:00
Ivan Molodetskikh
6b16cc52db
Add force-pipewire-invalid-modifier debug flag
2024-12-17 17:08:14 +03: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
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
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
d193928f31
Add PID to Window IPC
2024-11-12 09:37:25 +03:00
Ivan Molodetskikh
c0829087da
Lock session right away with no outputs
2024-11-08 16:25:06 +03:00
Ivan Molodetskikh
5ff8b89aaf
Rework output connection to always go through on_output_config_changed()
...
This has the following benefits:
1. connector_connected() is now more closely mirroring
connector_disconnected() in that it merely lights up the connector,
and doesn't check if the connector should be off from the config.
2. We can use more complex on/off logic that depends on multiple
connectors. For example, this commit adds logic to only disable the
laptop panel on lid close if there are other connected outputs.
We don't want to disable the laptop panel on lid close if it's the only
connected output because it causes screen lockers to create their
surface from scratch on normal laptop unsuspend, which is undesirable
and also confuses some screen lockers.
2024-11-08 09:11:56 +03:00
Ivan Molodetskikh
cd90dfc7be
Disable laptop panel when the lid is closed
2024-11-05 10:03:51 +03:00
Christian Meissl
354c365a03
xdg: cleanup activation tokens
...
valid tokens will stay around until explicitly cleaned-up.
remove the token after it has been successfully used
or we consider it timed out to prevent leaking the memory
used by the activation tokens
2024-11-03 09:13:41 -08:00
Ivan Molodetskikh
e0ebf1bdff
Remove pointer_grab_ongoing in favor of checking the actual grab
2024-11-03 10:23:21 +03:00
Ivan Molodetskikh
9193245871
Correct pointer constraint activation logic
...
Internally it uses the pointer focus, so make sure we have up-to-date
focus before setting it.
2024-11-03 10:15:19 +03:00
Ivan Molodetskikh
7baf10b751
Clarify redraw in refresh_pointer_focus()
2024-11-03 10:15:19 +03:00
Ivan Molodetskikh
f5d91c5ecc
Rename pointer_focus to pointer_contents, clarify comments
...
This is not pointer focus and it shouldn't be pointer focus, let's be
clear about it.
2024-11-03 10:15:19 +03:00
Ivan Molodetskikh
69e3edb5a3
Rename surface_under_and_global_space() to contents_under()
2024-11-03 08:50:17 +03:00
Ivan Molodetskikh
86bdc6898b
Add with_toplevel_role() util function
2024-11-02 10:53:55 +03:00
Ivan Molodetskikh
d3e72245b0
Don't show the cursor on programmatic movement
...
For keyboard-only use, especially with warp-mouse-to-focus, the
intention is that the cursor stays hidden from keyboard and other
automatic actions, and only shows up with an actual mouse movement.
2024-10-29 21:52:03 -07:00
Rasmus Eneman
e887ee93a3
Implement interactive window move
2024-10-27 23:07:39 -07:00
Ivan Molodetskikh
8d08782eba
Set CLOEXEC on logind inhibit fd
...
Don't leak it to child processes.
2024-10-17 08:59:06 +03:00
Ivan Molodetskikh
a13b9298c6
Draw the layout as inactive when layer-shell has focus
2024-10-15 11:11:57 +03:00
Ivan Molodetskikh
29602ca995
layout: Extract Monitor::workspaces_with_render_positions()
2024-10-14 11:08:44 +03:00
Ivan Molodetskikh
6fb60dacd2
Rework pointer inactivity hide as a timer
...
The previous way was prone to triggering late due to compositor idling
and therefore never calling the check function.
2024-10-06 22:09:19 -07:00
yzy-1
42a9daec9d
Implement hide cursor on key press and on timeout
2024-10-06 22:09:19 -07:00
Ivan Molodetskikh
94e5408f46
Update Smithay
2024-09-30 15:24:50 +03:00
Christian Meissl
eb190e3f94
handle role specific buffer offset
2024-09-30 05:04:58 -07:00
spazzylemons
80bb0d5876
Remove one unnecessary .clone() call and reorder another
2024-09-30 00:45:44 -07:00
Ivan Molodetskikh
55a798bd8b
Prevent unintended focus-follows-mouse during workspace switch
2024-09-12 16:48:29 +03:00
Ivan Molodetskikh
6b6a84e55b
Avoid panics on more wrong VBlank events
2024-09-10 10:48:45 +03:00
Ivan Molodetskikh
7d5785e96f
Give focus to on-demand layer surfaces on map
2024-09-10 10:14:34 +03:00
Ivan Molodetskikh
3514cd2e36
Prefer exclusive layer focus to on-demand on the same layer
2024-09-10 09:10:03 +03:00
Ivan Molodetskikh
d25d6ce337
Arrange layer map after sending new scale/transform
...
I think that should be a slightly better ordering of events.
2024-09-08 22:33:09 +03:00
Ivan Molodetskikh
bb044075fa
Inform layer surfaces of scale/transform changes
...
How'd I miss this and then never catch it?
2024-09-08 22:05:56 +03:00
Ivan Molodetskikh
dcb29efce5
Implement by-id window addressing in IPC and CLI, fix move-column-to-workspace
...
This is a JSON-breaking change for the IPC actions that changed from
unit variants to struct variants. Unfortunately, I couldn't find a way
with serde to both preserve a single variant, and make it serialize to
the old value when the new field is None. I don't think anyone is using
these actions from JSON at the moment, so this breaking change is fine.
2024-09-06 18:32:41 +03:00
Ivan Molodetskikh
608ab7d8b1
Change output sorting to match make/model/serial first
...
We can do this now that we have libdisplay-info.
2024-09-05 20:10:01 +03:00
Ivan Molodetskikh
5460c792bd
Fix missing KeyboardLayoutSwitched event on XKB switch
2024-09-04 20:54:11 +03:00
Ivan Molodetskikh
b65a243fc9
Remove warning about missing output config
2024-09-03 13:48:08 +03:00
Ivan Molodetskikh
f0157e03e7
Use libdisplay-info for make/model/serial parsing, implement throughout
2024-09-03 13:48:08 +03:00
Ivan Molodetskikh
f7181fb066
Implement by-id workspace action addressing
...
It's not added to clap because there's no convenient mutually-exclusive
argument enum derive yet (to have either the current <REFERENCE> or an
--id <ID>). It's not added to config parsing because I don't see how it
could be useful there. As such, it's only accessible through raw IPC.
2024-09-01 23:47:19 -07:00
Ivan Molodetskikh
0f522f209b
Change MappedIt::get() to return u64
2024-09-01 23:47:19 -07:00
Ivan Molodetskikh
30b213601a
Implement the event stream IPC
2024-09-01 23:47:19 -07:00