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
+188
View File
@@ -0,0 +1,188 @@
# DevShell: Окружение для разработки
Как использовать devShell для работы с конфигурацией.
## Что такое devShell?
DevShell - это временное окружение с инструментами для разработки конфигурации.
## Войти в devShell
```bash
cd /home/ada/.dotfiles/nixos
nix develop
```
После этого ты находишься в окружении с дополнительными инструментами.
## Что в devShell?
Когда входишь в devShell, доступны:
```
nix-output-monitor (nom) - Красивый вывод Nix
nvd - Сравнение версий
nix-tree - Дерево зависимостей
nixfmt-classic - Форматер Nix кода
vim, nano - Редакторы
git, ripgrep, fd - Утилиты
```
## Использование devShell
### Форматировать код
```bash
# Внутри devShell:
nixfmt-classic home/ada/*.nix
nixfmt-classic modules/**/*.nix
```
### Проверить зависимости
```bash
# Посмотреть дерево
nix-tree nixpkgs#<package-name>
# Сравнить версии между поколениями
nvd diff /nix/var/nix/profiles/system /run/current-system
```
### Красивый вывод сборки
```bash
# С красивым выводом
nix-output-monitor -- nix build .
```
## Редактировать конфигурацию
Внутри devShell можно редактировать файлы и сразу их форматировать:
```bash
vim home/ada/packages.nix
# После редактирования:
nixfmt-classic home/ada/packages.nix
```
## Автоматический вход
Если у тебя есть `.envrc`, devShell загружается автоматически при входе в папку:
```bash
cd /home/ada/.dotfiles/nixos
# Если есть direnv - автоматически загрузится devShell
```
Спросит разрешение первый раз:
```bash
direnv allow
```
## Использование с IDE
### VS Code
Если открыть папку в VS Code, он автоматически предложит использовать devShell.
### Vim/Neovim
Перед запуском vim:
```bash
nix develop
vim home/ada/zsh.nix
```
## Выход из devShell
```bash
exit
# или
Ctrl+D
```
## Типичный workflow
```bash
# 1. Войти в devShell
cd /home/ada/.dotfiles/nixos
nix develop
# 2. Отредактировать файл
vim home/ada/packages.nix
# 3. Форматировать
nixfmt-classic home/ada/packages.nix
# 4. Проверить синтаксис
nix flake check
# 5. Вернуться в нормальный shell
exit
# 6. Собрать конфигурацию (вне devShell)
nh os switch
```
## Команды в devShell
```bash
# Форматирование
nixfmt-classic **/*.nix
# Проверка
nix flake check
nix flake show --all-systems
# Анализ
nix-tree <package>
nvd diff
# Сборка
nom -- nix build .
# Поиск
rg "pattern"
fd "pattern"
```
## Возможные проблемы
### "command not found"
Если команда не найдена, убедись что ты внутри devShell:
```bash
# Проверить
echo $IN_NIX_SHELL
# Если пусто, войти:
nix develop
```
### Долгая загрузка devShell
Первая загрузка может быть долгой. После этого будет быстрее.
### Нужен другой инструмент?
Открой `flake.nix`, найди секцию `devShell` и добавь пакет:
```nix
devShells.${system}.default = pkgs.mkShell {
buildInputs = with pkgs; [
# Существующие
nix-output-monitor
# Добавить новый:
your-package
];
};
```
Потом собери:
```bash
exit # Выйти из старого devShell
nix develop # Войти в новый
```