diff --git a/modules/programs/broot.nix b/modules/programs/broot.nix index 8cc6338c1..2327305f9 100644 --- a/modules/programs/broot.nix +++ b/modules/programs/broot.nix @@ -6,10 +6,10 @@ let cfg = config.programs.broot; - tomlFormat = pkgs.formats.toml { }; + jsonFormat = pkgs.formats.json { }; settingsModule = { - freeformType = tomlFormat.type; + freeformType = jsonFormat.type; options = { modal = mkEnableOption "modal (vim) mode"; @@ -183,7 +183,7 @@ in { config = mkIf cfg.enable { home.packages = [ cfg.package ]; - xdg.configFile."broot" = { + xdg.configFile.broot = { recursive = true; source = pkgs.symlinkJoin { name = "xdg.configFile.broot"; @@ -194,31 +194,26 @@ in { # Dummy file to prevent broot from trying to reinstall itself (pkgs.writeTextDir "launcher/installed-v1" "") ]; - postBuild = '' - ln -s ${ - tomlFormat.generate "broot-config" cfg.settings - } $out/conf.toml - - # Remove conf.hjson, whose content has been merged into programs.broot.settings rm $out/conf.hjson + ${lib.getExe pkgs.jq} --slurp add > $out/conf.hjson \ + <(${ + lib.getExe pkgs.hjson-go + } -c ${cfg.package.src}/resources/default-conf/conf.hjson) \ + ${jsonFormat.generate "broot-config.json" cfg.settings} ''; }; }; - programs.broot.settings = builtins.fromJSON (builtins.readFile - (pkgs.runCommand "default-conf.json" { - nativeBuildInputs = [ pkgs.hjson-go ]; - } - "hjson-cli -c ${cfg.package.src}/resources/default-conf/conf.hjson > $out")); + programs = { + bash.initExtra = mkIf cfg.enableBashIntegration (shellInit "bash"); - programs.bash.initExtra = mkIf cfg.enableBashIntegration (shellInit "bash"); + zsh.initContent = mkIf cfg.enableZshIntegration (shellInit "zsh"); - programs.zsh.initContent = mkIf cfg.enableZshIntegration (shellInit "zsh"); + fish.shellInit = mkIf cfg.enableFishIntegration (shellInit "fish"); - programs.fish.shellInit = mkIf cfg.enableFishIntegration (shellInit "fish"); - - programs.nushell.extraConfig = - mkIf cfg.enableNushellIntegration (shellInit "nushell"); + nushell.extraConfig = + mkIf cfg.enableNushellIntegration (shellInit "nushell"); + }; }; } diff --git a/tests/modules/programs/broot/broot.nix b/tests/modules/programs/broot/broot.nix index d4f60a7c2..ef1d325bc 100644 --- a/tests/modules/programs/broot/broot.nix +++ b/tests/modules/programs/broot/broot.nix @@ -9,7 +9,7 @@ nixpkgs.overlays = [ (self: super: { inherit (realPkgs) broot hjson-go; }) ]; nmt.script = '' - assertFileExists home-files/.config/broot/conf.toml - assertFileContains home-files/.config/broot/conf.toml 'modal = true' + assertFileExists home-files/.config/broot/conf.hjson + assertFileContains home-files/.config/broot/conf.hjson '"modal": true' ''; }