From 3ca4bd3f4b52dc2526bc3849524bfce5201b5699 Mon Sep 17 00:00:00 2001 From: Mohammad Rafiq Date: Thu, 19 Jun 2025 23:06:27 +0800 Subject: [PATCH] feat(nixos): add distrobox module --- .../virtualisation/distrobox/default.nix | 22 +++++++++++++++++++ .../machine/virtualisation/podman/default.nix | 13 ++++++++++- systems/x86_64-linux/nemesis/default.nix | 2 +- 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 modules/nixos/machine/virtualisation/distrobox/default.nix diff --git a/modules/nixos/machine/virtualisation/distrobox/default.nix b/modules/nixos/machine/virtualisation/distrobox/default.nix new file mode 100644 index 0000000..b570fdb --- /dev/null +++ b/modules/nixos/machine/virtualisation/distrobox/default.nix @@ -0,0 +1,22 @@ +{ + config, + lib, + pkgs, + ... +}: +let + inherit (lib) mkIf mkEnableOption singleton; + cfg = config.machine.virtualisation.distrobox; +in +{ + options.machine.virtualisation.distrobox = { + enable = mkEnableOption ""; + }; + config = mkIf cfg.enable { + machine.virtualisation.podman.enable = true; + home-manager.sharedModules = singleton { + home.packages = singleton pkgs.distrobox; + # persistDirs = [ ".local/share/containers" ]; + }; + }; +} diff --git a/modules/nixos/machine/virtualisation/podman/default.nix b/modules/nixos/machine/virtualisation/podman/default.nix index decd79d..e130e17 100644 --- a/modules/nixos/machine/virtualisation/podman/default.nix +++ b/modules/nixos/machine/virtualisation/podman/default.nix @@ -16,6 +16,17 @@ in defaultNetwork.settings.dns_enabled = true; }; }; - users.users."${config.mainUser.name}".extraGroups = [ "podman" ]; + users.users."${config.mainUser.name}" = { + extraGroups = [ "podman" ]; + # https://wiki.nixos.org/wiki/Distrobox + # subGidRanges = singleton { + # count = 65536; + # startGid = 1000; + # }; + # subUidRanges = singleton { + # count = 65536; + # startUid = 1000; + # }; + }; }; } diff --git a/systems/x86_64-linux/nemesis/default.nix b/systems/x86_64-linux/nemesis/default.nix index 111ad76..8a689a1 100644 --- a/systems/x86_64-linux/nemesis/default.nix +++ b/systems/x86_64-linux/nemesis/default.nix @@ -14,7 +14,7 @@ drive = "/dev/disk/by-id/nvme-CT2000P3SSD8_2325E6E77434"; ephemeralRoot = true; }; - virtualisation.podman.enable = true; + virtualisation.distrobox.enable = true; }; desktop = {