Files
dotfiles/nixos/docs/04-devshell.md
T
Dmitry 17b0cdfbac 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.
2026-03-10 13:10:52 +03:00

189 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 # Войти в новый
```