aboutsummaryrefslogtreecommitdiff
path: root/src/niri.rs
AgeCommit message (Collapse)Author
2025-03-29Add option 'focus-at-startup' to focus a chosen output on start (#1323)lualeet
* 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-22feat: support color picker functionalitynnyyxxxx
chore: format code refactor: improve quality feat: implement gnomes PickColor method refactor: minor code extraction misc: fix reviews fixes
2025-03-22Add option to warp-mouse-to-focus to always centerFlorian Finkernagel
2025-03-22Add mod-key and mod-key-nested settingspeelz
2025-03-17Add wait-for-frame-completion-in-pipewire debug flag for NVIDIA screencastsCole Leavitt
2025-03-16Keep buffer size when switching dynamic cast to NothingIvan Molodetskikh
Otherwise, we won't actually clear it because it'll become Pending.
2025-03-15Implement dynamic screencast targetIvan Molodetskikh
2025-03-15Move CastTarget to src/niri.rsIvan Molodetskikh
2025-03-15Use windows() instead of with_windows()Ivan Molodetskikh
2025-03-15Store cast Stream ID, use it for Redraw requestIvan Molodetskikh
Unlike StopCast, Redraw targets a specific Cast. Use the stream ID to identify it.
2025-03-13Try default when configured xkb keymap fails to compileIvan Molodetskikh
Fixes panic at startup.
2025-03-13Wait for lock surfaces before lockingIvan Molodetskikh
Fixes the red flash when locking.
2025-03-13Add tiled-state window rule, update the tiled state liveIvan Molodetskikh
2025-03-10feat: 🎉 add `show-pointer` for `Screenshot` and `ScreenshotScreen`Toby Bridle
2025-03-10Keep track of RenderElementStates in offscreensIvan Molodetskikh
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-10Store offscreen element id on Mapped instead of user dataIvan Molodetskikh
We don't need user data for this.
2025-03-10Update Smithay (Framebuffer type)Ivan Molodetskikh
2025-02-27Extract encompassing_geo()Ivan Molodetskikh
2025-02-26Implement `niri msg pick-window`bbb651 🇮🇱
* feat: `niri msg pick-window` * fixes --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-02-17Make idle notify lazyIvan Molodetskikh
2025-02-17Make pointer inactivity timer reset lazyIvan Molodetskikh
2025-02-14Implement ext-data-controlIvan Molodetskikh
2025-02-14Update Smithay (idle-notify 2)Ivan Molodetskikh
2025-02-12Parse the config on the file watcher threadIvan Molodetskikh
It takes a while, so let's not block the main thread.
2025-02-11Implement is-window-cast-target window rule matcherIvan Molodetskikh
2025-02-10Implement clicking on tab to switchIvan Molodetskikh
2025-02-10Store hit type in PointContentsIvan Molodetskikh
2025-02-10Make send_frame() a function on MappedIvan Molodetskikh
We'll add some extra logic there.
2025-02-10Account for border in contents_under()Ivan Molodetskikh
Fixes pointer clicks going through window borders to a layer surface below, also fixes window not getting activated in all cases from a border click.
2025-02-10Remove unnecessary mutIvan Molodetskikh
2025-02-05Fix find_window_and_output() returning None with no outputsIvan Molodetskikh
As far as I can tell, this would mess up a ton of the logic. Not sure how anything worked with no outputs before?
2025-01-30add option to set xkb config from file (#1062)may
* add option to set xkb config from file * Apply suggestions from code review --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-01-30misc: Use helper function for restriced protocol filtersbbb651
I looked at cosmic-comp as a sanity check and they do the same thing, I ended up yoinking their function name because it reads better, not sure about "unrestricted" vs "privileged".
2025-01-30misc: Use `CursorImageSurfaceData` type aliasbbb651
instead of `Mutex<CursorImageAttributes>`
2025-01-27Don't create on-disk sockets in testsIvan Molodetskikh
2025-01-27Extract Niri::insert_client()Ivan Molodetskikh
2025-01-25Add clipboard disable-primary settingpeelz
2025-01-23Add find_root_shell_surface() that goes through popupsIvan Molodetskikh
2025-01-23Add toggle-window-rule-opacity actionIvan Molodetskikh
2025-01-21Implement shadows for layer surfacesIvan Molodetskikh
2025-01-21Extract Niri::update_shaders()Ivan Molodetskikh
2025-01-21Add update_render_elements() to MappedLayerIvan Molodetskikh
2025-01-18implement `keyboard-shortcuts-inhibit` and `wlr-virtual-pointer` (#630)sodiboo
* 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-17dbus: DisplayConfig: implement apply_monitors_configVal Packett
This enables gnome-control-center to apply display configuration changes. Only temporarily, persistence is ignored currently.
2025-01-14add write-to-disk argument to screenshot actionsGustav Sörnäs
2025-01-13Support `WAYLAND_SOCKET` in winit backendbbb651
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-10Fix two manual let-elseIvan Molodetskikh
2025-01-10Fix new Clippy warningsIvan Molodetskikh
2025-01-04Restart PipeWire on errorsIvan Molodetskikh
This lets you restart pipewire and then get a screencast successfully.
2025-01-04Migrate to new Rectangle functionsIvan Molodetskikh