feat: add comprehensive NixOS configuration documentation and structure

- Introduced `08-structure.md` detailing project structure, main files, and versioning.
- Created `README.md` for documentation overview and quick start guide.
- Added user-specific configurations for Alacritty, Vim, Micro, Git, Zsh, Tmux, and tools.
- Implemented system modules for desktop environment (KDE Plasma), audio (PipeWire), networking, and services (OpenSSH, GnuPG).
- Configured Nix settings with flakes support and garbage collection.
- Established user management for `ada` with necessary groups and shell settings.
- Enabled VirtualBox guest additions for improved VM experience.
This commit is contained in:
Dmitry
2026-03-10 13:10:52 +03:00
parent a7ba016de4
commit 17b0cdfbac
31 changed files with 3327 additions and 164 deletions
+67 -5
View File
@@ -1,23 +1,85 @@
{
description = "NixOS Configuration Flake";
description = "Модульная конфигурация NixOS 25.11 на Flake с Home Manager для виртуальной машины";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# Nixpkgs - главный репозиторий пакетов
# Используем nixos-25.11 для стабильности вместо unstable
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
# Hardware profiles для различных машин
nixos-hardware.url = "github:nixos/nixos-hardware";
# Home Manager для управления конфигурацией пользователя
home-manager = {
url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, nixos-hardware }:
outputs = { self, nixpkgs, nixos-hardware, home-manager }:
let
# Переменные для переиспользования
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
version = "25.11";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in
{
# Главная конфигурация NixOS
nixosConfigurations.nixos-vm = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit pkgs;
};
modules = [
./nixos/configuration.nix
./configuration.nix
# Модуль Home Manager для управления конфигурацией пользователя
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.ada = import ./home/ada/default.nix;
}
];
};
# Окружение для разработки конфигурации
devShells.${system}.default = pkgs.mkShell {
description = "Development environment для NixOS конфигурации";
buildInputs = with pkgs; [
# Инструменты Nix
nix-output-monitor
nvd
nix-tree
nixfmt-classic
# Редакторы
vim
nano
# Утилиты для работы
git
ripgrep
fd
];
shellHook = ''
echo "🚀 Development environment loaded"
echo "📚 Доступные утилиты:"
echo " - nixfmt: Форматирование Nix кода"
echo " - nvd: Сравнение версий"
echo " - nix-tree: Дерево зависимостей"
echo "💡 Совет: запусти 'nh os switch' для применения конфигурации"
'';
};
# Форматеры кода
formatter.${system} = pkgs.nixfmt-classic;
};
}