Overview
By default, niri will attempt to turn on all connected monitors using their preferred modes. You can disable or adjust this withoutput sections.
Outputs are matched by connector name (i.e.
eDP-1, HDMI-A-1), or by monitor manufacturer, model, and serial, separated by a single space each.Finding Output Names
You can find all output information by running:Usually, the built-in monitor in laptops will be called
eDP-1.Basic Settings
Disable Output
This flag turns off that output entirely.Mode
Set the monitor resolution and refresh rate.Format:
<width>x<height> or <width>x<height>@<refresh rate>If the refresh rate is omitted, niri will pick the highest refresh rate for the resolution.Custom Modes (Since: 25.11)
Custom Modes (Since: 25.11)
You can configure a custom mode (not offered by the monitor) by setting
custom=true. In this case, the refresh rate is mandatory.Modeline
Directly configures the monitor’s mode via a modeline, overriding any configuredmode. The modeline can be calculated via utilities such as cvt or gtf.
Scale
Set the scale of the monitor.Scale factor for the output. Can be integer or fractional (e.g., 1.5 for 150% scale). If unset, niri will guess an appropriate scale based on the physical dimensions and resolution.
- You can use fractional scale values, for example
scale 1.5 - Dot is no longer needed for integer scale:
scale 2instead ofscale 2.0 - Scale below 0 and above 10 will fail during config parsing
Transform
Rotate the output counter-clockwise.Valid values:
normal, 90, 180, 270, flipped, flipped-90, flipped-180, flipped-270Values with flipped additionally flip the output.Position
Set the position of the output in the global coordinate space.Output scale and rotation has to be taken into account for positioning: outputs are sized in logical, or scaled, pixels.For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080, so to put another output directly adjacent to it on the right, set its x to 1920.
- Directional monitor actions like
focus-monitor-left - Cursor movement (cursor can only move between directly adjacent outputs)
Automatic Positioning
If the position is unset or results in an overlap, the output is placed automatically using this algorithm:- Collect all connected monitors and their logical sizes
- Sort them by their name (makes positioning deterministic)
- Try to place every output with explicitly configured
position, in order - Place every output without explicitly configured
positionby putting it to the right of all previously placed outputs
Advanced Settings
Variable Refresh Rate
This flag enables variable refresh rate (VRR, also known as adaptive sync, FreeSync, or G-Sync), if the output supports it.niri msg outputs.
On-Demand VRR (Since: 0.1.9)
On-Demand VRR (Since: 0.1.9)
You can set the This is helpful to avoid various issues with VRR, since it can be disabled most of the time, and only enabled for specific windows, like games or video players.
on-demand=true property, which will only enable VRR when this output shows a window matching the variable-refresh-rate window rule.Focus at Startup
Focus this output by default when niri starts.If multiple outputs with
focus-at-startup are connected, they are prioritized in the order that they appear in the config.When none of the connected outputs are explicitly focus-at-startup, niri will focus the first one sorted by name.Backdrop Color
Set the backdrop color that niri draws for this output. This is visible between workspaces or in the overview.The alpha channel for this color will be ignored.
Hot Corners
Customize the hot corners for this output. By default, hot corners in the gestures settings are used for all outputs.Hot corners toggle the overview when you put your mouse at the very corner of a monitor.
Layout Config Overrides
You can customize layout settings for an output with alayout {} block:
layout {} block.
Unsetting Flags
Unsetting Flags
In order to unset a flag, write it with
false: