Files
nix-config/flake.nix
T
2026-05-10 22:25:04 +07:00

78 lines
6.3 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
############################################################################
# #
# ███╗ ██╗██╗██╗ ██╗ ██████╗ ███████╗ ██████╗ ██████╗ #
# ████╗ ██║██║╚██╗██╔╝██╔═══██╗██╔════╝ ██╔════╝ ██╔══██╗ #
# ██╔██╗ ██║██║ ╚███╔╝ ██║ ██║███████╗ ██║ ███╗██████╔╝ #
# ██║╚██╗██║██║ ██╔██╗ ██║ ██║╚════██║ ██║ ██║██╔═══╝ #
# ██║ ╚████║██║██╔╝ ██╗╚██████╔╝███████║ ╚██████╔╝██║ #
# ╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ #
# #
# User: andrei | Host: nixos | Env: niri / xfce #
############################################################################
{
inputs = {
/*
системные импорты
*/
/* Основной репозиторий пакетов NixOS. Использование ветки 'nixos-unstable'
гарантирует получение самых свежих версий софта, таких как niri или noctalia,
которые быстро развиваются и требуют актуальных библиотек. */
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
/* Легковесный фреймворк для организации флейка. Он заменяет громоздкие
конструкции стандартного вывода (outputs) на модульную систему, позволяя
автоматически генерировать настройки для разных архитектур (x86_64, aarch64)
через удобные блоки perSystem. */
flake-parts.url = "github:hercules-ci/flake-parts";
/* Утилита для автоматического импорта директорий. Она рекурсивно сканирует
папки и подключает все .nix файлы, избавляя от необходимости вручную
прописывать каждый модуль в списке imports при расширении конфигурации. */
import-tree.url = "github:vic/import-tree";
/* niri-flake это специализированный Nix-флейк
(обычно поддерживаемый пользователем sodiboo),
который предоставляет пакеты и модули для Wayland-композитора niri.
Он часто используется вместе с flake-parts, чтобы декларативно
управлять конфигурацией графической среды и всегда иметь самую
свежую версию композитора.
*/
niri-flake = {
url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
/* Noctalia не является полноценным окружением рабочего стола
(как GNOME или KDE), а представляет собой визуальный слой,
который работает поверх оконных менеджеров. Она берет на себя функции,
за которые обычно отвечают разрозненные утилиты:
Панели и статус-бары: Полностью настраиваемые виджеты.
Уведомления и OSD: Встроенная система оповещений и индикаторов громкости/яркости.
Lock Screen: Экран блокировки с поддержкой PAM (например, для отпечатков пальцев).
Launcher и Док: Лаунчер приложений и панель задач.
Виджеты рабочего стола: Поддержка десктопных виджетов с привязкой к разным мониторам.*/
noctalia = {
url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "nixpkgs";
};
/* Инструмент для декларативного управления домашним каталогом пользователя.
В связке с графическими оболочками он отвечает за генерацию конфигов для
niri, noctalia, стилизацию GTK/Qt и управление файлами в ~/.config. */
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
/*
импорт модулей
*/
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules);
}