mirror of
https://github.com/nix-community/home-manager
synced 2024-11-26 21:19:45 +01:00
broot: fix config file location (#3273)
At commit [5666e6b9](5666e6b9fb
), broot refactored the content of the file `/resources/default-conf.hjson` into multiple files under the directory `/resources/default-conf`, using [`imports`](5666e6b9fb/resources/default-conf/conf.hjson (L152-L165)
) to refer to other configurations. This refactoring is effective since version 1.14.0 of broot. After this refactoring, in `xdg.configFile.broot` (which defaults to `~/.config/broot`): - we need to copy all potentially referenced files (all files under `resources/default-conf`), - except we need to leave out `conf.hjson` which conflicts with the `conf.toml` generated by home-manager (because broot [accepts both conf.toml and conf.hjson](https://dystroy.org/broot/conf_file/)) To implement this, we use `symlinkJoin` to create the content of `xdg.configFile.broot` by merging multiple sources.
This commit is contained in:
parent
65b65ce5ef
commit
1f5ef2bb41
2 changed files with 24 additions and 36 deletions
|
@ -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");
|
||||
|
||||
|
|
|
@ -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]
|
||||
''
|
||||
|
|
Loading…
Reference in a new issue