Jump to content

用于桌面的NixOS

From NixOS Wiki
This page is a translated version of the page NixOS as a desktop and the translation is 100% complete.

NixOS可以用于许多目的. 如果你想把它用作你的日常主要桌面操作系统(在实体机上或者作为副虚拟机), 那么你应该看看这个页面. 即使你是想把NixOS用在云端或者是经过特殊配置的服务器上, 你也可能会想从这里概述的课程开始, 以便从整体上对Nix生态有更好的了解.

安装

Wiki上的方法

如果你倾向于阅读, 请从NixOS安装指南开始. 如果你想选择一个精良的视频教程, 请见下一条. 请记住, 为了安装一个桌面, 你需要确定一开始有至少30GiB的可用硬盘空间来容纳桌面环境(比如说, GNOME, KDE, 或者是XFCE), 浏览器(比如Firefox), 以及其他带有图形界面的典型日用软件(如VSCode). 对于相对简陋的配置, 15GiB可能够用.

视频指南

如果想要一个可视化指南, 请看Wil T Nix Guides. 其中第二个视频是一个简洁的安装指南. 这个8期视频系列于2021年初制作, 也涵盖了从把NixOS用作桌面到根据你的喜好来配置它的所有基本内容.

管理你的配置

你可以使用NixOS官方手册中记录的方式来管理你的所有配置. 然而, 大部分在桌面上使用NixOS的社区成员更喜欢使用Home Manager来管理他们的配置(比如"点文件")(citation needed). Home Manager是一个面向用户的工具, 用于声明你想安装什么, 以及你想如何配置它. 对于大部分设置, 如果你不使用Home Manager的话, 你就要把它们放入configuration.nix, 或者使用nix-env.

视频指南

Wil T的指南是下列内容的均衡组合:

  1. 动手实践的引导, 让你逐步学会使用Home Manager, git版本控制,以及最后的Flakes来掌握你的系统
  2. Nix生态, 社区, 以及可用资源的概念总览和总体介绍

其中第二个视频, 从大概27分钟开始, 也是对Home Manager的介绍和设置指南.

模块化你的配置

通过NixOS模块

configuration.nix是NixOS模块的一个实例, 因此把你的配置分开放入若干文件中很容易. 模块可以:

  • 导入其他模块
  • 声明新的选项
  • 为选项设定值(这就是你的默认configuration.nix主要做的事情)
  • 从其他模块引用选项的值(通过传给所有模块的config属性)

只要你为任何你想在模块之间共享的值声明了选项, 你就可以按照你的喜好, 把你的配置分开放入文件, 这些文件直接地或间接地从你的根文件configuration.nix导入. 你也可以使用builtins.fetchTarball这样的函数从远程源导入模块. 查看wiki页面或者NixOS手册来获取更多信息.

通过Flakes

如果你想要可组合性[citation needed]更强的NixOS配置设定, 仍在实验阶段的Flakes特性正在使社区感到十分兴奋. 管理flakes需要对Nix生态有良好的基本理解和一些已有的实践经验.

视频指南

Wil T的原始8期视频系列的第七集第八集是对Flakes能做什么以及如何上手Flakes的很好的总览.

在初始设置之外

在你熟悉了Nix生态并安装了一个功能性的NixOS桌面后, 你可能会想了解定制化和更细化的设置.

通过示例来学习

如果你喜欢使用flakes通过一个git仓库来管理你的系统, 那么现在就有很多可供你学习的仓库!

对NixOS设置的比较中可查看一个对常见选择进行比较的表格.

配置集合中可看到wiki内部的一个长列表.

此外, 在Github上进行如下的主题搜索应该可以发现许多有用的示例.

  • nix-flake
  • nixos-configuration
  • nixos-dotfiles