Complex development environment

I’m having more and more projects, that involve a lot of different tools, and rather than install them directly in my confguration.nix, I would like to create some development environment (Also, I could share them with my pairs).

But when I looked into devShells, I found it pretty limited. As far as I understand, it’s only possible to define packages and hooks. But most of my projects require more than installing a few packages. For example, I sometimes needs to use virtualbox, and my typical setup is:

{ pkgs, ... }:
{ = {
    enable = true;
    addNetworkInterface = true;

  programs.wireshark.enable = true;

  environment.systemPackages = with pkgs; [ wireshark ];

But afaik I can’t setup programs.* or virtualisation.* on a nix shell. Is there a workaround for those more “complex” development environment ?

Thank you!


Have a look at