v0.1.4 #272
YaLTeR
announced in
Announcements
v0.1.4
#272
Replies: 2 comments 9 replies
-
Nice update! I just used |
Beta Was this translation helpful? Give feedback.
5 replies
-
bro , just add a feature to support environment variables inside the config file , and blur support these are like "must have" features, I'm waiting for months |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Before we begin: downgrade
xz
to v5.4. Done? Good, let's get to the release.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.
Block out windows from screencasts
You can now instruct niri to block out certain windows from screencasts with a window rule. This can be useful for apps like password managers or messengers that you don't want to accidentally show during meetings or streams.
The compositor (niri in this case) is the perfect place for this functionality since it is solely responsible for the video frames sent to displays and screencast clients like OBS. Plus, the compositor has the entire window tree, and can selectively block out individual windows while retaining correct layered compositing.
This blocking out also seamlessly works with the built-in screenshot UI. You can capture a screenshot with interactive area selection while seeing all windows normally, and on a screencast, this entire process, including the interactive selection UI, will have the windows correctly blocked out.
block-out-from.mp4
Unfortunately, this kind of tight integration is not possible with third-party screenshot annotation/preview tools. To avoid accidentally showing windows even when using third-party screenshot tools, niri provides a more aggressive mode that blocks out the window from all screen capture tools, not just xdg-desktop-portal screencasts.
Dynamic window rules
Window rules, introduced in the last release, let you adjust behavior for individual windows. For this release, I did the necessary refactors to support dynamic window rules that apply continuously to open windows.
The main example of course is the rule to block out windows from screencasts (described above), but you can also override whether borders draw with a solid background, change the window size limits and adjust window opacity.
As an example, you can replicate the "inactive windows become semitransparent" effect:
Check out the window rules wiki page for a complete list of properties that you can set.
By the way, I also added a little
niri msg focused-window
IPC command that shows you the title and app ID of the focused window, to aid in writing rule matchers.Warp mouse to focus & focus follows mouse
Two popular features among tiling WMs, now in niri.
Warp mouse to focus, implemented by @FluxTape (thanks!), will automatically move the mouse into windows as you focus them. Focus follows mouse on the other hand will automatically focus windows under the cursor as you move it around.
These two actually work very well together, give it a try!
niri-warp-mouse-focus-follows.mp4
Mouse and touchpad scroll bindings
It is now possible to bind mouse wheel and touchpad scrolls to perform actions or spawn commands. Mouse scrolling activates every wheel "tick", whereas touchpad scrolling emulates scroll "ticks" based on finger distance traveled.
Additionally, you can now set a cooldown for binds to avoid triggering them too often with scrolling.
Check the wiki page for more details.
wlr-gamma-control
Niri now implements the
wlr-gamma-control
protocol that is required for "Night Light" tools like wlsunset and gammastep. Thanks @phuhl for working on this!Note
As it turns out, setting the gamma is pretty slow, at least on my system. I suggest using wlsunset because it only sets the gamma when it needs to change, rather than, say, every few seconds unconditionally.
xdg-desktop-portal-gnome 46.0
I implemented more of the Mutter D-Bus interface to support xdg-desktop-portal-gnome 46.0 with its new screencast monitor selector with visual positions:
Documentation
As you've noticed, I've been linking the wiki pages a lot. The reason for this is that over the past week I went through the entire config and wrote detailed documentation and examples for every single option.
Check out all this documentation here on the wiki: https://github.com/YaLTeR/niri/wiki/Configuration:-Overview
A major benefit of this is that it allowed me to declutter the default config by removing some of the less important things and instead linking the wiki. This will improve the experience for people trying out niri as they no longer need to sift through the entire window rule and animation examples.
If you find a mistake, feel free to open a pull request against the
wiki/
folder of the repository.Also, shoutouts to great reference-style docs @sodiboo had been writing for the nix flake: https://github.com/sodiboo/niri-flake/blob/main/docs.md#programsnirisettings
Other improvements in this release
niri msg outputs
(logical output position, size, scale, transform, and current and preferred mode flags).click-method
input setting for touchpads (thanks @uetcis).workspace-auto-back-and-forth
setting that causes switching to the same workspace by index twice to switch back to the previous workspace (thanks @FluxTape).ISO_Level3_Shift
/Mod5
modifier (thanks @Trundle).us
as the keyboard layout when it is missing from the config (turns out libxkbcommon handles that one for us).This discussion was created from the release v0.1.4.
Beta Was this translation helpful? Give feedback.
All reactions