Home Manager 24.11 版本发布说明:swayidle 行为变更与 eza 图标选项弃用解析
Home Manager 24.11 版本发布说明swayidle 行为变更与 eza 图标选项弃用解析【免费下载链接】home-managerManage a user environment using Nix [maintainerkhaneliman, rycee]项目地址: https://gitcode.com/GitHub_Trending/ho/home-managerHome Manager 的 24.11 版本Release 24.11于 2024 年 11 月进入稳定分支。本篇文章以 rl-2411.md 发布说明为骨架逐条拆解本版本的两项主要变更services.swayidle模块-w参数的默认行为迁移以及programs.eza.icons布尔值写法的弃用并结合仓库源码与测试用例讲解升级时的迁移路径。阅读完成后你可以准确评估自己的home.nix配置是否受这两项变更影响并完成对应的平滑升级。版本概况24.11 稳定分支根据 rl-2411.md 的说明24.11 分支在 2024 年 11 月成为稳定版本。当前仓库的 release.json 显示项目已演进至 26.11 版本线release: 26.11isReleaseBranch为false因此本发布说明记录的是历史版本线中的重要行为变化对从旧版本升级的用户仍有直接的配置迁移价值。本版本的变更集中在两个方面services.swayidle.extraArgs默认值调整原先 swayidle 总是被强制追加-w参数现在该参数改为extraArgs的默认值使其变为可选的。programs.eza.icons布尔值弃用该选项支持true/false布尔写法被标记为弃用未来的替代值分别是auto与null。同时本版本的 State Version 部分明确指出该版本没有引入任何状态版本变更There was no state version change in this release这意味着 24.11 不会因为默认数据格式或文件位置的变化而破坏既有状态数据。变更一swayidle 的-w参数迁移到extraArgs默认值变更内容在 24.11 之前的版本中Home Manager 的 swayidle 服务模块在生成 systemd 用户服务时总是向swayidle命令注入-w标志。-w的含义是让 swayidle 在运行超时命令时等待该命令完成后再继续计时--wait这在锁屏、休眠等场景下对行为有实际影响。24.11 起这个标志被移出硬编码逻辑改为services.swayidle.extraArgs选项的默认值从而允许用户按需移除或替换它。源码实现依据在 swayidle.nix 中可以看到该选项的定义extraArgs mkOption { type with types; listOf str; default [ -w ]; description Extra arguments to pass to swayidle.; };extraArgs的类型是字符串列表默认值为[ -w ]。该参数随后在 systemd 用户服务的ExecStart中被拼接到实际命令行中见 swayidle.nixargs cfg.extraArgs (lib.concatMap mkTimeout cfg.timeouts) (lib.flatten (lib.mapAttrsToList mkEvent nonemptyEvents)); in ${lib.getExe cfg.package} ${lib.escapeShellArgs args};即最终执行的命令结构为swayidle extraArgs timeout 秒数 命令 [resume 命令] ... 事件名 命令 ...其中timeout块由cfg.timeouts展开每个条目可含timeout、command、可选的resumeCommand事件块由cfg.events展开如before-sleep、after-resume、lock、unlock参见 swayidle.nix。受影响场景与迁移方式发布说明明确提示了破坏性风险如果你已经自行设置了services.swayidle.extraArgs且依赖系统自动追加-w升级到 24.11 后配置会失效。原因是一旦你显式赋值extraArgs它就会整体覆盖默认值[ -w ]。正确的迁移做法是把-w显式加入你自己的extraArgs赋值中例如services.swayidle { enable true; extraArgs [ -w ]; # 显式保留原默认行为 timeouts [ { timeout 60; command ${pkgs.swaylock}/bin/swaylock -fF; } { timeout 90; command ${pkgs.systemd}/bin/systemctl suspend; } ]; events { before-sleep ${pkgs.swaylock}/bin/swaylock -fF; }; };如果原先的extraArgs里恰好已经包含-w则无需任何改动如果你希望 swayidle 不等待命令执行完毕也可以借此机会将extraArgs设为[ ]或去掉-w获得更接近原生 swayidle 的行为。此外该模块还顺带提供了一个兼容性迁移模块把旧的services.swayidle.systemdTarget单值自动迁移为新的services.swayidle.systemdTargets列表见 swayidle.nix升级时同样值得留意。测试覆盖仓库在 tests/modules/services/swayidle/ 下维护了两组测试仅 Linux 平台生效见 default.nixbasic-configuration.nix验证新的、按事件名组织events属性集的推荐写法legacy-configuration.nix验证旧的、以列表形式传events的写法仍然可用触发一条弃用警告见 swayidle.nix。社区通知条目记录在 2024-09-20_07-48-08.nix升级后首次home-manager switch时会在 News 中看到与发布说明一致的提示。变更二programs.eza.icons布尔值写法弃用变更内容programs.eza.icons选项原先可以接受布尔值true/false来控制是否在文件名旁显示图标。24.11 起这种布尔写法被标记为弃用未来将移除旧写法programs.eza.icons true;对应的新写法是programs.eza.icons auto;旧写法programs.eza.icons false;对应的新写法是programs.eza.icons null;auto表示仅在终端支持时自动显示图标对应 eza 的--iconsautonull表示不传递任何--icons参数从而完全关闭图标。源码实现依据在 eza.nix 中icons选项的取值集合已经扩展为icons mkOption { type types.enum [ null true false auto always never ]; default null; description Display icons next to file names ({option}--icons argument). Note, the support for Boolean values is deprecated. Setting this option to true corresponds to --iconsauto. ; };即null、true、false、auto、always、never六种取值当前均可通过类型检查但布尔值已被官方标注为 deprecated。对应的实际命令行转换逻辑位于 eza.nixiconsOption let v if lib.isBool cfg.icons then (if cfg.icons then auto else null) else cfg.icons; in lib.optionals (v ! null) [ --icons v ];从源码可见即使你现在仍写布尔值底层也会把true映射为--icons auto、把false映射为不传参——这保证了行为上的平滑过渡但与此同时模块会在求值时发出弃用警告见 eza.nixwarnings lib.optional (lib.isBool cfg.icons) Setting programs.eza.icons to a Boolean is deprecated. Please update your configuration so that programs.eza.icons ${if cfg.icons then auto else null; ;迁移示例升级前programs.eza { enable true; icons true; };升级后24.11 推荐的写法programs.eza { enable true; icons auto; # 或 always / never / null };如果你的目标是彻底关闭图标则使用icons null;这也是选项的默认值。顺带一提该模块同时提供了colorsnull/auto/always/never对应--color与git布尔对应--git等外观与功能选项可以参考 eza.nix 一起调整。extraOptions则用于追加任意其它 eza 命令行参数例如--group-directories-first、--header。测试覆盖eza 目录下提供了针对 bash、zsh、fish、ion、nushell 各 shell 集成以及主题theme.nix的测试测试清单见 default.nix。升级后若发现eza别名或--icons行为异常可对照这些测试确认自己的写法。State Version24.11 无状态版本变更发布说明的 State Version 章节结论明确本版本没有引入任何状态版本变更。在 Home Manager 中home.stateVersion决定哪些“不兼容的默认值变更”生效。该选项的合法取值与版本线一一对应24.11 已列入合法枚举见 version.nix当前仓库中枚举已扩展至 26.11。stateVersion只应在升级时按需推进且推进到更高版本通常需要手工执行数据转换或文件迁移步骤参见该选项的描述 version.nix。因此对于 24.11 而言如果你尚未设置home.stateVersion 24.11;也不会因为缺少状态版本而触发任何默认值变更——本版本没有与状态数据相关的破坏性默认调整。升级检查清单综合以上分析从 24.11 之前的版本升级时建议依次检查swayidle 配置是否设置了services.swayidle.extraArgs若是且依赖-w自动注入请在赋值中显式加入-w依据 rl-2411.md 与 swayidle.nix。swayidle 事件写法events是否还在用旧列表写法新写法是“以事件名为键、命令为值”的属性集旧写法虽兼容但会触发弃用警告依据 swayidle.nix。eza 图标配置programs.eza.icons是否使用了布尔值若是请改为auto原true或null原false以消除弃用警告并为未来版本做准备依据 eza.nix。stateVersion确认home.stateVersion取值在合法枚举内24.11 本身无状态版本变更无需为此做额外迁移依据 rl-2411.md 与 version.nix。完成以上检查并运行home-manager switch后即可平滑进入 24.11 版本线同时保持 swayidle 空闲管理与 eza 文件列表展示的行为与升级前一致。【免费下载链接】home-managerManage a user environment using Nix [maintainerkhaneliman, rycee]项目地址: https://gitcode.com/GitHub_Trending/ho/home-manager创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Flame 游戏引擎 SequenceEffect 序列效果详解:依次编排多种效果、正反交替与无限循环

Flame 游戏引擎 SequenceEffect 序列效果详解:依次编排多种效果、正反交替与无限循环

Flame 游戏引擎 SequenceEffect 序列效果详解:依次编排多种效果、正反交替与无限循环 【免费下载链接】flame A Flutter based game engine. 项目地址: https://gitcode.com/GitHub_Trending/fl/flame 本指南围绕 Flame 游戏引擎内置的 SequenceEffect 展开&…

2026/11/12 15:43:23 阅读更多 →
Home Manager 20.09 版本发布解读:stateVersion 机制、路径确定性化与窗口管理器配置迁移实战

Home Manager 20.09 版本发布解读:stateVersion 机制、路径确定性化与窗口管理器配置迁移实战

Home Manager 20.09 版本发布解读:stateVersion 机制、路径确定性化与窗口管理器配置迁移实战 【免费下载链接】home-manager Manage a user environment using Nix [maintainerkhaneliman, rycee] 项目地址: https://gitcode.com/GitHub_Trending/ho/home-manag…

2026/10/25 9:30:01 阅读更多 →
ST7735屏幕驱动移植:SPI时序与Arduino/STM32/C51实现

ST7735屏幕驱动移植:SPI时序与Arduino/STM32/C51实现

简介:面向1.44英寸ST7735 LCD串口屏的嵌入式开发场景,这份资源包整合了从硬件原理图到软件驱动代码的完整资料,适合正在做单片机实训、毕业设计或小型显示产品的开发者。驱动代码覆盖三种主流平台:Arduino串口库、C51的SPI驱动&am…

2026/10/25 0:37:39 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/12 5:00:00 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/12 5:13:20 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/12 5:13:20 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/12 5:13:20 阅读更多 →

日新闻

周新闻

月新闻