From d3690cf4ebee896e7659058acef3a2e9e61a4a2b Mon Sep 17 00:00:00 2001 From: Malix - Alix Brunet Date: Sat, 25 Jul 2026 16:17:13 +0200 Subject: [PATCH 1/2] maintainers: add malix --- modules/lib/maintainers.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/lib/maintainers.nix b/modules/lib/maintainers.nix index a52409ba95ea..d66d00b18c1a 100644 --- a/modules/lib/maintainers.nix +++ b/modules/lib/maintainers.nix @@ -386,6 +386,16 @@ github = "mainrs"; githubId = 5113257; }; + malix = { + name = "Malix - Alix Brunet"; + github = "Malix-Labs"; + githubId = 76160668; + email = "alixbrunetcontact+nixpkgs@gmail.com"; + keys = [ + { fingerprint = "cgtiI0dV+OGTuIFFuuCPWZPgF5OaiSkmZzobIdoWQO0"; } # SSH + { fingerprint = "369E2AB995539B6F30AAC24C600394C79ED874E5"; } # OpenPGP + ]; + }; mforster = { name = "Michael Forster"; email = "email@michael-forster.de"; From a776bf2eb19ca3c947d2331230da618bd4daf849 Mon Sep 17 00:00:00 2001 From: Malix - Alix Brunet Date: Sat, 25 Jul 2026 16:36:21 +0200 Subject: [PATCH 2/2] flake-edit: init --- .../misc/news/2026/07/2026-07-25_16-39-10.nix | 8 +++ modules/programs/flake-edit.nix | 52 +++++++++++++++++++ tests/modules/programs/flake-edit/default.nix | 39 ++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 modules/misc/news/2026/07/2026-07-25_16-39-10.nix create mode 100644 modules/programs/flake-edit.nix create mode 100644 tests/modules/programs/flake-edit/default.nix diff --git a/modules/misc/news/2026/07/2026-07-25_16-39-10.nix b/modules/misc/news/2026/07/2026-07-25_16-39-10.nix new file mode 100644 index 000000000000..d829a5a67dcf --- /dev/null +++ b/modules/misc/news/2026/07/2026-07-25_16-39-10.nix @@ -0,0 +1,8 @@ +{ + time = "2026-07-25T14:39:10+00:00"; + condition = true; + message = '' + A new module is available: 'programs.flake-edit', + featuring a '.settings' option to generate {file}`$XDG_CONFIG_HOME/flake-edit/config.toml` + ''; +} diff --git a/modules/programs/flake-edit.nix b/modules/programs/flake-edit.nix new file mode 100644 index 000000000000..40396db70a98 --- /dev/null +++ b/modules/programs/flake-edit.nix @@ -0,0 +1,52 @@ +{ + config, + lib, + pkgs, + ... +}: +let + name = "flake-edit"; + cfg = config.programs.${name}; + tomlFormat = pkgs.formats.toml { }; + configFile = "config.toml"; + configPath = "${name}/${configFile}"; +in +{ + meta.maintainers = with lib.hm.maintainers; [ malix ]; + + options.programs.${name} = { + enable = lib.mkEnableOption name; + + package = lib.mkPackageOption pkgs name { nullable = true; }; + + settings = lib.mkOption { + inherit (tomlFormat) type; + default = { }; + example = { + follow = { + ignore = [ + "systems" + "crane.flake-utils" + ]; + transitive_min = 2; + aliases = { + nixpkgs = [ "nixpkgs-lib" ]; + }; + max_depth = 1; + }; + }; + description = '' + Configuration written to {file}`$XDG_CONFIG_HOME/${configPath}`. + See for documentation. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + home.packages = lib.mkIf (cfg.package != null) [ cfg.package ]; + + xdg.configFile.${configPath} = lib.mkIf (cfg.settings != { }) { + source = tomlFormat.generate configFile cfg.settings; + }; + }; +} diff --git a/tests/modules/programs/flake-edit/default.nix b/tests/modules/programs/flake-edit/default.nix new file mode 100644 index 000000000000..979e8fc9d657 --- /dev/null +++ b/tests/modules/programs/flake-edit/default.nix @@ -0,0 +1,39 @@ +{ + flake-edit-basic-settings = + { pkgs, ... }: + let + configFile = "home-files/.config/flake-edit/config.toml"; + in + { + programs.flake-edit = { + enable = true; + settings = { + follow = { + ignore = [ + "systems" + "crane.flake-utils" + ]; + transitive_min = 2; + aliases = { + nixpkgs = [ "nixpkgs-lib" ]; + }; + max_depth = 1; + }; + }; + }; + + nmt.script = '' + assertFileExists ${configFile} + assertFileContent ${configFile} \ + ${pkgs.writeText "flake-edit-expected.toml" '' + [follow] + ignore = ["systems", "crane.flake-utils"] + max_depth = 1 + transitive_min = 2 + + [follow.aliases] + nixpkgs = ["nixpkgs-lib"] + ''} + ''; + }; +}