############################################################################ # # # ███╗ ██╗██╗██╗ ██╗ ██████╗ ███████╗ ██████╗ ██████╗ # # ████╗ ██║██║╚██╗██╔╝██╔═══██╗██╔════╝ ██╔════╝ ██╔══██╗ # # ██╔██╗ ██║██║ ╚███╔╝ ██║ ██║███████╗ ██║ ███╗██████╔╝ # # ██║╚██╗██║██║ ██╔██╗ ██║ ██║╚════██║ ██║ ██║██╔═══╝ # # ██║ ╚████║██║██╔╝ ██╗╚██████╔╝███████║ ╚██████╔╝██║ # # ╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ # # # # 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); }