bbb651
0c340ec5ea
misc: Use CursorImageSurfaceData type alias
...
instead of `Mutex<CursorImageAttributes>`
2025-01-30 07:18:42 +03:00
Ivan Molodetskikh
0226d9aec2
Don't create on-disk sockets in tests
2025-01-27 08:30:22 +03:00
Ivan Molodetskikh
ec43493522
Extract Niri::insert_client()
2025-01-27 08:06:33 +03:00
peelz
54a1cd5069
Add clipboard disable-primary setting
2025-01-25 10:36:36 +03:00
Ivan Molodetskikh
788c9c6c54
Add find_root_shell_surface() that goes through popups
2025-01-23 12:07:32 +03:00
Ivan Molodetskikh
a10705fb20
Add toggle-window-rule-opacity action
2025-01-23 11:13:55 +03:00
Ivan Molodetskikh
acd4cb51aa
Implement shadows for layer surfaces
2025-01-21 11:31:30 +03:00
Ivan Molodetskikh
2511a98e8b
Extract Niri::update_shaders()
2025-01-21 11:31:30 +03:00
Ivan Molodetskikh
a7692d10c4
Add update_render_elements() to MappedLayer
2025-01-21 11:31:30 +03:00
sodiboo
0584dd2f1e
implement keyboard-shortcuts-inhibit and wlr-virtual-pointer ( #630 )
...
* stub keyboard-shortcuts-inhibit and virtual-pointer impls
* implement keyboard-shortcuts-inhibit
* implement virtual-pointer
* deal with supressed key release edge-case; add allow-inhibiting property
* add toggle-keyboard-shortcuts-inhibit bind
* add InputBackend extensions; use Device::output() for absolute pos events
* add a `State` parameter to the backend exts and better document future intent
* Add some tests for is_inhibiting_shortcuts
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2025-01-18 17:26:42 +03:00
Val Packett
890bbff007
dbus: DisplayConfig: implement apply_monitors_config
...
This enables gnome-control-center to apply display configuration
changes. Only temporarily, persistence is ignored currently.
2025-01-17 11:16:10 +03:00
Gustav Sörnäs
0df7a085de
add write-to-disk argument to screenshot actions
2025-01-14 13:39:52 +03:00
bbb651
c523c80598
Support WAYLAND_SOCKET in winit backend
...
I know of a single compositor that supports `WAYLAND_SOCKET` but not
`WAYLAND_DISPLAY`: https://gitlab.freedesktop.org/mstoeckl/windowtolayer
This should also make niri more robust against accidentally setting
`WAYLAND_SOCKET` when starting as a session, before programs could fail
if they preffered `WAYLAND_SOCKET` over `WAYLAND_DISPLAY`
2025-01-13 08:19:17 +03:00
Ivan Molodetskikh
7dee2f6995
Fix two manual let-else
2025-01-10 09:11:31 +03:00
Ivan Molodetskikh
623687e59b
Fix new Clippy warnings
2025-01-10 09:11:31 +03:00
Ivan Molodetskikh
b2ca280c49
Restart PipeWire on errors
...
This lets you restart pipewire and then get a screencast successfully.
2025-01-04 12:23:25 +03:00
Ivan Molodetskikh
a2f9d132a0
Migrate to new Rectangle functions
2025-01-04 11:22:56 +03:00
Ivan Molodetskikh
1973b97cc2
Upgrade Smithay (DrmCompositor changes)
2025-01-04 11:22:56 +03:00
Ivan Molodetskikh
152ed59502
Allow keyboard focus for bottom and background layers
2025-01-03 16:41:39 +03:00
Ivan Molodetskikh
8e16be9e11
Allow pop-up grabs for bottom and background layers
2025-01-03 16:24:23 +03:00
Ivan Molodetskikh
300701f44e
Render layer-shell pop-ups on top
2025-01-03 15:57:59 +03:00
Julian Schuler
c17d4dc050
Add actions to focus/move to next/previous monitor
2025-01-02 15:15:23 +03:00
bbb651
4e33f45522
Add Mouse{Left,Right,Middle,Back,Forward} binds
2025-01-02 14:59:15 +03:00
Christian Meissl
b16d7abb35
skip keyboard focus for layer shell surfaces not...
...
...requesting keyboard interactivity
2025-01-02 14:24:39 +03:00
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