NixOS as a desktop/zh: Difference between revisions

Mayer (talk | contribs)
No edit summary
Moraxyc (talk | contribs)
Created page with "启用 Cups 以支持打印机,并使用诸如 Sane 的工具来支持 扫描 设备。"
 
(30 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
NixOS可以用于许多目的. 如果你想把它用你的日常主要桌面操作系统(实体机上或者作为副虚拟机), 那么你应该看看这个页面. 即使你是想把NixOS用在云端或者是经过特殊配置的服务器上, 你也可能会从这里概述的课程开始, 以便从整体上对Nix生态有更好了解.
[[Special:MyLanguage/NixOS|NixOS]] 是一款功能多样的操作系统,适用于各种用例。本文面向希望将 NixOS 主要桌面环境(无论是物理硬件还是虚拟机中)的户。此外,计划[[NixOS friendly hosters|云端]] 环境专用服务器基础架构部署 NixOS 的用户,可能会发现从这里介绍的念和实践开始会很有帮助,因为它们为在更广泛的 [[Special:MyLanguage/Nix ecosystem|Nix 生态系统]] 中工作奠定了基础。


<span id="Installation"></span>
<span id="Installation"></span>
== 安装 ==
== 安装 ==


<span id="Wiki_method"></span>
<div class="mw-translate-fuzzy">
=== Wiki上的方法 ===
 
如果你倾向于阅读, 请从[[NixOS Installation Guide|NixOS安装指南]]开始. 如果你想选择一个精良的视频教程, 请见下一条. 请记住, 为了安装一个桌面, 你需要确定一开始有至少30GiB的可用硬盘空间来容纳桌面环境(比如说, GNOME, KDE, 或者是XFCE), 浏览器(比如Firefox), 以及其他带有图形界面的典型日用软件(如VSCode). 对于相对简陋的配置, 15GiB可能够用.
如果你倾向于阅读, 请从[[NixOS Installation Guide|NixOS安装指南]]开始. 如果你想选择一个精良的视频教程, 请见下一条. 请记住, 为了安装一个桌面, 你需要确定一开始有至少30GiB的可用硬盘空间来容纳桌面环境(比如说, GNOME, KDE, 或者是XFCE), 浏览器(比如Firefox), 以及其他带有图形界面的典型日用软件(如VSCode). 对于相对简陋的配置, 15GiB可能够用.
 
</div>
<span id="Video_guide"></span>
=== 视频指南 ===
 
如果想要一个可视化指南, 请看[[Wil T Nix Guides]]. 其中[[Wil_T_Nix_Guides#NixOS_Installation_Guide|第二个视频]]是一个简洁的安装指南. 这个8期视频系列于2021年初制作, 也涵盖了从把NixOS用作桌面到根据你的喜好来配置它的所有基本内容.


<span id="Managing_your_configuration"></span>
<span id="Managing_your_configuration"></span>
== 管理你的配置 ==
== 管理你的配置 ==


<div class="mw-translate-fuzzy">
你可以使用[https://nixos.org/manual/nixos/stable/index.html NixOS官方手册]中记录的方式来管理你的所有配置. 然而, 大部分在桌面上使用NixOS的社区成员更喜欢使用[[Home Manager]]来管理他们的配置(比如"点文件")(citation needed). Home Manager是一个面向用户的工具, 用于声明你想安装什么, 以及你想如何配置它. 对于大部分设置, 如果你不使用Home Manager的话, 你就要把它们放入[https://nixos.org/manual/nixos/stable/#sec-changing-config configuration.nix], 或者使用[[FAQ#How_can_I_manage_software_with_nix-env_like_with_configuration.nix.3F|nix-env]].
你可以使用[https://nixos.org/manual/nixos/stable/index.html NixOS官方手册]中记录的方式来管理你的所有配置. 然而, 大部分在桌面上使用NixOS的社区成员更喜欢使用[[Home Manager]]来管理他们的配置(比如"点文件")(citation needed). Home Manager是一个面向用户的工具, 用于声明你想安装什么, 以及你想如何配置它. 对于大部分设置, 如果你不使用Home Manager的话, 你就要把它们放入[https://nixos.org/manual/nixos/stable/#sec-changing-config configuration.nix], 或者使用[[FAQ#How_can_I_manage_software_with_nix-env_like_with_configuration.nix.3F|nix-env]].
</div>


<span id="Video_guide"></span>
关于如何管理配置,请参阅 {{NixOS Manual|name=NixOS 官方手册|anchor=#ch-configuration}}。
=== 视频指南 ===


Wil T的指南是下列内容的均衡组合:
<span id="System_Configuration"></span>
# 动手实践的引导, 让你逐步学会使用Home Manager, git版本控制,以及最后的Flakes来掌握你的系统  
=== 系统配置 ===
# Nix生态, 社区, 以及可用资源的概念总览和总体介绍


其中[[Wil_T_Nix_Guides#NixOS_Installation_Guide|第二个视频]], 从大概27分钟开始, 也是对Home Manager的介绍和设指南.
{{main|NixOS 系统配}}


<span id="Modularizing_your_configuration"></span>
<code>/etc/nixos/configuration.nix</code>是主配置文件,用于定义系统级设置。其中包括启用服务、管理系统用户、配置硬件选项以及指定安装的软件包。
== 模块化你的配置 ==
若要使更改生效,请运行:


<span id="With_NixOS_Modules"></span>
<syntaxhighlight lang="console">
=== 通过NixOS模块 ===
# nixos-rebuild switch
</syntaxhighlight>


configuration.nix是[[NixOS modules|NixOS模块]]的一个实例, 因此把你的配置分开放入若干文件中很容易.
<span id="User_configuration_with_Home_Manager"></span>
模块可以:
=== 使用 Home Manager 管理用户配置 ===


* 导入其他模块
针对应用程序偏好置、命令行工具以及 dotfiles 户级配置管理,[[Home Manager]] 提供了一种便捷声明式方案。
* 声明新的选项
* 为选项定值(这就是你的默认configuration.nix主要做的事情)
* 从其他模块引选项值(通过传给所有模块<code>config</code>属性)


你为任何你想在模块之间共享的值声明了选项, 你就可以按照你的喜好, 把你的配置分开放入文件, 这些文件直接地或间接地从你的根文件configuration.nix导. 你也可以使用<code>builtins.fetchTarball</code>这样函数从远程源导入模块. 查看[[NixOS modules|wiki页面]]或者[https://nixos.org/manual/nixos/stable/#sec-writing-modules NixOS手册]来获取更多信息.
它允许用户自行定义需安装程序及其具体配置方式,而无需将这些设置写系统级的 [https://nixos.org/manual/nixos/stable/#sec-changing-config configuration.nix] 中。
 
Home Manager 可以独立于系统配置使用,既支持传统设置,也支持基于 [[Flakes]] 的新式配置。


<span id="With_Flakes"></span>
<span id="With_Flakes"></span>
=== 通过Flakes ===
=== 通过Flakes ===


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


<span id="Video_guide"></span>
关于如何开始详细信息,请参考 [[NixOS system configuration#Defining NixOS as a flake]]
==== 视频指南 ====
 
Wil T的原始8期视频系列的[[Wil_T_Nix_Guides#Intro_to_Flakes|第七集]]和[[Wil_T_Nix_Guides#Moving_NixOS_System_Configuration_into_a_Flake|第八集]]是对Flakes能做什么以及如何上手Flakes的很好的总览.


<span id="Beyond_initial_setup"></span>
<span id="Beyond_initial_setup"></span>
== 在初始设置之外 ==
== 在初始设置之外 ==


<div class="mw-translate-fuzzy">
在你熟悉了Nix生态并安装了一个功能性的NixOS桌面后, 你可能会想了解定制化和更细化的设置.
在你熟悉了Nix生态并安装了一个功能性的NixOS桌面后, 你可能会想了解定制化和更细化的设置.
</div>
常见配置项包含:
<span id="Desktop_Environments"></span>
==== 桌面环境 ====
安装并配置功能完备的桌面环境,如 [[GNOME]]、[[KDE Plasma]] 或 [[Xfce]]。
完整列表请参阅 [[:Category:Desktop environment]]。
<span id="Window_Managers"></span>
==== 窗口管理器 ====
设置 [[i3]]、[[Sway]]、[[Hyprland]] 或 [[xmonad]] 等轻量级或平铺式窗口管理器。
完整列表请参阅 [[:Category:Window managers]]。
<span id="Display_Managers_(Login_Managers)"></span>
==== 显示管理器(登录管理器) ====
配置图形会话管理器,例如 [[Gnome|GDM]]、[[KDE|SDDM]] 或 [[LightDM]]。
<span id="Audio_Setup"></span>
==== 音频配置 ====
启用并配置 [[:Category:Audio|音频]] 系统,例如 [[PipeWire]]、[[PulseAudio]] 或 [[ALSA]]。


<span id="Learn_by_example"></span>
<span id="Network_Management"></span>
=== 通过示例来学习 ===
==== 网络管理 ====


果你喜欢使用flakes通过一个git仓库来管理你的系统, 那么现在就有很多可供你学习的仓库!
使用诸[[NetworkManager]] 或 [[systemd-networkd]] 的工具来管理 [[Networking|网络]] 连接。


[[Comparison of NixOS setups|对NixOS设置的比较]]中可查看一个对常见选择进行比较表格.
<span id="Bluetooth_Support"></span>
==== 蓝牙支持 ====
 
使用 blueman 或其他工具配置与管理[[Bluetooth|蓝牙]]。
 
<span id="Power_Management"></span>
==== 电源管理 ====
 
使用诸如 [[Laptop#tlp|tlp]] 或 [[systemd]] 服务等工具配[[laptop|笔记本]] [[Power Management|电池管理]]、挂起与休眠。
 
<div lang="en" dir="ltr" class="mw-content-ltr">
==== Printing and Scanning ====
</div>
 
启用 [[Cups]] 以支持打印机,并使用诸如 Sane 工具来支持 [[Scanners|扫描]] 设备。
 
<span id="Tips_and_tricks"></span>
== 提示和技巧 ==
 
<span id="Modularizing_your_configuration_with_modules"></span>
=== 通过 NixOS 模块机制模块化你的配置 ===
 
{{main|NixOS system configuration#Modularizing your configuration with modules}}


在[[Configuration Collection|配置集合]]中可看到wiki内部的一个长列表.
<span id="See_also"></span>
== 另见 ==


此外, 在Github上进行如下主题搜索应该可以发现许多有用的示例.
<div class="mw-translate-fuzzy">
* nix-flake
在[[Comparison of NixOS setups|对NixOS设置的比较]]中可查看一个对常见选择进行比较表格.
* nixos-configuration
</div>
* nixos-dotfiles


[[Category:Desktop]]
[[Category:Desktop|分类:桌面]]
[[Category:Guide]]
[[Category:Guide|分类:指南]]
[[Category:NixOS|分类:NixOS]]