# niri v0.1.10 - Product: niri (https://whatsnew.fyi/product/niri) - Vendor: niri - Date: 2024-11-09 - Version: v0.1.10 - Original notes: https://github.com/niri-wm/niri/releases/tag/v0.1.10 - Permalink: https://whatsnew.fyi/product/niri/releases/v0.1.10 - Labels: Platforms: Linux What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Interactive window moving by dragging windows by title bars or while holding Mod - **added** — Windows rubber-band before being dragged out to prevent accidental layout changes - **added** — Interactive moving and resizing on touchscreen - **added** — Pointer location hint request implementation for locked pointer movement - **added** — Bindings for laptop lid opening/closing and tablet mode switching - **added** — Automatic disabling of internal laptop monitor when closing the lid - **added** — Cursor hiding options including hide when typing and hide after inactivity period - **added** — Pointer shows up on mouse button press - **added** — Trackball input config section - **added** — Scroll-button setting for mice, touchpads, trackpoints, and trackballs - **added** — Scroll-factor setting for mice and touchpads to adjust scrolling speed - **added** — Window --id argument to niri msg action consume-or-expel-window-left/right and IPC - **added** — Explicit power-on-monitors action - **added** — Support for running niri as a dinit service - **added** — Disable-monitor-names debug config flag as a workaround for crashes with identical monitor reporting - **changed** — Tablet input no longer follows monitor rotation - **changed** — GTK Access portal is now explicitly set in niri-portals.conf - **changed** — Active workspace is now preserved across monitor disconnects and reconnects - **changed** — Pointer stays hidden on programmatic and keyboard-triggered movement - **fixed** — Fixed focus-window-up-or-column-right focusing left instead of right - **fixed** — Fixed animation jump when expelling a narrower window from a column with uneven window widths - **fixed** — Fixed logind power key inhibit file descriptor leaking into spawned processes - **fixed** — Fixed window close view position restoration triggering for unfocused windows - **fixed** — Fixed crash when an output disappears immediately after connecting - **fixed** — Fixed used xdg-activation token memory leak - **fixed** — Fixed lock screen clients hanging when no monitors are enabled - **fixed** — Fixed memory leak when locking the screen in Smithay - **fixed** — Fixed occasional visual freezing of GTK and other apps in Smithay - **fixed** — Fixed regression where increasing output scale in v0.1.9 did not propagate to some clients Niri is a scrollable-tiling Wayland compositor. Windows are arranged in columns on an infinite strip going to the right. Opening a new window never causes existing windows to resize. Here are the improvements from the last release. ##### Interactive window moving While not full-blown floating window support quite yet, this is an important step towards that. You can now move windows by dragging them by title bars, or anywhere while holding Mod. https://github.com/user-attachments/assets/b0c36fc3-d4ca-459b-819b-fc7ee223a3d7 To prevent accidental layout changes, the windows rubber-band a little before you drag them out. https://github.com/user-attachments/assets/7c50c95b-56fe-4d21-b659-ad8cd7f4fad7 Furthermore, I made both interactive moving and resizing work on a touchscreen. https://github.com/user-attachments/assets/275f27fd-8c26-40a9-82c9-0cd975a96688 Thanks to @Pajn for implementing a fairly complete proof-of-concept of this feature! ##### Locked pointer location hint @sodiboo implemented the pointer location hint request. Apps like Blender use it to tell the compositor the final location after a locked pointer movement so that the compositor can update its own pointer location to match it. https://github.com/user-attachments/assets/76e92efb-7c93-4b1f-876e-fbc61912f7ea ##### Laptop lid and tablet mode switch bindings Thanks to @cmeissl, you can now bind commands to laptop lid opening/closing and tablet mode switching. You can use this to automatically enable an on-screen keyboard when a convertible laptop enters tablet mode. See the [switch events wiki page](https://github.com/YaLTeR/niri/wiki/Configuration:-Switch-Events) for more information and examples. Additionally, I implemented disabling of the internal laptop monitor when closing the lid. So your workspaces will automatically move to the external screen. If for some reason this breaks for you, set the new `keep-laptop-panel-on-when-lid-is-closed` [debug config](https://github.com/YaLTeR/niri/wiki/Configuration:-Debug-Options) flag. ##### Pointer hiding @yzy-1 implemented new cursor hiding options: hide when typing (on any key press), and hide after a set inactivity period. See [the wiki page](https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#hide-when-typing) for more details. ```kdl cursor { hide-when-typing // Or, after a timeout: // hide-after-inactive-ms 1000 } ``` To complement this, there are a few improvements to the hidden pointer behavior. The pointer will now show up on mouse button press, and on the contrary, it will stay hidden on programmatic and keyboard-triggered movement, like focusing a different monitor, or when using `warp-mouse-to-focus`. ##### Input configuration improvements Thanks to @tazjin, @chillinbythetree and @elipp for: - Adding a `trackball` input config section. - Adding a `scroll-button` setting to mice, touchpads, trackpoints, and trackballs. - Adding a `scroll-factor` setting to mice and touchpads that you can use to speed up or slow down scrolling. See the [input config wiki page](https://github.com/YaLTeR/niri/wiki/Configuration:-Input#pointing-devices) for more information. ##### Other improvements in this release - Tablet input no longer follows the monitor rotation: you need to rotate your graphics tablet together with your monitor. This makes convertible laptops work properly; this is also how input works on other desktop environments. Thanks @cmeissl. - The GTK Access portal is now explicitly set in `niri-portals.conf`, which makes it work. It is required for applications requesting PipeWire webcam and microphone access, such as the Firefox package on Fedora 41. Thanks @cmeissl. - The `niri-ipc` crate is now [published to crates.io](https://crates.io/crates/niri-ipc). - Active workspace is now preserved across monitor disconnects and reconnects. - Added a window `--id` argument to `niri msg action cons _[Truncated at 4000 characters — full notes: https://github.com/niri-wm/niri/releases/tag/v0.1.10]_