diff --git a/modules/programs/broot.nix b/modules/programs/broot.nix index 5197c8484..d78074ef4 100644 --- a/modules/programs/broot.nix +++ b/modules/programs/broot.nix @@ -206,16 +206,33 @@ in { config = mkIf cfg.enable { home.packages = [ cfg.package ]; - xdg.configFile."broot/conf.toml".source = - tomlFormat.generate "broot-config" cfg.settings; + xdg.configFile."broot" = { + recursive = true; + source = pkgs.symlinkJoin { + name = "xdg.configFile.broot"; + paths = [ + (pkgs.writeTextDir "conf.toml" (builtins.readFile + (tomlFormat.generate "broot-config" cfg.settings))) - # Dummy file to prevent broot from trying to reinstall itself - xdg.configFile."broot/launcher/installed-v1".text = ""; + # Copy all files under /resources/default-conf + "${cfg.package.src}/resources/default-conf" + + # Dummy file to prevent broot from trying to reinstall itself + (pkgs.writeTextDir "launcher/installed-v1" "") + ]; + + # Remove conf.hjson, whose content has been merged into programs.broot.settings + postBuild = '' + rm $out/conf.hjson + ''; + }; + }; programs.broot.settings = builtins.fromJSON (builtins.readFile (pkgs.runCommand "default-conf.json" { nativeBuildInputs = [ pkgs.hjson ]; - } "hjson -c ${cfg.package.src}/resources/default-conf.hjson > $out")); + } + "hjson -c ${cfg.package.src}/resources/default-conf/conf.hjson > $out")); programs.bash.initExtra = mkIf cfg.enableBashIntegration (shellInit "bash"); diff --git a/tests/modules/programs/broot/broot.nix b/tests/modules/programs/broot/broot.nix index 58a281083..440691cf5 100644 --- a/tests/modules/programs/broot/broot.nix +++ b/tests/modules/programs/broot/broot.nix @@ -13,39 +13,10 @@ with lib; assertFileExists home-files/.config/broot/conf.toml assertFileContent home-files/.config/broot/conf.toml ${ pkgs.writeText "broot.expected" '' + imports = ["verbs.hjson", {file = "dark-blue-skin.hjson", luma = ["dark", "unknown"]}, {file = "white-skin.hjson", luma = "light"}] modal = true show_selection_mark = true - - [[verbs]] - execution = "$EDITOR +{line} {file}" - invocation = "edit" - leave_broot = false - shortcut = "e" - - [[verbs]] - execution = "$EDITOR {directory}/{subpath}" - invocation = "create {subpath}" - leave_broot = false - - [[verbs]] - execution = "git difftool -y {file}" - invocation = "git_diff" - leave_broot = false - shortcut = "gd" - - [[verbs]] - auto_exec = false - execution = "cp -r {file} {parent}/{file-stem}-{version}{file-dot-extension}" - invocation = "backup {version}" - key = "ctrl-b" - leave_broot = false - - [[verbs]] - execution = "$SHELL" - invocation = "terminal" - key = "ctrl-t" - leave_broot = false - set_working_dir = true + verbs = [] [skin] ''