news 2026/9/4 23:59:34

niri 笔记本低功耗调优:3 步把待机功耗从 8W 压到 5W

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
niri 笔记本低功耗调优:3 步把待机功耗从 8W 压到 5W

niri 笔记本低功耗调优:3 步把待机功耗从 8W 压到 5W

【免费下载链接】niriA scrollable-tiling Wayland compositor.项目地址: https://gitcode.com/GitHub_Trending/ni/niri

在 niri 这款 Wayland 合成器(负责把每个窗口画面拼合成最终屏幕图像的进程)上,把待机功耗从 8–10W 压到 4–5W、续航提升约 30%,只动三处配置就够了:显示链路、动画与光标、电源协同。代价是牺牲一点流畅感——关动画和降刷新率都会让交互变"硬",你需要在观感和耗电之间自己取舍。下面的每一步都按"改什么、为什么省、怎么验证"来讲,所有数字可直接对照。

动手前先测基线:用 powertop 拍一张功耗照片

先测量,后优化。不测基线,你永远不知道哪一步真正省电。

# 空闲 60 秒采样,看系统平均功耗与耗电大户 sudo powertop --time=60 # 只看 niri 进程本身占多少 CPU top -b -n 1 | grep niri

把这一组数字记下来(空闲瓦数、niri 的 CPU 占用)。改完每一项后再跑一次,对比才有意义。powertop会列出谁在耗电,top里的 niri 行则确认合成器本身没有异常空转。

显示链路省电:降刷新率,顺手关掉高耗能渲染

刷新率是屏幕上最直接的耗电开关。先列出你的显示器支持的档位:

niri msg outputs

内置屏通常叫eDP-1。把 90–120Hz 的屏幕降到 60Hz,光这一项就能省约 15% 的显示功耗(显示输出文档):

output "eDP-1" { mode "1920x1080@60.000" // 刷新率必须与 msg outputs 里完全一致,到小数点后三位 variable-refresh-rate on-demand=true // 动态刷新率,仅播放视频等匹配窗口时才启用 }

为什么省:每提高一档刷新率,GPU 就要多渲染一帧;variable-refresh-rate(即可变刷新率 VRR,俗称自适应同步)让屏幕在静态画面时降频,只在真正有动画的窗口上拉满。注意:如果你接了外接高刷显示器,on-demand=true配合窗口规则能把 VRR 限制在特定应用上,避免某些驱动下 VRR 带来的闪烁。

渲染参数上,窗口阴影和高斯模糊是每帧都要反复绘制的片段着色器。默认softness 30spread 5、模糊passes 3(布局文档),改小即可:

layout { shadow { softness 8 // 默认 30,数值越大模糊范围越大、越费 spread 2 // 默认 5,收缩阴影膨胀范围 draw-behind-window true } } blur { off // 默认开启且 passes 3,直接关掉最省事 }

验证:跑niri msg outputs确认刷新率生效;空闲功耗应比基线下降约 10–15W 档位的对应比例。

交互层省电:动画全局开关与光标隐藏

动画是图形渲染的主要功耗来源之一。niri 提供全局一键关闭和整体减速(动画配置文档)。KDL是 niri 配置文件使用的声明式语言,一行一个参数:

animations { off // 完全关闭所有动画,省电最直接 // slowdown 2.0 // 想保留手感时,改成整体放慢一倍,降低帧数压力 }

为什么省:每个窗口开合、工作区切换都会持续多帧渲染,全关后这些帧直接消失。若想保留动效又不想太费,用slowdown 2.0拖长持续时间、摊薄单位时间的渲染帧数,比全关柔和。

弹簧动画(spring)靠物理模型驱动,不能直接设时长,由stiffness(刚度)等参数决定快慢。把刚调低会让它更慢、更省:

animations { workspace-switch { spring damping-ratio=1.0 stiffness=500 epsilon=0.0001 // 默认 1000,调低更慢 } }

注意damping-ratio不要超过 1.0——超过属于过阻尼,niri 目前有数值稳定性问题,可能导致画面卡顿(动画配置文档 明确标注)。

光标隐藏则减少屏幕固定区域的持续刷新:

cursor { hide-when-typing // 打字时隐藏光标 hide-after-inactive-ms 1000 // 空闲 1 秒后隐藏 }

系统级协同:电源守护进程与亮度快捷键

niri 本身不做电源调度,这部分交给系统的 power-profiles-daemon。装上后切到 balanced(平衡)或 power-saver(节能)档位:

sudo apt install power-profiles-daemon powerprofilesctl set balanced

niri 通过 D-Bus 与显示电源模式打通,源码里实现了power_save_mode的读写(电源模式控制)。在 niri 侧把亮度键绑到 brightnessctl,用spawn动作拉起命令:

binds { bindctl "XF86MonBrightnessUp" { spawn "brightnessctl" "set" "+5%" } bindctl "XF86MonBrightnessDown" { spawn "brightnessctl" "set" "5%-" } }

为什么省:屏幕背光与刷新率是耗电大头,把亮度默认调低几档,配合 balanced 档位让 CPU/GPU 频率封顶,空闲功耗能再下一截。验证方式仍是powertop——空闲功耗应逼近 4–5W。

验证与常见坑:调过头了就回退

优化后重跑采样命令,对照基线:

sudo powertop --time=60 # 空闲功耗目标 4–5W intel_gpu_top # Intel 显卡看 GPU 负载 nvtop # NVIDIA 显卡看 GPU 负载

典型数据(同配置对照):空闲 8–10W → 4–5W,网页浏览 12–15W → 8–10W,视频播放 15–18W → 10–12W。

几个常见坑:

  • 刷新率设了却不变——mode里的频率没和niri msg outputs完全对齐,差一个小数位都会被忽略,改回原档位即可。
  • 动画关掉后"卡"——若你觉得off太突兀,改成slowdown 2.0折中。
  • 弹簧动画结尾跳一下——把epsilon调小(如 0.00005)。
  • VRR 下光标掉帧或黑闪——按 显示输出文档 的提示试disable-cursor-plane调试项或拔插显示器。

配置改错时 niri 会弹通知而不是崩溃,直接还原对应段落热加载即可,无需重启。

进阶三件事

  • 自定义着色器:改src/render_helpers/shaders/里的片段着色器,减少过度绘制;niri 支持给窗口开合/缩放动画挂custom-shader,参考docs/wiki/examples/下现成示例。
  • 动态刷新率脚本:配合variable-refresh-rate on-demand=true与窗口规则,让刷新率只在游戏或视频窗口拉满,静态时自动回落。
  • 进程调度:以 systemd 会话方式运行 niri(见 systemd 配置示例),可为合成器单独设置 CPU 调度优先级,减少前台应用被拖累的功耗波动。

每改一项就测一次,把"观感—功耗"的平衡点固定下来,这份低功耗配置才算真正落地。

【免费下载链接】niriA scrollable-tiling Wayland compositor.项目地址: https://gitcode.com/GitHub_Trending/ni/niri

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 23:59:28

YOLOv8课堂行为检测系统:小目标识别与边缘部署实战

简介:本资源是一套基于YOLOv8的课堂学生行为检测系统完整实现,面向计算机、人工智能、教育技术等专业的本科生与研究生,适用于课程设计、毕业设计及教学实训场景,解决课堂教学中学生姿态、专注度、异常行为等自动化识别问题。压缩…

作者头像 李华
网站建设 2026/9/4 23:56:48

全模态全学科AI科学家OmniScientist:自动科研Agent技术栈与验证指南

这次我们来看一个从命名开始就非常“大”的项目:OmniScientist: An Omni-Modal Omni-Discipline AI Scientist。翻译过来是“全模态、全学科的 AI 科学家”。它不像是某个单点工具,更像是一个要把科研过程中多项能力整合进同一个 Agent 框架的方向性项目…

作者头像 李华
网站建设 2026/9/4 23:55:31

LLM Agent评测中Harness的影响:为何需要披露评测框架

如果你最近在关注 LLM Agent 的评测榜单,可能会产生一个很直接的观感:同一个模型,有的团队测出来“表现很强”,换一个团队测出来“也就那样”。一开始大家习惯把差距归因于提示词写得不够好,但后来陆续有工程经验表明&…

作者头像 李华
网站建设 2026/9/4 23:55:27

基于ROS与STM32的智能小车系统:分层架构设计与工程实践

简介:这是一套面向嵌入式开发初学者与ROS实践者的智能小车系统完整工程资源,聚焦于多平台协同控制的典型应用场景,解决上位机(树莓派4B)与下位机(STM32F103C8T6)间通信架构设计、运动控制集成及…

作者头像 李华
网站建设 2026/9/4 23:53:12

HumanTracker拆解:人体对齐的运动跟踪基准与评估实践

做人体运动分析相关项目时,最让人头疼的往往不是模型跑不跑得动,而是“模型输出到底算不算对”这件事本身没有统一标尺。你辛辛苦苦调了一个姿态估计模型,跟踪 ID 切了两次,某个人被遮挡后重新出现变成新 ID,业务方立刻…

作者头像 李华