mirror of
https://github.com/artagaz/nix-config.git
synced 2026-06-21 02:02:09 +07:00
78 lines
6.3 KiB
Nix
78 lines
6.3 KiB
Nix
############################################################################
|
||
# #
|
||
# ███╗ ██╗██╗██╗ ██╗ ██████╗ ███████╗ ██████╗ ██████╗ #
|
||
# ████╗ ██║██║╚██╗██╔╝██╔═══██╗██╔════╝ ██╔════╝ ██╔══██╗ #
|
||
# ██╔██╗ ██║██║ ╚███╔╝ ██║ ██║███████╗ ██║ ███╗██████╔╝ #
|
||
# ██║╚██╗██║██║ ██╔██╗ ██║ ██║╚════██║ ██║ ██║██╔═══╝ #
|
||
# ██║ ╚████║██║██╔╝ ██╗╚██████╔╝███████║ ╚██████╔╝██║ #
|
||
# ╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ #
|
||
# #
|
||
# 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);
|
||
}
|