Files
nix-config/flake.nix
T

78 lines
6.3 KiB
Nix
Raw Normal View History

2026-05-07 20:48:42 +07:00
############################################################################
# #
# ███╗ ██╗██╗██╗ ██╗ ██████╗ ███████╗ ██████╗ ██████╗ #
# ████╗ ██║██║╚██╗██╔╝██╔═══██╗██╔════╝ ██╔════╝ ██╔══██╗ #
# ██╔██╗ ██║██║ ╚███╔╝ ██║ ██║███████╗ ██║ ███╗██████╔╝ #
# ██║╚██╗██║██║ ██╔██╗ ██║ ██║╚════██║ ██║ ██║██╔═══╝ #
# ██║ ╚████║██║██╔╝ ██╗╚██████╔╝███████║ ╚██████╔╝██║ #
# ╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ #
# #
# User: andrei | Host: nixos | Env: niri / xfce #
############################################################################
2026-03-22 21:30:03 +05:00
{
inputs = {
2026-05-07 20:48:42 +07:00
/*
системные импорты
*/
2026-05-10 22:25:04 +07:00
/* Основной репозиторий пакетов NixOS. Использование ветки 'nixos-unstable'
гарантирует получение самых свежих версий софта, таких как niri или noctalia,
которые быстро развиваются и требуют актуальных библиотек. */
2026-03-22 21:30:03 +05:00
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
2026-05-07 20:48:42 +07:00
2026-05-10 22:25:04 +07:00
/* Легковесный фреймворк для организации флейка. Он заменяет громоздкие
конструкции стандартного вывода (outputs) на модульную систему, позволяя
автоматически генерировать настройки для разных архитектур (x86_64, aarch64)
через удобные блоки perSystem. */
2026-03-22 21:30:03 +05:00
flake-parts.url = "github:hercules-ci/flake-parts";
2026-05-07 20:48:42 +07:00
2026-05-10 22:25:04 +07:00
/* Утилита для автоматического импорта директорий. Она рекурсивно сканирует
папки и подключает все .nix файлы, избавляя от необходимости вручную
прописывать каждый модуль в списке imports при расширении конфигурации. */
2026-03-22 21:30:03 +05:00
import-tree.url = "github:vic/import-tree";
2026-04-25 23:34:21 +05:00
2026-05-10 22:25:04 +07:00
/* niri-flake это специализированный Nix-флейк
(обычно поддерживаемый пользователем sodiboo),
который предоставляет пакеты и модули для Wayland-композитора niri.
Он часто используется вместе с flake-parts, чтобы декларативно
управлять конфигурацией графической среды и всегда иметь самую
свежую версию композитора.
*/
2026-04-25 23:34:21 +05:00
niri-flake = {
url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
2026-05-07 20:48:42 +07:00
2026-05-10 22:25:04 +07:00
/* Noctalia не является полноценным окружением рабочего стола
(как GNOME или KDE), а представляет собой визуальный слой,
который работает поверх оконных менеджеров. Она берет на себя функции,
за которые обычно отвечают разрозненные утилиты:
Панели и статус-бары: Полностью настраиваемые виджеты.
Уведомления и OSD: Встроенная система оповещений и индикаторов громкости/яркости.
Lock Screen: Экран блокировки с поддержкой PAM (например, для отпечатков пальцев).
Launcher и Док: Лаунчер приложений и панель задач.
Виджеты рабочего стола: Поддержка десктопных виджетов с привязкой к разным мониторам.*/
2026-04-30 13:40:52 +05:00
noctalia = {
url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "nixpkgs";
};
2026-03-22 21:30:03 +05:00
2026-05-10 22:25:04 +07:00
/* Инструмент для декларативного управления домашним каталогом пользователя.
В связке с графическими оболочками он отвечает за генерацию конфигов для
niri, noctalia, стилизацию GTK/Qt и управление файлами в ~/.config. */
2026-03-22 21:30:03 +05:00
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
2026-05-07 20:48:42 +07:00
2026-03-22 21:30:03 +05:00
};
2026-05-07 20:48:42 +07:00
/*
импорт модулей
*/
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules);
2026-03-22 21:30:03 +05:00
}