Files
nix-config-ryan4yin/hosts/idols-ai/niri-hardware.kdl
T
Ryan Yin def7d8f754 feat(niri): enable on-demand VRR for games
Turn on adaptive sync at the output only when a game window opts in, keeping desktop compositing fixed-rate to avoid idle/low-load VRR flicker. The Steam/Proton game rule enables VRR alongside the fullscreen rule.

Assisted-by: DeepSeek Harness (deepseek-flash)
2026-10-30 00:47:51 +08:00

73 lines
3.6 KiB
KDL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Outputs are matched by monitor manufacturer/model/serial instead of the
// connector name: the kernel/NVIDIA driver decides DRM connector numbering by
// probe order. Run `niri msg outputs` to read the exact "make model serial"
// string.
//
// No renderer pinning: the RTX 4090 is the only GPU here, so niri's own device
// choice and the outputs' scanout are the same card.
output "Beihai Century Joint Innovation Technology Co.,Ltd P32A2V 0000000000000" {
// Uncomment this line to disable this output.
// off
// Scale is a floating-point number, but at the moment only integer values work.
scale 1.5
// Transform allows to rotate the output counter-clockwise, valid values are:
// normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270.
transform "normal"
// Resolution and, optionally, refresh rate of the output.
// The format is "<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.
// If the mode is omitted altogether or is invalid, niri will pick one automatically.
// Run `niri msg outputs` while inside a niri instance to list all outputs and their modes.
// Pin the exact value from `niri msg outputs` on this host: niri matches
// refresh rates exactly, so a nominal "144" can miss and fall back silently
// (this panel's 120 Hz mode, for example, is 119.880, not 120).
mode "3840x2160@144.000"
// Adaptive sync only while a game window requests it. The desktop then
// stays fixed-rate, avoiding VRR flicker during low-load desktop work.
// The game window rule below opts in with variable-refresh-rate true.
variable-refresh-rate on-demand=true
// Position of the output in the global coordinate space.
// This affects directional monitor actions like "focus-monitor-left", and cursor movement.
// The cursor can only move between directly adjacent outputs.
// Output scale 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.
// It the position is unset or results in an overlap, the output is instead placed
// automatically.
position x=0 y=0
}
output "Guangxi Century Innovation Display Electronics Co., Ltd 27D1U 0000000000000" {
scale 1.5
transform "normal"
mode "3840x2160@60"
position x=2560 y=0 // on the right of DP-2
}
output "Virtual-1" {
// Created by vkms in hardware-intel.nix. Sunshine captures this output when
// the NVIDIA-attached physical monitors are off. It remains available in
// normal physical sessions, with minor idle GPU and framebuffer overhead.
scale 1.5
transform "normal"
mode "2560x1600"
position x=0 y=0
}
// ============= Named Workspaces =============
workspace "4entertainment" { open-on-output "Beihai Century Joint Innovation Technology Co.,Ltd P32A2V 0000000000000"; }
workspace "2browser" { open-on-output "Beihai Century Joint Innovation Technology Co.,Ltd P32A2V 0000000000000"; }
workspace "5utility" { open-on-output "Beihai Century Joint Innovation Technology Co.,Ltd P32A2V 0000000000000"; }
workspace "3chat" { open-on-output "Guangxi Century Innovation Display Electronics Co., Ltd 27D1U 0000000000000"; }
workspace "1terminal" { open-on-output "Guangxi Century Innovation Display Electronics Co., Ltd 27D1U 0000000000000"; }
workspace "0other" { open-on-output "Guangxi Century Innovation Display Electronics Co., Ltd 27D1U 0000000000000"; }