OS as Code - 我的 NixOS 使用体会

76 天前
 ryan4yin

我 23 年 4 月开始尝试使用 NixOS ,而现在是 2024 年 2 月,距离我入坑 NixOS 刚好 10 个月,我当初写的新手笔记已经获得了大量好评与不少的赞助,并成为了整个社区最受欢迎的入门教程之一。自 2023 年 6 月我为它专门创建一个 GitHub 仓库与单独的文档站点以来,它已经获得了 1189 个 stars ,除我之外还有 37 位读者给它提了 PR:

那么作为一个已经深度使用 NixOS 作为主力桌面系统接近 10 个月的熟手,我在这里也从另一个角度来分享下我的入坑体会。

https://thiscute.world/posts/my-experience-of-nixos/

2863 次点击
所在节点    Linux
36 条回复
lucifer9
76 天前
至少不适合 kde 用户吧
amber0317
76 天前
@lucifer9 用 nix 管理 KDE 配置有点麻烦,对于默认配置用户来说感觉还好
适配最好的还是一个配置文件打天下的 DM 那种
lucifer9
76 天前
目前只有 kde 支持 Xwayland 分数缩放效果最好。另外如果常用 app 有 qt 的有 gtk 的,sway 或者 hypr 下想保持类似的外观有点儿麻烦
ryan4yin
76 天前
@lucifer9 我只在 NixOS 用过 i3/hyprland ,KDE 确实不太了解
param
76 天前
想换 Nix 好多年了。。但因为用好了 Arch ,切换又要学习成本和适应成本。
ltkun
76 天前
nix 找了一篇简介看了半天 没看懂是啥 还是 Arch 文档多 官方都有中文哈 查了下 wiki 也没中文条目 一看发行日期 2003 好吧 那时候在用 gentoo 后来换 Debian Ubuntu
ryan4yin
76 天前
@ltkun 文档一直是 Nix 最大的痛点,官方英文文档都一团糟,更别说中文了。所以我直接自己写了一份...
zeromake
76 天前
wayland hidpi 下的 vscode ( chrome 有相同问题) 一直有各种问题,ime 一直搞不定,更新的太新了还会导致不能适配 hidpi 然后很模糊……,重点是 ime 还是不能用,没有 vscode 暂时不打算搞 linux 了
AlicFeng
76 天前
极力推荐 `ElementoryOS` 操作系统,很舒服、很爽!大学时期使用至今,八年的时间了
Maboroshii
76 天前
@zeromake 现在 fcitx5 在 wayland+kde 下的 chrome 系问题不大了 ,愿意折腾的话,可以再试试。 参考 https://wiki.archlinuxcn.org/wiki/Fcitx5 以及 https://wiki.archlinuxcn.org/wiki/Wayland
mikasyou
76 天前
我的 vscode 在 hyprland 上以原生 wayland 没啥大问题,就是不知道为什么 chromium 系的窗口软件切换焦点时,输入法就无效了,必须用一个 gtk/qt 窗口刷新下焦点才行。不过也还好。。。为了平铺忍了
youknowiam
76 天前
Gentoo 路过,舒服
sky96111
76 天前
@zeromake hidpi 模糊的问题,两个选择,要么打开 DE 的分数缩放功能,要么 Chrome/Chromium/Electron app 启动时加参数 --disable-features=WaylandFractionalScaleV1
https://www.reddit.com/r/archlinux/comments/13gtogn/chrome_browser_blurry_text_after_gnome_441_update/

IME 没法用没什么办法,谷歌不解决
yzld2002
76 天前
@lucifer9 #3 https://github.com/pjones/plasma-manager
我在用这个配置 KDE ,感觉还不错
winson030
76 天前
@ryan4yin 谢谢你给了我转 nix pm 的信心。我打算接下来把 mba 重置,用 nix 管理我的 mba 。
Moming
76 天前
之前尝试过 NixOS ,感觉用不来,很多包都是社区成员提供的,有些过期不能用的也没办法,也极少有官方来维护的。最后还是自己滚 fedora ,基本的环境配置搞一份同步到 GitHub ,有需要的环境走 Docker ,毕竟这个很多 image 都是有官方维护的版本,需要自己写的也可以抄抄搞一个出来。
licolicoli
76 天前
NixOS 最痛苦的事情莫过于你想要改某些系统文件而打包者并没有提供相应的选项,这样你就只能自己叠加 overlay, 然而叠完 overlay 的包 hash 会变,于是一连串的包哈希跟着变,于是你再也没法命中二进制缓存,喜提一个大部分包需要你自己编译的系统 XD
Cooky
75 天前
不能替换 systemd 的话 nixos 相对来说没什么实质性的进步
ryan4yin
75 天前
> 这样你就只能自己叠加 overlay, 然而叠完 overlay 的包 hash 会变

@licolicoli 目测你用法错了,或者说你是很久以前试用过 NixOS.
现在的用法是这样的:

1. 如果只是想改某个包,你首先应该考虑直接在需要的时候 override 而不是直接 overlay ,这类似生成一个局部变量,系统中其他包依赖的还是没改过的版本
2. 如果你要改一堆东西,那首先应该考虑在你需要的地方 new 一个新的 nixpkgs 实例,这同样类似局部变量,不过比方法一改的范围要更广一些
3. 只有在你确认你需要整个修改系统中的这个包的时候,才应该使用全局的 overlay ,但这就会导致你说的,导致大量的本地编译。
xiaokanhongchen
75 天前
我试过各种系统,就 nix 给我的感觉,无从下手,其实想想,还是 arch 官方文档最好了,什么都很清楚,知道从哪里着手,nix 试过了,实在是不知道从哪里入手,就看一大堆人推荐,要是有个简明快速上手指南就好了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1017525

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX