Jump to content

NixOS as a desktop/ru: Difference between revisions

From NixOS Wiki
Sk7Str1p3 (talk | contribs)
Created page with "* Импортировать другие модули * Описывать новые опции * Предоставлять значения для опций (по большей части именно этим занимается стандартный configuration.nix) * Обращаться к значениям опций из других модулей (через аттрибут <code>config</code>, переданный всем модулям)"
FuzzyBot (talk | contribs)
Updating to match new version of source page
 
Line 1: Line 1:
<languages/>
<languages/>
<div class="mw-translate-fuzzy">
NixOS может быть использована для разных целей. Если вы желаете использовать её как основную десктопную ОС для повседневного использования (на реальном железе или [https://twitter.com/mitchellh/status/1346136404682625024 виртуальной машине](англ.)), то эта страница для вас. Даже если вы планируете использовать NixOS в облаке или на специально настроенных серверах, вы, возможно, хотите начать с уроков, изложенных здесь, чтобы ближе познакомиться с экосистемой Nix.
NixOS может быть использована для разных целей. Если вы желаете использовать её как основную десктопную ОС для повседневного использования (на реальном железе или [https://twitter.com/mitchellh/status/1346136404682625024 виртуальной машине](англ.)), то эта страница для вас. Даже если вы планируете использовать NixOS в облаке или на специально настроенных серверах, вы, возможно, хотите начать с уроков, изложенных здесь, чтобы ближе познакомиться с экосистемой Nix.
</div>


<span id="Installation"></span>
<span id="Installation"></span>
== Установка ==
== Установка ==


<span id="Wiki_method"></span>
<div class="mw-translate-fuzzy">
=== Метод Wiki ===
 
Если вы предпочитаете чтение, для начала посмотрите [[NixOS_Installation_Guide/ru|инструкцию по установке]]. Если же видео, пролистайте ниже до секции "Видео инструкции". Учитывайте, что для десктопной установки, вам потребуется как минимум 30 GiB места на диске, чтобы вместить рабочее окружение (например GNOME, KDE, или XFCE), браузеры (например Firefox), и другие графические утилиты (такие как VSCode), что вполне разумно для повседневного использования. Для минимальной установки, вероятно, хватит и 15 Gib.
Если вы предпочитаете чтение, для начала посмотрите [[NixOS_Installation_Guide/ru|инструкцию по установке]]. Если же видео, пролистайте ниже до секции "Видео инструкции". Учитывайте, что для десктопной установки, вам потребуется как минимум 30 GiB места на диске, чтобы вместить рабочее окружение (например GNOME, KDE, или XFCE), браузеры (например Firefox), и другие графические утилиты (такие как VSCode), что вполне разумно для повседневного использования. Для минимальной установки, вероятно, хватит и 15 Gib.
 
</div>
<span id="Video_guide"></span>
=== Видео инструкции ===
 
Для визуальных гайдов, смотрите [[Wil T Nix Guides]](англ). [[Wil_T_Nix_Guides|второе видео]] - лаконичный гайд по установке. Это серия из 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 на ПК, предпочитают управлять пользовательской конфигурацией ("dotfiles") с помощью [[Home_Manager/ru|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 на ПК, предпочитают управлять пользовательской конфигурацией ("dotfiles") с помощью [[Home_Manager/ru|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>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Видео инструкции ===
The process for managing your configuration is documented in the {{NixOS Manual|name=NixOS official manual|anchor=#ch-configuration}}.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Wil T's guides are about an even mix of:
=== System Configuration ===
# Hands-on bootstrapping to get to being able to very capably manage your system using Home Manager, git versioning, and eventually Flakes.
# Conceptual overviews and general exposition of the Nix ecosystem, community, and available resources.
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
The [[Wil_T_Nix_Guides#NixOS_Installation_Guide|second video]], starting from about 27 minutes in, is also an introduction to and guide to setting up Home Manager.
{{main|NixOS system configuration}}
</div>
</div>


<span id="Modularizing_your_configuration"></span>
<div lang="en" dir="ltr" class="mw-content-ltr">
== Модульная конфигурация ==
The primary configuration file, <code>/etc/nixos/configuration.nix</code>, defines system-wide settings. This includes options like enabling services, managing system users, setting hardware options, and specifying installed packages. Changes are applied with:
</div>


<span id="With_NixOS_Modules"></span>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== С помощью модулей NixOS ===
<syntaxhighlight lang="console">
# nixos-rebuild switch
</syntaxhighlight>
</div>


configuration.nix - это экземпляр [[NixOS_modules/ru|модуля NixOS]], который делает разделение конфигурации на несколько файлов проще. Модули способны:
<div lang="en" dir="ltr" class="mw-content-ltr">
=== User configuration with Home Manager ===
</div>


* Импортировать другие модули
<div lang="en" dir="ltr" class="mw-content-ltr">
* Описывать новые опции
For managing per-user configurations such as application preferences, command-line tools, and dotfiles, [[Home Manager]] provides a convenient, declarative approach. It allows users to define which programs should be installed and how they should be configured, without needing to include those settings in the system-wide [https://nixos.org/manual/nixos/stable/#sec-changing-config configuration.nix].
* Предоставлять значения для опций (по большей части именно этим занимается стандартный configuration.nix)
</div>
* Обращаться к значениям опций из других модулей (через аттрибут <code>config</code>, переданный всем модулям)


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
As long as you declare options for any values you want to share between modules, you can divide your configuration however you like into files that get imported, directly or transitively, by your root configuration.nix file. You can also import modules from remote sources, using functions like <code>builtins.fetchTarball</code>. See the [[NixOS modules|wiki page]] or the [https://nixos.org/manual/nixos/stable/#sec-writing-modules NixOS manual] for more information.
Home Manager can be used independently of the system configuration and works with both traditional setups and newer [[Flakes]]-based configurations.
</div>
</div>


Line 54: Line 56:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
If you want a more composable<sup>[citation needed]</sup> NixOS configuration setup, the still-experimental [[Flakes]] feature is causing a lot of excitement in the community. Managing flakes requires a good basic understanding and some existing hands on experience with the Nix ecosystem.
For users looking for a more streamlined and reproducible way to manage NixOS configurations, the [[Flakes]] feature has been gaining popularity within the community. While Flakes introduce some new concepts compared to traditional workflows, many users find them a convenient and organized approach to managing system and development configurations.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
Refer to [[NixOS system configuration#Defining NixOS as a flake]] for details on getting started.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
== Beyond initial setup ==
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
Once your basic NixOS installation is complete and functional, you can further customize your system with a variety of optional configurations tailored for desktop use. For a list of recommended initial system configurations, see [[NixOS Installation Guide#NixOS configuration]].
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
Common configuration areas include:
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
==== Desktop Environments ====
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
Install and configure full-featured environments such as [[GNOME]], [[KDE Plasma]], or [[Xfce]].
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
See [[:Category:Desktop environment]] for a full list.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
==== Window Managers ====
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
Set up lightweight or tiling window managers like [[i3]], [[Sway]], [[Hyprland]], or [[xmonad]].
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
See [[:Category:Window managers]] for a full list.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
==== Display Managers (Login Managers) ====
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
Configure graphical session managers such as [[Gnome|GDM]], [[KDE|SDDM]], or [[LightDM]].
</div>
</div>


<span id="Video_guide"></span>
<div lang="en" dir="ltr" class="mw-content-ltr">
==== Видеопособие ====
==== Audio Setup ====
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Videos [[Wil_T_Nix_Guides#Intro_to_Flakes|seven]] and [[Wil_T_Nix_Guides#Moving_NixOS_System_Configuration_into_a_Flake|eight]] of Wil T's original 8-part series are a good overview of what Flakes enable and how to get started with them.
Enable and configure [[:Category:Audio|audio]] systems like [[PipeWire]], [[PulseAudio]], or [[ALSA]].
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
== Beyond initial setup ==
==== Network Management ====
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
Use tools such as [[NetworkManager]] or [[systemd-networkd]] for managing [[Networking|network]] connections.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
==== Bluetooth Support ====
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
Set up [[Bluetooth]] with blueman or other management tools.
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
After you are familiar with the Nix ecosystem and have a functional desktop install of NixOS, you will likely be interested in customizations and more detailed setup.
==== Power Management ====
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Learn by example ===
Configure [[laptop]] [[Power Management|battery management]], suspend, and hibernation with tools like [[Laptop#tlp|tlp]] or [[systemd]] services.
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
If you are comfortable managing your system through a git repo using flakes, then there are many repositories you can learn from now!
==== Printing and Scanning ====
</div>  
</div>  


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Check out [[Comparison of NixOS setups]] for a table comparing some popular choices.
Enable [[Cups]] for printer support and tools like Sane for [[Scanners|scanning]] devices.
</div>
 
<span id="Tips_and_tricks"></span>
<div class="mw-translate-fuzzy">
== Модульная конфигурация ==
</div>
 
<span id="Modularizing_your_configuration_with_modules"></span>
<div class="mw-translate-fuzzy">
=== С помощью модулей NixOS ===
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
See [[Configuration Collection]] for a long list within the wiki.
{{main|NixOS system configuration#Modularizing your configuration with modules}}
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Additionally, the following topic searches on Github should uncover many useful examples.
== See also ==
* [https://github.com/topics/nix-flake nix-flake]
* [https://github.com/topics/nixos-configuration nixos-configuration]
* [https://github.com/topics/nixos-dotfiles nixos-dotfiles]
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
* [[Overview of the NixOS Linux distribution]]
* [[Comparison of NixOS setups]] for a table comparing some popular choices.
* [[Configuration Collection]] for a long list within the wiki.
* [https://github.com/topics/nix-flake nix-flake], [https://github.com/topics/nixos-configuration nixos-configuration], [https://github.com/topics/nixos-dotfiles nixos-dotfiles] Github topics
* [[Wil T Nix Guides]] Youtube video format guide
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[[Category:Desktop]]
[[Category:Desktop]]
[[Category:Guide]]
[[Category:Guide]]
[[Category:NixOS]]
</div>

Latest revision as of 21:06, 7 October 2025

NixOS может быть использована для разных целей. Если вы желаете использовать её как основную десктопную ОС для повседневного использования (на реальном железе или виртуальной машине(англ.)), то эта страница для вас. Даже если вы планируете использовать NixOS в облаке или на специально настроенных серверах, вы, возможно, хотите начать с уроков, изложенных здесь, чтобы ближе познакомиться с экосистемой Nix.

Установка

Если вы предпочитаете чтение, для начала посмотрите инструкцию по установке. Если же видео, пролистайте ниже до секции "Видео инструкции". Учитывайте, что для десктопной установки, вам потребуется как минимум 30 GiB места на диске, чтобы вместить рабочее окружение (например GNOME, KDE, или XFCE), браузеры (например Firefox), и другие графические утилиты (такие как VSCode), что вполне разумно для повседневного использования. Для минимальной установки, вероятно, хватит и 15 Gib.

Управление своей конфигурацией

Вы можете управлять всей конфигурацией, используя методы, описанные в оффициальном мануале NixOS(англ). Однако, большинство членов сообщества, использующих NixOS на ПК, предпочитают управлять пользовательской конфигурацией ("dotfiles") с помощью Home Manager. Home Manager - утилита, направленная на пользователей, для описания, что вы хотите установить и как оно должно быть настроено, поэтому может быть использовано вместо большинства настроек, которые вы бы добавили в configuration.nix или через nix-env

The process for managing your configuration is documented in the NixOS official manual.

System Configuration

The primary configuration file, /etc/nixos/configuration.nix, defines system-wide settings. This includes options like enabling services, managing system users, setting hardware options, and specifying installed packages. Changes are applied with:

# nixos-rebuild switch

User configuration with Home Manager

For managing per-user configurations such as application preferences, command-line tools, and dotfiles, Home Manager provides a convenient, declarative approach. It allows users to define which programs should be installed and how they should be configured, without needing to include those settings in the system-wide configuration.nix.

Home Manager can be used independently of the system configuration and works with both traditional setups and newer Flakes-based configurations.

С помощью Flakes

For users looking for a more streamlined and reproducible way to manage NixOS configurations, the Flakes feature has been gaining popularity within the community. While Flakes introduce some new concepts compared to traditional workflows, many users find them a convenient and organized approach to managing system and development configurations.

Refer to NixOS system configuration#Defining NixOS as a flake for details on getting started.

Beyond initial setup

Once your basic NixOS installation is complete and functional, you can further customize your system with a variety of optional configurations tailored for desktop use. For a list of recommended initial system configurations, see NixOS Installation Guide#NixOS configuration.

Common configuration areas include:

Desktop Environments

Install and configure full-featured environments such as GNOME, KDE Plasma, or Xfce.

See Category:Desktop environment for a full list.

Window Managers

Set up lightweight or tiling window managers like i3, Sway, Hyprland, or xmonad.

See Category:Window managers for a full list.

Display Managers (Login Managers)

Configure graphical session managers such as GDM, SDDM, or LightDM.

Audio Setup

Enable and configure audio systems like PipeWire, PulseAudio, or ALSA.

Network Management

Use tools such as NetworkManager or systemd-networkd for managing network connections.

Bluetooth Support

Set up Bluetooth with blueman or other management tools.

Power Management

Configure laptop battery management, suspend, and hibernation with tools like tlp or systemd services.

Printing and Scanning

Enable Cups for printer support and tools like Sane for scanning devices.

Модульная конфигурация

С помощью модулей NixOS

See also