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

4.1 KiB
Raw Blame History

DevShell: Окружение для разработки

Как использовать devShell для работы с конфигурацией.

Что такое devShell?

DevShell - это временное окружение с инструментами для разработки конфигурации.

Войти в devShell

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

Форматировать код

# Внутри devShell:
nixfmt-classic home/ada/*.nix
nixfmt-classic modules/**/*.nix

Проверить зависимости

# Посмотреть дерево
nix-tree nixpkgs#<package-name>

# Сравнить версии между поколениями
nvd diff /nix/var/nix/profiles/system /run/current-system

Красивый вывод сборки

# С красивым выводом
nix-output-monitor -- nix build .

Редактировать конфигурацию

Внутри devShell можно редактировать файлы и сразу их форматировать:

vim home/ada/packages.nix

# После редактирования:
nixfmt-classic home/ada/packages.nix

Автоматический вход

Если у тебя есть .envrc, devShell загружается автоматически при входе в папку:

cd /home/ada/.dotfiles/nixos
# Если есть direnv - автоматически загрузится devShell

Спросит разрешение первый раз:

direnv allow

Использование с IDE

VS Code

Если открыть папку в VS Code, он автоматически предложит использовать devShell.

Vim/Neovim

Перед запуском vim:

nix develop
vim home/ada/zsh.nix

Выход из devShell

exit
# или
Ctrl+D

Типичный workflow

# 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

# Форматирование
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:

# Проверить
echo $IN_NIX_SHELL

# Если пусто, войти:
nix develop

Долгая загрузка devShell

Первая загрузка может быть долгой. После этого будет быстрее.

Нужен другой инструмент?

Открой flake.nix, найди секцию devShell и добавь пакет:

devShells.${system}.default = pkgs.mkShell {
  buildInputs = with pkgs; [
    # Существующие
    nix-output-monitor

    # Добавить новый:
    your-package
  ];
};

Потом собери:

exit  # Выйти из старого devShell
nix develop  # Войти в новый