v0.1.1

niri-wm/niriv0.1.1Feb 3, 2024by YaLTeR

AI Summary

This release focuses on the user experience for fresh installs and taskbar integration. It includes auto-creation of the default config, wlr-foreign-toplevel-management support for taskbars, and output rotation capabilities.

Key Highlights

  • Auto-creation of default config file on fresh install.
  • wlr-foreign-toplevel-management protocol support.
  • Output rotation and flip support (transform).
  • Keyboard LED support (Num Lock, Caps Lock, Scroll Lock).

New Features

  • Auto-config generation.
  • wlr-foreign-toplevel-management protocol.
  • Output rotation settings.
  • Keyboard LED lighting support.
  • Actions to move workspaces to different monitors.
  • Improved handling of interlaced monitor modes.

Full Release Notes

### Better fresh install workflow

Niri will now create a config file if it's not present, filling it with the default config contents. It will notify about this with a new message.

- Before, on a fresh install:

    ![Config parse error.](https://github.com/YaLTeR/niri/assets/1794388/d49915eb-d1e6-41bd-8724-ead449e4f5cf)

- After, on a fresh install:

    ![Notification about a config being created.](https://github.com/YaLTeR/niri/assets/1794388/6aa1fdd2-1c1c-423e-bb91-341f8d7ba90d)

### wlr-foreign-toplevel-management

I've implemented the wlr-foreign-toplevel-management protocol used by taskbars like the `wlr/taskbar` Waybar module or sfwbar, and by some other clients like fcitx5.

![Niri with two taskbars showing several open windows.](https://github.com/YaLTeR/niri/assets/1794388/dcc73b30-b40c-4635-8ddf-1bfcb16a5e2b)

### Output rotation

You can now rotate and flip outputs with a new setting:

```
output "eDP-1" {
    // The rotations are counter-clockwise:
    transform "90"
}
```

Thanks @axtloss for implementing this and to @cmeissl for fixing various Smithay issues that had come up with transforms!

### Other improvements in this release

- Keyboard LEDs (Num Lock, Caps Lock, Scroll Lock) will now light up. Thanks @cmeissl!
- Added `move-workspace-to-monitor-{left,right,up,down}` actions that move the entire workspace to a different monitor. They are not bound to any key by default (yet?). Thanks @Trundle for implementing this!
- Fixed semitransparent border and focus ring colors.
- Fixed `natural-scroll` not being respected for the touchpad workspace switch gesture.
- Fixed windows being unable to open in fullscreen mode right away.
- Monitor screencasts will now stop on monitor size changes. In the future it may be possible to resize the stream on the go but we don't do that yet, so just stop them to avoid wrong video frames.
- Fixed building on Rust 1.72.0.
- Made backend initialization errors more detailed.
- Fixed a panic when closing niri running as a nested window during a screen redraw.